dock-spawn-ts 2.513.0 → 2.514.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 (104) hide show
  1. package/lib/css/dock-manager.css +9 -1
  2. package/lib/es5/dock-spawn-ts.js +1 -1
  3. package/lib/js/ContainerType.d.ts +6 -6
  4. package/lib/js/ContainerType.js +7 -7
  5. package/lib/js/Dialog.d.ts +43 -43
  6. package/lib/js/Dialog.js +136 -136
  7. package/lib/js/DockConfig.d.ts +7 -7
  8. package/lib/js/DockConfig.js +8 -8
  9. package/lib/js/DockGraphDeserializer.d.ts +18 -18
  10. package/lib/js/DockGraphDeserializer.js +116 -116
  11. package/lib/js/DockGraphSerializer.d.ts +13 -13
  12. package/lib/js/DockGraphSerializer.js +40 -40
  13. package/lib/js/DockLayoutEngine.d.ts +35 -35
  14. package/lib/js/DockLayoutEngine.js +319 -319
  15. package/lib/js/DockManager.d.ts +153 -153
  16. package/lib/js/DockManager.js +728 -728
  17. package/lib/js/DockManagerContext.d.ts +9 -9
  18. package/lib/js/DockManagerContext.js +9 -9
  19. package/lib/js/DockModel.d.ts +8 -8
  20. package/lib/js/DockModel.js +5 -5
  21. package/lib/js/DockNode.d.ts +15 -15
  22. package/lib/js/DockNode.js +61 -61
  23. package/lib/js/DockWheel.d.ts +40 -40
  24. package/lib/js/DockWheel.js +200 -200
  25. package/lib/js/DockWheelItem.d.ts +15 -15
  26. package/lib/js/DockWheelItem.js +27 -27
  27. package/lib/js/DocumentManagerContainer.d.ts +16 -16
  28. package/lib/js/DocumentManagerContainer.js +28 -28
  29. package/lib/js/DocumentTabPage.d.ts +14 -14
  30. package/lib/js/DocumentTabPage.js +26 -26
  31. package/lib/js/DraggableContainer.d.ts +52 -52
  32. package/lib/js/DraggableContainer.js +183 -183
  33. package/lib/js/EventHandler.d.ts +7 -7
  34. package/lib/js/EventHandler.js +11 -11
  35. package/lib/js/Exports.d.ts +30 -30
  36. package/lib/js/Exports.js +30 -30
  37. package/lib/js/FillDockContainer.d.ts +33 -33
  38. package/lib/js/FillDockContainer.js +69 -69
  39. package/lib/js/HorizontalDockContainer.d.ts +6 -6
  40. package/lib/js/HorizontalDockContainer.js +9 -9
  41. package/lib/js/PanelContainer.d.ts +101 -101
  42. package/lib/js/PanelContainer.js +384 -384
  43. package/lib/js/PanelContainer.js.map +1 -1
  44. package/lib/js/Point.d.ts +5 -5
  45. package/lib/js/Point.js +6 -6
  46. package/lib/js/ResizableContainer.d.ts +55 -55
  47. package/lib/js/ResizableContainer.js +241 -241
  48. package/lib/js/ResizeHandle.d.ts +15 -15
  49. package/lib/js/ResizeHandle.js +48 -48
  50. package/lib/js/SplitterBar.d.ts +35 -35
  51. package/lib/js/SplitterBar.js +149 -149
  52. package/lib/js/SplitterDockContainer.d.ts +35 -35
  53. package/lib/js/SplitterDockContainer.js +65 -65
  54. package/lib/js/SplitterPanel.d.ts +26 -26
  55. package/lib/js/SplitterPanel.js +191 -191
  56. package/lib/js/TabHandle.d.ts +55 -55
  57. package/lib/js/TabHandle.js +261 -260
  58. package/lib/js/TabHandle.js.map +1 -1
  59. package/lib/js/TabHost.d.ts +46 -46
  60. package/lib/js/TabHost.js +223 -223
  61. package/lib/js/TabHost.js.map +1 -1
  62. package/lib/js/TabPage.d.ts +19 -19
  63. package/lib/js/TabPage.js +74 -73
  64. package/lib/js/TabPage.js.map +1 -1
  65. package/lib/js/UndockInitiator.d.ts +31 -31
  66. package/lib/js/UndockInitiator.js +140 -140
  67. package/lib/js/Utils.d.ts +14 -14
  68. package/lib/js/Utils.js +70 -69
  69. package/lib/js/Utils.js.map +1 -1
  70. package/lib/js/VerticalDockContainer.d.ts +6 -6
  71. package/lib/js/VerticalDockContainer.js +9 -9
  72. package/lib/js/enums/PanelType.d.ts +4 -4
  73. package/lib/js/enums/PanelType.js +5 -5
  74. package/lib/js/enums/TabHostDirection.d.ts +6 -6
  75. package/lib/js/enums/TabHostDirection.js +7 -7
  76. package/lib/js/enums/WheelTypes.d.ts +11 -11
  77. package/lib/js/enums/WheelTypes.js +14 -14
  78. package/lib/js/interfaces/IDockContainer.d.ts +25 -25
  79. package/lib/js/interfaces/IDockContainer.js +1 -1
  80. package/lib/js/interfaces/IDockContainerWithSize.d.ts +5 -5
  81. package/lib/js/interfaces/IDockContainerWithSize.js +1 -1
  82. package/lib/js/interfaces/ILayoutEventListener.d.ts +26 -26
  83. package/lib/js/interfaces/ILayoutEventListener.js +1 -1
  84. package/lib/js/interfaces/IMouseOrTouchEvent.d.ts +6 -6
  85. package/lib/js/interfaces/IMouseOrTouchEvent.js +1 -1
  86. package/lib/js/interfaces/INodeInfo.d.ts +7 -7
  87. package/lib/js/interfaces/INodeInfo.js +1 -1
  88. package/lib/js/interfaces/IPanelInfo.d.ts +9 -9
  89. package/lib/js/interfaces/IPanelInfo.js +1 -1
  90. package/lib/js/interfaces/IRectangle.d.ts +6 -6
  91. package/lib/js/interfaces/IRectangle.js +1 -1
  92. package/lib/js/interfaces/ISize.d.ts +4 -4
  93. package/lib/js/interfaces/ISize.js +1 -1
  94. package/lib/js/interfaces/IState.d.ts +10 -10
  95. package/lib/js/interfaces/IState.js +1 -1
  96. package/lib/js/interfaces/IThickness.d.ts +6 -6
  97. package/lib/js/interfaces/IThickness.js +1 -1
  98. package/lib/js/webcomponent/DockSpawnTsWebcomponent.d.ts +30 -30
  99. package/lib/js/webcomponent/DockSpawnTsWebcomponent.js +153 -152
  100. package/lib/js/webcomponent/DockSpawnTsWebcomponent.js.map +1 -1
  101. package/package.json +6 -6
  102. package/src/PanelContainer.ts +1 -1
  103. package/src/TabHost.ts +5 -5
  104. package/src/TabPage.ts +4 -3
