diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 71320d95a7..d97ce6a294 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -1662,7 +1662,7 @@ declare global { /** * The event to pass to the popover animation. */ - 'ev': any; + 'event': any; 'keyboardClose': boolean; /** * Animation to use when the popover is dismissed. @@ -5169,7 +5169,7 @@ declare global { /** * The event to pass to the popover animation. */ - 'ev'?: any; + 'event'?: any; 'keyboardClose'?: boolean; /** * Animation to use when the popover is dismissed. diff --git a/core/src/components/action-sheet-controller/action-sheet-controller.tsx b/core/src/components/action-sheet-controller/action-sheet-controller.tsx index 26b5093012..d89477826e 100644 --- a/core/src/components/action-sheet-controller/action-sheet-controller.tsx +++ b/core/src/components/action-sheet-controller/action-sheet-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { ActionSheetOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { ActionSheetOptions, OverlayController } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-action-sheet-controller' diff --git a/core/src/components/alert-controller/alert-controller.tsx b/core/src/components/alert-controller/alert-controller.tsx index 7bbe01ac16..0b2ad831d3 100644 --- a/core/src/components/alert-controller/alert-controller.tsx +++ b/core/src/components/alert-controller/alert-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { AlertOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { AlertOptions, OverlayController } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-alert-controller' diff --git a/core/src/components/loading-controller/loading-controller.tsx b/core/src/components/loading-controller/loading-controller.tsx index e163591726..a2c7d8611c 100644 --- a/core/src/components/loading-controller/loading-controller.tsx +++ b/core/src/components/loading-controller/loading-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { LoadingOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { LoadingOptions, OverlayController } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-loading-controller' diff --git a/core/src/components/modal-controller/modal-controller.tsx b/core/src/components/modal-controller/modal-controller.tsx index 6c4bf9a8ad..196d02b93d 100644 --- a/core/src/components/modal-controller/modal-controller.tsx +++ b/core/src/components/modal-controller/modal-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { ModalOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { ModalOptions, OverlayController } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-modal-controller' diff --git a/core/src/components/picker-controller/picker-controller.tsx b/core/src/components/picker-controller/picker-controller.tsx index 654c9711a7..936f49f54f 100644 --- a/core/src/components/picker-controller/picker-controller.tsx +++ b/core/src/components/picker-controller/picker-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { PickerOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { OverlayController, PickerOptions } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; /** @hidden */ @Component({ diff --git a/core/src/components/popover-controller/popover-controller.tsx b/core/src/components/popover-controller/popover-controller.tsx index c24da23592..2a34ae00d5 100644 --- a/core/src/components/popover-controller/popover-controller.tsx +++ b/core/src/components/popover-controller/popover-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { PopoverOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { PopoverOptions, OverlayController } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-popover-controller' diff --git a/core/src/components/popover-controller/usage/javascript.md b/core/src/components/popover-controller/usage/javascript.md index a42c0f4b0e..a4c51c0ea8 100644 --- a/core/src/components/popover-controller/usage/javascript.md +++ b/core/src/components/popover-controller/usage/javascript.md @@ -5,7 +5,7 @@ async function presentPopover() { const popoverElement = await popoverController.create({ component: 'profile-page', - ev: event + event: event }); return await popoverElement.present(); } diff --git a/core/src/components/popover/popover-interface.ts b/core/src/components/popover/popover-interface.ts index 02cc625809..f5a3a9875c 100644 --- a/core/src/components/popover/popover-interface.ts +++ b/core/src/components/popover/popover-interface.ts @@ -9,6 +9,6 @@ export interface PopoverOptions { enterAnimation?: AnimationBuilder; leaveAnimation?: AnimationBuilder; cssClass?: string | string[]; - ev: Event; + event?: Event; delegate?: FrameworkDelegate; } diff --git a/core/src/components/popover/popover.tsx b/core/src/components/popover/popover.tsx index 52713b1cf0..ec74a09cd0 100644 --- a/core/src/components/popover/popover.tsx +++ b/core/src/components/popover/popover.tsx @@ -79,7 +79,7 @@ export class Popover implements OverlayInterface { /** * The event to pass to the popover animation. */ - @Prop() ev: any; + @Prop() event: any; /** * If true, a backdrop will be displayed behind the popover. Defaults to `true`. @@ -181,7 +181,7 @@ export class Popover implements OverlayInterface { popover: this.el }; this.usersElement = await attachComponent(this.delegate, container, this.component, ['popover-viewport'], data); - return present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, this.ev); + return present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, this.event); } /** @@ -189,7 +189,7 @@ export class Popover implements OverlayInterface { */ @Method() async dismiss(data?: any, role?: string): Promise { - await dismiss(this, data, role, 'popoverLeave', iosLeaveAnimation, mdLeaveAnimation, this.ev); + await dismiss(this, data, role, 'popoverLeave', iosLeaveAnimation, mdLeaveAnimation, this.event); await detachComponent(this.delegate, this.usersElement); } diff --git a/core/src/components/popover/test/basic/index.html b/core/src/components/popover/test/basic/index.html index ab6ce8a8be..c7901d17fd 100644 --- a/core/src/components/popover/test/basic/index.html +++ b/core/src/components/popover/test/basic/index.html @@ -15,7 +15,7 @@ - + @@ -24,9 +24,9 @@ - Show Popover - Show Translucent Popover - Show Long List Popover + Show Popover + Show Translucent Popover + Show Long List Popover No Event Popover @@ -35,7 +35,7 @@ - + diff --git a/core/src/components/popover/test/preview/index.html b/core/src/components/popover/test/preview/index.html index 255a12bae9..91a6590642 100644 --- a/core/src/components/popover/test/preview/index.html +++ b/core/src/components/popover/test/preview/index.html @@ -15,7 +15,7 @@ - + @@ -24,9 +24,9 @@ - Show Popover - Show Translucent Popover - Show Long List Popover + Show Popover + Show Translucent Popover + Show Long List Popover No Event Popover @@ -35,7 +35,7 @@ - + diff --git a/core/src/components/popover/test/standalone/index.html b/core/src/components/popover/test/standalone/index.html index 09dfd1aebc..b86559ea1f 100644 --- a/core/src/components/popover/test/standalone/index.html +++ b/core/src/components/popover/test/standalone/index.html @@ -10,9 +10,9 @@ - - - + + + diff --git a/core/src/components/popover/usage/angular.md b/core/src/components/popover/usage/angular.md index 3edd4cf119..225dffbf8e 100644 --- a/core/src/components/popover/usage/angular.md +++ b/core/src/components/popover/usage/angular.md @@ -14,7 +14,7 @@ export class PopoverExample { async presentPopover(ev: any) { const popover = await this.popoverController.create({ component: PopoverComponent, - ev: event, + event: event, translucent: true }); return await popover.present(); diff --git a/core/src/components/popover/usage/javascript.md b/core/src/components/popover/usage/javascript.md index 1e900fcc18..3fa2b9c764 100644 --- a/core/src/components/popover/usage/javascript.md +++ b/core/src/components/popover/usage/javascript.md @@ -5,8 +5,8 @@ async function presentPopover(ev) { const popover = await popoverController.create({ component: 'popover-example-page', - ev: event, translucent: true + event, }); return await popover.present(); } diff --git a/core/src/components/toast-controller/toast-controller.tsx b/core/src/components/toast-controller/toast-controller.tsx index 2ac2227c67..65e19d18d4 100644 --- a/core/src/components/toast-controller/toast-controller.tsx +++ b/core/src/components/toast-controller/toast-controller.tsx @@ -1,7 +1,7 @@ import { Component, Listen, Method, Prop } from '@stencil/core'; -import { ToastOptions } from '../../interface'; -import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; +import { OverlayController, ToastOptions } from '../../interface'; +import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays'; @Component({ tag: 'ion-toast-controller' diff --git a/core/src/interface.d.ts b/core/src/interface.d.ts index 3373bcb700..6ce2d423b8 100644 --- a/core/src/interface.d.ts +++ b/core/src/interface.d.ts @@ -26,7 +26,7 @@ export { Gesture, GestureDetail } from './utils/gesture/gesture'; export * from './utils/input-interface'; export * from './global/config'; -export { OverlayEventDetail, OverlayInterface } from './utils/overlays'; +export * from './utils/overlays-interface'; // Global types diff --git a/core/src/utils/overlays-interface.ts b/core/src/utils/overlays-interface.ts new file mode 100644 index 0000000000..8acbd2b73a --- /dev/null +++ b/core/src/utils/overlays-interface.ts @@ -0,0 +1,44 @@ +import { EventEmitter } from '@stencil/core'; + +import { Animation, AnimationBuilder, Config, Mode } from '../interface'; + +export interface OverlayEventDetail { + data?: T; + role?: string; +} + +export interface OverlayInterface { + mode: Mode; + el: HTMLElement; + willAnimate: boolean; + keyboardClose: boolean; + config: Config; + overlayId: number; + presented: boolean; + animation?: Animation; + animationCtrl: HTMLIonAnimationControllerElement; + + enterAnimation?: AnimationBuilder; + leaveAnimation?: AnimationBuilder; + + didPresent: EventEmitter; + willPresent: EventEmitter; + willDismiss: EventEmitter; + didDismiss: EventEmitter; + + present(): Promise; + dismiss(data?: any, role?: string): Promise; +} + +export interface OverlayController { + create(opts?: any): Promise; + dismiss(data?: any, role?: string, alertId?: number): Promise; + getTop(): HTMLElement; +} + +export interface HTMLIonOverlayElement extends HTMLStencilElement { + overlayId: number; + dismiss(data?: any, role?: string): Promise; +} + +export type OverlayMap = Map; diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index 896cfa8aa4..ed1ad46426 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -1,10 +1,8 @@ -import { EventEmitter } from '@stencil/core'; - -import { Animation, AnimationBuilder, Config, Mode } from '../interface'; +import { AnimationBuilder, HTMLIonOverlayElement, OverlayInterface, OverlayMap } from '../interface'; let lastId = 1; -export function createOverlay(element: T, opts: B): Promise { +export function createOverlay, B>(element: T, opts: B): Promise { // convert the passed in overlay options into props // that get passed down into the new overlay Object.assign(element, opts); @@ -160,45 +158,4 @@ export function isCancel(role: string | undefined): boolean { return role === 'cancel' || role === BACKDROP; } -export interface OverlayEventDetail { - data?: T; - role?: string; -} - -export interface OverlayInterface { - mode: Mode; - el: HTMLElement; - willAnimate: boolean; - keyboardClose: boolean; - config: Config; - overlayId: number; - presented: boolean; - animation?: Animation; - animationCtrl: HTMLIonAnimationControllerElement; - - enterAnimation?: AnimationBuilder; - leaveAnimation?: AnimationBuilder; - - didPresent: EventEmitter; - willPresent: EventEmitter; - willDismiss: EventEmitter; - didDismiss: EventEmitter; - - present(): Promise; - dismiss(data?: any, role?: string): Promise; -} - -export interface OverlayController { - create(opts?: any): Promise; - dismiss(data?: any, role?: string, alertId?: number): Promise; - getTop(): HTMLElement; -} - -export interface HTMLIonOverlayElement extends HTMLStencilElement { - overlayId: number; - dismiss(data?: any, role?: string): Promise; -} - -export type OverlayMap = Map; - export const BACKDROP = 'backdrop';