flexlayout-react 0.8.19 → 0.9.1

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 (78) hide show
  1. package/README.md +146 -208
  2. package/dist/index.js +6523 -6395
  3. package/package.json +25 -27
  4. package/style/_base.scss +115 -35
  5. package/style/_themes.scss +719 -49
  6. package/style/alpha_dark.css +865 -0
  7. package/style/alpha_dark.css.map +1 -0
  8. package/style/alpha_dark.scss +6 -0
  9. package/style/alpha_light.css +859 -0
  10. package/style/alpha_light.css.map +1 -0
  11. package/style/alpha_light.scss +6 -0
  12. package/style/alpha_rounded.css +813 -0
  13. package/style/alpha_rounded.css.map +1 -0
  14. package/style/alpha_rounded.scss +6 -0
  15. package/style/combined.css +573 -47
  16. package/style/combined.css.map +1 -1
  17. package/style/combined.scss +25 -1
  18. package/style/dark.css +100 -25
  19. package/style/dark.css.map +1 -1
  20. package/style/gray.css +101 -26
  21. package/style/gray.css.map +1 -1
  22. package/style/light.css +101 -23
  23. package/style/light.css.map +1 -1
  24. package/style/rounded.css +112 -28
  25. package/style/rounded.css.map +1 -1
  26. package/style/underline.css +104 -25
  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 +72 -50
  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 +17 -25
  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} +11 -3
  47. package/types/view/DragTabButton.d.ts +11 -0
  48. package/types/view/FloatWindow.d.ts +12 -0
  49. package/types/{I18nLabel.d.ts → view/I18nLabel.d.ts} +2 -1
  50. package/types/view/Icons.d.ts +1 -0
  51. package/types/view/Layout.d.ts +21 -197
  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 +15 -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 +147 -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/DragContainer.d.ts +0 -9
  76. package/types/view/SizeTracker.d.ts +0 -13
  77. /package/types/{DockLocation.d.ts → model/DockLocation.d.ts} +0 -0
  78. /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
  /*
@@ -68,9 +72,12 @@
68
72
  bottom: 0;
69
73
  position: absolute;
70
74
  display: flex;
71
- overflow: hidden;
72
75
  background-color: var(--color-background);
73
76
  }
77
+ .flexlayout__layout_metrics {
78
+ position: absolute;
79
+ top: -30000px;
80
+ }
74
81
  .flexlayout__layout_overlay {
75
82
  left: 0;
76
83
  top: 0;
@@ -85,9 +92,9 @@
85
92
  z-index: 100;
86
93
  display: flex;
87
94
  flex-direction: column;
88
- align-items: start;
95
+ align-items: flex-start;
89
96
  }
90
- .flexlayout__layout_moveables {
97
+ .flexlayout__layout_moveables_home {
91
98
  visibility: hidden;
92
99
  position: absolute;
93
100
  width: 100px;
@@ -123,6 +130,37 @@
123
130
  background-color: var(--color-splitter);
124
131
  touch-action: none;
125
132
  z-index: 10;
133
+ position: relative;
134
+ }
135
+ .flexlayout__splitter_horz {
136
+ width: var(--splitter-size);
137
+ min-width: var(--splitter-size);
138
+ }
139
+ .flexlayout__splitter_horz::before {
140
+ content: "";
141
+ position: absolute;
142
+ top: 0;
143
+ bottom: 0;
144
+ /* Center the hit area over the thin line */
145
+ left: 50%;
146
+ width: var(--splitter-active-size);
147
+ transform: translateX(-50%);
148
+ z-index: 1;
149
+ }
150
+ .flexlayout__splitter_vert {
151
+ height: var(--splitter-size);
152
+ min-height: var(--splitter-size);
153
+ }
154
+ .flexlayout__splitter_vert::before {
155
+ content: "";
156
+ position: absolute;
157
+ left: 0;
158
+ right: 0;
159
+ /* Center the hit area over the thin line */
160
+ top: 50%;
161
+ height: var(--splitter-active-size);
162
+ transform: translateY(-50%);
163
+ z-index: 1;
126
164
  }
