flexlayout-react 0.8.19 → 0.9.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 (77) hide show
  1. package/README.md +144 -206
  2. package/dist/index.js +6463 -6395
  3. package/package.json +21 -24
  4. package/style/_base.scss +108 -33
  5. package/style/_themes.scss +720 -49
  6. package/style/alpha_dark.css +862 -0
  7. package/style/alpha_dark.css.map +1 -0
  8. package/style/alpha_dark.scss +6 -0
  9. package/style/alpha_light.css +856 -0
  10. package/style/alpha_light.css.map +1 -0
  11. package/style/alpha_light.scss +6 -0
  12. package/style/alpha_rounded.css +811 -0
  13. package/style/alpha_rounded.css.map +1 -0
  14. package/style/alpha_rounded.scss +6 -0
  15. package/style/combined.css +568 -44
  16. package/style/combined.css.map +1 -1
  17. package/style/combined.scss +25 -1
  18. package/style/dark.css +94 -22
  19. package/style/dark.css.map +1 -1
  20. package/style/gray.css +95 -23
  21. package/style/gray.css.map +1 -1
  22. package/style/light.css +95 -20
  23. package/style/light.css.map +1 -1
  24. package/style/rounded.css +106 -25
  25. package/style/rounded.css.map +1 -1
  26. package/style/underline.css +98 -22
  27. package/style/underline.css.map +1 -1
  28. package/types/index.d.ts +14 -14
  29. package/types/model/Actions.d.ts +62 -31
  30. package/types/model/Attributes.d.ts +42 -0
  31. package/types/model/BorderNode.d.ts +11 -11
  32. package/types/model/BorderSet.d.ts +2 -2
  33. package/types/{DropInfo.d.ts → model/DropInfo.d.ts} +2 -2
  34. package/types/model/IDropTarget.d.ts +2 -2
  35. package/types/model/IJsonModel.d.ts +70 -48
  36. package/types/model/Layout.d.ts +41 -0
  37. package/types/model/Model.d.ts +30 -25
  38. package/types/model/Node.d.ts +18 -10
  39. package/types/{Rect.d.ts → model/Rect.d.ts} +6 -4
  40. package/types/model/RowNode.d.ts +15 -14
  41. package/types/model/TabNode.d.ts +15 -21
  42. package/types/model/TabSetNode.d.ts +15 -21
  43. package/types/view/BorderButton.d.ts +4 -3
  44. package/types/view/BorderTab.d.ts +3 -3
  45. package/types/view/BorderTabSet.d.ts +3 -3
  46. package/types/{Types.d.ts → view/CSSClassNames.d.ts} +9 -2
  47. package/types/view/DragContainer.d.ts +6 -4
  48. package/types/view/FloatWindow.d.ts +11 -0
  49. package/types/{I18nLabel.d.ts → view/I18nLabel.d.ts} +1 -0
  50. package/types/view/Icons.d.ts +1 -0
  51. package/types/view/Layout.d.ts +34 -212
  52. package/types/view/Overlay.d.ts +2 -2
  53. package/types/view/PopoutWindow.d.ts +6 -6
  54. package/types/view/PopupMenu.d.ts +2 -2
  55. package/types/view/Row.d.ts +3 -3
  56. package/types/view/Splitter.d.ts +2 -4
  57. package/types/view/Tab.d.ts +3 -4
  58. package/types/view/TabButton.d.ts +3 -3
  59. package/types/view/TabButtonStamp.d.ts +3 -3
  60. package/types/view/TabContentRenderer.d.ts +14 -0
  61. package/types/view/TabLayout.d.ts +12 -0
  62. package/types/view/TabOverflowHook.d.ts +3 -3
  63. package/types/view/TabSet.d.ts +3 -3
  64. package/types/view/Utils.d.ts +7 -4
  65. package/types/view/layout/BorderContainer.d.ts +7 -0
  66. package/types/view/layout/DragDropManager.d.ts +48 -0
  67. package/types/view/layout/EdgeIndicators.d.ts +5 -0
  68. package/types/view/layout/FloatingWindowContainer.d.ts +5 -0
  69. package/types/view/layout/LayoutInternal.d.ts +151 -0
  70. package/types/view/layout/LayoutTypes.d.ts +51 -0
  71. package/types/Attribute.d.ts +0 -25
  72. package/types/AttributeDefinitions.d.ts +0 -18
  73. package/types/model/Action.d.ts +0 -5
  74. package/types/model/LayoutWindow.d.ts +0 -44
  75. package/types/view/SizeTracker.d.ts +0 -13
  76. /package/types/{DockLocation.d.ts → model/DockLocation.d.ts} +0 -0
  77. /package/types/{Orientation.d.ts → model/Orientation.d.ts} +0 -0
