mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-17 02:31:34 +08:00
fix(overlays): OverlayController interface
This commit is contained in:
@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
import { proxyMethod } from '../util/util';
|
import { proxyMethod } from '../util/util';
|
||||||
|
|
||||||
|
|
||||||
export class OverlayBaseController<Opts, Overlay> {
|
export class OverlayBaseController<Opts, Overlay> {
|
||||||
constructor(private ctrl: string) {}
|
constructor(private ctrl: string) {}
|
||||||
|
|
||||||
@ -12,4 +10,8 @@ export class OverlayBaseController<Opts, Overlay> {
|
|||||||
dismiss(data?: any, role?: string, id = -1): Promise<void> {
|
dismiss(data?: any, role?: string, id = -1): Promise<void> {
|
||||||
return proxyMethod(this.ctrl, 'dismiss', data, role, id);
|
return proxyMethod(this.ctrl, 'dismiss', data, role, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getTop(): Promise<Overlay> {
|
||||||
|
return proxyMethod(this.ctrl, 'getTop');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function proxyMethod(ctrlName: string, methodName: string, ...args: any[]) {
|
export function proxyMethod(ctrlName: string, methodName: string, ...args: any[]) {
|
||||||
const controller = ensureElementInBody(ctrlName);
|
const controller = ensureElementInBody(ctrlName);
|
||||||
return controller.componentOnReady()
|
return controller.componentOnReady()
|
||||||
@ -15,18 +13,3 @@ export function ensureElementInBody(elementName: string) {
|
|||||||
}
|
}
|
||||||
return element as HTMLStencilElement;
|
return element as HTMLStencilElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function removeAllNodeChildren(element: HTMLElement) {
|
|
||||||
while (element.firstChild) {
|
|
||||||
element.removeChild(element.firstChild);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function isString(something: any) {
|
|
||||||
return typeof something === 'string' ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getIonApp(): Promise<HTMLIonAppElement> {
|
|
||||||
const element = ensureElementInBody('ion-app') as HTMLIonAppElement;
|
|
||||||
return element.componentOnReady();
|
|
||||||
}
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { ActionSheetOptions, OverlayController } from '../../index';
|
import { ActionSheetOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
tag: 'ion-action-sheet-controller'
|
tag: 'ion-action-sheet-controller'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { AlertOptions, OverlayController } from '../../index';
|
import { AlertOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
tag: 'ion-alert-controller'
|
tag: 'ion-alert-controller'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { LoadingOptions, OverlayController } from '../../index';
|
import { LoadingOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -19,7 +19,6 @@ import mdLeaveAnimation from './animations/md.leave';
|
|||||||
theme: 'loading'
|
theme: 'loading'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export class Loading implements OverlayInterface {
|
export class Loading implements OverlayInterface {
|
||||||
|
|
||||||
private durationTimeout: any;
|
private durationTimeout: any;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { ModalOptions, OverlayController } from '../../index';
|
import { ModalOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { OverlayController, PickerOptions } from '../../index';
|
import { PickerOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { OverlayController, PopoverOptions } from '../../index';
|
import { PopoverOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
tag: 'ion-popover-controller'
|
tag: 'ion-popover-controller'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Listen, Method } from '@stencil/core';
|
import { Component, Listen, Method } from '@stencil/core';
|
||||||
import { OverlayController, ToastOptions } from '../../index';
|
import { ToastOptions } from '../../index';
|
||||||
import { createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
import { OverlayController, createOverlay, dismissOverlay, getTopOverlay, removeLastOverlay } from '../../utils/overlays';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
5
core/src/index.d.ts
vendored
5
core/src/index.d.ts
vendored
@ -110,6 +110,7 @@ export * from './components';
|
|||||||
|
|
||||||
export { DomController, RafCallback } from './global/dom-controller';
|
export { DomController, RafCallback } from './global/dom-controller';
|
||||||
export { FrameworkDelegate, FrameworkMountingData } from './utils/dom-framework-delegate';
|
export { FrameworkDelegate, FrameworkMountingData } from './utils/dom-framework-delegate';
|
||||||
|
export { OverlayEventDetail } from './utils/overlays';
|
||||||
|
|
||||||
export interface Config {
|
export interface Config {
|
||||||
get: (key: string, fallback?: any) => any;
|
get: (key: string, fallback?: any) => any;
|
||||||
@ -157,7 +158,3 @@ declare global {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface OverlayController {
|
|
||||||
getTop(): HTMLElement;
|
|
||||||
}
|
|
||||||
|
@ -200,6 +200,12 @@ export interface OverlayInterface {
|
|||||||
dismiss(data?: any, role?: string): Promise<void>;
|
dismiss(data?: any, role?: string): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface OverlayController {
|
||||||
|
create(opts?: any): Promise<HTMLElement>;
|
||||||
|
dismiss(data?: any, role?: string, alertId?: number): Promise<void>;
|
||||||
|
getTop(): HTMLElement;
|
||||||
|
}
|
||||||
|
|
||||||
export interface HTMLIonOverlayElement extends HTMLStencilElement, OverlayInterface {}
|
export interface HTMLIonOverlayElement extends HTMLStencilElement, OverlayInterface {}
|
||||||
|
|
||||||
export type OverlayMap = Map<number, HTMLIonOverlayElement>;
|
export type OverlayMap = Map<number, HTMLIonOverlayElement>;
|
||||||
|
Reference in New Issue
Block a user