import type * as OpenFin from '../../OpenFin'; import { NamedEvent, PropagatedEvent } from './base'; import { BaseViewEvent, PropagatedViewEvent, AttachedEvent as ViewAttachedEvent } from './view'; import { NonPropagatedWebContentsEvent, WillPropagateWebContentsEvent } from './webcontents'; export type AlertRequestedEvent = NamedEvent & { type: 'alert-requested'; message: string; url: string; }; export type AuthRequestedEvent = NamedEvent & { type: 'auth-requested'; authInfo: { host: string; isProxy: boolean; port: number; realm: string; scheme: string; }; }; export type EndLoadEvent = NamedEvent & { type: 'end-load'; documentName: string; isMain: boolean; }; export type WillRedirectEvent = NamedEvent & { type: 'will-redirect'; blocked: boolean; isInPlace: boolean; url: string; }; export type ReloadedEvent = NamedEvent & { type: 'reloaded'; url: string; }; export type WindowOptionsChangedEvent = NamedEvent & { type: 'options-changed'; options: OpenFin.WindowOptions; diff: OpenFin.WindowOptionDiff; }; export type ExternalProcessExitedEvent = NamedEvent & { type: 'external-process-exited'; processUuid: string; exitCode: number; }; export type ExternalProcessStartedEvent = NamedEvent & { type: 'external-process-started'; processUuid: string; }; export type HiddenEvent = NamedEvent & { type: 'hidden'; reason: 'closing' | 'hide' | 'hide-on-close'; }; export type PreloadScriptInfoRunning = { state: 'load-started' | 'load-failed' | 'load-succeeded' | 'failed' | 'succeeded'; }; export type PreloadScriptInfo = { state: 'load-failed' | 'failed' | 'succeeded'; }; export type PreloadScriptsStateChangeEvent = NamedEvent & { preloadScripts: (PreloadScriptInfoRunning & any)[]; }; export type UserBoundsChangeEvent = NamedEvent & { height: number; left: number; top: number; width: number; windowState: 'minimized' | 'normal' | 'maximized'; }; export type BoundsChangeEvent = NamedEvent & { changeType: 0 | 1 | 2; deferred: boolean; height: number; left: number; top: number; width: number; }; export type WillMoveOrResizeEvent = NamedEvent & { height: number; left: number; top: number; width: number; monitorScaleFactor: number; }; export type PerformanceReportEvent = Performance & NamedEvent & { type: 'performance-report'; }; export type ViewDetachedEvent = NamedEvent & BaseViewEvent & { type: 'view-detached'; previousTarget: OpenFin.Identity; }; export type InputEvent = { inputType: 'keyUp' | 'keyDown'; ctrlKey: boolean; shiftKey: boolean; altKey: boolean; metaKey: boolean; key: string; code: string; repeat: boolean; command?: string; }; export type LayoutInitializedEvent = NamedEvent & { type: 'layout-initialized'; ofViews: (OpenFin.Identity & { entityType: 'view'; })[]; }; export type LayoutReadyEvent = NamedEvent & { type: 'layout-ready'; views: (OpenFin.Identity & { success: boolean; })[]; }; /** * A Window event that does not propagate to (republish on) parent topics. */ export type NonPropagatedWindowEvent = NonPropagatedWebContentsEvent; export type BeginUserBoundsChangingEvent = UserBoundsChangeEvent & { type: 'begin-user-bounds-changing'; }; export type BoundsChangedEvent = BoundsChangeEvent & { type: 'bounds-changed'; }; export type BoundsChangingEvent = BoundsChangeEvent & { type: 'bounds-changing'; }; export type WindowCloseRequestedEvent = NamedEvent & { type: 'close-requested'; }; export type WindowClosedEvent = NamedEvent & { type: 'closed'; }; export type WindowClosingEvent = NamedEvent & { type: 'closing'; }; export type DisabledMovementBoundsChangedEvent = BoundsChangeEvent & { type: 'disabled-movement-bounds-changed'; }; export type DisabledMovementBoundsChangingEvent = BoundsChangeEvent & { type: 'disabled-movement-bounds-changing'; }; export type EmbeddedEvent = NamedEvent & { type: 'embedded'; }; export type EndUserBoundsChangingEvent = UserBoundsChangeEvent & { type: 'end-user-bounds-changing'; }; export type WindowHotkeyEvent = InputEvent & NamedEvent & { type: 'hotkey'; }; export type WindowInitializedEvent = NamedEvent & { type: 'initialized'; }; export type MaximizedEvent = NamedEvent & { type: 'maximized'; }; export type MinimizedEvent = NamedEvent & { type: 'minimized'; }; export type PreloadScriptsStateChangedEvent = PreloadScriptsStateChangeEvent & { type: 'preload-script-state-changed'; }; export type PreloadScriptsStateChangingEvent = PreloadScriptsStateChangeEvent & { type: 'preload-script-state-changing'; }; export type WindowRestoredEvent = NamedEvent & { type: 'restored'; }; export type WindowShowRequestedEvent = NamedEvent & { type: 'show-requested'; }; export type WindowShownEvent = NamedEvent & { type: 'shown'; }; export type UserMovementEnabledEvent = NamedEvent & { type: 'user-movement-enabled'; }; export type UserMovementDisabledEvent = NamedEvent & { type: 'user-movement-disabled'; }; export type WillMoveEvent = WillMoveOrResizeEvent & { type: 'will-move'; }; export type WillResizeEvent = WillMoveOrResizeEvent & { type: 'will-resize'; }; /** * A propagated view event that is re-propagated from window. */ export type PropagatedViewAttachedEvent = PropagatedEvent<'view', ViewAttachedEvent>; /** * A Window event that does propagate to (republish on) parent topics. */ export type WillPropagateWindowEvent = WillPropagateWebContentsEvent | PropagatedViewAttachedEvent | ViewDetachedEvent | AuthRequestedEvent | BeginUserBoundsChangingEvent | BoundsChangedEvent | BoundsChangingEvent | WindowCloseRequestedEvent | WindowClosedEvent | WindowClosingEvent | DisabledMovementBoundsChangedEvent | DisabledMovementBoundsChangingEvent | EmbeddedEvent | EndUserBoundsChangingEvent | ExternalProcessExitedEvent | ExternalProcessStartedEvent | HiddenEvent | WindowHotkeyEvent | WindowInitializedEvent | LayoutInitializedEvent | LayoutReadyEvent | MaximizedEvent | MinimizedEvent | WindowOptionsChangedEvent | PerformanceReportEvent | PreloadScriptsStateChangedEvent | PreloadScriptsStateChangingEvent | ReloadedEvent | WindowRestoredEvent | WindowShowRequestedEvent | WindowShownEvent | UserMovementDisabledEvent | UserMovementEnabledEvent | WillMoveEvent | WillRedirectEvent | WillResizeEvent; export type WindowEvent = { topic: 'window'; } & (WillPropagateWindowEvent | NonPropagatedWindowEvent | PropagatedViewEvent); export type WindowEventType = WindowEvent['type']; export type PropagatedWindowEvent = PropagatedEvent<'window', Exclude>; export type PropagatedWindowEventType = PropagatedWindowEvent['type'];