diff --git a/gulpfile.js b/gulpfile.js index fac59a613a..6cad7bace1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -19,13 +19,14 @@ var plumber = require('gulp-plumber') var rename = require('gulp-rename') var sass = require('gulp-sass') var shell = require('gulp-shell') +var through2 = require('through2') var traceur = require('gulp-traceur') -var wrap = require('gulp-wrap'); +var wrap = require('gulp-wrap') gulp.task('default', ['build', 'lib', 'e2e']) -gulp.task('build', ['sass', 'js']); -gulp.task('lib', ['ng2', 'fonts', 'dependencies']); +gulp.task('build', ['sass', 'ionic-js']) +gulp.task('lib', ['ng2', 'fonts', 'dependencies']) gulp.task('watch', ['default'], function() { gulp.watch(buildConfig.src.scss, ['sass']) @@ -44,11 +45,11 @@ gulp.task('karma-watch', function() { gulp.task('dependencies', function() { return gulp.src(buildConfig.dependencies) - .pipe(gulp.dest(buildConfig.distLib)); -}); + .pipe(gulp.dest(buildConfig.distLib)) +}) -gulp.task('js', function() { - return gulp.src('src/**/*.js') +gulp.task('ionic-js', function() { + return gulp.src(buildConfig.src.js) .pipe(gulp.dest(buildConfig.distLib + '/ionic2')) }) diff --git a/scripts/build/config.js b/scripts/build/config.js index d0d9c02d15..b6d00bdb0c 100644 --- a/scripts/build/config.js +++ b/scripts/build/config.js @@ -12,7 +12,10 @@ module.exports = { dependencies: [ 'node_modules/traceur/bin/traceur.js', 'node_modules/es6-module-loader/dist/es6-module-loader.js', + 'node_modules/es6-module-loader/dist/es6-module-loader.js.map', 'node_modules/systemjs/dist/system.js', + 'node_modules/systemjs/dist/system.js.map', + 'node_modules/systemjs/dist/system.src.js', 'node_modules/zone.js/zone.js', 'node_modules/zone.js/long-stack-trace-zone.js', 'node_modules/hammerjs/hammer.js', @@ -25,7 +28,7 @@ module.exports = { 'zone.js', 'long-stack-trace-zone.js', 'hammer.js', - 'angular2.js' + 'angular2.js', ], traceurOptions: { diff --git a/src/components.js b/src/components.js index 90f07c9ba0..99e4d19a52 100644 --- a/src/components.js +++ b/src/components.js @@ -1,8 +1,7 @@ -//BUNDLE ONLY +// export all components as array -import {Aside, AsideParent} from './components/aside/aside'; +import {Aside} from 'ionic2/components/aside/aside'; export let ionicComponents = [ Aside, - AsideParent ]; diff --git a/src/components/app/test/app_spec.js b/src/components/app/test/app_spec.js index b1679385b2..98dde8b8a3 100644 --- a/src/components/app/test/app_spec.js +++ b/src/components/app/test/app_spec.js @@ -1,4 +1,4 @@ -import {Ion} from '../ion'; +import {Ion} from 'ionic2/ion'; export function main() { it('should be true', () => { diff --git a/src/components/app/test/figure-it-out/main.js b/src/components/app/test/figure-it-out/main.js index aad981c5e9..279924e417 100644 --- a/src/components/app/test/figure-it-out/main.js +++ b/src/components/app/test/figure-it-out/main.js @@ -2,7 +2,7 @@ import {DynamicComponent, Component, Template, bootstrap, NgElement} from 'angul import {Inject} from 'angular2/di'; import {PrivateComponentLoader} from 'angular2/src/core/compiler/private_component_loader'; import {PrivateComponentLocation} from 'angular2/src/core/compiler/private_component_location'; -import {RedBgStyler, BlueTextStyler} from './components/stylers'; +import {RedBgStyler, BlueTextStyler} from 'ionic2/components/stylers'; @DynamicComponent({ selector: 'dynamic-component', diff --git a/src/components/aside/aside-gestures.js b/src/components/aside/aside-gestures.js deleted file mode 100644 index db0ca1f4a2..0000000000 --- a/src/components/aside/aside-gestures.js +++ /dev/null @@ -1,88 +0,0 @@ -import {AsideConfig, Aside} from './aside'; -import {SlideEdgeGesture} from '../../core/gestures/slide-edge-gesture'; - -class AsideGesture extends SlideEdgeGesture { - constructor(aside: Aside) { - this.aside = aside; - this.slideElement = aside.domElement.parentNode; - super(this.slideElement, { - direction: (aside.side === 'left' || aside.side === 'right') ? 'x' : 'y', - edge: aside.side, - threshold: 75 - }); - this.listen(); - } - - canStart(ev) { - // Only restrict edges if the aside is closed - return this.aside.isOpen ? true : super.canStart(ev); - } - - onSlideBeforeStart(slide, ev) { - console.log('beforestart'); - this.aside.setSliding(true); - this.aside.setChanging(true); - return new Promise(resolve => { - requestAnimationFrame(resolve); - }); - } - onSlide(slide, ev) { - this.aside.setTransform('translate3d(' + slide.distance + 'px,0,0)'); - } - onSlideEnd(slide, ev) { - this.aside.setTransform(''); - this.aside.setSliding(false); - if (Math.abs(ev.velocityX) > 0.2 || Math.abs(slide.delta) > Math.abs(slide.max) * 0.5) { - this.aside.setOpen(!this.aside.isOpen); - } - } - - getElementStartPos(slide, ev) { - return this.aside.isOpen ? slide.max : slide.min; - } - getSlideBoundaries() { - return { - min: 0, - max: this.aside.domElement.offsetWidth - }; - } -} - -export class LeftAsideGesture extends AsideGesture {} - -export class RightAsideGesture extends LeftAsideGesture { - getElementStartPos(slide, ev) { - return this.aside.isOpen ? slide.min : slide.max; - } - getSlideBoundaries() { - return { - min: -this.aside.domElement.offsetWidth, - max: 0 - }; - } - -} - -export class TopAsideGesture extends AsideGesture { - onSlide(slide, ev) { - this.aside.setTransform('translate3d(0,' + slide.distance + 'px,0)'); - } - getSlideBoundaries() { - return { - min: 0, - max: this.aside.domElement.offsetHeight - }; - } -} - -export class BottomAsideGesture extends TopAsideGesture { - getElementStartPos(slide, ev) { - return this.aside.isOpen ? slide.min : slide.max; - } - getSlideBoundaries() { - return { - min: -this.aside.domElement.offsetHeight, - max: 0 - }; - } -} diff --git a/src/components/aside/aside.js b/src/components/aside/aside.js index 86096e6672..b68ea0e1a4 100644 --- a/src/components/aside/aside.js +++ b/src/components/aside/aside.js @@ -1,7 +1,7 @@ -import {Component, Template, Inject, Parent, NgElement, PropertySetter} from 'angular2/angular2' -import {ComponentConfig} from '../../core/config/config' -import * as types from './extensions/types/types' -import * as gestures from './extensions/gestures/gestures'; +import {Component, Template, Inject, Parent, NgElement} from 'angular2/angular2' +import {ComponentConfig} from 'ionic2/config/component-config' +import * as types from 'ionic2/components/aside/types/types' +import * as gestures from 'ionic2/components/aside/gestures/gestures'; @Component({ selector: 'ion-aside', diff --git a/src/components/aside/config.js b/src/components/aside/config.js new file mode 100644 index 0000000000..50db1acfc8 --- /dev/null +++ b/src/components/aside/config.js @@ -0,0 +1,20 @@ +import {ComponentConfig} from 'ionic2/config/component-config' +import {Aside} from 'ionic2/components/aside/aside'; +import * as asideTypes from 'ionic2/components/aside/types/types' +import * as asideGestures from 'ionic2/components/aside/gestures/gestures'; + +export let AsideConfig = new ComponentConfig(Aside) + +AsideConfig.classes('side', 'type') + +AsideConfig.delegate('gesture') + .when({side: 'left'}, gestures.LeftAsideGesture) + .when({side: 'right'}, gestures.RightAsideGesture) + .when({side: 'top'}, gestures.TopAsideGesture) + .when({side: 'bottom'}, gestures.BottomAsideGesture) + +AsideConfig.delegate('type') + .when({type: 'overlay'}, types.AsideTypeOverlay) + .when({type: 'push'}, types.AsideTypePush) + .when({type: 'reveal'}, types.AsideTypeReveal) + diff --git a/src/components/aside/extensions/gestures/gestures.js b/src/components/aside/gestures/gestures.js similarity index 94% rename from src/components/aside/extensions/gestures/gestures.js rename to src/components/aside/gestures/gestures.js index 4fca5c2302..6d3e44303a 100644 --- a/src/components/aside/extensions/gestures/gestures.js +++ b/src/components/aside/gestures/gestures.js @@ -1,6 +1,6 @@ -import {Aside} from '../../aside'; +import {Aside} from 'ionic2/components/aside/aside'; //TODO: figure out way to get rid of all the ../../../../ -import {SlideEdgeGesture} from '../../../../core/gestures/slide-edge-gesture'; +import {SlideEdgeGesture} from 'ionic2/gestures/slide-edge-gesture'; class AsideGesture extends SlideEdgeGesture { constructor(aside: Aside) { @@ -89,3 +89,4 @@ export class BottomAsideGesture extends TopAsideGesture { }; } } + diff --git a/src/components/aside/extensions/types/types.js b/src/components/aside/types/types.js similarity index 94% rename from src/components/aside/extensions/types/types.js rename to src/components/aside/types/types.js index f59786ef6e..f039bf4eae 100644 --- a/src/components/aside/extensions/types/types.js +++ b/src/components/aside/types/types.js @@ -1,7 +1,7 @@ -import {Aside} from '../../aside'; +import {Aside} from 'ionic2/components/aside/aside'; // TODO use setters instead of direct dom manipulation -let asideManipulator = { +const asideManipulator = { setSliding(sliding) { this.aside.domElement.classList[sliding ? 'add' : 'remove']('no-transition'); }, @@ -12,7 +12,7 @@ let asideManipulator = { this.aside.domElement.style.transform = t; } } -let contentManipulator = { +const contentManipulator = { setSliding(sliding) { this.aside.content.domElement.classList[sliding ? 'add' : 'remove']('no-transition'); }, diff --git a/src/components/icon/icon.js b/src/components/icon/icon.js index ee54407d05..61b8035f47 100644 --- a/src/components/icon/icon.js +++ b/src/components/icon/icon.js @@ -1,5 +1,4 @@ import {NgElement, Decorator} from 'angular2/angular2' -import {Ion} from '../ion' @Decorator({ selector: 'ion-icon,ionicon,icon' diff --git a/src/components/icon/ionicons-variables.scss b/src/components/icon/ionicons-variables.scss index 034a14a79c..4075072013 100644 --- a/src/components/icon/ionicons-variables.scss +++ b/src/components/icon/ionicons-variables.scss @@ -738,4 +738,4 @@ $ionicon-var-wifi: "\f25c"; $ionicon-var-wineglass: "\f2b9"; $ionicon-var-woman: "\f25d"; $ionicon-var-wrench: "\f2ba"; -$ionicon-var-xbox: "\f30c"; \ No newline at end of file +$ionicon-var-xbox: "\f30c"; diff --git a/src/components/ion.js b/src/components/ion.js index 1b93e9655e..3498173d07 100644 --- a/src/components/ion.js +++ b/src/components/ion.js @@ -1,4 +1,4 @@ -import * as util from '../util'; +import * as util from 'ionic2/util'; export class Ion {} diff --git a/src/core/media/media.js b/src/components/item/item-complex/item-complex.scss similarity index 100% rename from src/core/media/media.js rename to src/components/item/item-complex/item-complex.scss diff --git a/src/core/mixins/draggable.js b/src/components/item/item-complex/item-reorder.js similarity index 100% rename from src/core/mixins/draggable.js rename to src/components/item/item-complex/item-reorder.js diff --git a/src/core/platform/detect.js b/src/components/item/item-complex/item-reveal-button.js similarity index 100% rename from src/core/platform/detect.js rename to src/components/item/item-complex/item-reveal-button.js diff --git a/src/components/item/item-complex/item-swipe-button.js b/src/components/item/item-complex/item-swipe-button.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/components/item/item-complex/item-swipe-gesture.js b/src/components/item/item-complex/item-swipe-gesture.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/components/modal/modal.js b/src/components/modal/modal.js index 4f48ddb04e..ab8651c0be 100644 --- a/src/components/modal/modal.js +++ b/src/components/modal/modal.js @@ -1,5 +1,4 @@ import {Compiler, NgElement, Component, Template} from 'angular2/angular2'; -import {Ion} from '../ion'; @Component({ selector: 'ion-modal-wrapper' diff --git a/src/components/nav-view/nav-view.js b/src/components/nav-view/nav-view.js index d3225f4b25..a3ccaad3e4 100644 --- a/src/components/nav-view/nav-view.js +++ b/src/components/nav-view/nav-view.js @@ -1,5 +1,3 @@ -import {Ion} from '../ion' - export class NavView { // viewControllers: Stack; diff --git a/src/components/tabs/tab.js b/src/components/tabs/tab.js index cc55d355a1..e9283a64ba 100644 --- a/src/components/tabs/tab.js +++ b/src/components/tabs/tab.js @@ -1,7 +1,6 @@ import {NgElement, Component, Template, Parent} from 'angular2/angular2'; -import {Ion} from '../ion'; -import {Tabs} from './tabs'; -import {NavView} from '../nav-view/nav-view'; +import {Tabs} from 'ionic2/components/tabs/tabs'; +import {NavView} from 'ionic2/components/nav-view/nav-view'; @Component({ selector: 'ion-tab', diff --git a/src/components/tabs/tabs.js b/src/components/tabs/tabs.js index 05440864b0..121310a95e 100644 --- a/src/components/tabs/tabs.js +++ b/src/components/tabs/tabs.js @@ -1,7 +1,5 @@ import {NgElement, Component, Template, Parent} from 'angular2/angular2'; -import {History} from '../../history'; -import {View} from 'ionic/components/view/view'; - +import {View} from 'ionic2/components/view/view'; @Component({ selector: 'ion-tabs' diff --git a/src/components/view/view.js b/src/components/view/view.js index 309e339bd8..16d5419ca8 100644 --- a/src/components/view/view.js +++ b/src/components/view/view.js @@ -1,5 +1,5 @@ import {NgElement, Component, Template} from 'angular2/angular2' -import {Toolbar} from '../toolbar/toolbar' +import {Toolbar} from 'ionic2/components/toolbar/toolbar' @Component({ selector: 'ion-view', diff --git a/src/core/config/config.js b/src/config/component-config.js similarity index 98% rename from src/core/config/config.js rename to src/config/component-config.js index 90b8365a4b..93601eac2d 100644 --- a/src/core/config/config.js +++ b/src/config/component-config.js @@ -1,5 +1,5 @@ -import {platform} from '../platform/platform' -import * as util from '../../util' +import {platform} from 'ionic2/platform/platform' +import * as util from 'ionic2/util' /* diff --git a/src/core/config/config_spec.js b/src/config/config_spec.js similarity index 98% rename from src/core/config/config_spec.js rename to src/config/config_spec.js index e98a27e310..45ded5ec3b 100644 --- a/src/core/config/config_spec.js +++ b/src/config/config_spec.js @@ -1,4 +1,4 @@ -import {Config} from './config'; +import {Config} from 'ionic2/config/component-config'; // TODO stop hardcoding platforms and media sizes export function main() { diff --git a/src/core/config/config-case.js b/src/core/config/config-case.js deleted file mode 100644 index 6abea2281a..0000000000 --- a/src/core/config/config-case.js +++ /dev/null @@ -1,47 +0,0 @@ -import * as util from '../../util'; -import {platform} from '../platform/platform'; - -function isPlatform(key = '') { - return platform.isRegistered(key.toLowerCase()); -} - -export class ConfigCase { - constructor({ root, parent, path }) { - this._root = root; - this._parent = parent; - this._path = path || []; - this._values = {}; - this._component = null; - } - platform(key = '') { - if (isPlatform(key)) return this._root._addCase(key, this); - return this; - } - // media(key = '') { - // if (isMedia(key)) return this._root._addCase(key, this); - // return this; - // } - when(condition = '') { - if (isPlatform(condition)) { - return this._root._addCase(condition, this); - } - return this; - } - component(Class) { - this._component = Class; - return this; - } - set(obj) { - util.extend(this._values, obj); - return this; - } - unset(key) { - delete this._values[key]; - return this; - } - get(key) { - return util.isDefined(this._values[key]) ? - this._values[key] : - (this._parent ? this._parent.get(key) : undefined); - } -} diff --git a/src/core/gestures/drag-gesture.js b/src/gestures/drag-gesture.js similarity index 90% rename from src/core/gestures/drag-gesture.js rename to src/gestures/drag-gesture.js index 53df2425c7..bb82ba87a7 100644 --- a/src/core/gestures/drag-gesture.js +++ b/src/gestures/drag-gesture.js @@ -1,5 +1,5 @@ -import {Gesture} from './gesture'; -import * as util from '../../util'; +import {Gesture} from 'ionic2/gestures/gesture'; +import * as util from 'ionic2/util'; import Hammer from 'hammer'; /* diff --git a/src/core/gestures/gesture.js b/src/gestures/gesture.js similarity index 94% rename from src/core/gestures/gesture.js rename to src/gestures/gesture.js index 05cdc278ee..faef58a508 100644 --- a/src/core/gestures/gesture.js +++ b/src/gestures/gesture.js @@ -1,4 +1,4 @@ -import * as util from '../../util'; +import * as util from 'ionic2/util'; import Hammer from 'hammer'; export class Gesture { diff --git a/src/core/gestures/slide-edge-gesture.js b/src/gestures/slide-edge-gesture.js similarity index 91% rename from src/core/gestures/slide-edge-gesture.js rename to src/gestures/slide-edge-gesture.js index 78ae9c06dc..ad70fbf428 100644 --- a/src/core/gestures/slide-edge-gesture.js +++ b/src/gestures/slide-edge-gesture.js @@ -1,5 +1,5 @@ -import {SlideGesture} from './slide-gesture'; -import * as util from '../../util'; +import {SlideGesture} from 'ionic2/gestures/slide-gesture'; +import * as util from 'ionic2/util'; export class SlideEdgeGesture extends SlideGesture { constructor(element: Element, opts: Object = {}) { diff --git a/src/core/gestures/slide-gesture.js b/src/gestures/slide-gesture.js similarity index 94% rename from src/core/gestures/slide-gesture.js rename to src/gestures/slide-gesture.js index 4966bfbba1..e1965bf1bf 100644 --- a/src/core/gestures/slide-gesture.js +++ b/src/gestures/slide-gesture.js @@ -1,5 +1,5 @@ -import {DragGesture} from './drag-gesture'; -import * as util from '../../util'; +import {DragGesture} from 'ionic2/gestures/drag-gesture'; +import * as util from 'ionic2/util'; export class SlideGesture extends DragGesture { constructor(element, opts = {}) { diff --git a/src/media/media.js b/src/media/media.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/platform/detect.js b/src/platform/detect.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/core/platform/platform.js b/src/platform/platform.js similarity index 96% rename from src/core/platform/platform.js rename to src/platform/platform.js index 3eec9f63e3..0ee6fd5ebd 100644 --- a/src/core/platform/platform.js +++ b/src/platform/platform.js @@ -1,4 +1,4 @@ -import * as util from '../../util'; +import * as util from 'ionic2/util'; class Platform { constructor(options) { diff --git a/src/util_spec.js b/src/util_spec.js index f3e3b57026..37889f9b2a 100644 --- a/src/util_spec.js +++ b/src/util_spec.js @@ -1,4 +1,4 @@ -import * as util from './util'; +import * as util from 'ionic2/util'; export function main() { describe('extend', function() {