chore(build): rename ionic directory to src and update all references in the build process.

This commit is contained in:
Josh Thomas
2016-05-19 13:20:59 -05:00
parent 8470ae04ac
commit c8f760f080
595 changed files with 73 additions and 87 deletions

View File

@@ -0,0 +1,67 @@
import {App, Page, Animation, IonicApp} from '../../../../../ionic';
@Page({
templateUrl: 'main.html'
})
class E2EPage {
duration;
easing;
constructor(app: IonicApp) {
this.duration = '1000';
this.easing = 'ease-in-out';
console.log('isProd', app.isProd());
}
playGreen() {
let a = new Animation('.green');
a.fromTo('translateX', '0px', '200px');
a.duration(parseInt(this.duration));
a.easing(this.easing);
a.play();
}
memoryCheck() {
let self = this;
let count = 0;
function play() {
count++;
if (count >= 100) {
console.log('Play done');
return;
}
console.log('Play', count);
let a = new Animation('.green');
a.fromTo('translateX', '0px', '200px');
a.duration(self.duration);
a.easing(self.easing);
a.onFinish((animation) => {
setTimeout(() => {
play();
}, 100);
animation.destroy();
});
a.play();
}
play();
}
}
@App({
template: '<ion-nav [root]="root"></ion-nav>',
prodMode: true
})
class E2EApp {
root;
constructor() {
this.root = E2EPage;
}
}

View File

