Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
private _onTabDetachRequested(sender: TabBar, args: TabBar.ITabDetachRequestedArgs): void {
// Do nothing if a drag is already in progress.
if (this._drag) {
return;
}
// Release the tab bar's hold on the mouse.
sender.releaseMouse();
// Extract the data from the args.
let { title, tab, clientX, clientY } = args;
// Setup the mime data for the drag operation.
let mimeData = new MimeData();
let factory = () => title.owner;
mimeData.setData('application/vnd.lumino.widget-factory', factory);
// Create the drag image for the drag operation.
let dragImage = tab.cloneNode(true) as HTMLElement;
// Create the drag object to manage the drag-drop operation.
this._drag = new Drag({
mimeData, dragImage,
proposedAction: 'move',
supportedActions: 'move',
});
// Hide the tab node in the original tab.
tab.classList.add('p-mod-hidden');