diff --git a/packages/core/accessibility/accessibility-common.ts b/packages/core/accessibility/accessibility-common.ts index 7ca9cdfd98..23040ffcaa 100644 --- a/packages/core/accessibility/accessibility-common.ts +++ b/packages/core/accessibility/accessibility-common.ts @@ -28,7 +28,7 @@ export function notifyAccessibilityFocusState(view: View, receivedFocus: boolean eventName: accessibilityFocusChangedEvent, object: view, value: !!receivedFocus, - } as EventDataValue); + }); if (receivedFocus) { if (view.page) { @@ -38,12 +38,12 @@ export function notifyAccessibilityFocusState(view: View, receivedFocus: boolean view.notify({ eventName: accessibilityFocusEvent, object: view, - } as EventData); + }); } else if (lostFocus) { view.notify({ eventName: accessibilityBlurEvent, object: view, - } as EventData); + }); } } diff --git a/packages/core/accessibility/accessibility-types.ts b/packages/core/accessibility/accessibility-types.ts index 48e3cac44b..d3b7b02f67 100644 --- a/packages/core/accessibility/accessibility-types.ts +++ b/packages/core/accessibility/accessibility-types.ts @@ -1,4 +1,4 @@ -import type { EventData } from '../data/observable'; +import type { EventData, Observable } from '../data/observable'; export enum AccessibilityTrait { /** @@ -264,7 +264,7 @@ export enum AndroidAccessibilityEvent { ALL_MASK = 'all', } -export interface AccessibilityEventPerformEscape extends EventData { +export interface AccessibilityEventPerformEscape extends EventData { cancel?: boolean; } diff --git a/packages/core/application/application-interfaces.ts b/packages/core/application/application-interfaces.ts index 2a4524e316..a1bc99071f 100644 --- a/packages/core/application/application-interfaces.ts +++ b/packages/core/application/application-interfaces.ts @@ -1,5 +1,5 @@ // Types -import { EventData } from '../data/observable'; +import { EventData, Observable } from '../data/observable'; import { View } from '../ui/core/view'; /** @@ -12,7 +12,7 @@ export interface NativeScriptError extends Error { nativeError: any; } -export interface ApplicationEventData extends EventData { +export interface ApplicationEventData extends EventData { /** * UIApplication or undefined, unless otherwise specified. Prefer explicit * properties where possible. @@ -34,7 +34,7 @@ export interface ApplicationEventData extends EventData { object: any; } -export interface LaunchEventData extends ApplicationEventData { +export interface LaunchEventData extends ApplicationEventData { /** * The value stored into didFinishLaunchingWithOptions notification's * userInfo under 'UIApplicationLaunchOptionsLocalNotificationKey'; @@ -45,57 +45,71 @@ export interface LaunchEventData extends ApplicationEventData { savedInstanceState?: any /* android.os.Bundle */; } -export interface OrientationChangedEventData extends ApplicationEventData { +export interface OrientationChangedEventData extends ApplicationEventData { android: any /* globalAndroid.app.Application */; newValue: 'portrait' | 'landscape' | 'unknown'; } -export interface SystemAppearanceChangedEventData extends ApplicationEventData { +export interface SystemAppearanceChangedEventData extends ApplicationEventData { android: any /* globalAndroid.app.Application */; newValue: 'light' | 'dark'; } -export interface UnhandledErrorEventData extends ApplicationEventData { +export interface UnhandledErrorEventData extends ApplicationEventData { ios?: NativeScriptError; android?: NativeScriptError; error: NativeScriptError; } -export interface DiscardedErrorEventData extends ApplicationEventData { +export interface DiscardedErrorEventData extends ApplicationEventData { error: NativeScriptError; } -export interface CssChangedEventData extends ApplicationEventData { +export interface CssChangedEventData extends ApplicationEventData { cssFile?: string; cssText?: string; } -export interface AndroidActivityEventData extends ApplicationEventData { - activity: any /* androidx.appcompat.app.AppCompatActivity */; - object: any /* AndroidApplication */; +export interface AndroidActivityEventData extends ApplicationEventData { + /** + * The activity. + * androidx.appcompat.app.AppCompatActivity + */ + activity: any; + + /** + * The name of the event. + */ + eventName: string; + + /** + * The instance that has raised the event. + * AndroidApplication + */ + object: T; } -export interface AndroidActivityBundleEventData extends AndroidActivityEventData { +export interface AndroidActivityBundleEventData extends AndroidActivityEventData { bundle: any /* android.os.Bundle */; } -export interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData { +export interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData { requestCode: number; permissions: Array; grantResults: Array; } -export interface AndroidActivityResultEventData extends AndroidActivityEventData { +export interface AndroidActivityResultEventData extends AndroidActivityEventData { requestCode: number; resultCode: number; intent: any /* android.content.Intent */; } -export interface AndroidActivityNewIntentEventData extends AndroidActivityEventData { +export interface AndroidActivityNewIntentEventData extends AndroidActivityEventData { intent: any /* android.content.Intent */; } -export interface AndroidActivityBackPressedEventData extends AndroidActivityEventData { +export interface AndroidActivityBackPressedEventData extends AndroidActivityEventData { cancel: boolean; } @@ -106,6 +120,6 @@ export interface RootViewControllerImpl { contentController: any; } -export interface LoadAppCSSEventData extends ApplicationEventData { +export interface LoadAppCSSEventData extends ApplicationEventData { cssFile: string; } diff --git a/packages/core/application/index.android.ts b/packages/core/application/index.android.ts index d60bb628e0..525b5d13e2 100644 --- a/packages/core/application/index.android.ts +++ b/packages/core/application/index.android.ts @@ -163,18 +163,18 @@ export class AndroidApplication extends Observable implements AndroidApplication // HACK: We declare all these 'on' statements, so that they can appear in the API reference // HACK: Do we need this? Is it useful? There are static fields to the AndroidApplication class for the event names. export interface AndroidApplication { - on(eventNames: string, callback: (data: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'activityCreated', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; - on(event: 'activityDestroyed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'activityStarted', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'activityPaused', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'activityResumed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'activityStopped', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; - on(event: 'saveActivityState', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; - on(event: 'activityResult', callback: (args: AndroidActivityResultEventData) => void, thisArg?: any): void; - on(event: 'activityBackPressed', callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any): void; - on(event: 'activityNewIntent', callback: (args: AndroidActivityNewIntentEventData) => void, thisArg?: any): void; - on(event: 'activityRequestPermissions', callback: (args: AndroidActivityRequestPermissionsEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityCreated', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; + on(event: 'activityDestroyed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityStarted', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityPaused', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityResumed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityStopped', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'saveActivityState', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; + on(event: 'activityResult', callback: (args: AndroidActivityResultEventData) => void, thisArg?: any): void; + on(event: 'activityBackPressed', callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any): void; + on(event: 'activityNewIntent', callback: (args: AndroidActivityNewIntentEventData) => void, thisArg?: any): void; + on(event: 'activityRequestPermissions', callback: (args: AndroidActivityRequestPermissionsEventData) => void, thisArg?: any): void; } let androidApp: AndroidApplication; diff --git a/packages/core/application/index.d.ts b/packages/core/application/index.d.ts index 74f0a2aa65..31c3eeaff9 100644 --- a/packages/core/application/index.d.ts +++ b/packages/core/application/index.d.ts @@ -102,7 +102,7 @@ export function setMaxRefreshRate(options?: { min?: number; max?: number; prefer /** * Event data containing information for the application events. */ -export interface ApplicationEventData extends EventData { +export interface ApplicationEventData extends EventData { /** * Gets the native iOS event arguments. Valid only when running on iOS. */ @@ -127,7 +127,7 @@ export interface ApplicationEventData extends EventData { /** * Event data containing information for launch event. */ -export interface LaunchEventData extends ApplicationEventData { +export interface LaunchEventData extends ApplicationEventData { /** * The root view for this Window on iOS or Activity for Android. * If not set a new Frame will be created as a root view in order to maintain backwards compatibility. @@ -141,7 +141,7 @@ export interface LaunchEventData extends ApplicationEventData { /** * Event data containing information for orientation changed event. */ -export interface OrientationChangedEventData extends ApplicationEventData { +export interface OrientationChangedEventData extends ApplicationEventData { /** * New orientation value. */ @@ -151,7 +151,7 @@ export interface OrientationChangedEventData extends ApplicationEventData { /** * Event data containing information for system appearance changed event. */ -export interface SystemAppearanceChangedEventData extends ApplicationEventData { +export interface SystemAppearanceChangedEventData extends ApplicationEventData { /** * New system appearance value. */ @@ -161,7 +161,7 @@ export interface SystemAppearanceChangedEventData extends ApplicationEventData { /** * Event data containing information for font scale changed event. */ -export interface FontScaleChangedEventData extends ApplicationEventData { +export interface FontScaleChangedEventData extends ApplicationEventData { /** * New font scale value. */ @@ -171,7 +171,7 @@ export interface FontScaleChangedEventData extends ApplicationEventData { /** * Event data containing information about unhandled application errors. */ -export interface UnhandledErrorEventData extends ApplicationEventData { +export interface UnhandledErrorEventData extends ApplicationEventData { ios?: NativeScriptError; android?: NativeScriptError; error: NativeScriptError; @@ -180,14 +180,14 @@ export interface UnhandledErrorEventData extends ApplicationEventData { /** * Event data containing information about discarded application errors. */ -export interface DiscardedErrorEventData extends ApplicationEventData { +export interface DiscardedErrorEventData extends ApplicationEventData { error: NativeScriptError; } /** * Event data containing information about application css change. */ -export interface CssChangedEventData extends EventData { +export interface CssChangedEventData extends EventData { cssFile?: string; cssText?: string; } @@ -257,7 +257,7 @@ export function _resetRootView(entry?: NavigationEntry | string); /** * Removes listener for the specified event name. */ -export function off(eventNames: string, callback?: (eventData: ApplicationEventData) => void, thisArg?: any): void; +export function off(eventNames: string, callback?: (eventData: ApplicationEventData) => void, thisArg?: any): void; /** * Shortcut alias to the removeEventListener method. @@ -265,7 +265,7 @@ export function off(eventNames: string, callback?: (eventData: ApplicationEventD * @param callback - Callback function which will be removed. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ -export function off(eventNames: string, callback?: (eventData: ApplicationEventData) => void, thisArg?: any): void; +export function off(eventNames: string, callback?: (eventData: ApplicationEventData) => void, thisArg?: any): void; /** * Notifies all the registered listeners for the event provided in the data.eventName. @@ -285,78 +285,78 @@ export function hasListeners(eventName: string): boolean; * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ -export function on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; +export function on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; /** * This event is raised when application css is changed. */ -export function on(event: 'cssChanged', callback: (args: CssChangedEventData) => void, thisArg?: any): void; +export function on(event: 'cssChanged', callback: (args: CssChangedEventData) => void, thisArg?: any): void; /** * Event raised then livesync operation is performed. */ -export function on(event: 'livesync', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'livesync', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when application css is changed. */ -export function on(event: 'cssChanged', callback: (args: CssChangedEventData) => void, thisArg?: any): void; +export function on(event: 'cssChanged', callback: (args: CssChangedEventData) => void, thisArg?: any): void; /** * This event is raised on application launchEvent. */ -export function on(event: 'launch', callback: (args: LaunchEventData) => void, thisArg?: any): void; +export function on(event: 'launch', callback: (args: LaunchEventData) => void, thisArg?: any): void; /** * This event is raised after the application has performed most of its startup actions. * Its intent is to be suitable for measuring app startup times. * @experimental */ -export function on(event: 'displayed', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'displayed', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when the Application is suspended. */ -export function on(event: 'suspend', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'suspend', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when the Application is resumed after it has been suspended. */ -export function on(event: 'resume', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'resume', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when the Application is about to exit. */ -export function on(event: 'exit', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'exit', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when there is low memory on the target device. */ -export function on(event: 'lowMemory', callback: (args: ApplicationEventData) => void, thisArg?: any): void; +export function on(event: 'lowMemory', callback: (args: ApplicationEventData) => void, thisArg?: any): void; /** * This event is raised when an uncaught error occurs while the application is running. */ -export function on(event: 'uncaughtError', callback: (args: UnhandledErrorEventData) => void, thisArg?: any): void; +export function on(event: 'uncaughtError', callback: (args: UnhandledErrorEventData) => void, thisArg?: any): void; /** * This event is raised when an discarded error occurs while the application is running. */ -export function on(event: 'discardedError', callback: (args: DiscardedErrorEventData) => void, thisArg?: any): void; +export function on(event: 'discardedError', callback: (args: DiscardedErrorEventData) => void, thisArg?: any): void; /** * This event is raised when the orientation of the application changes. */ -export function on(event: 'orientationChanged', callback: (args: OrientationChangedEventData) => void, thisArg?: any): void; +export function on(event: 'orientationChanged', callback: (args: OrientationChangedEventData) => void, thisArg?: any): void; /** * This event is raised when the operating system appearance changes * between light and dark theme (for Android); * between light and dark mode (for iOS) and vice versa. */ -export function on(event: 'systemAppearanceChanged', callback: (args: SystemAppearanceChangedEventData) => void, thisArg?: any): void; +export function on(event: 'systemAppearanceChanged', callback: (args: SystemAppearanceChangedEventData) => void, thisArg?: any): void; -export function on(event: 'fontScaleChanged', callback: (args: FontScaleChangedEventData) => void, thisArg?: any): void; +export function on(event: 'fontScaleChanged', callback: (args: FontScaleChangedEventData) => void, thisArg?: any): void; /** * Gets the orientation of the application. @@ -395,7 +395,7 @@ export let ios: iOSApplication; /** * Data for the Android activity events. */ -export interface AndroidActivityEventData { +export interface AndroidActivityEventData extends ApplicationEventData { /** * The activity. */ @@ -415,7 +415,7 @@ export interface AndroidActivityEventData { /** * Data for the Android activity events with bundle. */ -export interface AndroidActivityBundleEventData extends AndroidActivityEventData { +export interface AndroidActivityBundleEventData extends AndroidActivityEventData { /** * The bundle. */ @@ -425,7 +425,7 @@ export interface AndroidActivityBundleEventData extends AndroidActivityEventData /** * Data for the Android activity onRequestPermissions callback */ -export interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData { +export interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData { /** * The request code. */ @@ -445,7 +445,7 @@ export interface AndroidActivityRequestPermissionsEventData extends AndroidActiv /** * Data for the Android activity result event. */ -export interface AndroidActivityResultEventData extends AndroidActivityEventData { +export interface AndroidActivityResultEventData extends AndroidActivityEventData { /** * The request code. */ @@ -465,7 +465,7 @@ export interface AndroidActivityResultEventData extends AndroidActivityEventData /** * Data for the Android activity newIntent event. */ -export interface AndroidActivityNewIntentEventData extends AndroidActivityEventData { +export interface AndroidActivityNewIntentEventData extends AndroidActivityEventData { /** * The intent. */ @@ -475,7 +475,7 @@ export interface AndroidActivityNewIntentEventData extends AndroidActivityEventD /** * Data for the Android activity back pressed event. */ -export interface AndroidActivityBackPressedEventData extends AndroidActivityEventData { +export interface AndroidActivityBackPressedEventData extends AndroidActivityEventData { /** * In the event handler, set this value to true if you want to cancel the back navigation and do something else instead. */ @@ -548,62 +548,62 @@ export class AndroidApplication extends Observable { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: AndroidActivityEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityCreated. */ - on(event: 'activityCreated', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; + on(event: 'activityCreated', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityDestroyed. */ - on(event: 'activityDestroyed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityDestroyed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityStarted. */ - on(event: 'activityStarted', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityStarted', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityPaused. */ - on(event: 'activityPaused', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityPaused', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityResumed. */ - on(event: 'activityResumed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityResumed', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityStopped. */ - on(event: 'activityStopped', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; + on(event: 'activityStopped', callback: (args: AndroidActivityEventData) => void, thisArg?: any): void; /** * This event is raised on android application SaveActivityState. */ - on(event: 'saveActivityState', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; + on(event: 'saveActivityState', callback: (args: AndroidActivityBundleEventData) => void, thisArg?: any): void; /** * This event is raised on android application ActivityResult. */ - on(event: 'activityResult', callback: (args: AndroidActivityResultEventData) => void, thisArg?: any): void; + on(event: 'activityResult', callback: (args: AndroidActivityResultEventData) => void, thisArg?: any): void; /** * This event is raised on the back button is pressed in an android application. */ - on(event: 'activityBackPressed', callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any): void; + on(event: 'activityBackPressed', callback: (args: AndroidActivityBackPressedEventData) => void, thisArg?: any): void; /** * This event is raised when the Android app was launched by an Intent with data. */ - on(event: 'activityNewIntent', callback: (args: AndroidActivityNewIntentEventData) => void, thisArg?: any): void; + on(event: 'activityNewIntent', callback: (args: AndroidActivityNewIntentEventData) => void, thisArg?: any): void; /** * This event is raised when the Android activity requests permissions. */ - on(event: 'activityRequestPermissions', callback: (args: AndroidActivityRequestPermissionsEventData) => void, thisArg?: any): void; + on(event: 'activityRequestPermissions', callback: (args: AndroidActivityRequestPermissionsEventData) => void, thisArg?: any): void; /** * String value used when hooking to activityCreated event. @@ -754,6 +754,6 @@ export function getNativeApplication(): any; */ export function hasLaunched(): boolean; -export interface LoadAppCSSEventData extends EventData { +export interface LoadAppCSSEventData extends EventData { cssFile: string; } diff --git a/packages/core/data/observable-array/index.ts b/packages/core/data/observable-array/index.ts index 03a5d7e18a..d30ce45167 100644 --- a/packages/core/data/observable-array/index.ts +++ b/packages/core/data/observable-array/index.ts @@ -13,7 +13,7 @@ export class ChangeType { /** * Event args for "changed" event. */ -export interface ChangedData extends EventData { +export interface ChangedData extends EventData { /** * Change type. */ @@ -429,7 +429,7 @@ export interface ObservableArray { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'change', callback: (args: ChangedData) => void, thisArg?: any): void; + on(event: 'change', callback: (args: ChangedData) => void, thisArg?: any): void; } diff --git a/packages/core/data/observable/index.ts b/packages/core/data/observable/index.ts index 5fd348d91f..ac9b6d3285 100644 --- a/packages/core/data/observable/index.ts +++ b/packages/core/data/observable/index.ts @@ -3,7 +3,7 @@ import { Optional } from '../../utils/typescript-utils'; /** * Base event data. */ -export interface EventData { +export interface EventData { /** * The name of the event. */ @@ -11,17 +11,17 @@ export interface EventData { /** * The Observable instance that has raised the event. */ - object: Observable; + object: T; } -export interface EventDataValue extends EventData { +export interface EventDataValue extends EventData { value?: boolean; } /** * Data for the "propertyChange" event. */ -export interface PropertyChangeData extends EventData { +export interface PropertyChangeData extends EventData { /** * The name of the property that has changed. */ @@ -36,8 +36,8 @@ export interface PropertyChangeData extends EventData { oldValue?: any; } -interface ListenerEntry { - callback: (data: EventData) => void; +interface ListenerEntry { + callback(data: EventData): void; thisArg: any; once?: true; } @@ -146,7 +146,7 @@ export class Observable { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - public on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void { + public on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void { this.addEventListener(eventNames, callback, thisArg); } @@ -156,7 +156,7 @@ export class Observable { * @param callback A function to be called when the specified event is raised. * @param thisArg An optional parameter which when set will be used as "this" in callback method call. */ - public once(event: string, callback: (data: EventData) => void, thisArg?: any): void { + public once(event: string, callback: (data: EventData) => void, thisArg?: any): void { if (typeof event !== 'string') { throw new TypeError('Event must be string.'); } @@ -172,7 +172,7 @@ export class Observable { /** * Shortcut alias to the removeEventListener method. */ - public off(eventNames: string, callback?: (data: EventData) => void, thisArg?: any): void { + public off(eventNames: string, callback?: (data: EventData) => void, thisArg?: any): void { this.removeEventListener(eventNames, callback, thisArg); } @@ -182,7 +182,7 @@ export class Observable { * @param callback A function to be called when some of the specified event(s) is raised. * @param thisArg An optional parameter which when set will be used as "this" in callback method call. */ - public addEventListener(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void { + public addEventListener(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void { if (typeof eventNames !== 'string') { throw new TypeError('Events name(s) must be string.'); } @@ -209,7 +209,7 @@ export class Observable { * @param callback An optional parameter pointing to a specific listener. If not defined, all listeners for the event names will be removed. * @param thisArg An optional parameter which when set will be used to refine search of the correct callback which will be removed as event listener. */ - public removeEventListener(eventNames: string, callback?: (data: EventData) => void, thisArg?: any): void { + public removeEventListener(eventNames: string, callback?: (data: EventData) => void, thisArg?: any): void { if (typeof eventNames !== 'string') { throw new TypeError('Events name(s) must be string.'); } @@ -239,11 +239,11 @@ export class Observable { } } - public static on(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { + public static on(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { this.addEventListener(eventName, callback, thisArg); } - public static once(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { + public static once(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { if (typeof eventName !== 'string') { throw new TypeError('Event must be string.'); } @@ -262,11 +262,11 @@ export class Observable { _globalEventHandlers[eventClass][eventName].push({ callback, thisArg, once: true }); } - public static off(eventName: string, callback?: (data: EventData) => void, thisArg?: any): void { + public static off(eventName: string, callback?: (data: EventData) => void, thisArg?: any): void { this.removeEventListener(eventName, callback, thisArg); } - public static removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: any): void { + public static removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: any): void { if (typeof eventName !== 'string') { throw new TypeError('Event must be string.'); } @@ -314,7 +314,7 @@ export class Observable { } } - public static addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { + public static addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: any): void { if (typeof eventName !== 'string') { throw new TypeError('Event must be string.'); } @@ -333,7 +333,7 @@ export class Observable { _globalEventHandlers[eventClass][eventName].push({ callback, thisArg }); } - private _globalNotify(eventClass: string, eventType: string, data: T): void { + private _globalNotify, O extends Observable = Observable>(eventClass: string, eventType: string, data: E): void { // Check for the Global handlers for JUST this class if (_globalEventHandlers[eventClass]) { const event = data.eventName + eventType; @@ -362,8 +362,8 @@ export class Observable { * an optional 'object' property. If left undefined, the 'object' property * will implicitly be set as this Observable instance. */ - public notify>(data: T): void { - data.object = data.object || this; + public notify, 'object'>, O extends Observable = Observable>(data: E): void { + data.object = data.object || (this as unknown as O); const dataWithObject = data as EventData; const eventClass = this.constructor.name; @@ -377,7 +377,7 @@ export class Observable { this._globalNotify(eventClass, '', dataWithObject); } - private static _handleEvent(observers: Array, data: T): void { + private static _handleEvent, O extends Observable = Observable>(observers: Array, data: E): void { if (!observers) { return; } @@ -456,7 +456,7 @@ export class Observable { return list; } - private static _indexOfListener(list: Array, callback: (data: EventData) => void, thisArg?: any): number { + private static _indexOfListener(list: Array, callback: (data: EventData) => void, thisArg?: any): number { for (let i = 0; i < list.length; i++) { const entry = list[i]; if (thisArg) { @@ -478,7 +478,7 @@ export interface Observable { /** * Raised when a propertyChange occurs. */ - on(event: 'propertyChange', callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'propertyChange', callback: (data: EventData) => void, thisArg?: any): void; /** * Updates the specified property with the provided value. diff --git a/packages/core/data/virtual-array/index.ts b/packages/core/data/virtual-array/index.ts index bf16e47287..af7e8cec33 100644 --- a/packages/core/data/virtual-array/index.ts +++ b/packages/core/data/virtual-array/index.ts @@ -4,7 +4,7 @@ import { ChangedData, ChangeType } from '../observable-array'; /** * Event args for "itemsLoading" event. */ -export interface ItemsLoading extends EventData { +export interface ItemsLoading extends EventData { /** * Start index. */ @@ -188,13 +188,13 @@ export interface VirtualArray { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when still not loaded items are requested. */ - on(event: 'itemsLoading', callback: (args: ItemsLoading) => void, thisArg?: any): void; + on(event: 'itemsLoading', callback: (args: ItemsLoading) => void, thisArg?: any): void; /** * Raised when a change occurs. */ - on(event: 'change', callback: (args: ChangedData) => void, thisArg?: any): void; + on(event: 'change', callback: (args: ChangedData) => void, thisArg?: any): void; } diff --git a/packages/core/ui/button/index.d.ts b/packages/core/ui/button/index.d.ts index 759307bf69..767eb480ea 100644 --- a/packages/core/ui/button/index.d.ts +++ b/packages/core/ui/button/index.d.ts @@ -31,10 +31,10 @@ export class Button extends TextBase { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when a tap event occurs. */ - on(event: 'tap', callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'tap', callback: (args: EventData) => void, thisArg?: any): void; } diff --git a/packages/core/ui/core/view/index.android.ts b/packages/core/ui/core/view/index.android.ts index 8a0efda66e..527fe47ada 100644 --- a/packages/core/ui/core/view/index.android.ts +++ b/packages/core/ui/core/view/index.android.ts @@ -8,7 +8,7 @@ import { paddingLeftProperty, paddingTopProperty, paddingRightProperty, paddingB import { layout } from '../../../utils'; import { Trace } from '../../../trace'; import { ShowModalOptions, hiddenProperty } from '../view-base'; -import { EventData } from '../../../data/observable'; +import { EventData, Observable } from '../../../data/observable'; import { perspectiveProperty, visibilityProperty, opacityProperty, horizontalAlignmentProperty, verticalAlignmentProperty, minWidthProperty, minHeightProperty, widthProperty, heightProperty, marginLeftProperty, marginTopProperty, marginRightProperty, marginBottomProperty, rotateProperty, rotateXProperty, rotateYProperty, scaleXProperty, scaleYProperty, translateXProperty, translateYProperty, zIndexProperty, backgroundInternalProperty, androidElevationProperty, androidDynamicElevationOffsetProperty } from '../../styling/style-properties'; import { CoreTypes } from '../../../core-types'; @@ -335,14 +335,14 @@ export class View extends ViewCommon { } // TODO: Implement unobserve that detach the touchListener. - _observe(type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void { + _observe(type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void { super._observe(type, callback, thisArg); if (this.isLoaded && !this.touchListenerIsSet) { this.setOnTouchListener(); } } - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any) { + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any) { super.on(eventNames, callback, thisArg); const isLayoutEvent = typeof eventNames === 'string' ? eventNames.indexOf(ViewCommon.layoutChangedEvent) !== -1 : false; @@ -351,7 +351,7 @@ export class View extends ViewCommon { } } - off(eventNames: string, callback?: (data: EventData) => void, thisArg?: any) { + off(eventNames: string, callback?: (data: EventData) => void, thisArg?: any) { super.off(eventNames, callback, thisArg); const isLayoutEvent = typeof eventNames === 'string' ? eventNames.indexOf(ViewCommon.layoutChangedEvent) !== -1 : false; diff --git a/packages/core/ui/core/view/index.d.ts b/packages/core/ui/core/view/index.d.ts index 7b4778ddd1..a950877680 100644 --- a/packages/core/ui/core/view/index.d.ts +++ b/packages/core/ui/core/view/index.d.ts @@ -83,7 +83,7 @@ export interface Size { /** * Defines the data for the shownModally event. */ -export interface ShownModallyData extends EventData { +export interface ShownModallyData extends EventData { /** * The context (optional, may be undefined) passed to the view when shown modally. */ @@ -585,7 +585,7 @@ export abstract class View extends ViewCommon { * @param callback An optional parameter pointing to a specific listener. If not defined, all listeners for the event names will be removed. * @param thisArg An optional parameter which when set will be used to refine search of the correct callback which will be removed as event listener. */ - off(eventNames: string | GestureTypes, callback?: (args: EventData) => void, thisArg?: any); + off(eventNames: string | GestureTypes, callback?: (args: EventData) => void, thisArg?: any); /** * A basic method signature to hook an event listener (shortcut alias to the addEventListener method). @@ -593,33 +593,33 @@ export abstract class View extends ViewCommon { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string | GestureTypes, callback: (args: EventData) => void, thisArg?: any); + on(eventNames: string | GestureTypes, callback: (args: EventData) => void, thisArg?: any); /** * Raised when a loaded event occurs. */ - on(event: 'loaded', callback: (args: EventData) => void, thisArg?: any); + on(event: 'loaded', callback: (args: EventData) => void, thisArg?: any); /** * Raised when an unloaded event occurs. */ - on(event: 'unloaded', callback: (args: EventData) => void, thisArg?: any); + on(event: 'unloaded', callback: (args: EventData) => void, thisArg?: any); /** * Raised when a back button is pressed. * This event is raised only for android. */ - on(event: 'androidBackPressed', callback: (args: EventData) => void, thisArg?: any); + on(event: 'androidBackPressed', callback: (args: EventData) => void, thisArg?: any); /** * Raised before the view is shown as a modal dialog. */ - on(event: 'showingModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; + on(event: 'showingModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; /** * Raised after the view is shown as a modal dialog. */ - on(event: 'shownModally', callback: (args: ShownModallyData) => void, thisArg?: any); + on(event: 'shownModally', callback: (args: ShownModallyData) => void, thisArg?: any); /** * Returns the current modal view that this page is showing (is parent of), if any. diff --git a/packages/core/ui/core/view/view-common.ts b/packages/core/ui/core/view/view-common.ts index a166daf044..d54282d551 100644 --- a/packages/core/ui/core/view/view-common.ts +++ b/packages/core/ui/core/view/view-common.ts @@ -7,7 +7,7 @@ import { layout } from '../../../utils'; import { isObject } from '../../../utils/types'; import { Color } from '../../../color'; import { Property, InheritedProperty } from '../properties'; -import { EventData } from '../../../data/observable'; +import { EventData, Observable } from '../../../data/observable'; import { Trace } from '../../../trace'; import { CoreTypes } from '../../../core-types'; import { ViewHelper } from './view-helper'; @@ -253,7 +253,7 @@ export abstract class ViewCommon extends ViewBase implements ViewDefinition { } } - _observe(type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void { + _observe(type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void { if (!this._gestureObservers[type]) { this._gestureObservers[type] = []; } @@ -265,7 +265,7 @@ export abstract class ViewCommon extends ViewBase implements ViewDefinition { return this._gestureObservers[type]; } - public addEventListener(arg: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any) { + public addEventListener(arg: string | GestureTypes, callback: (data: EventData) => void, thisArg?: any) { if (typeof arg === 'string') { arg = getEventOrGestureName(arg); @@ -289,11 +289,11 @@ export abstract class ViewCommon extends ViewBase implements ViewDefinition { } } } else if (typeof arg === 'number') { - this._observe(arg, callback, thisArg); + this._observe(arg, callback, thisArg); } } - public removeEventListener(arg: string | GestureTypes, callback?: (data: EventData) => void, thisArg?: any) { + public removeEventListener(arg: string | GestureTypes, callback?: (data: EventData) => void, thisArg?: any) { if (typeof arg === 'string') { const gesture = gestureFromString(arg); if (gesture && !this._isEvent(arg)) { diff --git a/packages/core/ui/frame/index.d.ts b/packages/core/ui/frame/index.d.ts index 8a91ec2c7c..41da5ac521 100644 --- a/packages/core/ui/frame/index.d.ts +++ b/packages/core/ui/frame/index.d.ts @@ -6,7 +6,7 @@ import { Transition } from '../transition'; export * from './frame-interfaces'; -export interface NavigationData extends EventData { +export interface NavigationData extends EventData { entry?: NavigationEntry; fromEntry?: NavigationEntry; isBack?: boolean; @@ -221,17 +221,17 @@ export class Frame extends FrameBase { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; /** * Raised when navigation to the page has started. */ - public on(event: 'navigatingTo', callback: (args: NavigationData) => void, thisArg?: any): void; + public on(event: 'navigatingTo', callback: (args: NavigationData) => void, thisArg?: any): void; /** * Raised when navigation to the page has finished. */ - public on(event: 'navigatedTo', callback: (args: NavigationData) => void, thisArg?: any): void; + public on(event: 'navigatedTo', callback: (args: NavigationData) => void, thisArg?: any): void; } /** diff --git a/packages/core/ui/gestures/index.d.ts b/packages/core/ui/gestures/index.d.ts index b18e8b15cc..759d2931ea 100644 --- a/packages/core/ui/gestures/index.d.ts +++ b/packages/core/ui/gestures/index.d.ts @@ -132,7 +132,7 @@ export namespace TouchAction { /** * Provides gesture event data. */ -export interface GestureEventData extends EventData { +export interface GestureEventData extends EventData { /** * Gets the type of the gesture. */ @@ -154,7 +154,7 @@ export interface GestureEventData extends EventData { /** * Provides gesture event data. */ -export interface TapGestureEventData extends GestureEventData { +export interface TapGestureEventData extends GestureEventData { /** * Gets the number of pointers in the event. */ @@ -172,7 +172,7 @@ export interface TapGestureEventData extends GestureEventData { /** * Provides gesture event data. */ -export interface TouchGestureEventData extends TapGestureEventData { +export interface TouchGestureEventData extends TapGestureEventData { /** * Gets action of the touch. Possible values: 'up', 'move', 'down', 'cancel' */ @@ -241,14 +241,14 @@ export interface Pointer { /** * Provides gesture event data. */ -export interface GestureEventDataWithState extends GestureEventData { +export interface GestureEventDataWithState extends GestureEventData { state: number; } /** * Provides gesture event data for pinch gesture. */ -export interface PinchGestureEventData extends GestureEventDataWithState { +export interface PinchGestureEventData extends GestureEventDataWithState { scale: number; getFocusX(): number; @@ -258,14 +258,14 @@ export interface PinchGestureEventData extends GestureEventDataWithState { /** * Provides gesture event data for swipe gesture. */ -export interface SwipeGestureEventData extends GestureEventData { +export interface SwipeGestureEventData extends GestureEventData { direction: SwipeDirection; } /** * Provides gesture event data for pan gesture. */ -export interface PanGestureEventData extends GestureEventDataWithState { +export interface PanGestureEventData extends GestureEventDataWithState { deltaX: number; deltaY: number; } @@ -273,32 +273,32 @@ export interface PanGestureEventData extends GestureEventDataWithState { /** * Provides gesture event data for rotation gesture. */ -export interface RotationGestureEventData extends GestureEventDataWithState { +export interface RotationGestureEventData extends GestureEventDataWithState { rotation: number; } /** * Provides options for the GesturesObserver. */ -export class GesturesObserver { +export class GesturesObserver { /** * Creates an instance of GesturesObserver class. * @param target - The view for which the observer is created. * @param callback - A function that will be executed when a gesture is received. * @param context - default this argument for the callbacks. */ - constructor(target: View, callback: (args: GestureEventData) => void, context: any); + constructor(target: View, callback: (args: GestureEventData) => void, context: any); /** * Registers a gesture observer to a view and gesture. * @param type - Type of the gesture. */ - observe(type: GestureTypes); + observe(type: GestureTypes); /** * Disconnects the gesture observer. */ - disconnect(); + disconnect(); /** * Gesture type attached to the observer. @@ -308,7 +308,7 @@ export class GesturesObserver { /** * A function that will be executed when a gesture is received. */ - callback: (args: GestureEventData) => void; + callback: (args: GestureEventData) => void; /** * A context which will be used as `this` in callback execution. @@ -328,7 +328,7 @@ export class GesturesObserver { * @param callback - A function that will be executed when a gesture is received. * @param context - this argument for the callback. */ -export function observe(target: View, type: GestureTypes, callback: (args: GestureEventData) => void, context?: any): GesturesObserver; +export function observe(target: View, type: GestureTypes, callback: (args: GestureEventData) => void, context?: any): GesturesObserver; /** * Returns a string representation of a gesture type. diff --git a/packages/core/ui/gestures/index.ios.ts b/packages/core/ui/gestures/index.ios.ts index 82b2aa804e..28ba4ecbb5 100644 --- a/packages/core/ui/gestures/index.ios.ts +++ b/packages/core/ui/gestures/index.ios.ts @@ -2,7 +2,7 @@ import { GestureEventData, TapGestureEventData, GestureEventDataWithState, SwipeGestureEventData, PanGestureEventData, RotationGestureEventData, PinchGestureEventData } from '.'; import { View } from '../core/view'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; // Types. import { GesturesObserverBase, toString, TouchAction, GestureStateTypes, GestureTypes, SwipeDirection, GestureEvents } from './gestures-common'; @@ -53,7 +53,7 @@ class UIGestureRecognizerImpl extends NSObject { private _callback: Function; private _context: any; - public static initWithOwnerTypeCallback(owner: WeakRef, type: any, callback?: Function, thisArg?: any): UIGestureRecognizerImpl { + public static initWithOwnerTypeCallback(owner: WeakRef, type: any, callback?: (args: GestureEventData) => void, thisArg?: any): UIGestureRecognizerImpl { const handler = UIGestureRecognizerImpl.new(); handler._owner = owner; handler._type = type; @@ -320,7 +320,7 @@ export class GesturesObserver extends GesturesObserverBase { } } -function _createUIGestureRecognizerTarget(owner: GesturesObserver, type: GestureTypes, callback?: (args: GestureEventData) => void, context?: any): any { +function _createUIGestureRecognizerTarget(owner: GesturesObserver, type: GestureTypes, callback?: (args: GestureEventData) => void, context?: any): any { return UIGestureRecognizerImpl.initWithOwnerTypeCallback(new WeakRef(owner), type, callback, context); } diff --git a/packages/core/ui/image-cache/image-cache-common.ts b/packages/core/ui/image-cache/image-cache-common.ts index dfad03bb5c..6abab86c16 100644 --- a/packages/core/ui/image-cache/image-cache-common.ts +++ b/packages/core/ui/image-cache/image-cache-common.ts @@ -215,7 +215,7 @@ export class Cache extends Observable implements definition.Cache { } } export interface Cache { - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; - on(event: 'downloaded', callback: (args: definition.DownloadedData) => void, thisArg?: any): void; - on(event: 'downloadError', callback: (args: definition.DownloadError) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'downloaded', callback: (args: definition.DownloadedData) => void, thisArg?: any): void; + on(event: 'downloadError', callback: (args: definition.DownloadError) => void, thisArg?: any): void; } diff --git a/packages/core/ui/image-cache/index.d.ts b/packages/core/ui/image-cache/index.d.ts index 774b5b11b7..468567fa70 100644 --- a/packages/core/ui/image-cache/index.d.ts +++ b/packages/core/ui/image-cache/index.d.ts @@ -85,17 +85,17 @@ export class Cache extends Observable { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; /** * Raised when the image has been downloaded. */ - on(event: 'downloaded', callback: (args: DownloadedData) => void, thisArg?: any): void; + on(event: 'downloaded', callback: (args: DownloadedData) => void, thisArg?: any): void; /** * Raised if the image download errors. */ - on(event: 'downloadError', callback: (args: DownloadError) => void, thisArg?: any): void; + on(event: 'downloadError', callback: (args: DownloadError) => void, thisArg?: any): void; //@private /** @@ -117,7 +117,7 @@ export class Cache extends Observable { /** * Provides data for downloaded event. */ -export interface DownloadedData extends EventData { +export interface DownloadedData extends EventData { /** * A string indentifier of the cached image. */ @@ -131,7 +131,7 @@ export interface DownloadedData extends EventData { /** * Provides data for download error. */ -export interface DownloadError extends EventData { +export interface DownloadError extends EventData { /** * A string indentifier of the cached image. */ diff --git a/packages/core/ui/list-view/index.d.ts b/packages/core/ui/list-view/index.d.ts index 6b9e96178d..525967be68 100644 --- a/packages/core/ui/list-view/index.d.ts +++ b/packages/core/ui/list-view/index.d.ts @@ -108,7 +108,7 @@ export class ListView extends View { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when a View for the data at the specified index should be created. @@ -116,23 +116,23 @@ export class ListView extends View { * Note, that the view property of the event data can be pre-initialized with * an old instance of a view, so that it can be reused. */ - on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; + on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; /** * Raised when an item inside the ListView is tapped. */ - on(event: 'itemTap', callback: (args: ItemEventData) => void, thisArg?: any): void; + on(event: 'itemTap', callback: (args: ItemEventData) => void, thisArg?: any): void; /** * Raised when the ListView is scrolled so that its last item is visible. */ - on(event: 'loadMoreItems', callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'loadMoreItems', callback: (args: EventData) => void, thisArg?: any): void; } /** * Event data containing information for the index and the view associated to a list view item. */ -export interface ItemEventData extends EventData { +export interface ItemEventData extends EventData { /** * The index of the item, for which the event is raised. */ @@ -164,8 +164,8 @@ export interface TemplatedItemsView { itemTemplate: string | Template; itemTemplates?: string | Array; refresh(): void; - on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; - off(event: 'itemLoading', callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; + off(event: 'itemLoading', callback: (args: EventData) => void, thisArg?: any): void; } /** diff --git a/packages/core/ui/list-view/list-view-common.ts b/packages/core/ui/list-view/list-view-common.ts index 25180a78f5..a1c2a3f485 100644 --- a/packages/core/ui/list-view/list-view-common.ts +++ b/packages/core/ui/list-view/list-view-common.ts @@ -154,10 +154,10 @@ export abstract class ListViewBase extends ContainerView implements ListViewDefi ListViewBase.prototype.recycleNativeView = 'auto'; export interface ListViewBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; - on(event: 'itemTap', callback: (args: ItemEventData) => void, thisArg?: any): void; - on(event: 'loadMoreItems', callback: (args: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'itemLoading', callback: (args: ItemEventData) => void, thisArg?: any): void; + on(event: 'itemTap', callback: (args: ItemEventData) => void, thisArg?: any): void; + on(event: 'loadMoreItems', callback: (args: EventData) => void, thisArg?: any): void; } /** diff --git a/packages/core/ui/page/index.d.ts b/packages/core/ui/page/index.d.ts index b7ca046471..7e98ff40e9 100644 --- a/packages/core/ui/page/index.d.ts +++ b/packages/core/ui/page/index.d.ts @@ -12,7 +12,7 @@ export * from './page-common'; /** * Defines the data for the page navigation events. */ -export interface NavigatedData extends EventData { +export interface NavigatedData extends EventData { /** * The navigation context (optional, may be undefined) passed to the page navigation events method. */ @@ -116,27 +116,27 @@ export declare class Page extends PageBase { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - public on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + public on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when navigation to the page has started. */ - public on(event: 'navigatingTo', callback: (args: NavigatedData) => void, thisArg?: any): void; + public on(event: 'navigatingTo', callback: (args: NavigatedData) => void, thisArg?: any): void; /** * Raised when navigation to the page has finished. */ - public on(event: 'navigatedTo', callback: (args: NavigatedData) => void, thisArg?: any): void; + public on(event: 'navigatedTo', callback: (args: NavigatedData) => void, thisArg?: any): void; /** * Raised when navigation from the page has started. */ - public on(event: 'navigatingFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; + public on(event: 'navigatingFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; /** * Raised when navigation from the page has finished. */ - public on(event: 'navigatedFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; + public on(event: 'navigatedFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; //@private /** diff --git a/packages/core/ui/page/page-common.ts b/packages/core/ui/page/page-common.ts index 195ec71b23..07d9b7bd28 100644 --- a/packages/core/ui/page/page-common.ts +++ b/packages/core/ui/page/page-common.ts @@ -5,14 +5,14 @@ import { booleanConverter } from '../core/view-base'; import { Property, CssProperty } from '../core/properties'; import { Style } from '../styling/style'; import { Color } from '../../color'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; import type { Frame } from '../frame'; import { isFrame } from '../frame/frame-helpers'; import { ActionBar } from '../action-bar'; import { KeyframeAnimationInfo } from '../animation/keyframe-animation'; import { profile } from '../../profiling'; -interface NavigatedData extends EventData { +interface NavigatedData extends EventData { context: any; isBackNavigation: boolean; } @@ -166,13 +166,13 @@ export class PageBase extends ContentView { PageBase.prototype.recycleNativeView = 'never'; export interface PageBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'navigatingTo', callback: (args: NavigatedData) => void, thisArg?: any): void; - on(event: 'navigatedTo', callback: (args: NavigatedData) => void, thisArg?: any): void; - on(event: 'navigatingFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; - on(event: 'navigatedFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; - on(event: 'showingModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; - on(event: 'shownModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'navigatingTo', callback: (args: NavigatedData) => void, thisArg?: any): void; + on(event: 'navigatedTo', callback: (args: NavigatedData) => void, thisArg?: any): void; + on(event: 'navigatingFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; + on(event: 'navigatedFrom', callback: (args: NavigatedData) => void, thisArg?: any): void; + on(event: 'showingModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; + on(event: 'shownModally', callback: (args: ShownModallyData) => void, thisArg?: any): void; } /** diff --git a/packages/core/ui/placeholder/index.android.ts b/packages/core/ui/placeholder/index.android.ts index ad7d56cf10..52c03a25df 100644 --- a/packages/core/ui/placeholder/index.android.ts +++ b/packages/core/ui/placeholder/index.android.ts @@ -1,6 +1,6 @@ import { CreateViewEventData } from './placeholder-common'; import { View, CSSType } from '../core/view'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; export * from './placeholder-common'; @@ -21,6 +21,6 @@ export class Placeholder extends View { } } export interface Placeholder { - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; - on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; } diff --git a/packages/core/ui/placeholder/index.d.ts b/packages/core/ui/placeholder/index.d.ts index 177fa46bba..dba9860ff2 100644 --- a/packages/core/ui/placeholder/index.d.ts +++ b/packages/core/ui/placeholder/index.d.ts @@ -1,5 +1,5 @@ import { View } from '../core/view'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; export * from './placeholder-common'; @@ -18,18 +18,18 @@ export class Placeholder extends View { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; /** * Raised when a creatingView event occurs. */ - on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; + on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; } /** * Event data containing information for creating a native view that will be added to the visual tree. */ -export interface CreateViewEventData extends EventData { +export interface CreateViewEventData extends EventData { /** * The native view that should be added to the visual tree. */ diff --git a/packages/core/ui/placeholder/index.ts b/packages/core/ui/placeholder/index.ts index edd598e4c1..c32d4bb714 100644 --- a/packages/core/ui/placeholder/index.ts +++ b/packages/core/ui/placeholder/index.ts @@ -1,6 +1,6 @@ import { View } from '../core/view'; import { CreateViewEventData } from './placeholder-common'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; export * from './placeholder-common'; @@ -20,6 +20,6 @@ export class Placeholder extends View { } } export interface Placeholder { - on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; - on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'creatingView', callback: (args: CreateViewEventData) => void, thisArg?: any): void; } diff --git a/packages/core/ui/placeholder/placeholder-common.ts b/packages/core/ui/placeholder/placeholder-common.ts index b94f5b91c3..68316cb323 100644 --- a/packages/core/ui/placeholder/placeholder-common.ts +++ b/packages/core/ui/placeholder/placeholder-common.ts @@ -1,6 +1,6 @@ -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; -export interface CreateViewEventData extends EventData { +export interface CreateViewEventData extends EventData { /** * The native view that should be added to the visual tree. */ diff --git a/packages/core/ui/scroll-view/index.d.ts b/packages/core/ui/scroll-view/index.d.ts index a6176a3813..b6596f544f 100644 --- a/packages/core/ui/scroll-view/index.d.ts +++ b/packages/core/ui/scroll-view/index.d.ts @@ -67,17 +67,17 @@ export class ScrollView extends ContentView { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when a scroll event occurs. */ - on(event: 'scroll', callback: (args: ScrollEventData) => void, thisArg?: any): void; + on(event: 'scroll', callback: (args: ScrollEventData) => void, thisArg?: any): void; _onOrientationChanged(): void; } -export interface ScrollEventData extends EventData { +export interface ScrollEventData extends EventData { scrollX: number; scrollY: number; } diff --git a/packages/core/ui/scroll-view/scroll-view-common.ts b/packages/core/ui/scroll-view/scroll-view-common.ts index 6e4e398066..ac15296202 100644 --- a/packages/core/ui/scroll-view/scroll-view-common.ts +++ b/packages/core/ui/scroll-view/scroll-view-common.ts @@ -4,7 +4,7 @@ import { profile } from '../../profiling'; import { Property, makeParser, makeValidator } from '../core/properties'; import { CSSType } from '../core/view'; import { booleanConverter } from '../core/view-base'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; import { CoreTypes } from '../../core-types'; @CSSType('ScrollView') @@ -16,7 +16,7 @@ export abstract class ScrollViewBase extends ContentView implements ScrollViewDe public scrollBarIndicatorVisible: boolean; public isScrollEnabled: boolean; - public addEventListener(arg: string, callback: (data: EventData) => void, thisArg?: any): void { + public addEventListener(arg: string, callback: (data: EventData) => void, thisArg?: any): void { super.addEventListener(arg, callback, thisArg); if (arg === ScrollViewBase.scrollEvent) { @@ -25,7 +25,7 @@ export abstract class ScrollViewBase extends ContentView implements ScrollViewDe } } - public removeEventListener(arg: string, callback?: (data: EventData) => void, thisArg?: any): void { + public removeEventListener(arg: string, callback?: (data: EventData) => void, thisArg?: any): void { super.removeEventListener(arg, callback, thisArg); if (arg === ScrollViewBase.scrollEvent) { @@ -87,8 +87,8 @@ export abstract class ScrollViewBase extends ContentView implements ScrollViewDe public abstract _onOrientationChanged(); } export interface ScrollViewBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'scroll', callback: (args: ScrollEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'scroll', callback: (args: ScrollEventData) => void, thisArg?: any): void; } const converter = makeParser(makeValidator(CoreTypes.Orientation.horizontal, CoreTypes.Orientation.vertical)); diff --git a/packages/core/ui/search-bar/index.d.ts b/packages/core/ui/search-bar/index.d.ts index 87dc902e4f..aeec434102 100644 --- a/packages/core/ui/search-bar/index.d.ts +++ b/packages/core/ui/search-bar/index.d.ts @@ -53,17 +53,17 @@ export class SearchBar extends View { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when a search bar search is submitted. */ - on(event: 'submit', callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'submit', callback: (args: EventData) => void, thisArg?: any): void; /** * Raised when a search bar search is closed. */ - on(event: 'close', callback: (args: EventData) => void, thisArg?: any): void; + on(event: 'close', callback: (args: EventData) => void, thisArg?: any): void; /** * Hides the soft input method, usually a soft keyboard. diff --git a/packages/core/ui/segmented-bar/index.d.ts b/packages/core/ui/segmented-bar/index.d.ts index 4a972513a7..5b92057323 100644 --- a/packages/core/ui/segmented-bar/index.d.ts +++ b/packages/core/ui/segmented-bar/index.d.ts @@ -18,7 +18,7 @@ export class SegmentedBarItem extends ViewBase { /** * Defines the data for the SegmentedBar.selectedIndexChanged event. */ -export interface SelectedIndexChangedEventData extends EventData { +export interface SelectedIndexChangedEventData extends EventData { /** * The old selected index. */ @@ -60,12 +60,12 @@ export class SegmentedBar extends View implements AddChildFromBuilder, AddArrayF * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when the selected index changes. */ - on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; + on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; /** * Called for every child element declared in xml. diff --git a/packages/core/ui/segmented-bar/segmented-bar-common.ts b/packages/core/ui/segmented-bar/segmented-bar-common.ts index d486dae0c4..b5f240d5d3 100644 --- a/packages/core/ui/segmented-bar/segmented-bar-common.ts +++ b/packages/core/ui/segmented-bar/segmented-bar-common.ts @@ -4,7 +4,7 @@ import { ViewBase } from '../core/view-base'; import { Property, CoercibleProperty, InheritedCssProperty } from '../core/properties'; import { Color } from '../../color'; import { Style } from '../styling/style'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; @CSSType('SegmentedBarItem') export abstract class SegmentedBarItemBase extends ViewBase implements SegmentedBarItemDefinition { @@ -89,8 +89,8 @@ export abstract class SegmentedBarBase extends View implements SegmentedBarDefin } export interface SegmentedBarBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; } SegmentedBarBase.prototype.recycleNativeView = 'auto'; diff --git a/packages/core/ui/slider/index.d.ts b/packages/core/ui/slider/index.d.ts index b418b82eee..65cecd75ab 100644 --- a/packages/core/ui/slider/index.d.ts +++ b/packages/core/ui/slider/index.d.ts @@ -61,12 +61,12 @@ export const maxValueProperty: CoercibleProperty; */ export const accessibilityStepProperty: Property; -interface AccessibilityIncrementEventData extends EventData { +interface AccessibilityIncrementEventData extends EventData { object: Slider; value?: number; } -interface AccessibilityDecrementEventData extends EventData { +interface AccessibilityDecrementEventData extends EventData { object: Slider; value?: number; } diff --git a/packages/core/ui/tab-view/index.d.ts b/packages/core/ui/tab-view/index.d.ts index 47fa963031..56918da237 100644 --- a/packages/core/ui/tab-view/index.d.ts +++ b/packages/core/ui/tab-view/index.d.ts @@ -42,7 +42,7 @@ export class TabViewItem extends ViewBase { /** * Defines the data for the TabView.selectedIndexChanged event. */ -export interface SelectedIndexChangedEventData extends EventData { +export interface SelectedIndexChangedEventData extends EventData { /** * The old selected index. */ @@ -150,12 +150,12 @@ export class TabView extends View { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when the selected index changes. */ - on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; + on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; } export const itemsProperty: Property; diff --git a/packages/core/ui/tab-view/tab-view-common.ts b/packages/core/ui/tab-view/tab-view-common.ts index eac13467e7..969f85f807 100644 --- a/packages/core/ui/tab-view/tab-view-common.ts +++ b/packages/core/ui/tab-view/tab-view-common.ts @@ -2,7 +2,7 @@ import { TabView as TabViewDefinition, TabViewItem as TabViewItemDefinition, Sel import { View, AddArrayFromBuilder, AddChildFromBuilder, CSSType } from '../core/view'; import { ViewBase, booleanConverter } from '../core/view-base'; import { Style } from '../styling/style'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; import { Color } from '../../color'; import { Property, CssProperty, CoercibleProperty } from '../core/properties'; import { CoreTypes } from '../../core-types'; @@ -205,8 +205,8 @@ export class TabViewBase extends View implements TabViewDefinition, AddChildFrom } export interface TabViewBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void; } export function traceMissingIcon(icon: string) { diff --git a/packages/core/ui/text-base/span.ts b/packages/core/ui/text-base/span.ts index da3130b256..8438559602 100644 --- a/packages/core/ui/text-base/span.ts +++ b/packages/core/ui/text-base/span.ts @@ -3,7 +3,7 @@ import { Span as SpanDefinition } from './span'; import { ViewBase } from '../core/view-base'; import { FontStyleType, FontWeightType } from '../styling/font'; import { CoreTypes } from '../../core-types'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; import { isNullOrUndefined, isString } from '../../utils/types'; export class Span extends ViewBase implements SpanDefinition { @@ -81,12 +81,12 @@ export class Span extends ViewBase implements SpanDefinition { return this._tappable; } - addEventListener(arg: string, callback: (data: EventData) => void, thisArg?: any): void { + addEventListener(arg: string, callback: (data: EventData) => void, thisArg?: any): void { super.addEventListener(arg, callback, thisArg); this._setTappable(this.hasListeners(Span.linkTapEvent)); } - removeEventListener(arg: string, callback?: (data: EventData) => void, thisArg?: any): void { + removeEventListener(arg: string, callback?: (data: EventData) => void, thisArg?: any): void { super.removeEventListener(arg, callback, thisArg); this._setTappable(this.hasListeners(Span.linkTapEvent)); } diff --git a/packages/core/ui/web-view/index.d.ts b/packages/core/ui/web-view/index.d.ts index ef3a3a8106..1a8097ead5 100644 --- a/packages/core/ui/web-view/index.d.ts +++ b/packages/core/ui/web-view/index.d.ts @@ -92,23 +92,23 @@ export class WebView extends View { * @param callback - Callback function which will be executed when event is raised. * @param thisArg - An optional parameter which will be used as `this` context for callback execution. */ - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; /** * Raised when a loadFinished event occurs. */ - on(event: 'loadFinished', callback: (args: LoadEventData) => void, thisArg?: any): void; + on(event: 'loadFinished', callback: (args: LoadEventData) => void, thisArg?: any): void; /** * Raised when a loadStarted event occurs. */ - on(event: 'loadStarted', callback: (args: LoadEventData) => void, thisArg?: any): void; + on(event: 'loadStarted', callback: (args: LoadEventData) => void, thisArg?: any): void; } /** * Event data containing information for the loading events of a WebView. */ -export interface LoadEventData extends EventData { +export interface LoadEventData extends EventData { /** * Gets the url of the web-view. */ diff --git a/packages/core/ui/web-view/web-view-common.ts b/packages/core/ui/web-view/web-view-common.ts index 9c95a6045b..6c276f5dd3 100644 --- a/packages/core/ui/web-view/web-view-common.ts +++ b/packages/core/ui/web-view/web-view-common.ts @@ -1,7 +1,7 @@ import { LoadEventData, WebViewNavigationType } from './web-view-interfaces'; import { ContainerView, CSSType } from '../core/view'; import { Property } from '../core/properties'; -import { EventData } from '../../data/observable'; +import { EventData, Observable } from '../../data/observable'; import { knownFolders } from '../../file-system'; import { booleanConverter } from '../core/view-base'; @@ -29,7 +29,7 @@ export abstract class WebViewBase extends ContainerView { error: error, }; - this.notify(args); + this.notify(args); } public _onLoadStarted(url: string, navigationType: WebViewNavigationType) { @@ -41,7 +41,7 @@ export abstract class WebViewBase extends ContainerView { error: undefined, }; - this.notify(args); + this.notify(args); } abstract _loadUrl(src: string): void; @@ -101,9 +101,9 @@ export abstract class WebViewBase extends ContainerView { // HACK: We declare all these 'on' statements, so that they can appear in the API reference // HACK: Do we need this? Is it useful? There are static fields to the WebViewBase class for the event names. export interface WebViewBase { - on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; - on(event: 'loadFinished', callback: (args: LoadEventData) => void, thisArg?: any): void; - on(event: 'loadStarted', callback: (args: LoadEventData) => void, thisArg?: any): void; + on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void; + on(event: 'loadFinished', callback: (args: LoadEventData) => void, thisArg?: any): void; + on(event: 'loadStarted', callback: (args: LoadEventData) => void, thisArg?: any): void; } srcProperty.register(WebViewBase); diff --git a/packages/core/ui/web-view/web-view-interfaces.ts b/packages/core/ui/web-view/web-view-interfaces.ts index 44e4262fe7..3d14164b6a 100644 --- a/packages/core/ui/web-view/web-view-interfaces.ts +++ b/packages/core/ui/web-view/web-view-interfaces.ts @@ -1,9 +1,10 @@ -import { WebView } from '.'; -import { EventData } from '../../data/observable'; +import { WebViewBase } from './web-view-common'; +import { WebView } from '.'; +import { EventData, Observable } from '../../data/observable'; export type WebViewNavigationType = 'linkClicked' | 'formSubmitted' | 'backForward' | 'reload' | 'formResubmitted' | 'other' | undefined; -export interface LoadEventData extends EventData { +export interface LoadEventData extends EventData { url: string; navigationType: WebViewNavigationType; error: string;