@@ -14,14 +14,16 @@
14
14
  --color-drag2-background: rgba(119, 166, 119, 0.075);
15
15
  --font-size: medium;
16
16
  --font-family: Roboto, Arial, sans-serif;
17
+ --font-weight: normal;
18
+ --splitter-size: 8px;
19
+ --splitter-active-size: 8px;
20
+ --splitter-handle-visibility: hidden;
17
21
  --color-overflow: gray;
18
22
  --color-icon: gray;
19
23
  --color-tabset-background: var(--color-background);
20
24
  --color-tabset-background-selected: var(--color-1);
21
25
  --color-tabset-background-maximized: var(--color-6);
22
26
  --color-tabset-divider-line: var(--color-3);
23
- --color-tabset-header-background: var(--color-background);
24
- --color-tabset-header: var(--color-text);
25
27
  --color-border-tab-content: var(--color-background);
26
28
  --color-border-background: var(--color-background);
27
29
  --color-border-divider-line: var(--color-3);
@@ -39,12 +41,13 @@
39
41
  --color-splitter: var(--color-1);
40
42
  --color-splitter-hover: var(--color-4);
41
43
  --color-splitter-drag: var(--color-4);
44
+ --color-splitter-handle: var(--color-3);
42
45
  --color-drag-rect-border: var(--color-6);
43
46
  --color-drag-rect-background: var(--color-4);
44
47
  --color-drag-rect: var(--color-text);
45
48
  --color-popup-border: var(--color-6);
46
49
  --color-popup-unselected: var(--color-text);
47
- --color-popup-unselected-background: white;
50
+ --color-popup-unselected-background: var(--color-background);
48
51
  --color-popup-selected: var(--color-text);
49
52
  --color-popup-selected-background: var(--color-3);
50
53
  --color-edge-marker: #aaa;
@@ -56,6 +59,7 @@
56
59
  --color-mini-scroll-indicator-hovered: rgba(128, 128, 128, 0.7);
57
60
  --size-mini-scroll-indicator: 4px;
58
61
  --color-toolbar-button-hover: var(--color-3);
62
+ --color-float-window-header-background: var(--color-tabset-background);
59
63
  }
60
64
 
61
65
  /*
@@ -85,7 +89,7 @@
85
89
  z-index: 100;
86
90
  display: flex;
87
91
  flex-direction: column;
88
- align-items: start;
92
+ align-items: flex-start;
89
93
  }
90
94
  .flexlayout__layout_moveables {
91
95
  visibility: hidden;
@@ -123,6 +127,37 @@
123
127
  background-color: var(--color-splitter);
124
128
  touch-action: none;
125
129
  z-index: 10;
130
+ position: relative;
131
+ }
132
+ .flexlayout__splitter_horz {
133
+ width: var(--splitter-size);
134
+ min-width: var(--splitter-size);
135
+ }
136
+ .flexlayout__splitter_horz::before {
137
+ content: "";
138
+ position: absolute;
139
+ top: 0;
140
+ bottom: 0;
141
+ /* Center the hit area over the thin line */
142
+ left: 50%;
143
+ width: var(--splitter-active-size);
144
+ transform: translateX(-50%);
145
+ z-index: 1;
146
+ }
147
+ .flexlayout__splitter_vert {
148
+ height: var(--splitter-size);
149
+ min-height: var(--splitter-size);
150
+ }
151
+ .flexlayout__splitter_vert::before {
152
+ content: "";
153
+ position: absolute;
154
+ left: 0;
155
+ right: 0;
156
+ /* Center the hit area over the thin line */
157
+ top: 50%;
158
+ height: var(--splitter-active-size);
159
+ transform: translateY(-50%);
160
+ z-index: 1;
126
161
  }
