import { BrowserFieldEventMap, BrowserFieldModel, EnumObject, FormField, IFrame, InitModelOf, PropertyChangeEvent, Rectangle } from '../../../index'; import TriggeredEvent = JQuery.TriggeredEvent; export type BrowserFieldWindowStates = EnumObject; export declare class BrowserField extends FormField implements BrowserFieldModel { model: BrowserFieldModel; eventMap: BrowserFieldEventMap; self: BrowserField; autoCloseExternalWindow: boolean; externalWindowButtonText: string; externalWindowFieldText: string; location: string; trackLocation: boolean; sandboxEnabled: boolean; sandboxPermissions: string; trustedMessageOrigins: string[]; scrollBarEnabled: boolean; showInExternalWindow: boolean; iframe: IFrame; myWindow: Window; protected _messageListener: (event: MessageEvent) => any; protected _popupWindow: Window; protected _externalWindowTextField: JQuery; protected _externalWindowButton: JQuery; constructor(); static WindowStates: { WINDOW_OPEN: string; WINDOW_CLOSED: string; }; protected _init(model: InitModelOf): void; protected _render(): void; protected _renderProperties(): void; protected _remove(): void; setLocation(location: string): void; protected _renderLocation(): void; setAutoCloseExternalWindow(autoCloseExternalWindow: boolean): void; setExternalWindowButtonText(externalWindowButtonText: string): void; protected _renderExternalWindowButtonText(): void; setExternalWindowFieldText(externalWindowFieldText: string): void; protected _renderExternalWindowFieldText(): void; /** * Note: this function is designed to deliver good results to position a popup over a BrowserField in Internet Explorer. * Other browsers may not perfectly position the popup, since they return different values for screenX/screenY. Also * there's no way to retrieve all required values from the window or screen object, that's why we have to use hard coded * values here. In order to make this function more flexible you could implement it as a strategy which has different * browser dependent implementations. * * This implementation does also deal with a multi screen setup (secondary monitor). An earlier implementation used * screen.availWidth to make sure the popup is within the visible area of the screen. However, screen.availWidth only * returns the size of the primary monitor, so we cannot use it. There's no way to check for a secondary monitor from * a HTML document. So we removed the check entirely, which shouldn't be an issue since the browser itself does prevent * popups from having an invalid position. */ protected _calcPopupBounds(): Rectangle; protected _openPopupWindow(reopenIfClosed?: boolean): void; protected _popupWindowOpen(popup: Window): void; protected _onMessage(event: MessageEvent): void; protected _isValidMessageSource(source: MessageEventSource): boolean; /** * Sends a message to the embedded web page (`iframe`). * * @param message * The message to send. * @param targetOrigin * The expected origin of the receiving `window`. If the origin does not match, the browser will not * dispatch the message for security reasons. See the * documentation for * details. * @see window.postMessage (MDN) */ postMessage(message: any, targetOrigin: string): void; /** @see BrowserFieldModel.sandboxPermissions */ setTrackLocation(trackLocation: boolean): void; protected _onIFramePropertyChange(event: PropertyChangeEvent