ref(tabby-terminal): create ConnectableTerminalTabComponent class

This commit is contained in:
Clem Fern
2023-05-11 21:49:32 +02:00
parent fd9505c18f
commit 901181f681
5 changed files with 33 additions and 8 deletions

View File

@@ -0,0 +1,26 @@
import { Injector, Component } from '@angular/core'
import { BaseTerminalProfile } from './interfaces'
import { BaseTerminalTabComponent } from './baseTerminalTab.component'
/**
* A class to base your custom connectable terminal tabs on
*/
@Component({ template: '' })
export abstract class ConnectableTerminalTabComponent<P extends BaseTerminalProfile> extends BaseTerminalTabComponent<P> {
protected reconnectOffered = false
constructor (protected injector: Injector) {
super(injector)
}
abstract initializeSession (): Promise<void>
async reconnect (): Promise<void> {
this.session?.destroy()
await this.initializeSession()
this.session?.releaseInitialDataBuffer()
}
}

View File

@@ -90,6 +90,7 @@ export default class TerminalModule { } // eslint-disable-line @typescript-eslin
export { TerminalDecorator, TerminalContextMenuItemProvider, TerminalColorSchemeProvider }
export { Frontend, XTermFrontend, XTermWebGLFrontend }
export { BaseTerminalTabComponent } from './api/baseTerminalTab.component'
export { ConnectableTerminalTabComponent } from './api/connectableTerminalTab.component'
export * from './api/interfaces'
export * from './middleware/streamProcessing'
export * from './middleware/loginScriptProcessing'