UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

94 lines (93 loc) 4.28 kB
import { NotificationService, SearchComponent } from '@alauda/ui'; import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core'; import { Subject } from 'rxjs'; import { Terminal } from 'xterm'; import { CanvasAddon } from 'xterm-addon-canvas'; import { WebglAddon } from 'xterm-addon-webgl'; import { ApiGatewayService } from '../../api/public-api'; import { K8sPermissionService } from '../../permission/k8s-permission.service'; import { TranslateService } from '../../translate/public-api'; import { ConnectionStatus } from '../constants'; import { TerminalOption } from '../types'; import * as i0 from "@angular/core"; export declare const BIN_SH = "/bin/sh"; export declare const EXEC_FAILED_MESSAGE_CONTAINERD = "Internal error occurred: error executing command in container"; export declare const EXEC_FAILED_MESSAGE_DOCKER = "OCI runtime exec failed: exec failed: unable to start container process"; export declare const NO_PERMISSION_CODE = 40001; export declare function initRendererAddon(): WebglAddon | CanvasAddon; /** * For dispatching keyboard events automatically to xterm, * please view https://www.physics.udel.edu/~watson/scen103/ascii.html for reference. * * For instance, if you want to dispatch `Ctrl+C` to xterm, you should dispatch `\x03`(aka `\u0003`) to the socket. * * ```ts * socket.send('0' + encode('\u0003')) * ``` */ export declare class TerminalComponent implements OnChanges, OnDestroy, OnInit { private readonly apiGateway; private readonly notification; private readonly translate; private readonly cdr; private readonly k8sPermission; private readonly globalNamespace; ConnectionStatus: typeof ConnectionStatus; option: TerminalOption; index: number; extraButton: TemplateRef<unknown>; extraContent: TemplateRef<unknown>; readonly connectionStatusChange: EventEmitter<ConnectionStatus>; readonly sendData: EventEmitter<string>; readonly socketReady: EventEmitter<WebSocket>; readonly fallbackShell: EventEmitter<string>; anchorRef: ElementRef<HTMLDivElement>; searchInputRef: SearchComponent; beforeUnload(event: BeforeUnloadEvent): void; unload(_event: BeforeUnloadEvent): void; theme: 'light' | 'dark'; fontSize: number; searching: boolean; searchKeyword: string; coding: string; connectionStatus: ConnectionStatus; commandHasRun: boolean; xterm: Terminal; private searchAddon; private fitAddon; private socket; private ping; socket$$: Subject<WebSocket>; shouldFallBackOnClose: boolean; get themeClass(): string; get showLoading(): boolean; constructor(apiGateway: ApiGatewayService, notification: NotificationService, translate: TranslateService, cdr: ChangeDetectorRef, k8sPermission: K8sPermissionService, globalNamespace: string); ngOnInit(): void; ngOnChanges({ option }: SimpleChanges): void; ngOnDestroy(): void; focus(): void; reconnect(): void; killProcess(): void; switchTheme(): void; fontSizeChange(size: number): void; openSearching(): void; closeSearching(): void; onShellKeyDown(event: KeyboardEvent): void; onSearchInputKeyDown(event: KeyboardEvent): void; private getSearchOptions; findNext(): void; findPrevious(): void; private initXterm; private initFitAddon; private initSearchAddon; private initSocket; private readonly initSocketListeners; private readonly initSocketConnection; private fallBackOnClose; private closeSocket; private resizeRemoteTerminal; private updateConnectionStatus; activateTerminal(): void; static ɵfac: i0.ɵɵFactoryDeclaration<TerminalComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TerminalComponent, "acl-terminal", never, { "option": { "alias": "option"; "required": false; }; "index": { "alias": "index"; "required": false; }; "extraButton": { "alias": "extraButton"; "required": false; }; "extraContent": { "alias": "extraContent"; "required": false; }; }, { "connectionStatusChange": "connectionStatusChange"; "sendData": "sendData"; "socketReady": "socketReady"; "fallbackShell": "fallbackShell"; }, never, never, false, never>; }