127
165
  @media (hover: hover) {
128
166
  .flexlayout__splitter:hover {
@@ -142,8 +180,9 @@
142
180
  background-color: var(--color-splitter-drag);
143
181
  }
144
182
  .flexlayout__splitter_handle {
145
- background-color: #ccc;
183
+ background-color: var(--color-splitter-handle);
146
184
  border-radius: 3px;
185
+ visibility: var(--splitter-handle-visibility);
147
186
  }
148
187
  .flexlayout__splitter_handle_horz {
149
188
  width: 3px;
@@ -241,25 +280,15 @@
241
280
  .flexlayout__tabset_leading {
242
281
  display: flex;
243
282
  }
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
283
  .flexlayout__tabset_tabbar_outer {
258
284
  box-sizing: border-box;
259
285
  background-color: var(--color-tabset-background);
260
286
  overflow: hidden;
261
287
  display: flex;
288
+ align-items: center;
289
+ min-height: 1.5em;
262
290
  font-size: var(--font-size);
291
+ font-weight: var(--font-weight);
263
292
  }
264
293
  .flexlayout__tabset_tabbar_outer_top {
265
294
  padding: 0px 2px 0px 2px;
@@ -286,6 +315,7 @@
286
315
  padding-right: 4px;
287
316
  box-sizing: border-box;
288
317
  white-space: nowrap;
318
+ align-items: center;
289
319
  }
290
320
  .flexlayout__tabset_tabbar_inner_tab_container_top {
291
321
  border-top: 2px solid transparent;
@@ -330,12 +360,23 @@
330
360
  bottom: 0;
331
361
  background-color: rgba(0, 0, 0, 0.2392156863);
332
362
  }
363
+ .flexlayout__tab_layout_container {
364
+ position: relative;
365
+ height: 100%;
366
+ box-sizing: border-box;
367
+ }
368
+ .flexlayout__tab_layout_container_user {
369
+ position: relative;
370
+ flex-grow: 1;
371
+ box-sizing: border-box;
372
+ }
333
373
  .flexlayout__tab_button {
334
374
  display: flex;
335
375
  gap: 0.3em;
336
376
  align-items: center;
337
377
  box-sizing: border-box;
338
378
  padding: 3px 0.5em;
379
+ font-weight: var(--font-weight);
339
380
  cursor: pointer;
340
381
  }
341
382
  .flexlayout__tab_button_stretch {
@@ -379,6 +420,7 @@
379
420
  border: none;
380
421
  font-family: var(--font-family);
381
422
  font-size: var(--font-size);
423
+ font-weight: var(--font-weight);
382
424
  color: var(--color-tab-textbox);
383
425
  background-color: var(--color-tab-textbox-background);
384
426
  border: 1px inset var(--color-1);
@@ -453,8 +495,9 @@
453
495
  box-sizing: border-box;
454
496
  overflow: hidden;
455
497
  display: flex;
456
- font-size: var(--font-size);
457
498
  font-family: var(--font-family);
499
+ font-size: var(--font-size);
500
+ font-weight: var(--font-weight);
458
501
  color: var(--color-border);
459
502
  background-color: var(--color-border-background);
460
503
  }
@@ -498,6 +541,7 @@
498
541
  .flexlayout__border_inner_tab_container {
499
542
  white-space: nowrap;
500
543
  display: flex;
544
+ align-items: center;
501
545
  padding-left: 2px;
502
546
  padding-right: 2px;
503
547
  box-sizing: border-box;
@@ -524,6 +568,7 @@
524
568
  margin: 2px 0px;
525
569
  box-sizing: border-box;
526
570
  white-space: nowrap;
571
+ font-weight: var(--font-weight);
527
572
  }
528
573
  .flexlayout__border_button--selected {
529
574
  background-color: var(--color-border-tab-selected-background);
@@ -596,6 +641,7 @@
596
641
  .flexlayout__popup_menu {
597
642
  font-size: var(--font-size);
598
643
  font-family: var(--font-family);
644
+ font-weight: var(--font-weight);
599
645
  }
600
646
  .flexlayout__popup_menu_item {
601
647
  padding: 2px 0.5em;
@@ -620,12 +666,44 @@
620
666
  background: var(--color-popup-unselected-background);
621
667
  border-radius: 3px;
622
668
  position: absolute;
623
- z-index: 1000;
669
+ z-index: 3000;
624
670
  max-height: 50%;
625
671
  min-width: 100px;
626
672
  overflow: auto;
627
673
  padding: 2px;
628
674
  }
675
+ .flexlayout__float_window {
676
+ box-sizing: border-box;
677
+ background-color: var(--color-tabset-background);
678
+ border-radius: 5px;
679
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
680
+ display: flex;
681
+ flex-direction: column;
682
+ overflow: hidden;
683
+ z-index: 2000;
684
+ }
685
+ .flexlayout__float_window_header {
686
+ display: flex;
687
+ align-items: center;
688
+ padding: 2px 8px;
689
+ background-color: var(--color-float-window-header-background);
690
+ border-bottom: 1px solid var(--color-tabset-divider-line);
691
+ cursor: move;
692
+ user-select: none;
693
+ font-family: var(--font-family);
694
+ font-size: 0.8em;
695
+ min-height: 15px;
696
+ }
697
+ .flexlayout__float_window_content {
698
+ position: relative;
699
+ overflow: auto;
700
+ flex-grow: 1;
701
+ display: flex;
702
+ flex-direction: column;
703
+ min-height: 0;
704
+ min-width: 0;
705
+ margin: 5px;
706
+ }
629
707
  .flexlayout__floating_window _body {
630
708
  height: 100%;
631
709
  }
@@ -651,11 +729,11 @@
651
729
  }
652
730
  .flexlayout__border_sizer {
653
731
  position: absolute;
654
- top: -30000px;
655
732
  padding-top: 6px;
656
733
  padding-bottom: 5px;
657
734
  font-size: var(--font-size);
658
735
  font-family: var(--font-family);
736
+ font-weight: var(--font-weight);
659
737
  }
660
738
  .flexlayout__mini_scrollbar {
661
739
  position: absolute;
@@ -708,8 +786,9 @@
708
786
  }
709
787
  .flexlayout__tabset_tab_divider, .flexlayout__border_tab_divider {
710
788
  width: 1px;
711
- margin: 4px 6px 4px 6px;
712
- border-left: 1px solid #ddd;
789
+ height: 0.8em;
790
+ margin: 0px 6px 0px 6px;
791
+ background-color: #ddd;
713
792
  }
714
793
  .flexlayout__tab_button_textbox {
715
794
  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;EAEA;;AAEA;EACI;EACA;;AAGJ;EA/BR;EACA;EACA;EACA;EACA;EA6BY;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EA7CR;EACA;EACA;EACA;EA4CY;EACA;;AAIR;EApDJ;EACA;EACA;EACA;EAmDQ;;AAGJ;EAzDJ;EACA;EACA;EACA;EAwDQ;;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;EAnMJ;EACA;EACA;EACA;EAkMQ;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EApNR;EACA;EACA;EACA;EAmNY;EACA;EACA;;AAGJ;EACI;;AAGJ;EA/NR;EACA;EACA;EACA;EA8NY;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;EACA;;AAKJ;EACI;;AAGJ;EA/wBR;EACA;EACA;EACA;EACA;;AAgxBI;EApxBJ;EACA;EACA;EACA;EACA;EAkxBQ;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;;;;AAMhB;ADxXA;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 {