127
162
  @media (hover: hover) {
128
163
  .flexlayout__splitter:hover {
@@ -142,8 +177,9 @@
142
177
  background-color: var(--color-splitter-drag);
143
178
  }
144
179
  .flexlayout__splitter_handle {
145
- background-color: #ccc;
180
+ background-color: var(--color-splitter-handle);
146
181
  border-radius: 3px;
182
+ visibility: var(--splitter-handle-visibility);
147
183
  }
148
184
  .flexlayout__splitter_handle_horz {
149
185
  width: 3px;
@@ -241,25 +277,15 @@
241
277
  .flexlayout__tabset_leading {
242
278
  display: flex;
243
279
  }
244
- .flexlayout__tabset_header {
245
- display: flex;
246
- align-items: center;
247
- padding: 3px 3px 3px 5px;
248
- box-sizing: border-box;
249
- border-bottom: 1px solid var(--color-tabset-divider-line);
250
- color: var(--color-tabset-header);
251
- background-color: var(--color-tabset-header-background);
252
- font-size: var(--font-size);
253
- }
254
- .flexlayout__tabset_header_content {
255
- flex-grow: 1;
256
- }
257
280
  .flexlayout__tabset_tabbar_outer {
258
281
  box-sizing: border-box;
259
282
  background-color: var(--color-tabset-background);
260
283
  overflow: hidden;
261
284
  display: flex;
285
+ align-items: center;
286
+ min-height: 1.5em;
262
287
  font-size: var(--font-size);
288
+ font-weight: var(--font-weight);
263
289
  }
264
290
  .flexlayout__tabset_tabbar_outer_top {
265
291
  padding: 0px 2px 0px 2px;
@@ -286,6 +312,7 @@
286
312
  padding-right: 4px;
287
313
  box-sizing: border-box;
288
314
  white-space: nowrap;
315
+ align-items: center;
289
316
  }
290
317
  .flexlayout__tabset_tabbar_inner_tab_container_top {
291
318
  border-top: 2px solid transparent;
@@ -330,12 +357,23 @@
330
357
  bottom: 0;
331
358
  background-color: rgba(0, 0, 0, 0.2392156863);
332
359
  }
360
+ .flexlayout__tab_layout_container {
361
+ position: relative;
362
+ height: 100%;
363
+ box-sizing: border-box;
364
+ }
365
+ .flexlayout__tab_layout_container_user {
366
+ position: relative;
367
+ flex-grow: 1;
368
+ box-sizing: border-box;
369
+ }
333
370
  .flexlayout__tab_button {
334
371
  display: flex;
335
372
  gap: 0.3em;
336
373
  align-items: center;
337
374
  box-sizing: border-box;
338
375
  padding: 3px 0.5em;
376
+ font-weight: var(--font-weight);
339
377
  cursor: pointer;
340
378
  }
341
379
  .flexlayout__tab_button_stretch {
@@ -379,6 +417,7 @@
379
417
  border: none;
380
418
  font-family: var(--font-family);
381
419
  font-size: var(--font-size);
420
+ font-weight: var(--font-weight);
382
421
  color: var(--color-tab-textbox);
383
422
  background-color: var(--color-tab-textbox-background);
384
423
  border: 1px inset var(--color-1);
@@ -453,8 +492,9 @@
453
492
  box-sizing: border-box;
454
493
  overflow: hidden;
455
494
  display: flex;
456
- font-size: var(--font-size);
457
495
  font-family: var(--font-family);
496
+ font-size: var(--font-size);
497
+ font-weight: var(--font-weight);
458
498
  color: var(--color-border);
459
499
  background-color: var(--color-border-background);
460
500
  }
@@ -498,6 +538,7 @@
498
538
  .flexlayout__border_inner_tab_container {
499
539
  white-space: nowrap;
500
540
  display: flex;
541
+ align-items: center;
501
542
  padding-left: 2px;
502
543
  padding-right: 2px;
503
544
  box-sizing: border-box;
@@ -524,6 +565,7 @@
524
565
  margin: 2px 0px;
525
566
  box-sizing: border-box;
526
567
  white-space: nowrap;
568
+ font-weight: var(--font-weight);
527
569
  }
528
570
  .flexlayout__border_button--selected {
529
571
  background-color: var(--color-border-tab-selected-background);
@@ -596,6 +638,7 @@
596
638
  .flexlayout__popup_menu {
597
639
  font-size: var(--font-size);
598
640
  font-family: var(--font-family);
641
+ font-weight: var(--font-weight);
599
642
  }
600
643
  .flexlayout__popup_menu_item {
601
644
  padding: 2px 0.5em;
@@ -620,12 +663,43 @@
620
663
  background: var(--color-popup-unselected-background);
621
664
  border-radius: 3px;
622
665
  position: absolute;
623
- z-index: 1000;
666
+ z-index: 3000;
624
667
  max-height: 50%;
625
668
  min-width: 100px;
626
669
  overflow: auto;
627
670
  padding: 2px;
628
671
  }
672
+ .flexlayout__float_window {
673
+ box-sizing: border-box;
674
+ background-color: var(--color-tabset-background);
675
+ border-radius: 5px;
676
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
677
+ display: flex;
678
+ flex-direction: column;
679
+ overflow: hidden;
680
+ z-index: 2000;
681
+ }
682
+ .flexlayout__float_window_header {
683
+ display: flex;
684
+ align-items: center;
685
+ padding: 2px 8px;
686
+ background-color: var(--color-float-window-header-background);
687
+ border-bottom: 1px solid var(--color-tabset-divider-line);
688
+ cursor: move;
689
+ user-select: none;
690
+ font-family: var(--font-family);
691
+ font-size: 0.8em;
692
+ min-height: 15px;
693
+ }
694
+ .flexlayout__float_window_content {
695
+ position: relative;
696
+ flex-grow: 1;
697
+ display: flex;
698
+ flex-direction: column;
699
+ min-height: 0;
700
+ min-width: 0;
701
+ margin: 5px;
702
+ }
629
703
  .flexlayout__floating_window _body {
630
704
  height: 100%;
631
705
  }
@@ -656,6 +730,7 @@
656
730
  padding-bottom: 5px;
657
731
  font-size: var(--font-size);
658
732
  font-family: var(--font-family);
733
+ font-weight: var(--font-weight);
659
734
  }
660
735
  .flexlayout__mini_scrollbar {
661
736
  position: absolute;
@@ -708,8 +783,9 @@
708
783
  }
709
784
  .flexlayout__tabset_tab_divider, .flexlayout__border_tab_divider {
710
785
  width: 1px;
711
- margin: 4px 6px 4px 6px;
712
- border-left: 1px solid #ddd;
786
+ height: 0.8em;
787
+ margin: 0px 6px 0px 6px;
788
+ background-color: #ddd;
713
789
  }
714
790
  .flexlayout__tab_button_textbox {
715
791
  border: none;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["_themes.scss","_base.scss"],"names":[],"mappings":"AAwXQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;;;AC/aR;AAAA;AAAA;AAII;EAnBJ;EACA;EACA;EACA;EACA;EAiBQ;EACA;EACA;;AAEA;EAzBR;EACA;EACA;EACA;EACA;EAuBY;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAvCR;EACA;EACA;EACA;EAsCY;EACA;;AAIR;EA9CJ;EACA;EACA;EACA;EA6CQ;;AAGJ;EAnDJ;EACA;EACA;EACA;EAkDQ;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;IACA;IACA;IACA;;;AAOR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EA1JJ;EACA;EACA;EACA;EAyJQ;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EA3KR;EACA;EACA;EACA;EA0KY;EACA;EACA;;AAGJ;EACI;;AAGJ;EAtLR;EACA;EACA;EACA;EAqLY;EACA;EACA;;AAGJ;EACI;;AAGJ;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAKJ;EAEI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EAEI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAMhB;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAKZ;EACI;EACA;;AAGJ;EACI;IACI;;;AAIR;EACI;EACA;;AASJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAQR;EACI;IACI;;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAaZ;EACI;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAKZ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;IAEI;;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAUJ;EACI;IACI;;;AAIR;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;EACA;EACA;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAYhB;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;IACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACI;;AAGJ;EA/rBR;EACA;EACA;EACA;EACA;;AAgsBI;EApsBJ;EACA;EACA;EACA;EACA;EAksBQ;EACA;;AAGJ;EACI;EACA;;AAOJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;IACI;IACA;;;;AAMpB;ADvTA;AAAA;AAAA;AAKQ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;EACA;EACA;;AAGJ;EACI","file":"underline.css"}
1
+ {"version":3,"sourceRoot":"","sources":["_themes.scss","_base.scss"],"names":[],"mappings":"AAkYQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC5bR;AAAA;AAAA;AAII;EApBJ;EACA;EACA;EACA;EACA;EAkBQ;EACA;EACA;;AAEA;EA1BR;EACA;EACA;EACA;EACA;EAwBY;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAxCR;EACA;EACA;EACA;EAuCY;EACA;;AAIR;EA/CJ;EACA;EACA;EACA;EA8CQ;;AAGJ;EApDJ;EACA;EACA;EACA;EAmDQ;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;;AAIR;EACI;IACI;IACA;IACA;IACA;;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAIR;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EA9LJ;EACA;EACA;EACA;EA6LQ;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EA/MR;EACA;EACA;EACA;EA8MY;EACA;EACA;;AAGJ;EACI;;AAGJ;EA1NR;EACA;EACA;EACA;EAyNY;EACA;EACA;;AAGJ;EACI;;AAIA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EAEI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAMhB;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAKZ;EACI;EACA;;AAGJ;EACI;IACI;;;AAIR;EACI;EACA;;AAOJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAQR;EACI;IACI;;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAaZ;EACI;EACA;EACA;EACA;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAKZ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;IAEI;;;AAIR;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AASJ;EACI;IACI;;;AAIR;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;EACA;EACA;;AAGJ;EAEI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;IACI;;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAYhB;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIR;EACI;IACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACI;;AAGJ;EAzwBR;EACA;EACA;EACA;EACA;;AA0wBI;EA9wBJ;EACA;EACA;EACA;EACA;EA4wBQ;EACA;;AAGJ;EACI;EACA;;AAOJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;IACI;IACA;;;;AAMhB;ADnXA;AAAA;AAAA;AAKI;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EAEI;EACA;EACA;EACA;;AAGJ;EACI","file":"underline.css"}
package/types/index.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  export * from './view/Layout';
2
+ export * from './view/TabLayout';
3
+ export * from './view/layout/LayoutTypes';
2
4
  export * from './view/Icons';
3
- export * from './model/Action';
4
- export * from './model/Actions';
5
+ export * from './view/I18nLabel';
6
+ export * from './view/CSSClassNames';
7
+ export * from './model/Model';
8
+ export * from './model/Node';
9
+ export * from './model/RowNode';
10
+ export * from './model/TabSetNode';
5
11
  export * from './model/BorderNode';
12
+ export * from './model/TabNode';
13
+ export * from './model/Actions';
6
14
  export * from './model/BorderSet';
15
+ export * from './model/DockLocation';
16
+ export * from './model/Orientation';
17
+ export * from './model/DropInfo';
18
+ export * from './model/Rect';
7
19
  export * from './model/ICloseType';
8
20
  export * from './model/IDraggable';
9
21
  export * from './model/IDropTarget';
10
22
  export * from './model/IJsonModel';
11
- export * from './model/Model';
12
- export * from './model/Node';
13
- export * from './model/RowNode';
14
- export * from './model/TabNode';
15
- export * from './model/TabSetNode';
16
- export * from './model/LayoutWindow';
17
- export * from './DockLocation';
18
- export * from './DropInfo';
19
- export * from './I18nLabel';
20
- export * from './Orientation';
21
- export * from './Rect';
22
- export * from './Types';
@@ -1,16 +1,16 @@
1
- import { DockLocation } from "../DockLocation";
2
- import { Action } from "./Action";
3
- import { IJsonRect, IJsonRowNode } from "./IJsonModel";
1
+ import { DockLocation } from "./DockLocation";
2
+ import { IGlobalAttributes, IJsonRect, IJsonRowNode, IJsonTabNode, IRowAttributes, ITabAttributes, ITabSetAttributes } from "./IJsonModel";
3
+ import { ILayoutType } from "./IJsonModel";
4
4
  /**
5
5
  * The Action creator class for FlexLayout model actions
6
6
  */
7
7
  export declare class Actions {
8
- static ADD_NODE: string;
9
- static MOVE_NODE: string;
8
+ static ADD_TAB: string;
10
9
  static DELETE_TAB: string;
11
- static DELETE_TABSET: string;
12
10
  static RENAME_TAB: string;
13
11
  static SELECT_TAB: string;
12
+ static MOVE_NODE: string;
13
+ static DELETE_TABSET: string;
14
14
  static SET_ACTIVE_TABSET: string;
15
15
  static ADJUST_WEIGHTS: string;
16
16
  static ADJUST_BORDER_SPLIT: string;
@@ -19,8 +19,9 @@ export declare class Actions {
19
19
  static UPDATE_NODE_ATTRIBUTES: string;
20
20
  static POPOUT_TAB: string;
21
21
  static POPOUT_TABSET: string;
22
- static CLOSE_WINDOW: string;
23
- static CREATE_WINDOW: string;
22
+ static CLOSE_POPOUT: string;
23
+ static MOVE_POPOUT_TO_FRONT: string;
24
+ static CREATE_SUBLAYOUT: string;
24
25
  /**
25
26
  * Adds a tab node to the given tabset node
26
27
  * @param json the json for the new tab node e.g {type:"tab", component:"table"}
@@ -30,7 +31,9 @@ export declare class Actions {
30
31
  * @param select (optional) whether to select the new tab, overriding autoSelectTab
31
32
  * @returns {Action} the action
32
33
  */
33
- static addNode(json: any, toNodeId: string, location: DockLocation, index: number, select?: boolean): Action;
34
+ static addTab(json: IJsonTabNode, toNodeId: string, location: DockLocation, index: number, select?: boolean): Action;
35
+ /** @deprecated use 'addTab' instead */
36
+ static addNode(json: IJsonTabNode, toNodeId: string, location: DockLocation, index: number, select?: boolean): Action;
34
37
  /**
35
38
  * Moves a node (tab or tabset) from one location to another
36
39
  * @param fromNodeId the id of the node to move
@@ -55,14 +58,14 @@ export declare class Actions {
55
58
  static deleteTabset(tabsetNodeId: string): Action;
56
59
  /**
57
60
  * Change the given nodes tab text
58
- * @param tabNodeId the id of the node to rename
61
+ * @param tabNodeId the id of the tab node to rename
59
62
  * @param text the test of the tab
60
63
  * @returns {Action} the action
61
64
  */
62
65
  static renameTab(tabNodeId: string, text: string): Action;
63
66
  /**
64
67
  * Selects the given tab in its parent tabset
65
- * @param tabNodeId the id of the node to set selected
68
+ * @param tabNodeId the id of the tab node to set selected
66
69
  * @returns {Action} the action
67
70
  */
68
71
  static selectTab(tabNodeId: string): Action;
@@ -71,57 +74,85 @@ export declare class Actions {
71
74
  * @param tabsetNodeId the id of the tabset node to set as active
72
75
  * @returns {Action} the action
73
76
  */
74
- static setActiveTabset(tabsetNodeId: string | undefined, windowId?: string | undefined): Action;
77
+ static setActiveTabset(tabsetNodeId: string | undefined, layoutId?: string | undefined): Action;
75
78
  /**
76
79
  * Adjust the weights of a row, used when the splitter is moved
77
- * @param nodeId the row node whose childrens weights are being adjusted
80
+ * @param nodeId the id of the row node whose childrens weights are being adjusted
78
81
  * @param weights an array of weights to be applied to the children
79
82
  * @returns {Action} the action
80
83
  */
81
84
  static adjustWeights(nodeId: string, weights: number[]): Action;
82
- static adjustBorderSplit(nodeId: string, pos: number): Action;
85
+ /**
86
+ * Adjust the size of the border
87
+ * @param nodeId the id of the border node to adjust
88
+ * @param size the new border size
89
+ * @returns {Action} the action
90
+ */
91
+ static adjustBorderSplit(nodeId: string, size: number): Action;
83
92
  /**
84
93
  * Maximizes the given tabset
85
94
  * @param tabsetNodeId the id of the tabset to maximize
86
95
  * @returns {Action} the action
87
96
  */
88
- static maximizeToggle(tabsetNodeId: string, windowId?: string | undefined): Action;
97
+ static maximizeToggle(tabsetNodeId: string, layoutId?: string | undefined): Action;
89
98
  /**
90
99
  * Updates the global model jsone attributes
91
100
  * @param attributes the json for the model attributes to update (merge into the existing attributes)
92
101
  * @returns {Action} the action
93
102
  */
94
- static updateModelAttributes(attributes: any): Action;
103
+ static updateModelAttributes(attributes: IGlobalAttributes): Action;
95
104
  /**
96
105
  * Updates the given nodes json attributes
97
106
  * @param nodeId the id of the node to update
98
107
  * @param attributes the json attributes to update (merge with the existing attributes)
99
108
  * @returns {Action} the action
100
109
  */
101
- static updateNodeAttributes(nodeId: string, attributes: any): Action;
110
+ static updateNodeAttributes(nodeId: string, attributes: IRowAttributes | ITabSetAttributes | ITabAttributes): Action;
102
111
  /**
103
- * Pops out the given tab node into a new browser window
112
+ * Pops out the given tab node into a new browser window or floating panel
104
113
  * @param nodeId the tab node to popout
105
- * @returns
114
+ * @param type the type of window to create, either "window" (native browser window) or "float" (simulated div based window)
115
+ * @returns {Action} the action
116
+ */
117
+ static popoutTab(nodeId: string, type?: ILayoutType): Action;
118
+ /**
119
+ * Pops out the given tabset node into a new browser window or floating panel
120
+ * @param nodeId the tabset node to popout
121
+ * @param type the type of window to create, either "window" (native browser window) or "float" (simulated div based window)
122
+ * @returns {Action} the action
106
123
  */
107
- static popoutTab(nodeId: string): Action;
124
+ static popoutTabset(nodeId: string, type?: ILayoutType): Action;
108
125
  /**
109
- * Pops out the given tab set node into a new browser window
110
- * @param nodeId the tab set node to popout
111
- * @returns
126
+ * Closes the popout
127
+ * @param layoutId the id of the popout to close
128
+ * @returns {Action} the action
129
+ */
130
+ static closePopout(layoutId: string): Action;
131
+ /**
132
+ * Moves a floating panel popout to the front of the display
133
+ * @param layoutId the id of the floating panel popout to move
134
+ * @returns {Action} the action
112
135
  */
113
- static popoutTabset(nodeId: string): Action;
136
+ static movePopoutToFront(layoutId: string): Action;
114
137
  /**
115
- * Closes the popout window
116
- * @param windowId the id of the popout window to close
117
- * @returns
138
+ * Creates a new empty popout window with the given layout (alias for createSubLayout)
139
+ * @param layout the json layout for the new window
140
+ * @param rect the window rectangle in screen coordinates
141
+ * @param type the type of the popout either "window", "float"
142
+ * @returns {Action} the action
118
143
  */
119
- static closeWindow(windowId: string): Action;
144
+ static createPopout(layout: IJsonRowNode, rect: IJsonRect, type: ILayoutType): Action;
120
145
  /**
121
- * Creates a new empty popout window with the given layout
146
+ * Creates a new sublayout with the given layout
122
147
  * @param layout the json layout for the new window
123
148
  * @param rect the window rectangle in screen coordinates
124
- * @returns
149
+ * @param type the type of the sublayout either "window", "float" or "tab"
150
+ * @returns {Action} the action
125
151
  */
126
- static createWindow(layout: IJsonRowNode, rect: IJsonRect): Action;
152
+ static createSubLayout(layout: IJsonRowNode, rect: IJsonRect, type: ILayoutType): Action;
153
+ }
154
+ export declare class Action {
155
+ type: string;
156
+ data: Record<string, any>;
157
+ constructor(type: string, data: Record<string, any>);
127
158
  }
@@ -0,0 +1,42 @@
1
+ /** @internal */
2
+ export declare class Attributes {
3
+ attributes: Attribute[];
4
+ nameToAttribute: Map<string, Attribute>;
5
+ constructor();
6
+ addWithAll(name: string, modelName: string | undefined, defaultValue: any, alwaysWriteJson?: boolean): Attribute;
7
+ addInherited(name: string, modelName: string): Attribute;
8
+ add(name: string, defaultValue: any, alwaysWriteJson?: boolean): Attribute;
9
+ getAttributes(): Attribute[];
10
+ getModelName(name: string): string | undefined;
11
+ toJson(jsonObj: any, obj: any): void;
12
+ fromJson(jsonObj: any, obj: any): void;
13
+ update(jsonObj: any, obj: any): void;
14
+ setDefaults(obj: any): void;
15
+ pairAttributes(type: string, childAttributes: Attributes): void;
16
+ toTypescriptInterface(name: string, parentAttributes: Attributes | undefined): string;
17
+ }
18
+ /** @internal */
19
+ export declare class Attribute {
20
+ static NUMBER: string;
21
+ static STRING: string;
22
+ static BOOLEAN: string;
23
+ name: string;
24
+ alias: string | undefined;
25
+ modelName?: string;
26
+ pairedAttr?: Attribute;
27
+ pairedType?: string;
28
+ defaultValue: any;
29
+ alwaysWriteJson?: boolean;
30
+ type?: string;
31
+ required: boolean;
32
+ fixed: boolean;
33
+ description?: string;
34
+ constructor(name: string, modelName: string | undefined, defaultValue: any, alwaysWriteJson?: boolean);
35
+ setType(value: string): this;
36
+ setAlias(value: string): this;
37
+ setDescription(value: string): void;
38
+ setRequired(): this;
39
+ setFixed(): this;
40
+ setpairedAttr(value: Attribute): void;
41
+ setPairedType(value: string): void;
42
+ }
@@ -1,18 +1,18 @@
1
- import { AttributeDefinitions } from "../AttributeDefinitions";
2
- import { DockLocation } from "../DockLocation";
3
- import { DropInfo } from "../DropInfo";
4
- import { Orientation } from "../Orientation";
5
- import { Rect } from "../Rect";
1
+ import { Attributes } from "./Attributes";
2
+ import { DockLocation } from "./DockLocation";
3
+ import { DropInfo } from "./DropInfo";
4
+ import { Orientation } from "./Orientation";
5
+ import { Rect } from "./Rect";
6
6
  import { IDraggable } from "./IDraggable";
7
7
  import { IDropTarget } from "./IDropTarget";
8
- import { IJsonBorderNode } from "./IJsonModel";
8
+ import { IBorderAttributes, IJsonBorderNode } from "./IJsonModel";
9
9
  import { Model } from "./Model";
10
10
  import { Node } from "./Node";
11
11
  import { TabNode } from "./TabNode";
12
12
  export declare class BorderNode extends Node implements IDropTarget {
13
13
  static readonly TYPE = "border";
14
14
  /** @internal */
15
- static fromJson(json: any, model: Model): BorderNode;
15
+ static fromJson(json: IJsonBorderNode, model: Model): BorderNode;
16
16
  /** @internal */
17
17
  private static attributeDefinitions;
18
18
  /** @internal */
@@ -22,7 +22,7 @@ export declare class BorderNode extends Node implements IDropTarget {
22
22
  /** @internal */
23
23
  private location;
24
24
  /** @internal */
25
- constructor(location: DockLocation, json: any, model: Model);
25
+ constructor(location: DockLocation, json: IJsonBorderNode, model: Model);
26
26
  getLocation(): DockLocation;
27
27
  getClassName(): string | undefined;
28
28
  isHorizontal(): boolean;
@@ -64,7 +64,7 @@ export declare class BorderNode extends Node implements IDropTarget {
64
64
  /** @internal */
65
65
  setSize(pos: number): void;
66
66
  /** @internal */
67
- updateAttrs(json: any): void;
67
+ updateAttrs(json: IBorderAttributes): void;
68
68
  /** @internal */
69
69
  remove(node: TabNode): void;
70
70
  /** @internal */
@@ -76,9 +76,9 @@ export declare class BorderNode extends Node implements IDropTarget {
76
76
  /** @internal */
77
77
  calculateSplit(splitter: BorderNode, splitterPos: number): number;
78
78
  /** @internal */
79
- getAttributeDefinitions(): AttributeDefinitions;
79
+ getAttributeDefinitions(): Attributes;
80
80
  /** @internal */
81
- static getAttributeDefinitions(): AttributeDefinitions;
81
+ static getAttributeDefinitions(): Attributes;
82
82
  /** @internal */
83
83
  private static createAttributeDefinitions;
84
84
  }
@@ -1,5 +1,5 @@
1
- import { DockLocation } from "../DockLocation";
2
- import { DropInfo } from "../DropInfo";
1
+ import { DockLocation } from "./DockLocation";
2
+ import { DropInfo } from "./DropInfo";
3
3
  import { BorderNode } from "./BorderNode";
4
4
  import { IDraggable } from "./IDraggable";
5
5
  import { Model } from "./Model";
@@ -1,6 +1,6 @@
1
1
  import { DockLocation } from "./DockLocation";
2
- import { IDropTarget } from "./model/IDropTarget";
3
- import { Node } from "./model/Node";
2
+ import { IDropTarget } from "./IDropTarget";
3
+ import { Node } from "./Node";
4
4
  import { Rect } from "./Rect";
5
5
  export declare class DropInfo {
6
6
  node: Node & IDropTarget;
@@ -1,5 +1,5 @@
1
- import { DockLocation } from "../DockLocation";
2
- import { DropInfo } from "../DropInfo";
1
+ import { DockLocation } from "./DockLocation";
2
+ import { DropInfo } from "./DropInfo";
3
3
  import { IDraggable } from "./IDraggable";
4
4
  import { Node } from "./Node";
5
5
  export interface IDropTarget {