diff --git a/README.md b/README.md index ebe0e2a802..5d390a6892 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ - Follow the structure found in src/components/aside/examples/basic to create more examples. * The biggest thing to remember: your app has to import its dependencies with the `app/` prefix. - For example `import {Apple} from 'app/apple';` would import apple.js in your example app. + For example `import {Apple} from 'apple';` would import apple.js in your example app. #### Build diff --git a/gulpfile.js b/gulpfile.js index 701511cb20..759a1c8c0c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -87,17 +87,13 @@ gulp.task('e2e', ['ionic-js', 'sass', 'ng2-copy'], function() { 'ios', ] - function testPathToDistPath(path) { - return ; - } - // Get each test folder with gulp.src return gulp.src(buildConfig.src.e2e) .pipe(cached('e2e')) - .pipe(gulpif(/main.js$/, processMain())) .pipe(rename(function(file) { file.dirname = file.dirname.replace(path.sep + 'test' + path.sep, path.sep) })) + .pipe(gulpif(/main.js$/, processMain())) .pipe(gulpif(/e2e.js$/, createPlatformTests())) .pipe(gulp.dest(buildConfig.dist + '/e2e')) @@ -109,35 +105,36 @@ gulp.task('e2e', ['ionic-js', 'sass', 'ng2-copy'], function() { contents: new Buffer(indexContents), path: path.join(path.dirname(file.path), 'index.html'), })); + next(null, file); - var builder = new SystemJsBuilder({ - baseURL: __dirname, - traceurOptions: { annotations: true, types: true }, - meta: { - 'angular2/angular2': { build: false }, - 'ionic/ionic': { build: false }, - }, - map: { - hammer: 'node_modules/hammerjs/hammer', - rx: 'node_modules/rx' - }, - paths: { - 'angular2/*': 'dist/lib/angular2/*.js', - 'app/*': path.dirname(file.path) + '/*.js' - }, - }); - builder.build('app/main').then(function(output) { - self.push(new VinylFile({ - base: file.base, - contents: new Buffer(output.source), - path: file.path, - })); - next(); - }) - .catch(function(err) { - console.log('error', err); - throw new Error(err); - }); + // var builder = new SystemJsBuilder({ + // baseURL: __dirname, + // traceurOptions: { annotations: true, types: true }, + // meta: { + // 'angular2/angular2': { build: false }, + // 'ionic/ionic': { build: false }, + // }, + // map: { + // hammer: 'node_modules/hammerjs/hammer', + // rx: 'node_modules/rx' + // }, + // paths: { + // 'angular2/*': 'dist/lib/angular2/*.js', + // 'app/*': path.dirname(file.path) + '/*.js' + // }, + // }); + // builder.build('app/main').then(function(output) { + // self.push(new VinylFile({ + // base: file.base, + // contents: new Buffer(output.source), + // path: file.path, + // })); + // next(); + // }) + // .catch(function(err) { + // console.log('error', err); + // throw new Error(err); + // }); }) } function createPlatformTests(file) { @@ -176,7 +173,11 @@ gulp.task('ng2', ['lib', 'ng2-copy'], function() { "rx/*": "node_modules/angular2/node_modules/rx/*.js" } }); - return builder.build('angular2/angular2', path.join(buildConfig.distLib, 'angular2.js')); + return builder.build('angular2/angular2', path.join(buildConfig.distLib, 'angular2.js')).then(function() { + return builder.build('angular2/di', path.join(buildConfig.distLib, 'angular2-di.js')); + }); +}); +gulp.task('ng2-di', ['ng2'], function() { }); gulp.task('ionic-js', function() { @@ -187,7 +188,7 @@ gulp.task('ionic-js', function() { }, meta: { 'angular2/angular2': { build: false }, - 'angular2/src/di/annotations': { build: false } + 'angular2/di': { build: false }, }, paths: { "hammer": 'node_modules/hammerjs/*.js', diff --git a/ionic/components.js b/ionic/components.js index a70d4da65d..4d9eda3843 100644 --- a/ionic/components.js +++ b/ionic/components.js @@ -12,7 +12,7 @@ export * from 'ionic/components/input/input' export * from 'ionic/components/layout/layout' export * from 'ionic/components/list/list' export * from 'ionic/components/nav-pane/nav-pane' -export * from 'ionic/components/nav-viewport/nav-viewport' +export * from 'ionic/components/nav/nav' export * from 'ionic/components/radio/radio-button' export * from 'ionic/components/radio/radio-group' export * from 'ionic/components/search-bar/search-bar' diff --git a/ionic/components/app/structure.scss b/ionic/components/app/structure.scss index 48d5aaa653..08e3b54987 100644 --- a/ionic/components/app/structure.scss +++ b/ionic/components/app/structure.scss @@ -13,7 +13,7 @@ html { margin: 0; padding: 0; - .nav-viewport { + .nav { // container of many .nav-views, each .nav-view contains one view position: absolute; top: 0; @@ -28,7 +28,7 @@ html { } .toolbar-container { - // container of many toolbars for each view in the .nav-viewport + // container of many toolbars for each view in the .nav position: relative; width: 100%; min-height: 50px; diff --git a/ionic/components/app/test/barkpark/main.html b/ionic/components/app/test/barkpark/main.html index 2ec6fbd66a..09a732ca47 100644 --- a/ionic/components/app/test/barkpark/main.html +++ b/ionic/components/app/test/barkpark/main.html @@ -1,2 +1,2 @@ - - + + diff --git a/ionic/components/app/test/barkpark/main.js b/ionic/components/app/test/barkpark/main.js index 99eb93f686..d04df3883c 100644 --- a/ionic/components/app/test/barkpark/main.js +++ b/ionic/components/app/test/barkpark/main.js @@ -2,7 +2,7 @@ import {Router} from 'ionic/routing/router' import {For, Component, View as NgView, Parent, bootstrap} from 'angular2/angular2' import {FormBuilder, Validators, FormDirectives, ControlGroup} from 'angular2/forms'; import {Log} from 'ionic/util' -import {List, Item, NavViewport, View, Button, Input, Tabs, Tab, Content, NavPane, Aside} from 'ionic/ionic' +import {List, Item, Nav, View, Button, Input, Tabs, Tab, Content, NavPane, Aside} from 'ionic/ionic' @Component({ selector: 'login-page' @@ -12,7 +12,7 @@ import {List, Item, NavViewport, View, Button, Input, Tabs, Tab, Content, NavPan directives: [View, FormDirectives, Button, Input] }) export class LoginPage { - constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) { + constructor( @Parent() viewport: Nav ) { //, fb: FormBuilder ) { this.viewport = viewport Log.log('LOGIN PAGE') @@ -45,7 +45,7 @@ export class LoginPage { directives: [View, FormDirectives, Button, Input] }) export class SignupPage { - constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) { + constructor( @Parent() viewport: Nav ) { //, fb: FormBuilder ) { this.viewport = viewport Log.log('SIGNUP PAGE') @@ -82,7 +82,7 @@ export class SignupPage { directives: [View, FormDirectives, Button, Input, Tabs, Tab] }) export class AppPage { - constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) { + constructor( @Parent() viewport: Nav ) { //, fb: FormBuilder ) { this.viewport = viewport this.streamTab = StreamTab } @@ -143,7 +143,7 @@ class SplashPage { */ @Component({ selector: '[ion-app]' }) @NgView({ - directives: [NavViewport], + directives: [Nav], templateUrl: 'main.html' }) class IonicApp { diff --git a/ionic/components/nav-pane/nav-pane.js b/ionic/components/nav-pane/nav-pane.js index fac691b151..fa14223329 100644 --- a/ionic/components/nav-pane/nav-pane.js +++ b/ionic/components/nav-pane/nav-pane.js @@ -5,12 +5,10 @@ import { DynamicComponentLoader, ElementRef } from 'angular2/angular2' -import {Optional} from 'angular2/src/di/annotations' -import {NavViewport} from 'ionic/components/nav-viewport/nav-viewport' +import {Optional} from 'angular2/di' +import {Nav} from 'ionic/components/nav/nav' import {Tab} from 'ionic/components/tabs/tab' -console.log('names',DynamicComponent.name, Parent.name, NgElement.name, DynamicComponentLoader.name, ElementRef, Optional) - @DynamicComponent({ selector: '.nav-pane', properties: { @@ -23,8 +21,8 @@ export class NavPane { location: ElementRef, @NgElement() element: NgElement, - // FIXME: this is temporary until ng2 lets us inject tabs as a NavViewport - @Optional() @Parent() viewportNav: NavViewport, + // FIXME: this is temporary until ng2 lets us inject tabs as a Nav + @Optional() @Parent() viewportNav: Nav, @Optional() @Parent() viewportTab: Tab ) { this._loader = loader diff --git a/ionic/components/nav-viewport/test/basic/main.html b/ionic/components/nav-viewport/test/basic/main.html deleted file mode 100644 index 7944cfe164..0000000000 --- a/ionic/components/nav-viewport/test/basic/main.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/ionic/components/nav-viewport/nav-viewport.js b/ionic/components/nav/nav.js similarity index 89% rename from ionic/components/nav-viewport/nav-viewport.js rename to ionic/components/nav/nav.js index a66209409e..1c0ccc0528 100644 --- a/ionic/components/nav-viewport/nav-viewport.js +++ b/ionic/components/nav/nav.js @@ -1,32 +1,31 @@ -import {Component, View as NgView, For, NgElement, bind} from 'angular2/angular2' -import {NavPane} from 'ionic/components/nav-pane/nav-pane' -import * as util from 'ionic/util' +import { + Component, + View as NgView, + For, + NgElement, + ComponentInjector +} from 'angular2/angular2'; +import {bind} from 'angular2/di'; +import {NavPane} from 'ionic/components/nav-pane/nav-pane'; +import * as util from 'ionic/util'; -class NavStack { - constructor(navViewport: NavViewport) { - this._viewport = navViewport +export class TestNav { + constructor(v) { + this.value = v; } - push(Class, opts = {}) { - return this._viewport.push(Class, opts) - } - pop(opts = {}) { - return this._viewport.pop(Class, opts) - } - popTo(index, opts = {}) { - return this._viewport.popTo(index, opts) - } - size() { - return this._viewport._stack.length - } -} +}; +console.log(ComponentInjector) @Component({ - selector: 'ion-nav-viewport', + selector: 'ion-nav', properties: { initial: 'initial' }, - services: [ - NavStack + injectables: [ + bind(TestNav).toFactory((e) => { + debugger; + return e; + }, [Nav]) ] }) @NgView({ @@ -44,12 +43,12 @@ class NavStack { `, directives: [NavPane, For] }) -export class NavViewport { +export class Nav { constructor( element: NgElement ) { this.domElement = element.domElement - this.domElement.classList.add('nav-viewport') + this.domElement.classList.add('nav') // this is our sane stack of items. This is synchronous and says an item // is removed even if it's still animating out. diff --git a/ionic/components/nav/test/basic/main.html b/ionic/components/nav/test/basic/main.html new file mode 100644 index 0000000000..52eeb0dc93 --- /dev/null +++ b/ionic/components/nav/test/basic/main.html @@ -0,0 +1,2 @@ + + diff --git a/ionic/components/nav-viewport/test/basic/main.js b/ionic/components/nav/test/basic/main.js similarity index 67% rename from ionic/components/nav-viewport/test/basic/main.js rename to ionic/components/nav/test/basic/main.js index a092f87c3e..029c4b87d7 100644 --- a/ionic/components/nav-viewport/test/basic/main.js +++ b/ionic/components/nav/test/basic/main.js @@ -1,11 +1,11 @@ import {Component, View as NgView, bootstrap} from 'angular2/angular2' -import {NavViewport} from 'ionic/components/nav-viewport/nav-viewport' +import {Nav} from 'ionic/components/nav/nav' import {Log} from 'ionic/util' -import {FirstPage} from 'app/pages/first-page' +import {FirstPage} from 'pages/first-page' @Component({ selector: '[ion-app]' }) @NgView({ - directives: [NavViewport], + directives: [Nav], templateUrl: 'main.html' }) class IonicApp { diff --git a/ionic/components/nav-viewport/test/basic/pages/first-page.html b/ionic/components/nav/test/basic/pages/first-page.html similarity index 100% rename from ionic/components/nav-viewport/test/basic/pages/first-page.html rename to ionic/components/nav/test/basic/pages/first-page.html diff --git a/ionic/components/nav-viewport/test/basic/pages/first-page.js b/ionic/components/nav/test/basic/pages/first-page.js similarity index 70% rename from ionic/components/nav-viewport/test/basic/pages/first-page.js rename to ionic/components/nav/test/basic/pages/first-page.js index b5d5454c20..6d942ed3ae 100644 --- a/ionic/components/nav-viewport/test/basic/pages/first-page.js +++ b/ionic/components/nav/test/basic/pages/first-page.js @@ -1,6 +1,6 @@ import {Component, View as NgView, Parent} from 'angular2/angular2' -import {NavViewport, View} from 'ionic/ionic' -import {SecondPage} from 'app/pages/second-page' +import {Nav, View} from 'ionic/ionic' +import {SecondPage} from 'pages/second-page' @Component({ selector: 'first-page' @@ -11,7 +11,7 @@ import {SecondPage} from 'app/pages/second-page' }) export class FirstPage { constructor( - @Parent() viewport: NavViewport + @Parent() viewport: Nav ) { this.viewport = viewport } diff --git a/ionic/components/nav-viewport/test/basic/pages/second-page.html b/ionic/components/nav/test/basic/pages/second-page.html similarity index 100% rename from ionic/components/nav-viewport/test/basic/pages/second-page.html rename to ionic/components/nav/test/basic/pages/second-page.html diff --git a/ionic/components/nav-viewport/test/basic/pages/second-page.js b/ionic/components/nav/test/basic/pages/second-page.js similarity index 81% rename from ionic/components/nav-viewport/test/basic/pages/second-page.js rename to ionic/components/nav/test/basic/pages/second-page.js index 9d435a106f..cbc8d10ac4 100644 --- a/ionic/components/nav-viewport/test/basic/pages/second-page.js +++ b/ionic/components/nav/test/basic/pages/second-page.js @@ -1,5 +1,5 @@ import {Component, View as NgView, Parent} from 'angular2/angular2' -import {NavViewport} from 'ionic/components' +import {Nav} from 'ionic/components' import {View} from 'ionic/components/view/view' @Component({ @@ -11,7 +11,7 @@ import {View} from 'ionic/components/view/view' }) export class SecondPage { constructor( - @Parent() viewport: NavViewport + @Parent() viewport: Nav ) { this.viewport = viewport } diff --git a/ionic/components/nav-viewport/test/nav-viewport.spec.js b/ionic/components/nav/test/nav-viewport.spec.js similarity index 100% rename from ionic/components/nav-viewport/test/nav-viewport.spec.js rename to ionic/components/nav/test/nav-viewport.spec.js diff --git a/ionic/components/split-view/split-view.js b/ionic/components/split-view/split-view.js index 9b5147d051..3a27373544 100644 --- a/ionic/components/split-view/split-view.js +++ b/ionic/components/split-view/split-view.js @@ -1,5 +1,5 @@ import {Component, Parent, Decorator, View as NgView, NgElement} from 'angular2/angular2' -import {NavViewport} from 'ionic/components/nav-viewport/nav-viewport' +import {Nav} from 'ionic/components/nav/nav' import {View} from 'ionic/components/view/view' import {NavPane} from 'ionic/components/nav-pane/nav-pane' import * as util from 'ionic/util' @@ -11,14 +11,14 @@ import * as util from 'ionic/util' * its children for viewports. */ @Decorator({ - selector: 'ion-nav-viewport[split-viewport]' + selector: 'ion-nav[split-viewport]' }) class SplitViewportDecorator { constructor( @Parent() splitView: SplitView, - navViewport: NavViewport + navViewport: Nav ) { - splitView.setNavViewport(navViewport) + splitView.setNav(navViewport) } } @@ -36,8 +36,8 @@ class SplitViewportDecorator { - - + + `, - directives: [SplitViewportDecorator, NavViewport, View] + directives: [SplitViewportDecorator, Nav, View] }) export class SplitView { constructor( @@ -89,7 +89,7 @@ export class SplitView { return false } - setNavViewport(viewport) { + setNav(viewport) { this.splitViewport = viewport this.navPane.__$push = this.navPane.push diff --git a/ionic/components/split-view/test/settings/main.html b/ionic/components/split-view/test/settings/main.html index 9de8f8a062..a942ebb790 100644 --- a/ionic/components/split-view/test/settings/main.html +++ b/ionic/components/split-view/test/settings/main.html @@ -1,2 +1,2 @@ - - + + diff --git a/ionic/components/tabs/tab.js b/ionic/components/tabs/tab.js index 977548c3e2..524de1ff88 100644 --- a/ionic/components/tabs/tab.js +++ b/ionic/components/tabs/tab.js @@ -6,7 +6,7 @@ import { PropertySetter, For } from 'angular2/angular2'; -import {NavViewport} from 'ionic/components/nav-viewport/nav-viewport' +import {Nav} from 'ionic/components/nav/nav' import {NavPane} from 'ionic/components/nav-pane/nav-pane' import {Tabs} from 'ionic/components/tabs/tabs' import * as util from 'ionic/util' @@ -31,7 +31,7 @@ import {IonicComponent} from 'ionic/config/component' `, directives: [For, NavPane] }) -export class Tab extends NavViewport { +export class Tab extends Nav { constructor( element: NgElement, @Ancestor() tabs: Tabs, diff --git a/ionic/components/tabs/test/advanced/main.html b/ionic/components/tabs/test/advanced/main.html index 69798050d9..54fa93e132 100644 --- a/ionic/components/tabs/test/advanced/main.html +++ b/ionic/components/tabs/test/advanced/main.html @@ -3,8 +3,8 @@ Hello! I'm a side menu in the root. - - + +