mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Expose API method for writing to application side (#4948)
This commit is contained in:
@@ -1191,6 +1191,15 @@ export class Terminal extends CoreTerminal implements ITerminal {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Input data to application side.
|
||||
* The data is treated the same way as typed input at the terminal (will appear in the onData event).
|
||||
*/
|
||||
public input(data: string): void {
|
||||
this.coreService.triggerDataEvent(data, true);
|
||||
return this.write(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resizes the terminal.
|
||||
|
||||
@@ -72,6 +72,9 @@ export class MockTerminal implements ITerminal {
|
||||
public focus(): void {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
public input(data: string): void {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
public resize(columns: number, rows: number): void {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
@@ -138,6 +138,9 @@ export class Terminal extends Disposable implements ITerminalApi {
|
||||
public focus(): void {
|
||||
this._core.focus();
|
||||
}
|
||||
public input(data: string): void {
|
||||
this._core.input(data);
|
||||
}
|
||||
public resize(columns: number, rows: number): void {
|
||||
this._verifyIntegers(columns, rows);
|
||||
this._core.resize(columns, rows);
|
||||
|
||||
@@ -216,6 +216,7 @@ export class TerminalProxy implements ITerminalProxyCustomMethods, PlaywrightApi
|
||||
return new Promise(r => term.writeln(typeof data === 'string' ? data : new Uint8Array(data), r));
|
||||
}, [await this.getHandle(), typeof data === 'string' ? data : Array.from(data)] as const);
|
||||
}
|
||||
public async input(data: string): Promise<void> { return this.evaluate(([term]) => term.input(data)); }
|
||||
public async resize(cols: number, rows: number): Promise<void> { return this._page.evaluate(([term, cols, rows]) => term.resize(cols, rows), [await this.getHandle(), cols, rows] as const); }
|
||||
public async registerMarker(y?: number | undefined): Promise<IMarker> { return this._page.evaluate(([term, y]) => term.registerMarker(y), [await this.getHandle(), y] as const); }
|
||||
public async registerDecoration(decorationOptions: IDecorationOptions): Promise<IDecoration | undefined> { return this._page.evaluate(([term, decorationOptions]) => term.registerDecoration(decorationOptions), [await this.getHandle(), decorationOptions] as const); }
|
||||
|
||||
Vendored
+6
@@ -962,6 +962,12 @@ declare module '@xterm/xterm' {
|
||||
* Focus the terminal.
|
||||
*/
|
||||
focus(): void;
|
||||
|
||||
/**
|
||||
* Input data to application side.
|
||||
* The data is treated the same way as typed input at the terminal (will appear in the onData event).
|
||||
*/
|
||||
input(data: string): void;
|
||||
|
||||
/**
|
||||
* Resizes the terminal. It's best practice to debounce calls to resize,
|
||||
|
||||
Reference in New Issue
Block a user