import { OnDestroy, OnInit } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { RemoteDesktopService } from '../remote-desktop.service'; import { ConnectingMessageComponent } from '../messages/connecting-message.component'; import { DisconnectedMessageComponent } from '../messages/disconnected-message.component'; import { ErrorMessageComponent } from '../messages/error-message.component'; import { ManagedFilesystemService } from '../managed-filesystem.service'; import * as i0 from "@angular/core"; /** * The main component for displaying a remote desktop */ export declare class RemoteDesktopComponent implements OnInit, OnDestroy { remoteDesktopService: RemoteDesktopService; private fsService; /** * Guacamole has more states than the list below however for the component we are only interested * in managing four states. */ states: { CONNECTING: string; CONNECTED: string; DISCONNECTED: string; ERROR: string; }; /** * Manage the component state */ state: BehaviorSubject; showFileManager: boolean; connectingMessage: ConnectingMessageComponent; disconnectedMessage: DisconnectedMessageComponent; errorMessage: ErrorMessageComponent; private container; private toolbar; private fileManager; /** * Subscriptions */ private subscriptions; /** * Hide or show elements */ toolbarVisible: boolean; /** * Whether a drag/drop operation is currently in progress (the user has * dragged a file over the Guacamole connection but has not yet dropped it). */ dropPending: boolean; constructor(remoteDesktopService: RemoteDesktopService, fsService: ManagedFilesystemService); /** * Subscribe to the connection state and full screen state when the component is initialised */ ngOnInit(): void; /** * Remove all subscriptions when the component is destroyed */ ngOnDestroy(): void; hasTransfers(): boolean; /** * Bind the subscriptions */ private bindSubscriptions; /** * Unbind the subscriptions */ private unbindSubscriptions; /** * Set the component state to the new guacamole state * @param newState */ private setState; /** * Receive the state from the desktop client and update this components state * @param newState - state received from the guacamole client */ private handleState; /** * Exit full screen and show the toolbar */ private exitFullScreen; /** * Enter full screen mode and auto hide the toolbar */ private enterFullScreen; /** * Go in and out of full screen */ private handleFullScreen; private handleToolbar; /** * Handle the display mouse movement * @param event Mouse event */ handleDisplayMouseMove($event: any): void; private onDocumentMousemove; /** * Displays a visual indication that dropping the file currently * being dragged is possible. Further propagation and default behavior * of the given event is automatically prevented. */ notifyDragStart(e: any): void; /** * Removes the visual indication that dropping the file currently * being dragged is possible. Further propagation and default behavior * of the given event is automatically prevented. */ notifyDragEnd(e: any): void; dropFile(e: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }