chore(packaging): implement interfaces for Nav, ViewController

This commit is contained in:
Dan Bucholtz
2017-11-22 14:55:19 -06:00
parent 3d14353402
commit 956ec9ce2d
5 changed files with 15 additions and 7 deletions

View File

@ -2,7 +2,7 @@
/* it is very important to keep this interface in sync with ./nav */
import { NavOptions, ViewController } from '../../index';
export interface PublicNavController {
export interface PublicNav {
push(component: any, data?: any, opts?: NavOptions): Promise<any>;
pop(opts?: NavOptions): Promise<any>;
setRoot(component: any, data?: any, opts?: NavOptions): Promise<any>;
@ -16,7 +16,9 @@ export interface PublicNavController {
getActive?(): ViewController;
getPrevious?(view?: ViewController): ViewController;
canGoBack?(nav: PublicNavController): boolean;
canGoBack?(nav: PublicNav): boolean;
canSwipeBack?(): boolean;
getFirstView?(): ViewController;
element?: HTMLElement;
}

View File

@ -6,7 +6,7 @@ import {
NavController,
NavOptions,
NavState,
PublicNavController,
PublicNav,
RouterEntries,
RouterEntry,
ViewController
@ -25,7 +25,7 @@ import { assert, isReady } from '../../utils/helpers';
@Component({
tag: 'ion-nav',
})
export class Nav implements PublicNavController {
export class Nav implements PublicNav {
@Element() element: HTMLElement;
@Event() navInit: EventEmitter;

View File

@ -93,7 +93,7 @@ export {
} from './components/modal/modal';
export { ModalController } from './components/modal-controller/modal-controller';
export { Nav } from './components/nav/nav';
export { PublicNavController } from './components/nav/nav-interface';
export { PublicNav } from './components/nav/nav-interface';
export { NavController } from './components/nav-controller/nav-controller';
export { Note } from './components/note/note';
export { Page } from './components/page/page';

View File

@ -86,3 +86,9 @@ export interface Transition extends Animation {
export interface TransitionBuilder {
(rootTransition: Transition, enteringView: ViewController, leavingView: ViewController, opts: AnimationOptions ): Transition;
}
export interface PublicViewController {
component?: any;
instance?: any;
element?: HTMLElement;
}

View File

@ -1,9 +1,9 @@
import { FrameworkDelegate, Nav } from '../index';
import { FrameworkDelegate, Nav, PublicViewController } from '../index';
import { STATE_ATTACHED, STATE_DESTROYED, STATE_INITIALIZED, STATE_NEW } from './nav-utils';
import { assert } from '../utils/helpers';
export class ViewController {
export class ViewController implements PublicViewController {
id: string;
data: any;