@@ -1,46 +1,46 @@
1
- import { TabPage } from "./TabPage.js";
2
- import { TabHostDirection } from "./enums/TabHostDirection.js";
3
- import { TabHandle } from "./TabHandle.js";
4
- import { IDockContainer } from "./interfaces/IDockContainer.js";
5
- import { DockManager } from "./DockManager.js";
6
- import { EventHandler } from './EventHandler.js';
7
- /**
8
- * Tab Host control contains tabs known as TabPages.
9
- * The tab strip can be aligned in different orientations
10
- */
11
- export declare class TabHost {
12
- displayCloseButton: boolean;
13
- dockManager: DockManager;
14
- tabStripDirection: TabHostDirection;
15
- hostElement: HTMLDivElement;
16
- tabListElement: HTMLDivElement;
17
- separatorElement: HTMLDivElement;
18
- contentElement: HTMLDivElement;
19
- createTabPage: (tabHost: TabHost, container: IDockContainer) => any;
20
- tabHandleListener: {
21
- onMoveTab: (e: any) => void;
22
- };
23
- eventListeners: any[];
24
- pages: TabPage[];
25
- activeTab: TabPage;
26
- _resizeRequested: boolean;
27
- mouseDownHandler: EventHandler;
28
- focusHandler: EventHandler;
29
- constructor(dockManager: DockManager, tabStripDirection: TabHostDirection, displayCloseButton?: boolean);
30
- onFocus(): void;
31
- setActive(isActive: boolean): void;
32
- onMousedown(): void;
33
- onMoveTab(e: any): void;
34
- performTabsLayout(indexes: number[]): void;
35
- getActiveTab(): TabPage;
36
- addListener(listener: any): void;
37
- removeListener(listener: any): void;
38
- change(host: TabHost, handle: TabHandle, state: any, index: any): void;
39
- _createDefaultTabPage(tabHost: TabHost, container: IDockContainer): TabPage;
40
- setActiveTab(container: IDockContainer): void;
41
- resize(width: number, height: number): void;
42
- resizeTabListElement(width: number, height?: number): void;
43
- performLayout(children: IDockContainer[]): void;
44
- _setTabHandlesVisible(visible: boolean): void;
45
- onTabPageSelected(page: TabPage): void;
46
- }
1
+ import { TabPage } from "./TabPage.js";
2
+ import { TabHostDirection } from "./enums/TabHostDirection.js";
3
+ import { TabHandle } from "./TabHandle.js";
4
+ import { IDockContainer } from "./interfaces/IDockContainer.js";
5
+ import { DockManager } from "./DockManager.js";
6
+ import { EventHandler } from './EventHandler.js';
7
+ /**
8
+ * Tab Host control contains tabs known as TabPages.
9
+ * The tab strip can be aligned in different orientations
10
+ */
11
+ export declare class TabHost {
12
+ displayCloseButton: boolean;
13
+ dockManager: DockManager;
14
+ tabStripDirection: TabHostDirection;
15
+ hostElement: HTMLDivElement;
16
+ tabListElement: HTMLDivElement;
17
+ separatorElement: HTMLDivElement;
18
+ contentElement: HTMLDivElement;
19
+ createTabPage: (tabHost: TabHost, container: IDockContainer) => any;
20
+ tabHandleListener: {
21
+ onMoveTab: (e: any) => void;
22
+ };
23
+ eventListeners: any[];
24
+ pages: TabPage[];
25
+ activeTab: TabPage;
26
+ _resizeRequested: boolean;
27
+ mouseDownHandler: EventHandler;
28
+ focusHandler: EventHandler;
29
+ constructor(dockManager: DockManager, tabStripDirection: TabHostDirection, displayCloseButton?: boolean);
30
+ onFocus(): void;
31
+ setActive(isActive: boolean): void;
32
+ onMousedown(): void;
33
+ onMoveTab(e: any): void;
34
+ performTabsLayout(indexes: number[]): void;
35
+ getActiveTab(): TabPage;
36
+ addListener(listener: any): void;
37
+ removeListener(listener: any): void;
38
+ change(host: TabHost, handle: TabHandle, state: any, index: any): void;
39
+ _createDefaultTabPage(tabHost: TabHost, container: IDockContainer): TabPage;
40
+ setActiveTab(container: IDockContainer): void;
41
+ resize(width: number, height: number): void;
42
+ resizeTabListElement(width: number, height?: number): void;
43
+ performLayout(children: IDockContainer[]): void;
44
+ _setTabHandlesVisible(visible: boolean): void;
45
+ onTabPageSelected(page: TabPage, active: boolean): void;
46
+ }
package/lib/js/TabHost.js CHANGED
@@ -1,224 +1,224 @@
1
- import { TabPage } from "./TabPage.js";
2
- import { Utils } from "./Utils.js";
3
- import { TabHostDirection } from "./enums/TabHostDirection.js";
4
- import { EventHandler } from './EventHandler.js';
5
- /**
6
- * Tab Host control contains tabs known as TabPages.
7
- * The tab strip can be aligned in different orientations
8
- */
9
- export class TabHost {
10
- constructor(dockManager, tabStripDirection, displayCloseButton) {
11
- /**
12
- * Create a tab host with the tab strip aligned in the [tabStripDirection] direciton
13
- * Only TabHost.DIRECTION_BOTTOM and TabHost.DIRECTION_TOP are supported
14
- */
15
- if (tabStripDirection === undefined) {
16
- tabStripDirection = TabHostDirection.BOTTOM;
17
- }
18
- if (displayCloseButton === undefined) {
19
- displayCloseButton = false;
20
- }
21
- this.dockManager = dockManager;
22
- this.tabStripDirection = tabStripDirection;
23
- this.displayCloseButton = displayCloseButton; // Indicates if the close button next to the tab handle should be displayed
24
- this.pages = [];
25
- this.eventListeners = [];
26
- this.tabHandleListener = {
27
- onMoveTab: (e) => { this.onMoveTab(e); }
28
- };
29
- this.hostElement = document.createElement('div'); // The main tab host DOM element
30
- this.tabListElement = document.createElement('div'); // Hosts the tab handles
31
- this.separatorElement = document.createElement('div'); // A seperator line between the tabs and content
32
- this.contentElement = document.createElement('div'); // Hosts the active tab content
33
- this.contentElement.tabIndex = 0;
34
- this.createTabPage = this._createDefaultTabPage; // Factory for creating tab pages
35
- if (this.tabStripDirection === TabHostDirection.BOTTOM) {
36
- this.hostElement.appendChild(this.contentElement);
37
- this.hostElement.appendChild(this.separatorElement);
38
- this.hostElement.appendChild(this.tabListElement);
39
- }
40
- else if (this.tabStripDirection === TabHostDirection.TOP) {
41
- this.hostElement.appendChild(this.tabListElement);
42
- this.hostElement.appendChild(this.separatorElement);
43
- this.hostElement.appendChild(this.contentElement);
44
- }
45
- else {
46
- throw new Error('Only top and bottom tab strip orientations are supported');
47
- }
48
- this.hostElement.classList.add('dockspan-tab-host');
49
- this.tabListElement.classList.add('dockspan-tab-handle-list-container');
50
- this.separatorElement.classList.add('dockspan-tab-handle-content-seperator');
51
- this.contentElement.classList.add('dockspan-tab-content');
52
- this.contentElement.tabIndex = 0;
53
- this.focusHandler = new EventHandler(this.contentElement, 'focus', this.onFocus.bind(this), true);
54
- this.mouseDownHandler = new EventHandler(this.contentElement, 'mousedown', this.onMousedown.bind(this), true);
55
- }
56
- onFocus() {
57
- if (this.activeTab && this.dockManager.activePanel != this.activeTab.panel)
58
- this.dockManager.activePanel = this.activeTab.panel;
59
- }
60
- setActive(isActive) {
61
- if (isActive) {
62
- this.separatorElement.classList.add('dockspan-tab-handle-content-seperator-active');
63
- }
64
- else {
65
- this.separatorElement.classList.remove('dockspan-tab-handle-content-seperator-active');
66
- }
67
- if (this.activeTab) {
68
- this.activeTab.handle.setActive(isActive);
69
- }
70
- }
71
- onMousedown() {
72
- if (this.activeTab && this.dockManager.activePanel != this.activeTab.panel)
73
- this.dockManager.activePanel = this.activeTab.panel;
74
- }
75
- onMoveTab(e) {
76
- let index = Array.prototype.slice.call(this.tabListElement.childNodes).indexOf(e.self.elementBase);
77
- this.change(this, /*handle*/ e.self, e.state, index);
78
- }
79
- performTabsLayout(indexes) {
80
- this.pages = Utils.orderByIndexes(this.pages, indexes);
81
- let items = this.tabListElement.childNodes;
82
- let itemsArr = [];
83
- for (let i in items) {
84
- if (items[i].nodeType === 1) { // get rid of the whitespace text nodes
85
- itemsArr.push(items[i]);
86
- }
87
- }
88
- itemsArr = Utils.orderByIndexes(itemsArr, indexes);
89
- for (let i = 0; i < itemsArr.length; ++i) {
90
- this.tabListElement.appendChild(itemsArr[i]);
91
- }
92
- if (this.activeTab)
93
- this.onTabPageSelected(this.activeTab);
94
- }
95
- getActiveTab() {
96
- return this.activeTab;
97
- }
98
- addListener(listener) {
99
- this.eventListeners.push(listener);
100
- }
101
- removeListener(listener) {
102
- this.eventListeners.splice(this.eventListeners.indexOf(listener), 1);
103
- }
104
- change(host, handle, state, index) {
105
- this.eventListeners.forEach((listener) => {
106
- if (listener.onChange) {
107
- listener.onChange({ host: host, handle: handle, state: state, index: index });
108
- }
109
- });
110
- }
111
- _createDefaultTabPage(tabHost, container) {
112
- return new TabPage(tabHost, container);
113
- }
114
- setActiveTab(container) {
115
- let currentPage;
116
- this.pages.forEach((itm) => {
117
- if (itm.container === container) {
118
- currentPage = itm;
119
- }
120
- });
121
- if (this.pages.length > 0 && currentPage) {
122
- this.onTabPageSelected(currentPage);
123
- this.dockManager.activePanel = container;
124
- }
125
- }
126
- resize(width, height) {
127
- this.hostElement.style.width = width + 'px';
128
- this.hostElement.style.height = height + 'px';
129
- let tabHeight = this.tabListElement.clientHeight;
130
- if (!this._resizeRequested)
131
- requestAnimationFrame(() => this.resizeTabListElement(width, height));
132
- this._resizeRequested = true;
133
- let separatorHeight = this.separatorElement.clientHeight;
134
- let contentHeight = height - tabHeight - separatorHeight;
135
- this.contentElement.style.height = contentHeight + 'px';
136
- if (this.activeTab)
137
- this.activeTab.resize(width, contentHeight);
138
- }
139
- resizeTabListElement(width, height) {
140
- this._resizeRequested = false;
141
- if (this.pages.length === 0)
142
- return;
143
- let tabListWidth = 0;
144
- this.pages.forEach((page) => {
145
- let handle = page.handle;
146
- if (handle.elementBase != null) {
147
- handle.elementBase.style.width = ''; //clear
148
- tabListWidth += handle.elementBase.clientWidth;
149
- }
150
- });
151
- let scaleMultiplier = width / tabListWidth;
152
- if (scaleMultiplier > 1.2)
153
- return; //with a reserve
154
- this.pages.forEach((page, index) => {
155
- let handle = page.handle;
156
- let newSize = scaleMultiplier * handle.elementBase.clientWidth;
157
- if (index === this.pages.length - 1)
158
- newSize = newSize - 5;
159
- handle.elementBase.style.width = newSize + 'px';
160
- });
161
- }
162
- performLayout(children) {
163
- // Destroy all existing tab pages not in children
164
- this.pages.forEach((tab) => {
165
- if (!children.some((x) => x == tab.container)) {
166
- tab.handle.removeListener(this.tabHandleListener);
167
- tab.destroy();
168
- let index = this.pages.indexOf(tab);
169
- if (index > -1) {
170
- this.pages.splice(index, 1);
171
- }
172
- }
173
- });
174
- let oldActiveTab = this.activeTab;
175
- delete this.activeTab;
176
- let childPanels = children.filter((child) => {
177
- return child.containerType === 'panel';
178
- });
179
- if (childPanels.length > 0) {
180
- // Rebuild new tab pages
181
- childPanels.forEach((child) => {
182
- let page = null;
183
- if (!this.pages.some((x) => {
184
- if (x.container == child) {
185
- page = x;
186
- return true;
187
- }
188
- return false;
189
- })) {
190
- page = this.createTabPage(this, child);
191
- page.handle.addListener(this.tabHandleListener);
192
- this.pages.push(page);
193
- }
194
- // Restore the active selected tab
195
- if (oldActiveTab && page.container === oldActiveTab.container)
196
- this.activeTab = page;
197
- });
198
- this._setTabHandlesVisible(true);
199
- }
200
- else
201
- // Do not show an empty tab handle host with zero tabs
202
- this._setTabHandlesVisible(false);
203
- if (this.activeTab)
204
- this.onTabPageSelected(this.activeTab);
205
- }
206
- _setTabHandlesVisible(visible) {
207
- if (visible) {
208
- this.tabListElement.classList.add('dockspan-tab-handle-list-container-visible');
209
- this.separatorElement.classList.add('dockspan-tab-handle-content-seperator-visible');
210
- }
211
- else {
212
- this.tabListElement.classList.remove('dockspan-tab-handle-list-container-visible');
213
- this.separatorElement.classList.remove('dockspan-tab-handle-content-seperator-visible');
214
- }
215
- }
216
- onTabPageSelected(page) {
217
- this.activeTab = page;
218
- this.pages.forEach((tabPage) => {
219
- let selected = (tabPage === page);
220
- tabPage.setSelected(selected);
221
- });
222
- }
223
- }
1
+ import { TabPage } from "./TabPage.js";
2
+ import { Utils } from "./Utils.js";
3
+ import { TabHostDirection } from "./enums/TabHostDirection.js";
4
+ import { EventHandler } from './EventHandler.js';
5
+ /**
6
+ * Tab Host control contains tabs known as TabPages.
7
+ * The tab strip can be aligned in different orientations
8
+ */
9
+ export class TabHost {
10
+ constructor(dockManager, tabStripDirection, displayCloseButton) {
11
+ /**
12
+ * Create a tab host with the tab strip aligned in the [tabStripDirection] direciton
13
+ * Only TabHost.DIRECTION_BOTTOM and TabHost.DIRECTION_TOP are supported
14
+ */
15
+ if (tabStripDirection === undefined) {
16
+ tabStripDirection = TabHostDirection.BOTTOM;
17
+ }
18
+ if (displayCloseButton === undefined) {
19
+ displayCloseButton = false;
20
+ }
21
+ this.dockManager = dockManager;
22
+ this.tabStripDirection = tabStripDirection;
23
+ this.displayCloseButton = displayCloseButton; // Indicates if the close button next to the tab handle should be displayed
24
+ this.pages = [];
25
+ this.eventListeners = [];
26
+ this.tabHandleListener = {
27
+ onMoveTab: (e) => { this.onMoveTab(e); }
28
+ };
29
+ this.hostElement = document.createElement('div'); // The main tab host DOM element
30
+ this.tabListElement = document.createElement('div'); // Hosts the tab handles
31
+ this.separatorElement = document.createElement('div'); // A seperator line between the tabs and content
32
+ this.contentElement = document.createElement('div'); // Hosts the active tab content
33
+ this.contentElement.tabIndex = 0;
34
+ this.createTabPage = this._createDefaultTabPage; // Factory for creating tab pages
35
+ if (this.tabStripDirection === TabHostDirection.BOTTOM) {
36
+ this.hostElement.appendChild(this.contentElement);
37
+ this.hostElement.appendChild(this.separatorElement);
38
+ this.hostElement.appendChild(this.tabListElement);
39
+ }
40
+ else if (this.tabStripDirection === TabHostDirection.TOP) {
41
+ this.hostElement.appendChild(this.tabListElement);
42
+ this.hostElement.appendChild(this.separatorElement);
43
+ this.hostElement.appendChild(this.contentElement);
44
+ }
45
+ else {
46
+ throw new Error('Only top and bottom tab strip orientations are supported');
47
+ }
48
+ this.hostElement.classList.add('dockspan-tab-host');
49
+ this.tabListElement.classList.add('dockspan-tab-handle-list-container');
50
+ this.separatorElement.classList.add('dockspan-tab-handle-content-seperator');
51
+ this.contentElement.classList.add('dockspan-tab-content');
52
+ this.contentElement.tabIndex = 0;
53
+ this.focusHandler = new EventHandler(this.contentElement, 'focus', this.onFocus.bind(this), true);
54
+ this.mouseDownHandler = new EventHandler(this.contentElement, 'mousedown', this.onMousedown.bind(this), true);
55
+ }
56
+ onFocus() {
57
+ if (this.activeTab && this.dockManager.activePanel != this.activeTab.panel)
58
+ this.dockManager.activePanel = this.activeTab.panel;
59
+ }
60
+ setActive(isActive) {
61
+ if (isActive) {
62
+ this.separatorElement.classList.add('dockspan-tab-handle-content-seperator-active');
63
+ }
64
+ else {
65
+ this.separatorElement.classList.remove('dockspan-tab-handle-content-seperator-active');
66
+ }
67
+ if (this.activeTab) {
68
+ this.activeTab.handle.setActive(isActive);
69
+ }
70
+ }
71
+ onMousedown() {
72
+ if (this.activeTab && this.dockManager.activePanel != this.activeTab.panel)
73
+ this.dockManager.activePanel = this.activeTab.panel;
74
+ }
75
+ onMoveTab(e) {
76
+ let index = Array.prototype.slice.call(this.tabListElement.childNodes).indexOf(e.self.elementBase);
77
+ this.change(this, /*handle*/ e.self, e.state, index);
78
+ }
79
+ performTabsLayout(indexes) {
80
+ this.pages = Utils.orderByIndexes(this.pages, indexes);
81
+ let items = this.tabListElement.childNodes;
82
+ let itemsArr = [];
83
+ for (let i in items) {
84
+ if (items[i].nodeType === 1) { // get rid of the whitespace text nodes
85
+ itemsArr.push(items[i]);
86
+ }
87
+ }
88
+ itemsArr = Utils.orderByIndexes(itemsArr, indexes);
89
+ for (let i = 0; i < itemsArr.length; ++i) {
90
+ this.tabListElement.appendChild(itemsArr[i]);
91
+ }
92
+ if (this.activeTab)
93
+ this.onTabPageSelected(this.activeTab, false);
94
+ }
95
+ getActiveTab() {
96
+ return this.activeTab;
97
+ }
98
+ addListener(listener) {
99
+ this.eventListeners.push(listener);
100
+ }
101
+ removeListener(listener) {
102
+ this.eventListeners.splice(this.eventListeners.indexOf(listener), 1);
103
+ }
104
+ change(host, handle, state, index) {
105
+ this.eventListeners.forEach((listener) => {
106
+ if (listener.onChange) {
107
+ listener.onChange({ host: host, handle: handle, state: state, index: index });
108
+ }
109
+ });
110
+ }
111
+ _createDefaultTabPage(tabHost, container) {
112
+ return new TabPage(tabHost, container);
113
+ }
114
+ setActiveTab(container) {
115
+ let currentPage;
116
+ this.pages.forEach((itm) => {
117
+ if (itm.container === container) {
118
+ currentPage = itm;
119
+ }
120
+ });
121
+ if (this.pages.length > 0 && currentPage) {
122
+ this.onTabPageSelected(currentPage, true);
123
+ this.dockManager.activePanel = container;
124
+ }
125
+ }
126
+ resize(width, height) {
127
+ this.hostElement.style.width = width + 'px';
128
+ this.hostElement.style.height = height + 'px';
129
+ let tabHeight = this.tabListElement.clientHeight;
130
+ if (!this._resizeRequested)
131
+ requestAnimationFrame(() => this.resizeTabListElement(width, height));
132
+ this._resizeRequested = true;
133
+ let separatorHeight = this.separatorElement.clientHeight;
134
+ let contentHeight = height - tabHeight - separatorHeight;
135
+ this.contentElement.style.height = contentHeight + 'px';
136
+ if (this.activeTab)
137
+ this.activeTab.resize(width, contentHeight);
138
+ }
139
+ resizeTabListElement(width, height) {
140
+ this._resizeRequested = false;
141
+ if (this.pages.length === 0)
142
+ return;
143
+ let tabListWidth = 0;
144
+ this.pages.forEach((page) => {
145
+ let handle = page.handle;
146
+ if (handle.elementBase != null) {
147
+ handle.elementBase.style.width = ''; //clear
148
+ tabListWidth += handle.elementBase.clientWidth;
149
+ }
150
+ });
151
+ let scaleMultiplier = width / tabListWidth;
152
+ if (scaleMultiplier > 1.2)
153
+ return; //with a reserve
154
+ this.pages.forEach((page, index) => {
155
+ let handle = page.handle;
156
+ let newSize = scaleMultiplier * handle.elementBase.clientWidth;
157
+ if (index === this.pages.length - 1)
158
+ newSize = newSize - 5;
159
+ handle.elementBase.style.width = newSize + 'px';
160
+ });
161
+ }
162
+ performLayout(children) {
163
+ // Destroy all existing tab pages not in children
164
+ this.pages.forEach((tab) => {
165
+ if (!children.some((x) => x == tab.container)) {
166
+ tab.handle.removeListener(this.tabHandleListener);
167
+ tab.destroy();
168
+ let index = this.pages.indexOf(tab);
169
+ if (index > -1) {
170
+ this.pages.splice(index, 1);
171
+ }
172
+ }
173
+ });
174
+ let oldActiveTab = this.activeTab;
175
+ delete this.activeTab;
176
+ let childPanels = children.filter((child) => {
177
+ return child.containerType === 'panel';
178
+ });
179
+ if (childPanels.length > 0) {
180
+ // Rebuild new tab pages
181
+ childPanels.forEach((child) => {
182
+ let page = null;
183
+ if (!this.pages.some((x) => {
184
+ if (x.container == child) {
185
+ page = x;
186
+ return true;
187
+ }
188
+ return false;
189
+ })) {
190
+ page = this.createTabPage(this, child);
191
+ page.handle.addListener(this.tabHandleListener);
192
+ this.pages.push(page);
193
+ }
194
+ // Restore the active selected tab
195
+ if (oldActiveTab && page.container === oldActiveTab.container)
196
+ this.activeTab = page;
197
+ });
198
+ this._setTabHandlesVisible(true);
199
+ }
200
+ else
201
+ // Do not show an empty tab handle host with zero tabs
202
+ this._setTabHandlesVisible(false);
203
+ if (this.activeTab)
204
+ this.onTabPageSelected(this.activeTab, false);
205
+ }
206
+ _setTabHandlesVisible(visible) {
207
+ if (visible) {
208
+ this.tabListElement.classList.add('dockspan-tab-handle-list-container-visible');
209
+ this.separatorElement.classList.add('dockspan-tab-handle-content-seperator-visible');
210
+ }
211
+ else {
212
+ this.tabListElement.classList.remove('dockspan-tab-handle-list-container-visible');
213
+ this.separatorElement.classList.remove('dockspan-tab-handle-content-seperator-visible');
214
+ }
215
+ }
216
+ onTabPageSelected(page, active) {
217
+ this.activeTab = page;
218
+ this.pages.forEach((tabPage) => {
219
+ let selected = (tabPage === page);
220
+ tabPage.setSelected(selected, active);
221
+ });
222
+ }
223
+ }
224
224
  //# sourceMappingURL=TabHost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabHost.js","sourceRoot":"","sources":["../../src/TabHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TabHost.js","sourceRoot":"","sources":["../../src/TabHost.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- import { TabHandle } from "./TabHandle.js";