@@ -0,0 +1,37 @@
<ion-navbar *navbar>
<ion-title>Animations</ion-title>
</ion-navbar>
<ion-content>
<div style="position:relative; margin: 20px auto; width: 250px; height: 50px; background: #ddd;">
<div class="green" style="position:absolute; height: 50px; width: 50px; background:green;"></div>
</div>
<ion-list>
<ion-item>
<ion-label>Duration:</ion-label>
<ion-input [(ngModel)]="duration"></ion-input>
</ion-item>
<ion-item>
<ion-label>Easing</ion-label>
<ion-select [(ngModel)]="easing">
<ion-option>linear</ion-option>
<ion-option>ease-in-out</ion-option>
<ion-option>cubic-bezier(0.36,0.66,0.04,1</ion-option>
</ion-select>
</ion-item>
<button ion-item (click)="playGreen()">
Play
</button>
<button ion-item (click)="memoryCheck()">
Memory Check
</button>
</ion-list>
</ion-content>

View File

@@ -0,0 +1,119 @@
import {IonicApp, Nav, Tabs, Tab, NavOptions, Config, ViewController, Platform} from '../../../../ionic';
export function run() {
describe('IonicApp', () => {
describe('getActiveNav', () => {
it('should get active NavController when using tabs with nested nav', () => {
let nav = mockNav();
app.setRootNav(nav);
let tabs = mockTabs();
let tab1 = mockTab(tabs);
let tab2 = mockTab(tabs);
nav.registerChildNav(tabs);
tab2.setSelected(true);
let nav2 = mockNav();
let nav3 = mockNav();
let nav4 = mockNav();
tab1.registerChildNav(nav4);
tab2.registerChildNav(nav2);
tab2.registerChildNav(nav3);
expect(app.getActiveNav()).toBe(nav3);
});
it('should get active NavController when using tabs', () => {
let nav = mockNav();
app.setRootNav(nav);
let tabs = mockTabs();
let tab1 = mockTab(tabs);
let tab2 = mockTab(tabs);
let tab3 = mockTab(tabs);
nav.registerChildNav(tabs);
tab2.setSelected(true);
expect(app.getActiveNav()).toBe(tab2);
tab2.setSelected(false);
tab3.setSelected(true);
expect(app.getActiveNav()).toBe(tab3);
});
it('should get active NavController when nested 3 deep', () => {
let nav1 = mockNav();
let nav2 = mockNav();
let nav3 = mockNav();
app.setRootNav(nav1);
nav1.registerChildNav(nav2);
nav2.registerChildNav(nav3);
expect(app.getActiveNav()).toBe(nav3);
});
it('should get active NavController when nested 2 deep', () => {
let nav1 = mockNav();
let nav2 = mockNav();
app.setRootNav(nav1);
nav1.registerChildNav(nav2);
expect(app.getActiveNav()).toBe(nav2);
});
it('should get active NavController when only one nav controller', () => {
let nav = mockNav();
app.setRootNav(nav);
expect(app.getActiveNav()).toBe(nav);
});
it('should set/get the root nav controller', () => {
let nav = mockNav();
app.setRootNav(nav);
expect(app.getRootNav()).toBe(nav);
});
it('should not get an active NavController if there is not root set', () => {
expect(app.getActiveNav()).toBeNull();
expect(app.getRootNav()).toBeNull();
});
});
var app: IonicApp;
var config: Config;
var platform: Platform;
var _cd: any;
function mockNav(): Nav {
return new Nav(null, null, null, config, null, null, null, null, null);
}
function mockTabs(): Tabs {
return new Tabs(null, null, null, config, null, null, null);
}
function mockTab(parentTabs: Tabs): Tab {
return new Tab(parentTabs, app, config, null, null, null, null, null, _cd);
}
beforeEach(() => {
config = new Config();
platform = new Platform();
app = new IonicApp(config, null, platform);
_cd = {
reattach: function(){},
detach: function(){}
};
});
});
}

View File

@@ -0,0 +1,41 @@
<ion-menu [content]="content" side="left">
<ion-toolbar secondary>
<ion-title>Left Menu</ion-title>
</ion-toolbar>
<ion-content>
<ion-list>
<ion-list-header>
Settings
</ion-list-header>
<button ion-item menuClose detail-none>
Close Menu
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-menu [content]="content" side="right">
<ion-content>
<ion-list>
<ion-list-header>
No toolbar
</ion-list-header>
<button ion-item menuClose="right" detail-none>
Close Menu
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav [root]="root" #content></ion-nav>

View File

@@ -0,0 +1,20 @@
it('should navigate to page 2', function() {
element(by.css('.e2eCordovaPage2')).click();
});
it('should navigate to page 3', function() {
element(by.css('.e2eCordovaPage3')).click();
});
it('should navigate back', function() {
element(by.css('.e2eCordovaGoBack')).click();
});
it('should open modal', function() {
element(by.css('.e2eCordovaOpenModal')).click();
});
it('should open left menu', function() {
element(by.css('.e2eCordovaOpenLeftMenu')).click();
});

View File

@@ -0,0 +1,132 @@
import {App, NavController, Page, IonicApp, Modal, ViewController} from '../../../../../ionic';
@Page({
template: `
<ion-toolbar>
<ion-title>This is a modal</ion-title>
<button menuToggle class="e2eCordovaOpenLeftMenu">
<ion-icon name="menu"></ion-icon>
</button>
<ion-buttons end>
<button>
<ion-icon name="funnel"></ion-icon>
</button>
</ion-buttons>
</ion-toolbar>
<ion-content padding>
<p>The modal toolbar should have status bar padding.</p>
<button block (click)="dismissModal()">Close modal</button>
</ion-content>
`
})
class MyModal {
constructor(private viewCtrl: ViewController) {
}
dismissModal() {
this.viewCtrl.dismiss();
}
}
@Page({
templateUrl: 'page1.html'
})
class Page1 {
page2 = Page2;
sort: string = 'all';
constructor(private nav: NavController) {}
goToTabs() {
this.nav.push(TabsPage);
}
}
@Page({
templateUrl: 'page2.html'
})
class Page2 {
page1 = Page1;
page3 = Page3;
constructor(private nav: NavController) {
}
openModal() {
let modal = Modal.create(MyModal);
this.nav.present(modal);
}
}
@Page({
templateUrl: 'page3.html'
})
class Page3 {
constructor(private nav: NavController) {
}
goBack() {
this.nav.pop();
}
}
@Page({
template: `
<ion-navbar *navbar>
<ion-title>This is a tab page</ion-title>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-buttons end>
<button>
<ion-icon name="funnel"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
<ion-content padding>
<p>The toolbar should have status bar padding.</p>
</ion-content>
`
})
class TabPage1 {
constructor(private nav: NavController) {
}
}
@Page({
templateUrl: 'tabs.html'
})
class TabsPage {
tab1Root = TabPage1;
tab2Root = Page2;
tab3Root = Page3;
constructor(private nav: NavController) {
}
goBack() {
this.nav.pop();
}
}
@App({
templateUrl: `./app.html`,
config: {
statusbarPadding: true
}
})
class E2EApp {
root = Page1;
}

View File

@@ -0,0 +1,27 @@
<ion-navbar *navbar primary>
<ion-segment [(ngModel)]="sort" light>
<ion-segment-button value="all">All</ion-segment-button>
<ion-segment-button value="favorites">Favorites</ion-segment-button>
</ion-segment>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-buttons end>
<button>
<ion-icon name="search"></ion-icon>
</button>
</ion-buttons>
<button menuToggle="right" right>
<ion-icon name="menu"></ion-icon>
</button>
</ion-navbar>
<ion-toolbar>
<ion-title>I'm a toolbar</ion-title>
</ion-toolbar>
<ion-content padding>
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
<button block [navPush]="page2" class="e2eCordovaPage2">Go to Page 2</button>
<button block secondary (click)="goToTabs()">Go to Tabs</button>
</ion-content>

View File

@@ -0,0 +1,25 @@
<ion-navbar *navbar>
<ion-title>Page 2</ion-title>
<button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-buttons end>
<button>
<ion-icon name="funnel"></ion-icon>
</button>
</ion-buttons>
<button menuToggle="right" right>
<ion-icon name="menu"></ion-icon>
</button>
</ion-navbar>
<ion-toolbar>
<ion-title>I'm a toolbar</ion-title>
</ion-toolbar>
<ion-content padding>
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
<button block [navPush]="page1">Go to Page 1</button>
<button block [navPush]="page3" class="e2eCordovaPage3">Go to Page 3</button>
<button block secondary (click)="openModal()" class="e2eCordovaOpenModal">Open Modal</button>
</ion-content>

View File

@@ -0,0 +1,10 @@
<ion-content padding>
<h2>Page 3</h2>
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
<button block (click)="goBack()" class="e2eCordovaGoBack">Go Back</button>
</ion-content>
<ion-toolbar position="bottom">
<ion-title>I'm a bottom toolbar</ion-title>
</ion-toolbar>

View File

@@ -0,0 +1,5 @@
<ion-tabs>
<ion-tab [root]="tab1Root" tabTitle="Page 1" tabIcon="chatbubbles"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="Page 2" tabIcon="map"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="Page 3" tabIcon="person"></ion-tab>
</ion-tabs>

View File

@@ -0,0 +1,25 @@
import {App, Page} from '../../../../../ionic';
@Page({
templateUrl: 'main.html'
})
class E2EPage {
onTap(ev) {
console.log('onTap', ev);
}
}
@App({
template: '<ion-nav [root]="root"></ion-nav>'
})
class E2EApp {
root;
constructor() {
this.root = E2EPage;
}
}

View File

@@ -0,0 +1,9 @@
<ion-navbar *navbar>
<ion-title>Gestures</ion-title>
</ion-navbar>
<ion-content padding>
<button (tap)="onTap($event)">Tap</button>
</ion-content>

View File

@@ -0,0 +1,43 @@
import {Component} from '@angular/core';
import {Control, ControlGroup} from '@angular/common';
import {App, Storage, LocalStorage, SqlStorage} from '../../../../../ionic';
@App({
templateUrl: 'main.html'
})
class IonicApp {
constructor() {
this.local = new Storage(LocalStorage);
this.sql = new Storage(SqlStorage);
}
getLocal() {
this.local.get('name').then(value => {
alert('Your name is: ' + value);
});
}
setLocal() {
let name = prompt('Your name?');
this.local.set('name', name);
}
removeLocal() {
this.local.remove('name');
}
getSql() {
this.sql.get('name').then(value => {
alert('Your name is: ' + value);
}, (errResult) => {
console.error('Unable to get item from SQL db:', errResult);
});
}
setSql() {
let name = prompt('Your name?');
this.sql.set('name', name);
}
removeSql() {
this.sql.remove('name');
}
}

View File

@@ -0,0 +1,11 @@
<ion-content padding>
<h2>Local Storage</h2>
<button primary (click)="getLocal()">Get</button>
<button primary (click)="setLocal()">Set</button>
<button primary (click)="removeLocal()">Remove</button>
<h2>SQL Storage</h2>
<button primary (click)="getSql()">Get</button>
<button primary (click)="setSql()">Set</button>
<button primary (click)="removeSql()">Remove</button>
</ion-content>

View File

@@ -0,0 +1,11 @@
import {App, IonicApp} from '../../../../../ionic';
@App({
templateUrl: 'main.html'
})
class E2EApp {
constructor(app: IonicApp) {
app.setTitle('Basic Buttons');
}
}

View File

@@ -0,0 +1,36 @@
<ion-toolbar>
<ion-title>Typography</ion-title>
</ion-toolbar>
<ion-content padding>
<h1>H1: The quick brown fox jumps over the lazy dog</h1>
<h2 primary>H2: The quick brown fox jumps over the lazy dog</h2>
<h3>H3: The quick brown fox jumps over the lazy dog</h3>
<h4 danger>H4: The quick brown fox jumps over the lazy dog</h4>
<h5>H5: The quick brown fox jumps over the lazy dog</h5>
<h6>H6: The quick brown fox jumps over the lazy dog</h6>
<p>
I saw a werewolf with a Chinese menu in his hand.
Walking through the <sub danger>streets</sub> of Soho in the rain.
He <i primary>was</i> looking for a place called Lee Ho Fook's.
Gonna get a <a secondary>big dish of beef chow mein.</a>
</p>
<p>
He's the hairy-handed gent who ran amuck in Kent.
Lately he's been overheard in Mayfair.
Better stay away from him.
He'll rip your lungs out, Jim.
I'd like to meet his tailor.
<ion-icon danger name="cut"></ion-icon>
</p>
</ion-content>