dock-spawn-ts 3.1.0 → 3.2.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.
package/src/TabHandle.ts CHANGED
@@ -96,10 +96,12 @@ export class TabHandle {
96
96
  this.undockInitiator.enabled = state;
97
97
  }
98
98
 
99
- static createContextMenuContentCallback = (tabHandle: TabHandle, contextMenuContainer: HTMLDivElement, documentMangerNodes: DockNode[]) => {
99
+ static createContextMenuContentCallback = (tabHandle: TabHandle, documentMangerNodes: DockNode[]): Node[] => {
100
+ const result = [];
101
+
100
102
  let btnCloseAll = document.createElement('div');
101
103
  btnCloseAll.innerText = Localizer.getString('CloseAll');
102
- contextMenuContainer.append(btnCloseAll);
104
+ result.push(btnCloseAll);
103
105
 
104
106
  btnCloseAll.onclick = () => {
105
107
  let length = documentMangerNodes.length;
@@ -113,7 +115,7 @@ export class TabHandle {
113
115
 
114
116
  let btnCloseAllButThis = document.createElement('div');
115
117
  btnCloseAllButThis.innerText = Localizer.getString('CloseAllButThis');
116
- contextMenuContainer.append(btnCloseAllButThis);
118
+ result.push(btnCloseAllButThis);
117
119
 
118
120
  btnCloseAllButThis.onclick = () => {
119
121
  let length = documentMangerNodes.length;
@@ -125,25 +127,38 @@ export class TabHandle {
125
127
  tabHandle.closeContextMenu();
126
128
  };
127
129
 
128
- let btnNewBrowserWindow = document.createElement('div');
129
- btnNewBrowserWindow.innerText = Localizer.getString('NewBrowserWindow');
130
- contextMenuContainer.append(btnNewBrowserWindow);
130
+ console.log(tabHandle.parent.container.dockManager.config.enableBrowserWindows);
131
+
132
+ if (tabHandle.parent.container.dockManager.config.enableBrowserWindows) {
133
+ let btnNewBrowserWindow = document.createElement('div');
134
+ btnNewBrowserWindow.innerText = Localizer.getString('NewBrowserWindow');
135
+ result.push(btnNewBrowserWindow);
136
+
137
+ btnNewBrowserWindow.onclick = () => {
138
+ (<PanelContainer>tabHandle.parent.container).undockToBrowserDialog();
139
+ tabHandle.closeContextMenu();
140
+ };
141
+ }
131
142
 
132
- btnNewBrowserWindow.onclick = () => {
133
- (<PanelContainer>tabHandle.parent.container).undockToBrowserDialog();
134
- tabHandle.closeContextMenu();
135
- };
143
+ return result;
136
144
  }
137
145
 
138
146
  oncontextMenuClicked(e: MouseEvent) {
139
147
  e.preventDefault();
140
148
 
141
149
  if (!this._ctxMenu && TabHandle.createContextMenuContentCallback) {
150
+ const menuItems = TabHandle.createContextMenuContentCallback(
151
+ this,
152
+ this.parent.container.dockManager.context.model.documentManagerNode.children
153
+ );
154
+
155
+ if (menuItems.length == 0) {
156
+ return;
157
+ }
158
+
142
159
  this._ctxMenu = document.createElement('div');
143
160
  this._ctxMenu.className = 'dockspab-tab-handle-context-menu';
144
-
145
- TabHandle.createContextMenuContentCallback(this, this._ctxMenu, this.parent.container.dockManager.context.model.documentManagerNode.children);
146
-
161
+ this._ctxMenu.append(...menuItems);
147
162
  this._ctxMenu.style.left = e.pageX + "px";
148
163
  this._ctxMenu.style.top = e.pageY + "px";
149
164
  document.body.appendChild(this._ctxMenu);