2
- import { PanelContainer } from "./PanelContainer.js";
3
- import { IDockContainer } from "./interfaces/IDockContainer.js";
4
- import { TabHost } from "./TabHost.js";
5
- export declare class TabPage {
6
- selected: boolean;
7
- host: TabHost;
8
- container: IDockContainer;
9
- panel?: PanelContainer;
10
- handle: TabHandle;
11
- containerElement: HTMLElement;
12
- _initContent: boolean;
13
- constructor(host: TabHost, container: IDockContainer);
14
- onTitleChanged(): void;
15
- destroy(): void;
16
- onSelected(): void;
17
- setSelected(flag: boolean): void;
18
- resize(width: number, height: number): void;
19
- }
1
+ import { TabHandle } from "./TabHandle.js";
2
+ import { PanelContainer } from "./PanelContainer.js";
3
+ import { IDockContainer } from "./interfaces/IDockContainer.js";
4
+ import { TabHost } from "./TabHost.js";
5
+ export declare class TabPage {
6
+ selected: boolean;
7
+ host: TabHost;
8
+ container: IDockContainer;
9
+ panel?: PanelContainer;
10
+ handle: TabHandle;
11
+ containerElement: HTMLElement;
12
+ _initContent: boolean;
13
+ constructor(host: TabHost, container: IDockContainer);
14
+ onTitleChanged(): void;
15
+ destroy(): void;
16
+ onSelected(): void;
17
+ setSelected(flag: boolean, isActive: boolean): void;
18
+ resize(width: number, height: number): void;
19
+ }