mirror of
				https://git.proxmox.com/git/mirror_xterm.js
				synced 2025-11-04 09:14:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * @license MIT
 | 
						|
 */
 | 
						|
 | 
						|
export interface IBrowser {
 | 
						|
  isNode: boolean;
 | 
						|
  userAgent: string;
 | 
						|
  platform: string;
 | 
						|
  isFirefox: boolean;
 | 
						|
  isMSIE: boolean;
 | 
						|
  isMac: boolean;
 | 
						|
  isIpad: boolean;
 | 
						|
  isIphone: boolean;
 | 
						|
  isMSWindows: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export interface ITerminal {
 | 
						|
  element: HTMLElement;
 | 
						|
  rowContainer: HTMLElement;
 | 
						|
  textarea: HTMLTextAreaElement;
 | 
						|
  ybase: number;
 | 
						|
  ydisp: number;
 | 
						|
  lines: ICircularList<string>;
 | 
						|
  rows: number;
 | 
						|
  cols: number;
 | 
						|
  browser: IBrowser;
 | 
						|
  writeBuffer: string[];
 | 
						|
  children: HTMLElement[];
 | 
						|
  cursorHidden: boolean;
 | 
						|
  cursorState: number;
 | 
						|
  x: number;
 | 
						|
  y: number;
 | 
						|
  defAttr: number;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Emit the 'data' event and populate the given data.
 | 
						|
   * @param data The data to populate in the event.
 | 
						|
   */
 | 
						|
  handler(data: string);
 | 
						|
  on(event: string, callback: () => void);
 | 
						|
  scrollDisp(disp: number, suppressScrollEvent: boolean);
 | 
						|
  cancel(ev: Event, force?: boolean);
 | 
						|
  log(text: string): void;
 | 
						|
  emit(event: string, data: any);
 | 
						|
}
 | 
						|
 | 
						|
interface ICircularList<T> {
 | 
						|
  length: number;
 | 
						|
  maxLength: number;
 | 
						|
 | 
						|
  forEach(callbackfn: (value: T, index: number, array: T[]) => void): void;
 | 
						|
  get(index: number): T;
 | 
						|
  set(index: number, value: T): void;
 | 
						|
  push(value: T): void;
 | 
						|
  pop(): T;
 | 
						|
  splice(start: number, deleteCount: number, ...items: T[]): void;
 | 
						|
  trimStart(count: number): void;
 | 
						|
  shiftElements(start: number, count: number, offset: number): void;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Handles actions generated by the parser.
 | 
						|
 */
 | 
						|
export interface IInputHandler {
 | 
						|
  addChar(char: string, code: number): void;
 | 
						|
 | 
						|
  /** C0 BEL */ bell(): void;
 | 
						|
  /** C0 LF */ lineFeed(): void;
 | 
						|
  /** C0 CR */ carriageReturn(): void;
 | 
						|
  /** C0 BS */ backspace(): void;
 | 
						|
  /** C0 HT */ tab(): void;
 | 
						|
  /** C0 SO */ shiftOut(): void;
 | 
						|
  /** C0 SI */ shiftIn(): void;
 | 
						|
 | 
						|
  /** CSI @ */ insertChars(params?: number[]): void;
 | 
						|
  /** CSI A */ cursorUp(params?: number[]): void;
 | 
						|
  /** CSI B */ cursorDown(params?: number[]): void;
 | 
						|
  /** CSI C */ cursorForward(params?: number[]): void;
 | 
						|
  /** CSI D */ cursorBackward(params?: number[]): void;
 | 
						|
  /** CSI E */ cursorNextLine(params?: number[]): void;
 | 
						|
  /** CSI F */ cursorPrecedingLine(params?: number[]): void;
 | 
						|
  /** CSI G */ cursorCharAbsolute(params?: number[]): void;
 | 
						|
  /** CSI H */ cursorPosition(params?: number[]): void;
 | 
						|
  /** CSI I */ cursorForwardTab(params?: number[]): void;
 | 
						|
  /** CSI J */ eraseInDisplay(params?: number[]): void;
 | 
						|
  /** CSI K */ eraseInLine(params?: number[]): void;
 | 
						|
  /** CSI L */ insertLines(params?: number[]): void;
 | 
						|
  /** CSI M */ deleteLines(params?: number[]): void;
 | 
						|
  /** CSI P */ deleteChars(params?: number[]): void;
 | 
						|
  /** CSI S */ scrollUp(params?: number[]): void;
 | 
						|
  /** CSI T */ scrollDown(params?: number[]): void;
 | 
						|
  /** CSI X */ eraseChars(params?: number[]): void;
 | 
						|
  /** CSI Z */ cursorBackwardTab(params?: number[]): void;
 | 
						|
  /** CSI ` */ charPosAbsolute(params?: number[]): void;
 | 
						|
  /** CSI a */ HPositionRelative(params?: number[]): void;
 | 
						|
  /** CSI b */ repeatPrecedingCharacter(params?: number[]): void;
 | 
						|
  /** CSI c */ sendDeviceAttributes(params?: number[]): void;
 | 
						|
  /** CSI d */ linePosAbsolute(params?: number[]): void;
 | 
						|
  /** CSI e */ VPositionRelative(params?: number[]): void;
 | 
						|
  /** CSI f */ HVPosition(params?: number[]): void;
 | 
						|
  /** CSI g */ tabClear(params?: number[]): void;
 | 
						|
  /** CSI h */ setMode(params?: number[]): void;
 | 
						|
  /** CSI l */ resetMode(params?: number[]): void;
 | 
						|
  /** CSI m */ charAttributes(params?: number[]): void;
 | 
						|
  /** CSI n */ deviceStatus(params?: number[]): void;
 | 
						|
  /** CSI p */ softReset(params?: number[]): void;
 | 
						|
  /** CSI q */ setCursorStyle(params?: number[]): void;
 | 
						|
  /** CSI r */ setScrollRegion(params?: number[]): void;
 | 
						|
  /** CSI s */ saveCursor(params?: number[]): void;
 | 
						|
  /** CSI u */ restoreCursor(params?: number[]): void;
 | 
						|
}
 |