@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,422 @@
1
+ // IMPORTANT NOTE
2
+ // Base styling is done in less. However it is converted to goldenlayout-base.scss so that themes
3
+ // can also be developed using SCSS.
4
+ // All changes to base style should be done in goldenlayout-base.scss.
5
+ // Do NOT make changes directly in goldenlayout-base.scss. goldenlayout-base.scss should only be updated by
6
+ // running the npm script "update-scss"
7
+ // Make sure that less code in goldenlayout.base.scss can be correctly correctly converted to scss with less2sass (ie keep it basic)
8
+
9
+ // Width variables (appears count calculates by raw css)
10
+ $width0: 100%; // Appears 3 times
11
+ $width1: 20px; // Appears 2 times
12
+ $width2: 100px; // Appears 1 time
13
+ $width3: 14px; // Appears 1 time
14
+ $width4: 18px; // Appears 1 time
15
+ $width5: 15px; // Appears 1 time
16
+ $width6: 2px; // Appears 1 time
17
+
18
+ // Height variables (appears count calculates by raw css)
19
+ $height0: 100%; // Appears 4 times
20
+ $height1: 20px; // Appears 2 times
21
+ $height2: 14px; // Appears 2 times
22
+ $height3: 10px; // Appears 1 time
23
+ $height4: 19px; // Appears 1 time
24
+ $height5: 18px; // Appears 1 time
25
+ $height6: 15px; // Appears 1 time
26
+
27
+ .lm_root {
28
+ position: relative;
29
+ }
30
+
31
+ .lm_row > .lm_item {
32
+ float: left;
33
+ }
34
+
35
+ // Single Pane content (area in which final dragged content is contained)
36
+ .lm_content {
37
+ overflow: hidden;
38
+ position: relative;
39
+ }
40
+
41
+ // ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged
42
+ .lm_dragging,
43
+ .lm_dragging * {
44
+ cursor: move !important;
45
+ user-select: none;
46
+ }
47
+
48
+ // If a specific Pane is maximized
49
+ .lm_maximised {
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ z-index: 40;
54
+ }
55
+
56
+ .lm_maximise_placeholder {
57
+ display: none;
58
+ }
59
+
60
+ // Separator line (handle to change pane size)
61
+ .lm_splitter {
62
+ position: relative;
63
+ z-index: 2;
64
+ touch-action: none;
65
+
66
+ &.lm_vertical {
67
+ .lm_drag_handle {
68
+ width: $width0;
69
+ position: absolute;
70
+ cursor: ns-resize;
71
+ touch-action: none;
72
+ user-select: none;
73
+ }
74
+ }
75
+
76
+ &.lm_horizontal {
77
+ float: left;
78
+ height: $height0;
79
+
80
+ .lm_drag_handle {
81
+ height: $height0;
82
+ position: absolute;
83
+ cursor: ew-resize;
84
+ touch-action: none;
85
+ user-select: none;
86
+ }
87
+ }
88
+ }
89
+
90
+ // Pane Header (container of Tabs for each pane)
91
+ .lm_header {
92
+ overflow: visible;
93
+ position: relative;
94
+ z-index: 1;
95
+ user-select: none;
96
+
97
+ [class^=lm_] {
98
+ box-sizing: content-box !important;
99
+ }
100
+
101
+ // Pane controls (popout, maximize, minimize, close)
102
+ .lm_controls {
103
+ position: absolute;
104
+ right: 3px;
105
+ display: flex;
106
+
107
+ > * {
108
+ cursor: pointer;
109
+ float: left;
110
+ width: $width4;
111
+ height: $height5;
112
+ text-align: center;
113
+ }
114
+ }
115
+
116
+ .lm_tabs {
117
+ position: absolute;
118
+ display: flex;
119
+ }
120
+
121
+ // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in ".lm_header"
122
+ .lm_tab {
123
+ cursor: pointer;
124
+ float: left;
125
+ height: $height2;
126
+ margin-top: 1px;
127
+ padding: 0px 10px 5px;
128
+ padding-right: 25px;
129
+ position: relative;
130
+ touch-action: none;
131
+
132
+ i {
133
+ width: $width6;
134
+ height: $height4;
135
+ position: absolute;
136
+
137
+ &.lm_left {
138
+ top: 0;
139
+ left: -2px;
140
+ }
141
+
142
+ &.lm_right {
143
+ top: 0;
144
+ right: -2px;
145
+ }
146
+ }
147
+
148
+ .lm_title {
149
+ display: inline-block;
150
+ overflow: hidden;
151
+ text-overflow: ellipsis;
152
+ }
153
+
154
+ // Close Tab Icon
155
+ .lm_close_tab {
156
+ width: $width3;
157
+ height: $height2;
158
+ position: absolute;
159
+ top: 0;
160
+ right: 0;
161
+ text-align: center;
162
+ }
163
+ }
164
+ }
165
+
166
+ // Change stack style to absolute positioning for docking transition ability
167
+ .lm_stack {
168
+ position: relative;
169
+
170
+ > .lm_items {
171
+ overflow: hidden;
172
+ }
173
+
174
+ &.lm_left {
175
+ > .lm_items {
176
+ position: absolute;
177
+ left: 20px;
178
+ top: 0;
179
+ }
180
+ }
181
+ &.lm_right {
182
+ > .lm_items {
183
+ position: absolute;
184
+ right: 20px;
185
+ top: 0;
186
+ }
187
+
188
+ > .lm_header {
189
+ position: absolute;
190
+ right: 0;
191
+ top: 0;
192
+ }
193
+ }
194
+ &.lm_bottom {
195
+ > .lm_items {
196
+ position: absolute;
197
+ bottom: 20px;
198
+ }
199
+
200
+ > .lm_header {
201
+ position: absolute;
202
+ bottom: 0;
203
+ }
204
+ }
205
+ }
206
+
207
+ // Headers positions
208
+ .lm_left,
209
+ .lm_right {
210
+ &.lm_stack {
211
+ .lm_header {
212
+ height: 100%;
213
+ }
214
+ }
215
+
216
+ &.lm_dragProxy {
217
+ .lm_header,
218
+ .lm_items {
219
+ float: left;
220
+ }
221
+ }
222
+
223
+ &.lm_dragProxy,
224
+ &.lm_stack {
225
+ .lm_header {
226
+ width: 20px;
227
+ vertical-align: top;
228
+
229
+ .lm_tabs {
230
+ transform-origin: left top;
231
+ top: 0;
232
+ width: 1000px; /*hack*/
233
+ }
234
+
235
+ .lm_controls {
236
+ bottom: 0;
237
+ flex-flow: column;
238
+ }
239
+ }
240
+ }
241
+ }
242
+
243
+ .lm_dragProxy.lm_left,
244
+ .lm_stack.lm_left {
245
+ .lm_header {
246
+ .lm_tabs {
247
+ transform: rotate(-90deg) scaleX(-1);
248
+ left: 0;
249
+ .lm_tab {
250
+ transform: scaleX(-1);
251
+ margin-top: 1px;
252
+ }
253
+ }
254
+
255
+ .lm_tabdropdown_list {
256
+ top:initial;
257
+ right:initial;
258
+ left:20px;
259
+ }
260
+ }
261
+ }
262
+
263
+ .lm_dragProxy.lm_right .lm_content {
264
+ float: left;
265
+ }
266
+
267
+ .lm_dragProxy.lm_right,
268
+ .lm_stack.lm_right {
269
+ .lm_header {
270
+ .lm_tabs {
271
+ transform: rotate(90deg) scaleX(1);
272
+ left: 100%;
273
+ margin-left: 0;
274
+ }
275
+
276
+ .lm_controls {
277
+ left: 3px;
278
+ }
279
+
280
+ .lm_tabdropdown_list {
281
+ top:initial;
282
+ right:20px;
283
+ }
284
+ }
285
+ }
286
+
287
+ .lm_dragProxy.lm_bottom,
288
+ .lm_stack.lm_bottom {
289
+ .lm_header {
290
+ width: 100%;
291
+ .lm_tab {
292
+ margin-top:0;
293
+ border-top: none;
294
+ }
295
+
296
+ .lm_controls {
297
+ top: 3px;
298
+ }
299
+
300
+ .lm_tabdropdown_list {
301
+ top:initial;
302
+ bottom:20px;
303
+ }
304
+ }
305
+ }
306
+
307
+ .lm_drop_tab_placeholder {
308
+ float: left;
309
+ width: $width2;
310
+ visibility: hidden;
311
+ }
312
+
313
+ // Dropdown arrow for additional tabs when too many to be displayed
314
+ .lm_header {
315
+ .lm_controls .lm_tabdropdown:before {
316
+ content: '';
317
+ width: 0;
318
+ height: 0;
319
+ vertical-align: middle;
320
+ display: inline-block;
321
+ border-top: 5px dashed;
322
+ border-right: 5px solid transparent;
323
+ border-left: 5px solid transparent;
324
+ color: white; // Overriden in specific Themes
325
+ }
326
+
327
+ .lm_tabdropdown_list {
328
+ position: absolute;
329
+ top: 20px;
330
+ right: 0;
331
+ z-index: 5;
332
+ overflow: hidden;
333
+
334
+ .lm_tab {
335
+ clear: both;
336
+ padding-right: 10px;
337
+ margin: 0;
338
+
339
+ .lm_title {
340
+ width: 100px;
341
+ }
342
+ }
343
+
344
+ .lm_close_tab {
345
+ display: none !important;
346
+ }
347
+ }
348
+ }
349
+
350
+ /***********************************
351
+ * Drag Proxy
352
+ ***********************************/
353
+
354
+ // Single Pane content during Drag (style of moving window following mouse)
355
+ .lm_dragProxy {
356
+ position: absolute;
357
+ top: 0;
358
+ left: 0;
359
+ z-index: 30;
360
+
361
+ .lm_header {
362
+ background: transparent;
363
+ }
364
+
365
+ .lm_content {
366
+ border-top: none;
367
+ overflow: hidden;
368
+ }
369
+ }
370
+
371
+ // Placeholder Container of target position
372
+ .lm_dropTargetIndicator {
373
+ display: none;
374
+ position: absolute;
375
+ z-index: 35;
376
+ transition: all 200ms ease;
377
+
378
+ // Inner Placeholder
379
+ .lm_inner {
380
+ width: $width0;
381
+ height: $height0;
382
+ position: relative;
383
+ top: 0;
384
+ left: 0;
385
+ }
386
+ }
387
+
388
+ .lm_transition_indicator {
389
+ display: none;
390
+ width: $width1;
391
+ height: $height1;
392
+ position: absolute;
393
+ top: 0;
394
+ left: 0;
395
+ z-index: 20;
396
+ }
397
+
398
+ // If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:
399
+ .lm_popin {
400
+ width: $width1;
401
+ height: $height1;
402
+ position: absolute;
403
+ bottom: 0;
404
+ right: 0;
405
+ z-index: 9999;
406
+
407
+ > * {
408
+ width: $width0;
409
+ height: $height0;
410
+ position: absolute;
411
+ top: 0;
412
+ left: 0;
413
+ }
414
+
415
+ > .lm_bg {
416
+ z-index: 10;
417
+ }
418
+
419
+ > .lm_icon {
420
+ z-index: 20;
421
+ }
422
+ }
@@ -0,0 +1,232 @@
1
+ @use "../goldenlayout-base.scss";
2
+
3
+ // TODO
4
+ // Images should be changed to SVG sprites so that colors can be changed
5
+
6
+ // Color variables (appears count calculates by raw css)
7
+ $baseBkgdColor: var(--color-layout-base-bkgd, #000000); // Appears 7 times
8
+ $singlePaneContentBkgdColor: var(--color-layout-single-pane-content-bkgd, #222222); // Appears 3 times
9
+ $popinIconBorderForeColor: var(--color-layout-popin-icon-border-fore, #eeeeee); // Appears 2 times
10
+ $activeTabForeColor: var(--color-layout-active-tab-fore, #dddddd); // Appears 2 times
11
+
12
+ $dropTargetIndicatorOutlineForeColor: var(--color-layout-drop-target-indicator-outline-fore, #cccccc); // Appears 1 time
13
+ $splitterDraggingBkgdColor: var(--color-layout-splitter-dragging-bkgd, #444444); // Appears 1 time
14
+ $singleTabContainerForeColor: var(--color-layout-single-tab-container-fore, #999999); // Appears 1 time
15
+ $singleTablContainerBkgdColor: var(--color-layout-single-tab-container-bkgd, #111111); // Appears 1 time
16
+ $selectedHeaderBkgdColor: var(--color-layout-selected-header-bkgd, #452500); // Appears 1 time
17
+ $transitionIndicatorBorderForeColor: var(--color-layout-transition-indicator-border-fore, #555555); // Appears 1 time
18
+ $dropDownArrowForeColor: var(--color-layout-drop-down-arrow-fore, #ffffff); // Appears 2 time
19
+
20
+ $focusedTabBkgdColor: var(--color-layout-focused-tab-bkgd, #354be3); // Appears 1 time
21
+
22
+ // ".lm_dragging" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged
23
+
24
+ // Entire GoldenLayout Container, if a background is set, it is visible as color of "pane header" and "splitters" (if these latest has opacity very low)
25
+ .lm_goldenlayout {
26
+ background: $baseBkgdColor;
27
+ }
28
+
29
+ // Single Pane content (area in which final dragged content is contained)
30
+ .lm_content {
31
+ background: $singlePaneContentBkgdColor;
32
+ }
33
+
34
+ // Single Pane content during Drag (style of moving window following mouse)
35
+ .lm_dragProxy {
36
+ .lm_content {
37
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);
38
+ }
39
+ }
40
+
41
+ // Placeholder Container of target position
42
+ .lm_dropTargetIndicator {
43
+ box-shadow: inset 0 0 30px $baseBkgdColor;
44
+ outline: 1px dashed $dropTargetIndicatorOutlineForeColor;
45
+ transition: all 200ms ease;
46
+
47
+ // Inner Placeholder
48
+ .lm_inner {
49
+ background: $baseBkgdColor;
50
+ opacity: 0.2;
51
+ }
52
+ }
53
+
54
+ // Separator line (handle to change pane size)
55
+ .lm_splitter {
56
+ background: $baseBkgdColor;
57
+ opacity: 0.001;
58
+ transition: opacity 200ms ease;
59
+
60
+ &:hover, // When hovered by mouse...
61
+ &.lm_dragging {
62
+ background: $splitterDraggingBkgdColor;
63
+ opacity: 1;
64
+ }
65
+ }
66
+
67
+ // Pane Header (container of Tabs for each pane)
68
+ .lm_header {
69
+ height: 20px;
70
+ user-select: none;
71
+
72
+ .lm_controls {
73
+ background: $singlePaneContentBkgdColor;
74
+ top: 2px;
75
+ right: 0;
76
+ display: flex;
77
+ }
78
+
79
+ // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in ".lm_header"
80
+ .lm_tab {
81
+ font-size: 12px;
82
+ color: $singleTabContainerForeColor;
83
+ background: $singleTablContainerBkgdColor;
84
+ margin-right: 2px;
85
+ padding-bottom: 2px;
86
+ padding-top: 2px;
87
+
88
+ // .lm_title // Present in LIGHT Theme
89
+ // {
90
+ // padding-top:1px;
91
+ // }
92
+
93
+ // Close Tab Icon
94
+ .lm_close_tab {
95
+ width: 11px;
96
+ height: 11px;
97
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAATElEQVR4nG3OwQ0DMQwDwZGRBtR/j1YJzMc5+IDoR+yCVO29g+pu981MFgqZmRdAfU7+CYWcbF11LwALjpBL0N0qybNx/RPU+gOeiS/+XCRwDlTgkQAAAABJRU5ErkJggg==);
98
+ background-position: center center;
99
+ background-repeat: no-repeat;
100
+ top: 4px;
101
+ right: 6px;
102
+ opacity: 0.4;
103
+
104
+ &:hover {
105
+ opacity: 1;
106
+ }
107
+ }
108
+
109
+ // If Tab is active, so if it's in foreground
110
+ &.lm_active {
111
+ border-bottom: none;
112
+ padding-bottom: 3px;
113
+
114
+ .lm_close_tab {
115
+ opacity: 1;
116
+ }
117
+
118
+ &.lm_focused {
119
+ background-color: $focusedTabBkgdColor;
120
+ }
121
+ }
122
+ }
123
+ }
124
+
125
+ .lm_dragProxy.lm_bottom,
126
+ .lm_stack.lm_bottom {
127
+ .lm_header .lm_tab {
128
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
129
+ &.lm_active {
130
+ box-shadow: 0 2px 2px $baseBkgdColor;
131
+ }
132
+ }
133
+ }
134
+
135
+ // If Pane Header (container of Tabs for each pane) is selected (used only if addition of new Contents is made "by selection" and not "by drag")
136
+ .lm_selected {
137
+ .lm_header {
138
+ background-color: $selectedHeaderBkgdColor;
139
+ }
140
+ }
141
+
142
+ .lm_tab {
143
+ &:hover, // If Tab is hovered
144
+ &.lm_active // If Tab is active, so if it's in foreground
145
+ {
146
+ background: $singlePaneContentBkgdColor;
147
+ color: $activeTabForeColor;
148
+ }
149
+ }
150
+
151
+ // Dropdown arrow for additional tabs when too many to be displayed
152
+ .lm_header .lm_controls .lm_tabdropdown:before {
153
+ color: $dropDownArrowForeColor;
154
+ }
155
+
156
+ // Pane controls (popout, maximize, minimize, close)
157
+ .lm_controls {
158
+ // All Pane controls shares these
159
+ > * {
160
+ position: relative;
161
+ background-position: center center;
162
+ background-repeat: no-repeat;
163
+ opacity: 0.4;
164
+ transition: opacity 300ms ease;
165
+
166
+ &:hover {
167
+ opacity: 1;
168
+ }
169
+ }
170
+
171
+ // Icon to PopOut Pane, so move it to a different Browser Window
172
+ .lm_popout {
173
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=);
174
+ }
175
+
176
+ // Icon to Maximize Pane, so it will fill the entire GoldenLayout Container
177
+ .lm_maximise {
178
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==);
179
+ }
180
+
181
+ // Icon to Close Pane and so remove it from GoldenLayout Container
182
+ .lm_close {
183
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII=);
184
+ }
185
+ }
186
+
187
+ // If a specific Pane is maximized
188
+ .lm_maximised {
189
+ // Pane Header (container of Tabs for each pane) can have different style when is Maximized
190
+ .lm_header {
191
+ background-color: $baseBkgdColor;
192
+ }
193
+
194
+ // Pane controls are different in Maximized Mode, especially the old Icon "Maximise" that now has a different meaning, so "Minimize" (even if CSS Class did not change)
195
+ .lm_controls {
196
+ .lm_maximise {
197
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC);
198
+ }
199
+ }
200
+ }
201
+
202
+ .lm_transition_indicator {
203
+ background-color: $baseBkgdColor;
204
+ border: 1px dashed $transitionIndicatorBorderForeColor;
205
+ }
206
+
207
+ // If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:
208
+ .lm_popin {
209
+ cursor: pointer;
210
+
211
+ // Background of Icon
212
+ .lm_bg {
213
+ background: $dropDownArrowForeColor;
214
+ opacity: 0.3;
215
+ }
216
+
217
+ // Icon to Restore original position in Golden Layout Container
218
+ .lm_icon {
219
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC);
220
+ background-position: center center;
221
+ background-repeat: no-repeat;
222
+ border-left: 1px solid $popinIconBorderForeColor;
223
+ border-top: 1px solid $popinIconBorderForeColor;
224
+ opacity: 0.7;
225
+ }
226
+
227
+ &:hover {
228
+ .lm_icon {
229
+ opacity: 1;
230
+ }
231
+ }
232
+ }