Files
ionic-framework/config/build.config.js
Andrew 7ef9ad74cf fix(slidebox): refactor for performance and stability
Closes #2336. Closes #2317. Closes #2290. Closes #2228. Closes #2067.
Closes #1890. Closes #1865. Closes #1850. Closes #1755. Closes #1688.
Closes #1578. Closes #1501. Closes #1353. Closes #1342. Closes #782.
Closes #416. Closes #2288.

BREAKING CHANGE: The slideBox's API has undergone many changes.

- **`<ion-slide-box>`** attributes have changed (see
  [documentation](http://ionicframework.com/docs/api/directive/ionSlideBox)):

  * `active-slide` has changed to `selected`. Change your code from
  this:

    ```html
    <ion-slide-box active-slide="activeSlideIndex"></ion-slide-box>
    ```

    To this:

    ```html
    <ion-slide-box selected="activeSlideIndex"></ion-slide-box>
    ```

  * `does-continue` has changed to `loop`.  Change your code from this:

    ```html
    <ion-slide-box does-continue="shouldLoop"></ion-slide-box>
    ```

    To this:

    ```html
    <ion-slide-box loop="shouldLoop"></ion-slide-box>
    ```

  * `auto-play` and `slide-interval` have been merged into `auto-play`.
  Change your code from this:

    ```html
    <!-- autoPlay is on -->
    <ion-slide-box auto-play="true" slide-interval="1000">
    </ion-slide-box>
    <!-- autoPlay is off -->
    <ion-slide-box auto-play="false" slide-interval="1000">
    </ion-slide-box>
    ```

    To this:

    ```html
    <!-- autoPlay is on -->
    <ion-slide-box auto-play="1000"></ion-slide-box>
    <!-- autoPlay is off -->
    <ion-slide-box auto-play="false"></ion-slide-box>
    ```

  * `show-pager` and `pager-click` have been removed. Use
  a child `<ion-slide-pager>` element. See the [`ion-slide-pager`
  documentation](http://ionicframework.com/docs/api/directive/ionSlidePager).
  Change your code from this:

  ```html
  <!-- pager using default click action -->
  <ion-slide-box show-pager="true">
  </ion-slide-box>
  <!-- pager with custom click action -->
  <ion-slide-box show-pager="true" pager-click="doSomething(index)">
  </ion-slide-box>
  ```

  To this:

  ```html
  <ion-slide-box>
    <!-- pager using default click action -->
    <ion-slide-pager></ion-slide-pager>
  </ion-slide-box>
  <ion-slide-box>
    <!-- pager with custom click action -->
    <ion-slide-pager ng-click="doSomething(index)"></ion-slide-pager>
  </ion-slide-box>
  ```

- **`$ionicSlideBoxDelegate`** methods have changed (see
  [documentation](http://ionicframework.com/docs/api/service/$ionicSlideBoxDelegate)):

  - `update()` has been removed. slideBox updates on its own now.

  - `stop()` has been removed. See `autoPlay()` below.

  - `start()` hass been removed. See `autoPlay()` below.

  - `slide(newIndex[, speed])` has been renamed to `select(newIndex[,
    speed]);

  - `currentIndex()` has been renamed to `selected()`.

  - `slidesCount()` has been renamed to `count()`.

  - New method `$ionicSlideBoxDelegate.autoPlay()`. Change your code
    from this:

    ```js
    // stop auto sliding
    $ionicSlideBoxDelegate.stop();
    // later... start auto sliding
    $ionicSlideBoxDelegate.start();
    ```

    To this:

    ```js
    var autoPlaySpeed = 3000; //wait 3000 seconds between changing slide
    // stop auto sliding
    $ionicSlideBoxDelegate.autoPlay(false);
    // later... start auto sliding
    $ionicSlideBoxDelegate.autoPlay(autoPlaySpeed);
    ```

  - `previous()` now returns the index of the previous slide and does
    not select. Change your code from this:

    ```js
    // select previous slide
    $ionicSlideBoxDelegate.previous();
    ```

    To this:

    ```js
    // select previous slide
    $ionicSlideBoxDelegate.select( $ionicSlideBoxDelegate.previous() );
    ```
  - `next()` now returns the index of the next slide and does
    not select. Change your code from this:

    ```js
    // select next slide
    $ionicSlideBoxDelegate.next();
    ```

    To this:

    ```js
    // select next slide
    $ionicSlideBoxDelegate.select( $ionicSlideBoxDelegate.next() );
    ```
2014-10-08 11:09:15 -06:00

113 lines
3.8 KiB
JavaScript

var pkg = require('../package.json');
var fs = require('fs');
var DISCOURSE_FILE = __dirname + '/DISCOURSE_POST_URL';
module.exports = {
dist: 'dist',
releasePostUrl: fs.readFileSync(DISCOURSE_FILE).toString(),
releasePostFile: DISCOURSE_FILE,
protractorPort: 8876,
banner:
'/*!\n' +
' * Copyright 2014 Drifty Co.\n' +
' * http://drifty.com/\n' +
' *\n' +
' * Ionic, v<%= pkg.version %>\n' +
' * A powerful HTML5 mobile app framework.\n' +
' * http://ionicframework.com/\n' +
' *\n' +
' * By @maxlynch, @benjsperry, @adamdbradley <3\n' +
' *\n' +
' * Licensed under the MIT license. Please see LICENSE for more information.\n'+
' *\n' +
' */\n\n',
bundleBanner:
'/*!\n' +
' * ionic.bundle.js is a concatenation of:\n' +
' * ionic.js, angular.js, angular-animate.js,\n'+
' * angular-sanitize.js, angular-ui-router.js,\n'+
' * and ionic-angular.js\n'+
' */\n\n',
closureStart: '(function() {\n',
closureEnd: '\n})();',
ionicFiles: [
// Base
'js/ionic.js',
// Utils
'js/utils/dom.js',
'js/utils/events.js',
'js/utils/gestures.js',
'js/utils/platform.js',
'js/utils/poly.js',
'js/utils/tap.js',
'js/utils/activator.js',
'js/utils/utils.js',
'js/utils/list.js',
'js/utils/keyboard.js',
'js/utils/viewport.js',
// Views
'js/views/view.js',
'js/views/scrollView.js',
'js/views/headerBarView.js',
'js/views/listView.js',
'js/views/modalView.js',
'js/views/sideMenuView.js',
'js/views/toggleView.js'
],
angularIonicFiles: [
'js/angular/*.js',
'js/angular/service/**/*.js',
'js/angular/controller/**/*.js',
'js/angular/directive/**/*.js'
],
//Which vendor files to include in dist, used by build
//Matched relative to config/lib/
vendorFiles: [
'js/angular/angular-animate.js',
'js/angular/angular-animate.min.js',
'js/angular/angular-resource.js',
'js/angular/angular-resource.min.js',
'js/angular/angular-sanitize.js',
'js/angular/angular-sanitize.min.js',
'js/angular/angular.js',
'js/angular/angular.min.js',
'js/angular-ui/angular-ui-router.js',
'js/angular-ui/angular-ui-router.min.js',
'fonts/ionicons.eot',
'fonts/ionicons.svg',
'fonts/ionicons.ttf',
'fonts/ionicons.woff'
],
ionicBundleFiles: [
'js/ionic.js',
'js/angular/angular.js',
'js/angular/angular-animate.js',
'js/angular/angular-sanitize.js',
'js/angular-ui/angular-ui-router.js',
'js/ionic-angular.js'
],
//Exclamation can be no longer than 14 chars
exclamations: [
"Aah","Ah","Aha","All right","Aw","Ay","Aye","Bah","Boy","By golly","Boom","Cheerio","Cheers","Come on","Crikey","Dear me","Egads","Fiddle-dee-dee","Gadzooks","Gangway","G'day","Gee whiz","Gesundheit","Get outta here","Gosh","Gracious","Great","Gulp","Ha","Ha-ha","Hah","Harrumph","Hey","Hooray","Hurray","Huzzah","I say","Look","Look here","Long time","Lordy","Most certainly","My my","My word","Oh","Oh-oh","Oh no","Okay","Okey-dokey","Ooh","Oye","Phew","Quite","Ready","Right on","Roger that","Rumble","Say","See ya","Snap","Sup","Ta-da","Take that","Tally ho","Thanks","Toodles","Touche","Tut-tut","Very nice","Very well","Voila","Vroom","Well done","Well, well","Whoa","Whoopee","Whew","Word up","Wow","Wuzzup","Ya","Yea","Yeah","Yippee","Yo","Yoo-hoo","You bet","You don't say","You know","Yow","Yum","Yummy","Zap","Zounds","Zowie"
],
//Message can be no longer than it is. Currently it's 126 chars with the short git urls,
//and can have up to a 14 char long exclamation prepended.
releaseMessage: function() {
return this.exclamations[Math.floor(Math.random()*this.exclamations.length)] + '! ' +
'Just released @IonicFramework v' + pkg.version + ' "' + pkg.codename + '"! ' +
this.releasePostUrl;
},
};