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

View File

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

View File

@ -93,7 +93,7 @@ export {
} from './components/modal/modal'; } from './components/modal/modal';
export { ModalController } from './components/modal-controller/modal-controller'; export { ModalController } from './components/modal-controller/modal-controller';
export { Nav } from './components/nav/nav'; 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 { NavController } from './components/nav-controller/nav-controller';
export { Note } from './components/note/note'; export { Note } from './components/note/note';
export { Page } from './components/page/page'; export { Page } from './components/page/page';

View File

@ -86,3 +86,9 @@ export interface Transition extends Animation {
export interface TransitionBuilder { export interface TransitionBuilder {
(rootTransition: Transition, enteringView: ViewController, leavingView: ViewController, opts: AnimationOptions ): Transition; (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 { STATE_ATTACHED, STATE_DESTROYED, STATE_INITIALIZED, STATE_NEW } from './nav-utils';
import { assert } from '../utils/helpers'; import { assert } from '../utils/helpers';
export class ViewController { export class ViewController implements PublicViewController {
id: string; id: string;
data: any; data: any;