ember-source 1.13.3 → 1.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ember-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-template-compiler.js +70 -36
- data/dist/ember-testing.js +41 -10
- data/dist/ember.debug.js +677 -330
- data/dist/ember.js +677 -330
- data/dist/ember.min.js +15 -14
- data/dist/ember.prod.js +622 -306
- metadata +2 -2
    
        data/dist/ember.js
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 | 
             
             *            Portions Copyright 2008-2011 Apple Inc. All rights reserved.
         | 
| 6 6 | 
             
             * @license   Licensed under MIT license
         | 
| 7 7 | 
             
             *            See https://raw.github.com/emberjs/ember.js/master/LICENSE
         | 
| 8 | 
            -
             * @version   1.13. | 
| 8 | 
            +
             * @version   1.13.4
         | 
| 9 9 | 
             
             */
         | 
| 10 10 |  | 
| 11 11 | 
             
            (function() {
         | 
| @@ -5473,15 +5473,46 @@ enifed("ember-debug", ["exports", "ember-metal/core", "ember-metal/error", "embe | |
| 5473 5473 |  | 
| 5474 5474 | 
             
                @method deprecateFunc
         | 
| 5475 5475 | 
             
                @param {String} message A description of the deprecation.
         | 
| 5476 | 
            +
                @param {Object} [options] The options object for Ember.deprecate.
         | 
| 5476 5477 | 
             
                @param {Function} func The new function called to replace its deprecated counterpart.
         | 
| 5477 5478 | 
             
                @return {Function} a new function that wrapped the original function with a deprecation warning
         | 
| 5478 5479 | 
             
                @private
         | 
| 5479 5480 | 
             
              */
         | 
| 5480 | 
            -
              _emberMetalCore["default"].deprecateFunc = function ( | 
| 5481 | 
            -
                 | 
| 5482 | 
            -
                   | 
| 5483 | 
            -
             | 
| 5484 | 
            -
             | 
| 5481 | 
            +
              _emberMetalCore["default"].deprecateFunc = function () {
         | 
| 5482 | 
            +
                for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
         | 
| 5483 | 
            +
                  args[_key] = arguments[_key];
         | 
| 5484 | 
            +
                }
         | 
| 5485 | 
            +
             | 
| 5486 | 
            +
                if (args.length === 3) {
         | 
| 5487 | 
            +
                  var _ret = (function () {
         | 
| 5488 | 
            +
                    var message = args[0];
         | 
| 5489 | 
            +
                    var options = args[1];
         | 
| 5490 | 
            +
                    var func = args[2];
         | 
| 5491 | 
            +
             | 
| 5492 | 
            +
                    return {
         | 
| 5493 | 
            +
                      v: function () {
         | 
| 5494 | 
            +
                        _emberMetalCore["default"].deprecate(message, false, options);
         | 
| 5495 | 
            +
                        return func.apply(this, arguments);
         | 
| 5496 | 
            +
                      }
         | 
| 5497 | 
            +
                    };
         | 
| 5498 | 
            +
                  })();
         | 
| 5499 | 
            +
             | 
| 5500 | 
            +
                  if (typeof _ret === "object") return _ret.v;
         | 
| 5501 | 
            +
                } else {
         | 
| 5502 | 
            +
                  var _ret2 = (function () {
         | 
| 5503 | 
            +
                    var message = args[0];
         | 
| 5504 | 
            +
                    var func = args[1];
         | 
| 5505 | 
            +
             | 
| 5506 | 
            +
                    return {
         | 
| 5507 | 
            +
                      v: function () {
         | 
| 5508 | 
            +
                        _emberMetalCore["default"].deprecate(message);
         | 
| 5509 | 
            +
                        return func.apply(this, arguments);
         | 
| 5510 | 
            +
                      }
         | 
| 5511 | 
            +
                    };
         | 
| 5512 | 
            +
                  })();
         | 
| 5513 | 
            +
             | 
| 5514 | 
            +
                  if (typeof _ret2 === "object") return _ret2.v;
         | 
| 5515 | 
            +
                }
         | 
| 5485 5516 | 
             
              };
         | 
| 5486 5517 |  | 
| 5487 5518 | 
             
              /**
         | 
| @@ -5489,10 +5520,10 @@ enifed("ember-debug", ["exports", "ember-metal/core", "ember-metal/error", "embe | |
| 5489 5520 | 
             
                `Ember.runInDebug()` when doing a production build.
         | 
| 5490 5521 |  | 
| 5491 5522 | 
             
                ```javascript
         | 
| 5492 | 
            -
                Ember.runInDebug( | 
| 5493 | 
            -
                  Ember. | 
| 5494 | 
            -
                    didInsertElement | 
| 5495 | 
            -
                      console.log( | 
| 5523 | 
            +
                Ember.runInDebug(() => {
         | 
| 5524 | 
            +
                  Ember.Component.reopen({
         | 
| 5525 | 
            +
                    didInsertElement() {
         | 
| 5526 | 
            +
                      console.log("I'm happy");
         | 
| 5496 5527 | 
             
                    }
         | 
| 5497 5528 | 
             
                  });
         | 
| 5498 5529 | 
             
                });
         | 
| @@ -6254,6 +6285,30 @@ enifed("ember-htmlbars", ["exports", "ember-metal/core", "ember-template-compile | |
| 6254 6285 | 
             
                _emberMetalCore["default"].Helper = _emberHtmlbarsHelper["default"];
         | 
| 6255 6286 | 
             
              }
         | 
| 6256 6287 | 
             
            });
         | 
| 6288 | 
            +
            /**
         | 
| 6289 | 
            +
             | 
| 6290 | 
            +
               
         | 
| 6291 | 
            +
             | 
| 6292 | 
            +
              @module ember
         | 
| 6293 | 
            +
              @submodule ember-templates
         | 
| 6294 | 
            +
              @main ember-templates
         | 
| 6295 | 
            +
              @public
         | 
| 6296 | 
            +
            */
         | 
| 6297 | 
            +
             | 
| 6298 | 
            +
            /**
         | 
| 6299 | 
            +
             | 
| 6300 | 
            +
              [HTMLBars](https://github.com/tildeio/htmlbars) is a [Handlebars](http://handlebarsjs.com/)
         | 
| 6301 | 
            +
              compatible templating engine used by Ember.js. The classes and namespaces
         | 
| 6302 | 
            +
              covered by this documentation attempt to focus on APIs for interacting
         | 
| 6303 | 
            +
              with HTMLBars itself. For more general guidance on Ember.js templates and
         | 
| 6304 | 
            +
              helpers, please see the [ember-templates](/api/modules/ember-templates.html)
         | 
| 6305 | 
            +
              package.
         | 
| 6306 | 
            +
             | 
| 6307 | 
            +
              @module ember
         | 
| 6308 | 
            +
              @submodule ember-htmlbars
         | 
| 6309 | 
            +
              @main ember-htmlbars
         | 
| 6310 | 
            +
              @public
         | 
| 6311 | 
            +
            */
         | 
| 6257 6312 |  | 
| 6258 6313 | 
             
            // importing adds template bootstrapping
         | 
| 6259 6314 | 
             
            // initializer to enable embedded templates
         | 
| @@ -6468,8 +6523,6 @@ enifed("ember-htmlbars/compat/make-bound-helper", ["exports", "ember-metal/strea | |
| 6468 6523 | 
             
              @submodule ember-htmlbars
         | 
| 6469 6524 | 
             
              */
         | 
| 6470 6525 |  | 
| 6471 | 
            -
              //import Helper from "ember-htmlbars/system/helper";
         | 
| 6472 | 
            -
             | 
| 6473 6526 | 
             
              /**
         | 
| 6474 6527 | 
             
                A helper function used by `registerBoundHelper`. Takes the
         | 
| 6475 6528 | 
             
                provided Handlebars helper function fn and returns it in wrapped
         | 
| @@ -6719,22 +6772,107 @@ enifed("ember-htmlbars/env", ["exports", "ember-metal/environment", "htmlbars-ru | |
| 6719 6772 |  | 
| 6720 6773 | 
             
              exports.domHelper = domHelper;
         | 
| 6721 6774 | 
             
            });
         | 
| 6722 | 
            -
            enifed( | 
| 6775 | 
            +
            enifed('ember-htmlbars/helper', ['exports', 'ember-runtime/system/object'], function (exports, _emberRuntimeSystemObject) {
         | 
| 6723 6776 | 
             
              exports.helper = helper;
         | 
| 6724 6777 |  | 
| 6725 | 
            -
               | 
| 6778 | 
            +
              /**
         | 
| 6779 | 
            +
                Ember Helpers are functions that can compute values, and are used in templates.
         | 
| 6780 | 
            +
                For example, this code calls a helper named `format-currency`:
         | 
| 6781 | 
            +
              
         | 
| 6782 | 
            +
                ```handlebars
         | 
| 6783 | 
            +
                <div>{{format-currency cents currency="$"}}</div>
         | 
| 6784 | 
            +
                ```
         | 
| 6785 | 
            +
              
         | 
| 6786 | 
            +
                Additionally a helper can be called as a nested helper (sometimes called a
         | 
| 6787 | 
            +
                subexpression). In this example, the computed value of a helper is passed
         | 
| 6788 | 
            +
                to a component named `show-money`:
         | 
| 6789 | 
            +
              
         | 
| 6790 | 
            +
                ```handlebars
         | 
| 6791 | 
            +
                {{show-money amount=(format-currency cents currency="$")}}
         | 
| 6792 | 
            +
                ```
         | 
| 6793 | 
            +
              
         | 
| 6794 | 
            +
                Helpers defined using a class must provide a `compute` function. For example:
         | 
| 6795 | 
            +
              
         | 
| 6796 | 
            +
                ```js
         | 
| 6797 | 
            +
                export default Ember.Helper.extend({
         | 
| 6798 | 
            +
                  compute(params, hash) {
         | 
| 6799 | 
            +
                    let cents = params[0];
         | 
| 6800 | 
            +
                    let currency = hash.currency;
         | 
| 6801 | 
            +
                    return `${currency}${cents * 0.01}`;
         | 
| 6802 | 
            +
                  }
         | 
| 6803 | 
            +
                });
         | 
| 6804 | 
            +
                ```
         | 
| 6805 | 
            +
              
         | 
| 6806 | 
            +
                Each time the input to a helper changes, the `compute` function will be
         | 
| 6807 | 
            +
                called again.
         | 
| 6808 | 
            +
              
         | 
| 6809 | 
            +
                As instances, these helpers also have access to the container an will accept
         | 
| 6810 | 
            +
                injected dependencies.
         | 
| 6811 | 
            +
              
         | 
| 6812 | 
            +
                Additionally, class helpers can call `recompute` to force a new computation.
         | 
| 6813 | 
            +
              
         | 
| 6814 | 
            +
                @class Ember.Helper
         | 
| 6815 | 
            +
                @public
         | 
| 6816 | 
            +
              */
         | 
| 6726 6817 | 
             
              var Helper = _emberRuntimeSystemObject["default"].extend({
         | 
| 6727 6818 | 
             
                isHelper: true,
         | 
| 6819 | 
            +
             | 
| 6820 | 
            +
                /**
         | 
| 6821 | 
            +
                  On a class-based helper, it may be useful to force a recomputation of that
         | 
| 6822 | 
            +
                  helpers value. This is akin to `rerender` on a component.
         | 
| 6823 | 
            +
                   For example, this component will rerender when the `currentUser` on a
         | 
| 6824 | 
            +
                  session service changes:
         | 
| 6825 | 
            +
                   ```js
         | 
| 6826 | 
            +
                  // app/helpers/current-user-email.js
         | 
| 6827 | 
            +
                  export default Ember.Helper.extend({
         | 
| 6828 | 
            +
                    session: Ember.inject.service(),
         | 
| 6829 | 
            +
                    onNewUser: Ember.observer('session.currentUser', function() {
         | 
| 6830 | 
            +
                      this.recompute();
         | 
| 6831 | 
            +
                    }),
         | 
| 6832 | 
            +
                    compute() {
         | 
| 6833 | 
            +
                      return this.get('session.currentUser.email');
         | 
| 6834 | 
            +
                    }
         | 
| 6835 | 
            +
                  });
         | 
| 6836 | 
            +
                  ```
         | 
| 6837 | 
            +
                   @method recompute
         | 
| 6838 | 
            +
                  @public
         | 
| 6839 | 
            +
                */
         | 
| 6728 6840 | 
             
                recompute: function () {
         | 
| 6729 6841 | 
             
                  this._stream.notify();
         | 
| 6730 6842 | 
             
                }
         | 
| 6843 | 
            +
             | 
| 6844 | 
            +
                /**
         | 
| 6845 | 
            +
                  Override this function when writing a class-based helper.
         | 
| 6846 | 
            +
                   @method compute
         | 
| 6847 | 
            +
                  @param {Array} params The positional arguments to the helper
         | 
| 6848 | 
            +
                  @param {Object} hash The named arguments to the helper
         | 
| 6849 | 
            +
                  @public
         | 
| 6850 | 
            +
                */
         | 
| 6731 6851 | 
             
              });
         | 
| 6732 6852 |  | 
| 6733 6853 | 
             
              Helper.reopenClass({
         | 
| 6734 6854 | 
             
                isHelperFactory: true
         | 
| 6735 6855 | 
             
              });
         | 
| 6736 6856 |  | 
| 6737 | 
            -
               | 
| 6857 | 
            +
              /**
         | 
| 6858 | 
            +
                In many cases, the ceremony of a full `Ember.Helper` class is not required.
         | 
| 6859 | 
            +
                The `helper` method create pure-function helpers without instances. For
         | 
| 6860 | 
            +
                example:
         | 
| 6861 | 
            +
              
         | 
| 6862 | 
            +
                ```js
         | 
| 6863 | 
            +
                // app/helpers/format-currency.js
         | 
| 6864 | 
            +
                export default Ember.Helper.helper(function(params, hash) {
         | 
| 6865 | 
            +
                  let cents = params[0];
         | 
| 6866 | 
            +
                  let currency = hash.currency;
         | 
| 6867 | 
            +
                  return `${currency}${cents * 0.01}`;
         | 
| 6868 | 
            +
                });
         | 
| 6869 | 
            +
                ```
         | 
| 6870 | 
            +
              
         | 
| 6871 | 
            +
                @static
         | 
| 6872 | 
            +
                @param {Function} helper The helper function
         | 
| 6873 | 
            +
                @method helper
         | 
| 6874 | 
            +
                @public
         | 
| 6875 | 
            +
              */
         | 
| 6738 6876 |  | 
| 6739 6877 | 
             
              function helper(helperFn) {
         | 
| 6740 6878 | 
             
                return {
         | 
| @@ -6745,6 +6883,10 @@ enifed("ember-htmlbars/helper", ["exports", "ember-runtime/system/object"], func | |
| 6745 6883 |  | 
| 6746 6884 | 
             
              exports["default"] = Helper;
         | 
| 6747 6885 | 
             
            });
         | 
| 6886 | 
            +
            /**
         | 
| 6887 | 
            +
            @module ember
         | 
| 6888 | 
            +
            @submodule ember-templates
         | 
| 6889 | 
            +
            */
         | 
| 6748 6890 | 
             
            enifed("ember-htmlbars/helpers", ["exports", "ember-metal/platform/create"], function (exports, _emberMetalPlatformCreate) {
         | 
| 6749 6891 | 
             
              exports.registerHelper = registerHelper;
         | 
| 6750 6892 |  | 
| @@ -7194,7 +7336,7 @@ enifed('ember-htmlbars/helpers/each', ['exports', 'ember-metal/core', 'ember-met | |
| 7194 7336 | 
             
                ```
         | 
| 7195 7337 |  | 
| 7196 7338 | 
             
                @method each
         | 
| 7197 | 
            -
                @for Ember. | 
| 7339 | 
            +
                @for Ember.Templates.helpers
         | 
| 7198 7340 | 
             
                @public
         | 
| 7199 7341 | 
             
              */
         | 
| 7200 7342 |  | 
| @@ -7287,7 +7429,7 @@ enifed("ember-htmlbars/helpers/if_unless", ["exports", "ember-metal/core", "embe | |
| 7287 7429 | 
             
                ```
         | 
| 7288 7430 |  | 
| 7289 7431 | 
             
                @method if
         | 
| 7290 | 
            -
                @for Ember. | 
| 7432 | 
            +
                @for Ember.Templates.helpers
         | 
| 7291 7433 | 
             
                @public
         | 
| 7292 7434 | 
             
              */
         | 
| 7293 7435 | 
             
              function ifHelper(params, hash, options) {
         | 
| @@ -7300,7 +7442,7 @@ enifed("ember-htmlbars/helpers/if_unless", ["exports", "ember-metal/core", "embe | |
| 7300 7442 | 
             
                helper can also be used with `unless`.
         | 
| 7301 7443 |  | 
| 7302 7444 | 
             
                @method unless
         | 
| 7303 | 
            -
                @for Ember. | 
| 7445 | 
            +
                @for Ember.Templates.helpers
         | 
| 7304 7446 | 
             
                @public
         | 
| 7305 7447 | 
             
              */
         | 
| 7306 7448 | 
             
              function unlessHelper(params, hash, options) {
         | 
| @@ -7332,7 +7474,7 @@ enifed("ember-htmlbars/helpers/if_unless", ["exports", "ember-metal/core", "embe | |
| 7332 7474 | 
             
            });
         | 
| 7333 7475 | 
             
            /**
         | 
| 7334 7476 | 
             
            @module ember
         | 
| 7335 | 
            -
            @submodule ember- | 
| 7477 | 
            +
            @submodule ember-templates
         | 
| 7336 7478 | 
             
            */
         | 
| 7337 7479 |  | 
| 7338 7480 | 
             
            // Ember.assert
         | 
| @@ -7341,32 +7483,37 @@ enifed('ember-htmlbars/helpers/loc', ['exports', 'ember-runtime/system/string'], | |
| 7341 7483 |  | 
| 7342 7484 | 
             
              /**
         | 
| 7343 7485 | 
             
              @module ember
         | 
| 7344 | 
            -
              @submodule ember- | 
| 7486 | 
            +
              @submodule ember-templates
         | 
| 7345 7487 | 
             
              */
         | 
| 7346 7488 |  | 
| 7347 7489 | 
             
              /**
         | 
| 7348 7490 | 
             
                Calls [Ember.String.loc](/api/classes/Ember.String.html#method_loc) with the
         | 
| 7349 | 
            -
                provided string.
         | 
| 7350 | 
            -
                 | 
| 7491 | 
            +
                provided string. This is a convenient way to localize text within a template.
         | 
| 7492 | 
            +
                For example:
         | 
| 7493 | 
            +
              
         | 
| 7351 7494 | 
             
                ```javascript
         | 
| 7352 7495 | 
             
                Ember.STRINGS = {
         | 
| 7353 7496 | 
             
                  '_welcome_': 'Bonjour'
         | 
| 7354 7497 | 
             
                };
         | 
| 7355 7498 | 
             
                ```
         | 
| 7499 | 
            +
              
         | 
| 7356 7500 | 
             
                ```handlebars
         | 
| 7357 7501 | 
             
                <div class='message'>
         | 
| 7358 7502 | 
             
                  {{loc '_welcome_'}}
         | 
| 7359 7503 | 
             
                </div>
         | 
| 7360 7504 | 
             
                ```
         | 
| 7505 | 
            +
              
         | 
| 7361 7506 | 
             
                ```html
         | 
| 7362 7507 | 
             
                <div class='message'>
         | 
| 7363 7508 | 
             
                  Bonjour
         | 
| 7364 7509 | 
             
                </div>
         | 
| 7365 7510 | 
             
                ```
         | 
| 7511 | 
            +
              
         | 
| 7366 7512 | 
             
                See [Ember.String.loc](/api/classes/Ember.String.html#method_loc) for how to
         | 
| 7367 7513 | 
             
                set up localized string references.
         | 
| 7514 | 
            +
              
         | 
| 7368 7515 | 
             
                @method loc
         | 
| 7369 | 
            -
                @for Ember. | 
| 7516 | 
            +
                @for Ember.Templates.helpers
         | 
| 7370 7517 | 
             
                @param {String} str The string to format
         | 
| 7371 7518 | 
             
                @see {Ember.String#loc}
         | 
| 7372 7519 | 
             
                @public
         | 
| @@ -7382,11 +7529,13 @@ enifed("ember-htmlbars/helpers/log", ["exports", "ember-metal/logger"], function | |
| 7382 7529 | 
             
              /**
         | 
| 7383 7530 | 
             
                `log` allows you to output the value of variables in the current rendering
         | 
| 7384 7531 | 
             
                context. `log` also accepts primitive types such as strings or numbers.
         | 
| 7532 | 
            +
              
         | 
| 7385 7533 | 
             
                ```handlebars
         | 
| 7386 7534 | 
             
                {{log "myVariable:" myVariable }}
         | 
| 7387 7535 | 
             
                ```
         | 
| 7536 | 
            +
              
         | 
| 7388 7537 | 
             
                @method log
         | 
| 7389 | 
            -
                @for Ember. | 
| 7538 | 
            +
                @for Ember.Templates.helpers
         | 
| 7390 7539 | 
             
                @param {*} values
         | 
| 7391 7540 | 
             
                @public
         | 
| 7392 7541 | 
             
              */
         | 
| @@ -7397,7 +7546,7 @@ enifed("ember-htmlbars/helpers/log", ["exports", "ember-metal/logger"], function | |
| 7397 7546 | 
             
            });
         | 
| 7398 7547 | 
             
            /**
         | 
| 7399 7548 | 
             
            @module ember
         | 
| 7400 | 
            -
            @submodule ember- | 
| 7549 | 
            +
            @submodule ember-templates
         | 
| 7401 7550 | 
             
            */
         | 
| 7402 7551 | 
             
            enifed("ember-htmlbars/helpers/with", ["exports", "ember-htmlbars/utils/normalize-self", "ember-views/streams/should_display"], function (exports, _emberHtmlbarsUtilsNormalizeSelf, _emberViewsStreamsShould_display) {
         | 
| 7403 7552 | 
             
              exports["default"] = withHelper;
         | 
| @@ -7429,7 +7578,7 @@ enifed("ember-htmlbars/helpers/with", ["exports", "ember-htmlbars/utils/normaliz | |
| 7429 7578 | 
             
                the first part of the property path, `foo`. Instead, use `{{#with foo.bar as |baz|}}`.
         | 
| 7430 7579 |  | 
| 7431 7580 | 
             
                @method with
         | 
| 7432 | 
            -
                @for Ember. | 
| 7581 | 
            +
                @for Ember.Templates.helpers
         | 
| 7433 7582 | 
             
                @param {Object} options
         | 
| 7434 7583 | 
             
                @return {String} HTML string
         | 
| 7435 7584 | 
             
                @public
         | 
| @@ -7464,7 +7613,7 @@ enifed("ember-htmlbars/helpers/with", ["exports", "ember-htmlbars/utils/normaliz | |
| 7464 7613 | 
             
            });
         | 
| 7465 7614 | 
             
            /**
         | 
| 7466 7615 | 
             
            @module ember
         | 
| 7467 | 
            -
            @submodule ember- | 
| 7616 | 
            +
            @submodule ember-templates
         | 
| 7468 7617 | 
             
            */
         | 
| 7469 7618 | 
             
            enifed("ember-htmlbars/hooks/bind-local", ["exports", "ember-metal/streams/stream", "ember-metal/streams/proxy-stream"], function (exports, _emberMetalStreamsStream, _emberMetalStreamsProxyStream) {
         | 
| 7470 7619 | 
             
              exports["default"] = bindLocal;
         | 
| @@ -7507,7 +7656,6 @@ enifed("ember-htmlbars/hooks/bind-self", ["exports", "ember-metal/streams/proxy- | |
| 7507 7656 | 
             
                }
         | 
| 7508 7657 |  | 
| 7509 7658 | 
             
                if (self && self.isView) {
         | 
| 7510 | 
            -
                  scope.view = self;
         | 
| 7511 7659 | 
             
                  newStream(scope.locals, "view", self, null);
         | 
| 7512 7660 | 
             
                  newStream(scope.locals, "controller", scope.locals.view.getKey("controller"));
         | 
| 7513 7661 | 
             
                  newStream(scope, "self", scope.locals.view.getKey("context"), null, true);
         | 
| @@ -7664,13 +7812,59 @@ enifed("ember-htmlbars/hooks/concat", ["exports", "ember-metal/streams/utils"], | |
| 7664 7812 | 
             
            */
         | 
| 7665 7813 | 
             
            enifed("ember-htmlbars/hooks/create-fresh-scope", ["exports"], function (exports) {
         | 
| 7666 7814 | 
             
              exports["default"] = createFreshScope;
         | 
| 7815 | 
            +
              /*
         | 
| 7816 | 
            +
                Ember's implementation of HTMLBars creates an enriched scope.
         | 
| 7817 | 
            +
              
         | 
| 7818 | 
            +
                * self: same as HTMLBars, this field represents the dynamic lookup
         | 
| 7819 | 
            +
                  of root keys that are not special keywords or block arguments.
         | 
| 7820 | 
            +
                * blocks: same as HTMLBars, a bundle of named blocks the layout
         | 
| 7821 | 
            +
                  can yield to.
         | 
| 7822 | 
            +
                * component: indicates that the scope is the layout of a component,
         | 
| 7823 | 
            +
                  which is used to trigger lifecycle hooks for the component when
         | 
| 7824 | 
            +
                  one of the streams in its layout fires.
         | 
| 7825 | 
            +
                * attrs: a map of key-value attributes sent in by the invoker of
         | 
| 7826 | 
            +
                  a template, and available in the component's layout.
         | 
| 7827 | 
            +
                * locals: a map of locals, produced by block params (`as |a b|`)
         | 
| 7828 | 
            +
                * localPresent: a map of available locals to avoid expensive
         | 
| 7829 | 
            +
                  `hasOwnProperty` checks.
         | 
| 7830 | 
            +
              
         | 
| 7831 | 
            +
                The `self` field has two special meanings:
         | 
| 7832 | 
            +
              
         | 
| 7833 | 
            +
                * If `self` is a view (`isView`), the actual HTMLBars `self` becomes
         | 
| 7834 | 
            +
                  the view's `context`. This is legacy semantics; components always
         | 
| 7835 | 
            +
                  use the component itself as the `this`.
         | 
| 7836 | 
            +
                * If `self` is a view, two special locals are created: `view` and
         | 
| 7837 | 
            +
                  `controller`. These locals are legacy semantics.
         | 
| 7838 | 
            +
                * If self has a `hasBoundController` property, it is coming from
         | 
| 7839 | 
            +
                  a legacy form of #with or #each
         | 
| 7840 | 
            +
                  (`{{#with something controller=someController}}`). This has
         | 
| 7841 | 
            +
                  the special effect of giving the child scope the supplied
         | 
| 7842 | 
            +
                  `controller` keyword, with an unrelated `self`. This is
         | 
| 7843 | 
            +
                  legacy functionality, as both the `view` and `controller`
         | 
| 7844 | 
            +
                  keywords have been deprecated.
         | 
| 7845 | 
            +
              
         | 
| 7846 | 
            +
                **IMPORTANT**: There are two places in Ember where the ambient
         | 
| 7847 | 
            +
                controller is looked up. Both of those places use the presence
         | 
| 7848 | 
            +
                of `scope.locals.view` to indicate that the controller lookup
         | 
| 7849 | 
            +
                should be dynamic off of the ambient view. If `scope.locals.view`
         | 
| 7850 | 
            +
                does not exist, the code assumes that it is inside of a top-level
         | 
| 7851 | 
            +
                template (without a view) and uses the `self` itself as the
         | 
| 7852 | 
            +
                controller. This means that if you remove `scope.locals.view`
         | 
| 7853 | 
            +
                (perhaps because we are finally ready to shed the view keyword),
         | 
| 7854 | 
            +
                there may be unexpected consequences on controller semantics.
         | 
| 7855 | 
            +
                If this happens to you, I hope you find this comment. - YK & TD
         | 
| 7856 | 
            +
              
         | 
| 7857 | 
            +
                In practice, this means that with the exceptions of top-level
         | 
| 7858 | 
            +
                view-less templates and the legacy `controller=foo` semantics,
         | 
| 7859 | 
            +
                the controller hierarchy is managed dynamically by looking at
         | 
| 7860 | 
            +
                the current view's `controller`.
         | 
| 7861 | 
            +
              */
         | 
| 7667 7862 |  | 
| 7668 7863 | 
             
              function createFreshScope() {
         | 
| 7669 7864 | 
             
                return {
         | 
| 7670 7865 | 
             
                  self: null,
         | 
| 7671 7866 | 
             
                  blocks: {},
         | 
| 7672 7867 | 
             
                  component: null,
         | 
| 7673 | 
            -
                  view: null,
         | 
| 7674 7868 | 
             
                  attrs: null,
         | 
| 7675 7869 | 
             
                  locals: {},
         | 
| 7676 7870 | 
             
                  localPresent: {}
         | 
| @@ -7701,10 +7895,9 @@ enifed("ember-htmlbars/hooks/did-cleanup-tree", ["exports"], function (exports) | |
| 7701 7895 | 
             
              exports["default"] = didCleanupTree;
         | 
| 7702 7896 |  | 
| 7703 7897 | 
             
              function didCleanupTree(env) {
         | 
| 7704 | 
            -
                 | 
| 7705 | 
            -
                 | 
| 7706 | 
            -
             | 
| 7707 | 
            -
                }
         | 
| 7898 | 
            +
                // Once we have finsihed cleaning up the render node and sub-nodes, reset
         | 
| 7899 | 
            +
                // state tracking which view those render nodes belonged to.
         | 
| 7900 | 
            +
                env.view.ownerView._destroyingSubtreeForView = null;
         | 
| 7708 7901 | 
             
              }
         | 
| 7709 7902 | 
             
            });
         | 
| 7710 7903 | 
             
            enifed("ember-htmlbars/hooks/did-render-node", ["exports"], function (exports) {
         | 
| @@ -7941,7 +8134,7 @@ enifed("ember-htmlbars/hooks/link-render-node", ["exports", "ember-htmlbars/util | |
| 7941 8134 | 
             
                    case "each":
         | 
| 7942 8135 | 
             
                      params[0] = eachParam(params[0]);break;
         | 
| 7943 8136 | 
             
                    default:
         | 
| 7944 | 
            -
                      helper = _emberHtmlbarsSystemLookupHelper.findHelper(path,  | 
| 8137 | 
            +
                      helper = _emberHtmlbarsSystemLookupHelper.findHelper(path, env.view, env);
         | 
| 7945 8138 |  | 
| 7946 8139 | 
             
                      if (helper && helper.isHandlebarsCompat && params[0]) {
         | 
| 7947 8140 | 
             
                        params[0] = processHandlebarsCompatDepKeys(params[0], helper._dependentKeys);
         | 
| @@ -8124,7 +8317,6 @@ enifed("ember-htmlbars/hooks/update-self", ["exports", "ember-metal/property_get | |
| 8124 8317 | 
             
                Ember.assert("BUG: scope.attrs and self.isView should not both be true", !(scope.attrs && self.isView));
         | 
| 8125 8318 |  | 
| 8126 8319 | 
             
                if (self && self.isView) {
         | 
| 8127 | 
            -
                  scope.view = self;
         | 
| 8128 8320 | 
             
                  _emberHtmlbarsUtilsUpdateScope["default"](scope.locals, "view", self, null);
         | 
| 8129 8321 | 
             
                  _emberHtmlbarsUtilsUpdateScope["default"](scope, "self", _emberMetalProperty_get.get(self, "context"), null, true);
         | 
| 8130 8322 | 
             
                  return;
         | 
| @@ -8140,15 +8332,37 @@ enifed("ember-htmlbars/hooks/update-self", ["exports", "ember-metal/property_get | |
| 8140 8332 | 
             
            enifed("ember-htmlbars/hooks/will-cleanup-tree", ["exports"], function (exports) {
         | 
| 8141 8333 | 
             
              exports["default"] = willCleanupTree;
         | 
| 8142 8334 |  | 
| 8143 | 
            -
              function willCleanupTree(env | 
| 8144 | 
            -
                var view =  | 
| 8145 | 
            -
                if (destroySelf && view && view.parentView) {
         | 
| 8146 | 
            -
                  view.parentView.removeChild(view);
         | 
| 8147 | 
            -
                }
         | 
| 8335 | 
            +
              function willCleanupTree(env) {
         | 
| 8336 | 
            +
                var view = env.view;
         | 
| 8148 8337 |  | 
| 8149 | 
            -
                 | 
| 8150 | 
            -
             | 
| 8151 | 
            -
                 | 
| 8338 | 
            +
                // When we go to clean up the render node and all of its children, we may
         | 
| 8339 | 
            +
                // encounter views/components associated with those nodes along the way. In
         | 
| 8340 | 
            +
                // those cases, we need to make sure we need to sever the link between the
         | 
| 8341 | 
            +
                // existing view hierarchy and those views.
         | 
| 8342 | 
            +
                //
         | 
| 8343 | 
            +
                // However, we do *not* need to remove the child views of child views, since
         | 
| 8344 | 
            +
                // severing the connection to their parent effectively severs them from the
         | 
| 8345 | 
            +
                // view graph.
         | 
| 8346 | 
            +
                //
         | 
| 8347 | 
            +
                // For example, imagine the following view graph:
         | 
| 8348 | 
            +
                //
         | 
| 8349 | 
            +
                //    A
         | 
| 8350 | 
            +
                //   / \
         | 
| 8351 | 
            +
                //  B  C
         | 
| 8352 | 
            +
                //    / \
         | 
| 8353 | 
            +
                //   D  E
         | 
| 8354 | 
            +
                //
         | 
| 8355 | 
            +
                // If we are cleaning up the node for view C, we need to remove that view
         | 
| 8356 | 
            +
                // from A's child views. However, we do not need to remove D and E from C's
         | 
| 8357 | 
            +
                // child views, since removing C transitively removes D and E as well.
         | 
| 8358 | 
            +
                //
         | 
| 8359 | 
            +
                // To accomplish this, we track the nearest view to this render node on the
         | 
| 8360 | 
            +
                // owner view, the root-most view in the graph (A in the example above). If
         | 
| 8361 | 
            +
                // we detect a view that is a direct child of that view, we remove it from
         | 
| 8362 | 
            +
                // the `childViews` array. Other parent/child view relationships are
         | 
| 8363 | 
            +
                // untouched.  This view is then cleared once cleanup is complete in
         | 
| 8364 | 
            +
                // `didCleanupTree`.
         | 
| 8365 | 
            +
                view.ownerView._destroyingSubtreeForView = view;
         | 
| 8152 8366 | 
             
              }
         | 
| 8153 8367 | 
             
            });
         | 
| 8154 8368 | 
             
            enifed("ember-htmlbars/keywords", ["exports", "htmlbars-runtime", "ember-metal/platform/create"], function (exports, _htmlbarsRuntime, _emberMetalPlatformCreate) {
         | 
| @@ -8189,7 +8403,7 @@ enifed("ember-htmlbars/keywords/collection", ["exports", "ember-views/streams/ut | |
| 8189 8403 | 
             
                  var read = env.hooks.getValue;
         | 
| 8190 8404 |  | 
| 8191 8405 | 
             
                  return _emberMetalMerge.assign({}, state, {
         | 
| 8192 | 
            -
                    parentView:  | 
| 8406 | 
            +
                    parentView: env.view,
         | 
| 8193 8407 | 
             
                    viewClassOrInstance: getView(read(params[0]), env.container)
         | 
| 8194 8408 | 
             
                  });
         | 
| 8195 8409 | 
             
                },
         | 
| @@ -8246,7 +8460,55 @@ enifed("ember-htmlbars/keywords/collection", ["exports", "ember-views/streams/ut | |
| 8246 8460 | 
             
            @module ember
         | 
| 8247 8461 | 
             
            @submodule ember-htmlbars
         | 
| 8248 8462 | 
             
            */
         | 
| 8249 | 
            -
            enifed( | 
| 8463 | 
            +
            enifed('ember-htmlbars/keywords/component', ['exports', 'ember-metal/merge'], function (exports, _emberMetalMerge) {
         | 
| 8464 | 
            +
             | 
| 8465 | 
            +
              /**
         | 
| 8466 | 
            +
                The `{{component}}` helper lets you add instances of `Ember.Component` to a
         | 
| 8467 | 
            +
                template. See [Ember.Component](/api/classes/Ember.Component.html) for
         | 
| 8468 | 
            +
                additional information on how a `Component` functions.
         | 
| 8469 | 
            +
                `{{component}}`'s primary use is for cases where you want to dynamically
         | 
| 8470 | 
            +
                change which type of component is rendered as the state of your application
         | 
| 8471 | 
            +
                changes. The provided block will be applied as the template for the component.
         | 
| 8472 | 
            +
                Given an empty `<body>` the following template:
         | 
| 8473 | 
            +
              
         | 
| 8474 | 
            +
                ```handlebars
         | 
| 8475 | 
            +
                {{! application.hbs }}
         | 
| 8476 | 
            +
                {{component infographicComponentName}}
         | 
| 8477 | 
            +
                ```
         | 
| 8478 | 
            +
              
         | 
| 8479 | 
            +
                And the following application code:
         | 
| 8480 | 
            +
              
         | 
| 8481 | 
            +
                ```javascript
         | 
| 8482 | 
            +
                export default Ember.Controller.extend({
         | 
| 8483 | 
            +
                  infographicComponentName: computed('isMarketOpen', {
         | 
| 8484 | 
            +
                    get() {
         | 
| 8485 | 
            +
                      if (this.get('isMarketOpen')) {
         | 
| 8486 | 
            +
                        return 'live-updating-chart';
         | 
| 8487 | 
            +
                      } else {
         | 
| 8488 | 
            +
                        return 'market-close-summary';
         | 
| 8489 | 
            +
                      }
         | 
| 8490 | 
            +
                    }
         | 
| 8491 | 
            +
                  })
         | 
| 8492 | 
            +
                });
         | 
| 8493 | 
            +
                ```
         | 
| 8494 | 
            +
              
         | 
| 8495 | 
            +
                The `live-updating-chart` component will be appended when `isMarketOpen` is
         | 
| 8496 | 
            +
                `true`, and the `market-close-summary` component will be appended when
         | 
| 8497 | 
            +
                `isMarketOpen` is `false`. If the value changes while the app is running,
         | 
| 8498 | 
            +
                the component will be automatically swapped out accordingly.
         | 
| 8499 | 
            +
                Note: You should not use this helper when you are consistently rendering the same
         | 
| 8500 | 
            +
                component. In that case, use standard component syntax, for example:
         | 
| 8501 | 
            +
              
         | 
| 8502 | 
            +
                ```handlebars
         | 
| 8503 | 
            +
                {{! application.hbs }}
         | 
| 8504 | 
            +
                {{live-updating-chart}}
         | 
| 8505 | 
            +
                ```
         | 
| 8506 | 
            +
              
         | 
| 8507 | 
            +
                @method component
         | 
| 8508 | 
            +
                @since 1.11.0
         | 
| 8509 | 
            +
                @for Ember.Templates.helpers
         | 
| 8510 | 
            +
                @public
         | 
| 8511 | 
            +
              */
         | 
| 8250 8512 | 
             
              exports["default"] = {
         | 
| 8251 8513 | 
             
                setupState: function (lastState, env, scope, params, hash) {
         | 
| 8252 8514 | 
             
                  var componentPath = env.hooks.getValue(params[0]);
         | 
| @@ -8285,6 +8547,11 @@ enifed("ember-htmlbars/keywords/component", ["exports", "ember-metal/merge"], fu | |
| 8285 8547 | 
             
                env.hooks.component(morph, env, scope, componentPath, params, hash, { "default": template, inverse: inverse }, visitor);
         | 
| 8286 8548 | 
             
              }
         | 
| 8287 8549 | 
             
            });
         | 
| 8550 | 
            +
            /**
         | 
| 8551 | 
            +
              @module ember
         | 
| 8552 | 
            +
              @submodule ember-templates
         | 
| 8553 | 
            +
              @public
         | 
| 8554 | 
            +
            */
         | 
| 8288 8555 | 
             
            enifed("ember-htmlbars/keywords/customized_outlet", ["exports", "ember-htmlbars/node-managers/view-node-manager", "ember-views/streams/utils", "ember-metal/streams/utils"], function (exports, _emberHtmlbarsNodeManagersViewNodeManager, _emberViewsStreamsUtils, _emberMetalStreamsUtils) {
         | 
| 8289 8556 | 
             
              exports["default"] = {
         | 
| 8290 8557 | 
             
                setupState: function (state, env, scope, params, hash) {
         | 
| @@ -8352,7 +8619,7 @@ enifed("ember-htmlbars/keywords/debugger", ["exports", "ember-metal/logger"], fu | |
| 8352 8619 | 
             
                ```
         | 
| 8353 8620 |  | 
| 8354 8621 | 
             
                @method debugger
         | 
| 8355 | 
            -
                @for Ember. | 
| 8622 | 
            +
                @for Ember.Templates.helpers
         | 
| 8356 8623 | 
             
                @public
         | 
| 8357 8624 | 
             
              */
         | 
| 8358 8625 |  | 
| @@ -8607,7 +8874,7 @@ enifed("ember-htmlbars/keywords/readonly", ["exports", "ember-htmlbars/keywords/ | |
| 8607 8874 | 
             
              }
         | 
| 8608 8875 | 
             
            });
         | 
| 8609 8876 | 
             
            enifed("ember-htmlbars/keywords/real_outlet", ["exports", "ember-metal/property_get", "ember-htmlbars/node-managers/view-node-manager", "ember-htmlbars/templates/top-level-view"], function (exports, _emberMetalProperty_get, _emberHtmlbarsNodeManagersViewNodeManager, _emberHtmlbarsTemplatesTopLevelView) {
         | 
| 8610 | 
            -
              _emberHtmlbarsTemplatesTopLevelView["default"].meta.revision = "Ember@1.13. | 
| 8877 | 
            +
              _emberHtmlbarsTemplatesTopLevelView["default"].meta.revision = "Ember@1.13.4";
         | 
| 8611 8878 |  | 
| 8612 8879 | 
             
              exports["default"] = {
         | 
| 8613 8880 | 
             
                willRender: function (renderNode, env) {
         | 
| @@ -8806,11 +9073,11 @@ enifed("ember-htmlbars/keywords/view", ["exports", "ember-views/streams/utils", | |
| 8806 9073 |  | 
| 8807 9074 | 
             
                  // if parentView exists, use its controller (the default
         | 
| 8808 9075 | 
             
                  // behavior), otherwise use `scope.self` as the controller
         | 
| 8809 | 
            -
                  var controller = scope.view ? null : read(scope.self);
         | 
| 9076 | 
            +
                  var controller = scope.locals.view ? null : read(scope.self);
         | 
| 8810 9077 |  | 
| 8811 9078 | 
             
                  return {
         | 
| 8812 9079 | 
             
                    manager: state.manager,
         | 
| 8813 | 
            -
                    parentView:  | 
| 9080 | 
            +
                    parentView: env.view,
         | 
| 8814 9081 | 
             
                    controller: controller,
         | 
| 8815 9082 | 
             
                    targetObject: targetObject,
         | 
| 8816 9083 | 
             
                    viewClassOrInstance: viewClassOrInstance
         | 
| @@ -8902,7 +9169,7 @@ enifed("ember-htmlbars/keywords/view", ["exports", "ember-views/streams/utils", | |
| 8902 9169 | 
             
            @module ember
         | 
| 8903 9170 | 
             
            @submodule ember-htmlbars
         | 
| 8904 9171 | 
             
            */
         | 
| 8905 | 
            -
            enifed( | 
| 9172 | 
            +
            enifed('ember-htmlbars/keywords/with', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'htmlbars-runtime', 'ember-metal/streams/utils'], function (exports, _emberMetalCore, _emberMetalProperty_get, _htmlbarsRuntime, _emberMetalStreamsUtils) {
         | 
| 8906 9173 | 
             
              exports["default"] = {
         | 
| 8907 9174 | 
             
                setupState: function (state, env, scope, params, hash) {
         | 
| 8908 9175 | 
             
                  var controller = hash.controller;
         | 
| @@ -8910,8 +9177,14 @@ enifed("ember-htmlbars/keywords/with", ["exports", "htmlbars-runtime", "ember-me | |
| 8910 9177 | 
             
                  if (controller) {
         | 
| 8911 9178 | 
             
                    if (!state.controller) {
         | 
| 8912 9179 | 
             
                      var context = params[0];
         | 
| 8913 | 
            -
                      var controllerFactory = env.container.lookupFactory( | 
| 8914 | 
            -
                      var parentController =  | 
| 9180 | 
            +
                      var controllerFactory = env.container.lookupFactory('controller:' + controller);
         | 
| 9181 | 
            +
                      var parentController = null;
         | 
| 9182 | 
            +
             | 
| 9183 | 
            +
                      if (scope.locals.controller) {
         | 
| 9184 | 
            +
                        parentController = _emberMetalStreamsUtils.read(scope.locals.controller);
         | 
| 9185 | 
            +
                      } else if (scope.locals.view) {
         | 
| 9186 | 
            +
                        parentController = _emberMetalProperty_get.get(_emberMetalStreamsUtils.read(scope.locals.view), 'context');
         | 
| 9187 | 
            +
                      }
         | 
| 8915 9188 |  | 
| 8916 9189 | 
             
                      var controllerInstance = controllerFactory.create({
         | 
| 8917 9190 | 
             
                        model: env.hooks.getValue(context),
         | 
| @@ -8943,19 +9216,19 @@ enifed("ember-htmlbars/keywords/with", ["exports", "htmlbars-runtime", "ember-me | |
| 8943 9216 | 
             
                    hash.controller = morph.state.controller;
         | 
| 8944 9217 | 
             
                  }
         | 
| 8945 9218 |  | 
| 8946 | 
            -
                   | 
| 9219 | 
            +
                  _emberMetalCore["default"].assert('{{#with foo}} must be called with a single argument or the use the ' + '{{#with foo as bar}} syntax', params.length === 1);
         | 
| 8947 9220 |  | 
| 8948 | 
            -
                   | 
| 9221 | 
            +
                  _emberMetalCore["default"].assert('The {{#with}} helper must be called with a block', !!template);
         | 
| 8949 9222 |  | 
| 8950 9223 | 
             
                  if (template && template.arity === 0) {
         | 
| 8951 | 
            -
                     | 
| 9224 | 
            +
                    _emberMetalCore["default"].deprecate('Using the context switching form of `{{with}}` is deprecated. ' + 'Please use the block param form (`{{#with bar as |foo|}}`) instead.', false, { url: 'http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope' });
         | 
| 8952 9225 | 
             
                  }
         | 
| 8953 9226 |  | 
| 8954 | 
            -
                  _htmlbarsRuntime.internal.continueBlock(morph, env, scope,  | 
| 9227 | 
            +
                  _htmlbarsRuntime.internal.continueBlock(morph, env, scope, 'with', params, hash, template, inverse, visitor);
         | 
| 8955 9228 | 
             
                },
         | 
| 8956 9229 |  | 
| 8957 9230 | 
             
                rerender: function (morph, env, scope, params, hash, template, inverse, visitor) {
         | 
| 8958 | 
            -
                  _htmlbarsRuntime.internal.continueBlock(morph, env, scope,  | 
| 9231 | 
            +
                  _htmlbarsRuntime.internal.continueBlock(morph, env, scope, 'with', params, hash, template, inverse, visitor);
         | 
| 8959 9232 | 
             
                }
         | 
| 8960 9233 | 
             
              };
         | 
| 8961 9234 | 
             
            });
         | 
| @@ -9030,14 +9303,13 @@ enifed("ember-htmlbars/morphs/morph", ["exports", "dom-helper", "ember-metal/pla | |
| 9030 9303 | 
             
              };
         | 
| 9031 9304 |  | 
| 9032 9305 | 
             
              proto.cleanup = function () {
         | 
| 9033 | 
            -
                var view;
         | 
| 9306 | 
            +
                var view = this.emberView;
         | 
| 9034 9307 |  | 
| 9035 | 
            -
                if (view | 
| 9036 | 
            -
                   | 
| 9037 | 
            -
             | 
| 9038 | 
            -
             | 
| 9039 | 
            -
             | 
| 9040 | 
            -
                    }
         | 
| 9308 | 
            +
                if (view) {
         | 
| 9309 | 
            +
                  var parentView = view.parentView;
         | 
| 9310 | 
            +
             | 
| 9311 | 
            +
                  if (parentView && view.ownerView._destroyingSubtreeForView === parentView) {
         | 
| 9312 | 
            +
                    parentView.removeChild(view);
         | 
| 9041 9313 | 
             
                  }
         | 
| 9042 9314 | 
             
                }
         | 
| 9043 9315 |  | 
| @@ -9332,7 +9604,7 @@ enifed("ember-htmlbars/node-managers/component-node-manager", ["exports", "ember | |
| 9332 9604 | 
             
              };
         | 
| 9333 9605 |  | 
| 9334 9606 | 
             
              function createComponent(_component, isAngleBracket, _props, renderNode, env) {
         | 
| 9335 | 
            -
                var attrs = arguments[5] === undefined ? {} : arguments[5];
         | 
| 9607 | 
            +
                var attrs = arguments.length <= 5 || arguments[5] === undefined ? {} : arguments[5];
         | 
| 9336 9608 |  | 
| 9337 9609 | 
             
                var props = _emberMetalMerge.assign({}, _props);
         | 
| 9338 9610 |  | 
| @@ -9367,6 +9639,7 @@ enifed("ember-htmlbars/node-managers/component-node-manager", ["exports", "ember | |
| 9367 9639 |  | 
| 9368 9640 | 
             
                component._renderNode = renderNode;
         | 
| 9369 9641 | 
             
                renderNode.emberView = component;
         | 
| 9642 | 
            +
                renderNode.buildChildEnv = buildChildEnv;
         | 
| 9370 9643 | 
             
                return component;
         | 
| 9371 9644 | 
             
              }
         | 
| 9372 9645 |  | 
| @@ -9421,6 +9694,10 @@ enifed("ember-htmlbars/node-managers/component-node-manager", ["exports", "ember | |
| 9421 9694 |  | 
| 9422 9695 | 
             
                return target;
         | 
| 9423 9696 | 
             
              }
         | 
| 9697 | 
            +
             | 
| 9698 | 
            +
              function buildChildEnv(state, env) {
         | 
| 9699 | 
            +
                return env.childWithView(this.emberView);
         | 
| 9700 | 
            +
              }
         | 
| 9424 9701 | 
             
            });
         | 
| 9425 9702 |  | 
| 9426 9703 | 
             
            // In theory this should come through the env, but it should
         | 
| @@ -9582,13 +9859,17 @@ enifed("ember-htmlbars/node-managers/view-node-manager", ["exports", "ember-meta | |
| 9582 9859 | 
             
              }
         | 
| 9583 9860 |  | 
| 9584 9861 | 
             
              function createOrUpdateComponent(component, options, createOptions, renderNode, env) {
         | 
| 9585 | 
            -
                var attrs = arguments[5] === undefined ? {} : arguments[5];
         | 
| 9862 | 
            +
                var attrs = arguments.length <= 5 || arguments[5] === undefined ? {} : arguments[5];
         | 
| 9586 9863 |  | 
| 9587 9864 | 
             
                var snapshot = takeSnapshot(attrs);
         | 
| 9588 9865 | 
             
                var props = _emberMetalMerge["default"]({}, options);
         | 
| 9589 9866 | 
             
                var defaultController = _emberViewsViewsView["default"].proto().controller;
         | 
| 9590 9867 | 
             
                var hasSuppliedController = "controller" in attrs || "controller" in props;
         | 
| 9591 9868 |  | 
| 9869 | 
            +
                if (!props.ownerView && options.parentView) {
         | 
| 9870 | 
            +
                  props.ownerView = options.parentView.ownerView;
         | 
| 9871 | 
            +
                }
         | 
| 9872 | 
            +
             | 
| 9592 9873 | 
             
                props.attrs = snapshot;
         | 
| 9593 9874 | 
             
                if (component.create) {
         | 
| 9594 9875 | 
             
                  var proto = component.proto();
         | 
| @@ -9841,7 +10122,7 @@ enifed("ember-htmlbars/system/bootstrap", ["exports", "ember-metal/core", "ember | |
| 9841 10122 |  | 
| 9842 10123 | 
             
              /**
         | 
| 9843 10124 | 
             
              @module ember
         | 
| 9844 | 
            -
              @submodule ember- | 
| 10125 | 
            +
              @submodule ember-htmlbars
         | 
| 9845 10126 | 
             
              */
         | 
| 9846 10127 |  | 
| 9847 10128 | 
             
              /**
         | 
| @@ -9850,13 +10131,13 @@ enifed("ember-htmlbars/system/bootstrap", ["exports", "ember-metal/core", "ember | |
| 9850 10131 | 
             
                as as jQuery DOM-ready callback.
         | 
| 9851 10132 |  | 
| 9852 10133 | 
             
                Script tags with `text/x-handlebars` will be compiled
         | 
| 9853 | 
            -
                with Ember's  | 
| 10134 | 
            +
                with Ember's template compiler and are suitable for use as a view's template.
         | 
| 9854 10135 | 
             
                Those with type `text/x-raw-handlebars` will be compiled with regular
         | 
| 9855 10136 | 
             
                Handlebars and are suitable for use in views' computed properties.
         | 
| 9856 10137 |  | 
| 9857 10138 | 
             
                @private
         | 
| 9858 10139 | 
             
                @method bootstrap
         | 
| 9859 | 
            -
                @for Ember. | 
| 10140 | 
            +
                @for Ember.HTMLBars
         | 
| 9860 10141 | 
             
                @static
         | 
| 9861 10142 | 
             
                @param ctx
         | 
| 9862 10143 | 
             
              */
         | 
| @@ -9975,14 +10256,9 @@ enifed("ember-htmlbars/system/dom-helper", ["exports", "dom-helper", "ember-html | |
| 9975 10256 | 
             
            enifed("ember-htmlbars/system/helper", ["exports"], function (exports) {
         | 
| 9976 10257 | 
             
              /**
         | 
| 9977 10258 | 
             
              @module ember
         | 
| 9978 | 
            -
              @submodule ember- | 
| 10259 | 
            +
              @submodule ember-templates
         | 
| 9979 10260 | 
             
              */
         | 
| 9980 10261 |  | 
| 9981 | 
            -
              /**
         | 
| 9982 | 
            -
                @class Helper
         | 
| 9983 | 
            -
                @namespace Ember.HTMLBars
         | 
| 9984 | 
            -
                @private
         | 
| 9985 | 
            -
              */
         | 
| 9986 10262 | 
             
              function Helper(helper) {
         | 
| 9987 10263 | 
             
                this.helperFunction = helper;
         | 
| 9988 10264 |  | 
| @@ -10086,7 +10362,7 @@ enifed("ember-htmlbars/system/lookup-helper", ["exports", "ember-metal/core", "e | |
| 10086 10362 | 
             
                @private
         | 
| 10087 10363 | 
             
                @method resolveHelper
         | 
| 10088 10364 | 
             
                @param {String} name the name of the helper to lookup
         | 
| 10089 | 
            -
                @return { | 
| 10365 | 
            +
                @return {Helper}
         | 
| 10090 10366 | 
             
              */
         | 
| 10091 10367 |  | 
| 10092 10368 | 
             
              function findHelper(name, view, env) {
         | 
| @@ -10250,7 +10526,7 @@ enifed("ember-htmlbars/system/render-env", ["exports", "ember-htmlbars/env", "em | |
| 10250 10526 | 
             
              };
         | 
| 10251 10527 |  | 
| 10252 10528 | 
             
              RenderEnv.prototype.childWithOutletState = function (outletState) {
         | 
| 10253 | 
            -
                var hasParentOutlet = arguments[1] === undefined ? this.hasParentOutlet : arguments[1];
         | 
| 10529 | 
            +
                var hasParentOutlet = arguments.length <= 1 || arguments[1] === undefined ? this.hasParentOutlet : arguments[1];
         | 
| 10254 10530 |  | 
| 10255 10531 | 
             
                return new RenderEnv({
         | 
| 10256 10532 | 
             
                  view: this.view,
         | 
| @@ -11243,9 +11519,9 @@ enifed("ember-htmlbars/utils/normalize-self", ["exports"], function (exports) { | |
| 11243 11519 | 
             
            enifed("ember-htmlbars/utils/string", ["exports", "htmlbars-util", "ember-runtime/system/string"], function (exports, _htmlbarsUtil, _emberRuntimeSystemString) {
         | 
| 11244 11520 |  | 
| 11245 11521 | 
             
              /**
         | 
| 11246 | 
            -
                Mark a string as safe for unescaped output with  | 
| 11247 | 
            -
                return HTML from a  | 
| 11248 | 
            -
                ensure  | 
| 11522 | 
            +
                Mark a string as safe for unescaped output with Ember templates. If you
         | 
| 11523 | 
            +
                return HTML from a helper, use this function to
         | 
| 11524 | 
            +
                ensure Ember's rendering layer does not escape the HTML.
         | 
| 11249 11525 |  | 
| 11250 11526 | 
             
                ```javascript
         | 
| 11251 11527 | 
             
                Ember.String.htmlSafe('<div>someString</div>')
         | 
| @@ -11270,18 +11546,6 @@ enifed("ember-htmlbars/utils/string", ["exports", "htmlbars-util", "ember-runtim | |
| 11270 11546 |  | 
| 11271 11547 | 
             
              _emberRuntimeSystemString["default"].htmlSafe = htmlSafe;
         | 
| 11272 11548 | 
             
              if (Ember.EXTEND_PROTOTYPES === true || Ember.EXTEND_PROTOTYPES.String) {
         | 
| 11273 | 
            -
             | 
| 11274 | 
            -
                /**
         | 
| 11275 | 
            -
                  Mark a string as being safe for unescaped output with Handlebars.
         | 
| 11276 | 
            -
                   ```javascript
         | 
| 11277 | 
            -
                  '<div>someString</div>'.htmlSafe()
         | 
| 11278 | 
            -
                  ```
         | 
| 11279 | 
            -
                   See [Ember.String.htmlSafe](/api/classes/Ember.String.html#method_htmlSafe).
         | 
| 11280 | 
            -
                   @method htmlSafe
         | 
| 11281 | 
            -
                  @for String
         | 
| 11282 | 
            -
                  @return {Handlebars.SafeString} a string that will not be html escaped by Handlebars
         | 
| 11283 | 
            -
                  @public
         | 
| 11284 | 
            -
                */
         | 
| 11285 11549 | 
             
                String.prototype.htmlSafe = function () {
         | 
| 11286 11550 | 
             
                  return htmlSafe(this);
         | 
| 11287 11551 | 
             
                };
         | 
| @@ -11735,20 +11999,20 @@ enifed("ember-metal", ["exports", "ember-metal/core", "ember-metal/merge", "embe | |
| 11735 11999 | 
             
              _emberMetalCore["default"].addObserver = _emberMetalObserver.addObserver;
         | 
| 11736 12000 | 
             
              _emberMetalCore["default"].observersFor = _emberMetalObserver.observersFor;
         | 
| 11737 12001 | 
             
              _emberMetalCore["default"].removeObserver = _emberMetalObserver.removeObserver;
         | 
| 11738 | 
            -
              _emberMetalCore["default"].addBeforeObserver = _emberMetalObserver. | 
| 12002 | 
            +
              _emberMetalCore["default"].addBeforeObserver = _emberMetalCore["default"].deprecateFunc("Ember.addBeforeObserver is deprecated and will be removed in the near future.", { url: "http://emberjs.com/deprecations/v1.x/#toc_beforeobserver" }, _emberMetalObserver._addBeforeObserver);
         | 
| 11739 12003 | 
             
              _emberMetalCore["default"]._suspendBeforeObserver = _emberMetalObserver._suspendBeforeObserver;
         | 
| 11740 12004 | 
             
              _emberMetalCore["default"]._suspendBeforeObservers = _emberMetalObserver._suspendBeforeObservers;
         | 
| 11741 12005 | 
             
              _emberMetalCore["default"]._suspendObserver = _emberMetalObserver._suspendObserver;
         | 
| 11742 12006 | 
             
              _emberMetalCore["default"]._suspendObservers = _emberMetalObserver._suspendObservers;
         | 
| 11743 | 
            -
              _emberMetalCore["default"].beforeObserversFor = _emberMetalObserver. | 
| 11744 | 
            -
              _emberMetalCore["default"].removeBeforeObserver = _emberMetalObserver. | 
| 12007 | 
            +
              _emberMetalCore["default"].beforeObserversFor = _emberMetalCore["default"].deprecateFunc("Ember.beforeObserversFor is deprecated and will be removed in the near future.", { url: "http://emberjs.com/deprecations/v1.x/#toc_beforeobserver" }, _emberMetalObserver._beforeObserversFor);
         | 
| 12008 | 
            +
              _emberMetalCore["default"].removeBeforeObserver = _emberMetalCore["default"].deprecateFunc("Ember.removeBeforeObserver is deprecated and will be removed in the near future.", { url: "http://emberjs.com/deprecations/v1.x/#toc_beforeobserver" }, _emberMetalObserver._removeBeforeObserver);
         | 
| 11745 12009 |  | 
| 11746 12010 | 
             
              _emberMetalCore["default"].IS_BINDING = _emberMetalMixin.IS_BINDING;
         | 
| 11747 12011 | 
             
              _emberMetalCore["default"].required = _emberMetalMixin.required;
         | 
| 11748 12012 | 
             
              _emberMetalCore["default"].aliasMethod = _emberMetalMixin.aliasMethod;
         | 
| 11749 12013 | 
             
              _emberMetalCore["default"].observer = _emberMetalMixin.observer;
         | 
| 11750 | 
            -
              _emberMetalCore["default"].immediateObserver = _emberMetalMixin. | 
| 11751 | 
            -
              _emberMetalCore["default"].beforeObserver = _emberMetalMixin. | 
| 12014 | 
            +
              _emberMetalCore["default"].immediateObserver = _emberMetalMixin._immediateObserver;
         | 
| 12015 | 
            +
              _emberMetalCore["default"].beforeObserver = _emberMetalCore["default"].deprecateFunc("Ember.beforeObserver is deprecated and will be removed in the near future.", { url: "http://emberjs.com/deprecations/v1.x/#toc_beforeobserver" }, _emberMetalMixin._beforeObserver);
         | 
| 11752 12016 | 
             
              _emberMetalCore["default"].mixin = _emberMetalMixin.mixin;
         | 
| 11753 12017 | 
             
              _emberMetalCore["default"].Mixin = _emberMetalMixin.Mixin;
         | 
| 11754 12018 |  | 
| @@ -14424,7 +14688,7 @@ enifed('ember-metal/core', ['exports'], function (exports) { | |
| 14424 14688 |  | 
| 14425 14689 | 
             
                @class Ember
         | 
| 14426 14690 | 
             
                @static
         | 
| 14427 | 
            -
                @version 1.13. | 
| 14691 | 
            +
                @version 1.13.4
         | 
| 14428 14692 | 
             
                @public
         | 
| 14429 14693 | 
             
              */
         | 
| 14430 14694 |  | 
| @@ -14456,11 +14720,11 @@ enifed('ember-metal/core', ['exports'], function (exports) { | |
| 14456 14720 |  | 
| 14457 14721 | 
             
                @property VERSION
         | 
| 14458 14722 | 
             
                @type String
         | 
| 14459 | 
            -
                @default '1.13. | 
| 14723 | 
            +
                @default '1.13.4'
         | 
| 14460 14724 | 
             
                @static
         | 
| 14461 14725 | 
             
                @public
         | 
| 14462 14726 | 
             
              */
         | 
| 14463 | 
            -
              Ember.VERSION = '1.13. | 
| 14727 | 
            +
              Ember.VERSION = '1.13.4';
         | 
| 14464 14728 |  | 
| 14465 14729 | 
             
              /**
         | 
| 14466 14730 | 
             
                The hash of environment variables used to control various configuration
         | 
| @@ -17057,8 +17321,8 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17057 17321 | 
             
              exports.required = required;
         | 
| 17058 17322 | 
             
              exports.aliasMethod = aliasMethod;
         | 
| 17059 17323 | 
             
              exports.observer = observer;
         | 
| 17060 | 
            -
              exports. | 
| 17061 | 
            -
              exports. | 
| 17324 | 
            +
              exports._immediateObserver = _immediateObserver;
         | 
| 17325 | 
            +
              exports._beforeObserver = _beforeObserver;
         | 
| 17062 17326 | 
             
              // Remove "use strict"; from transpiled module until
         | 
| 17063 17327 | 
             
              // https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
         | 
| 17064 17328 | 
             
              //
         | 
| @@ -17450,13 +17714,13 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17450 17714 | 
             
                var prev = obj[key];
         | 
| 17451 17715 |  | 
| 17452 17716 | 
             
                if ("function" === typeof prev) {
         | 
| 17453 | 
            -
                  updateObserversAndListeners(obj, key, prev, "__ember_observesBefore__", _emberMetalObserver. | 
| 17717 | 
            +
                  updateObserversAndListeners(obj, key, prev, "__ember_observesBefore__", _emberMetalObserver._removeBeforeObserver);
         | 
| 17454 17718 | 
             
                  updateObserversAndListeners(obj, key, prev, "__ember_observes__", _emberMetalObserver.removeObserver);
         | 
| 17455 17719 | 
             
                  updateObserversAndListeners(obj, key, prev, "__ember_listens__", _emberMetalEvents.removeListener);
         | 
| 17456 17720 | 
             
                }
         | 
| 17457 17721 |  | 
| 17458 17722 | 
             
                if ("function" === typeof observerOrListener) {
         | 
| 17459 | 
            -
                  updateObserversAndListeners(obj, key, observerOrListener, "__ember_observesBefore__", _emberMetalObserver. | 
| 17723 | 
            +
                  updateObserversAndListeners(obj, key, observerOrListener, "__ember_observesBefore__", _emberMetalObserver._addBeforeObserver);
         | 
| 17460 17724 | 
             
                  updateObserversAndListeners(obj, key, observerOrListener, "__ember_observes__", _emberMetalObserver.addObserver);
         | 
| 17461 17725 | 
             
                  updateObserversAndListeners(obj, key, observerOrListener, "__ember_listens__", _emberMetalEvents.addListener);
         | 
| 17462 17726 | 
             
                }
         | 
| @@ -17933,7 +18197,7 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17933 18197 | 
             
                Also available as `Function.prototype.observesImmediately` if prototype extensions are
         | 
| 17934 18198 | 
             
                enabled.
         | 
| 17935 18199 |  | 
| 17936 | 
            -
                @method  | 
| 18200 | 
            +
                @method _immediateObserver
         | 
| 17937 18201 | 
             
                @for Ember
         | 
| 17938 18202 | 
             
                @param {String} propertyNames*
         | 
| 17939 18203 | 
             
                @param {Function} func
         | 
| @@ -17942,7 +18206,7 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17942 18206 | 
             
                @private
         | 
| 17943 18207 | 
             
              */
         | 
| 17944 18208 |  | 
| 17945 | 
            -
              function  | 
| 18209 | 
            +
              function _immediateObserver() {
         | 
| 17946 18210 | 
             
                _emberMetalCore["default"].deprecate("Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead.");
         | 
| 17947 18211 |  | 
| 17948 18212 | 
             
                for (var i = 0, l = arguments.length; i < l; i++) {
         | 
| @@ -17959,9 +18223,9 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17959 18223 | 
             
                Note, `@each.property` observer is called per each add or replace of an element
         | 
| 17960 18224 | 
             
                and it's not called with a specific enumeration item.
         | 
| 17961 18225 |  | 
| 17962 | 
            -
                A ` | 
| 18226 | 
            +
                A `_beforeObserver` fires before a property changes.
         | 
| 17963 18227 |  | 
| 17964 | 
            -
                A ` | 
| 18228 | 
            +
                A `_beforeObserver` is an alternative form of `.observesBefore()`.
         | 
| 17965 18229 |  | 
| 17966 18230 | 
             
                ```javascript
         | 
| 17967 18231 | 
             
                App.PersonView = Ember.View.extend({
         | 
| @@ -17994,10 +18258,11 @@ enifed("ember-metal/mixin", ["exports", "ember-metal/core", "ember-metal/merge", | |
| 17994 18258 | 
             
                @param {String} propertyNames*
         | 
| 17995 18259 | 
             
                @param {Function} func
         | 
| 17996 18260 | 
             
                @return func
         | 
| 18261 | 
            +
                @deprecated
         | 
| 17997 18262 | 
             
                @private
         | 
| 17998 18263 | 
             
              */
         | 
| 17999 18264 |  | 
| 18000 | 
            -
              function  | 
| 18265 | 
            +
              function _beforeObserver() {
         | 
| 18001 18266 | 
             
                for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
         | 
| 18002 18267 | 
             
                  args[_key5] = arguments[_key5];
         | 
| 18003 18268 | 
             
                }
         | 
| @@ -18047,13 +18312,13 @@ enifed("ember-metal/observer", ["exports", "ember-metal/watching", "ember-metal/ | |
| 18047 18312 | 
             
              exports.addObserver = addObserver;
         | 
| 18048 18313 | 
             
              exports.observersFor = observersFor;
         | 
| 18049 18314 | 
             
              exports.removeObserver = removeObserver;
         | 
| 18050 | 
            -
              exports. | 
| 18315 | 
            +
              exports._addBeforeObserver = _addBeforeObserver;
         | 
| 18051 18316 | 
             
              exports._suspendBeforeObserver = _suspendBeforeObserver;
         | 
| 18052 18317 | 
             
              exports._suspendObserver = _suspendObserver;
         | 
| 18053 18318 | 
             
              exports._suspendBeforeObservers = _suspendBeforeObservers;
         | 
| 18054 18319 | 
             
              exports._suspendObservers = _suspendObservers;
         | 
| 18055 | 
            -
              exports. | 
| 18056 | 
            -
              exports. | 
| 18320 | 
            +
              exports._beforeObserversFor = _beforeObserversFor;
         | 
| 18321 | 
            +
              exports._removeBeforeObserver = _removeBeforeObserver;
         | 
| 18057 18322 |  | 
| 18058 18323 | 
             
              /**
         | 
| 18059 18324 | 
             
              @module ember-metal
         | 
| @@ -18109,16 +18374,17 @@ enifed("ember-metal/observer", ["exports", "ember-metal/watching", "ember-metal/ | |
| 18109 18374 | 
             
              }
         | 
| 18110 18375 |  | 
| 18111 18376 | 
             
              /**
         | 
| 18112 | 
            -
                @method  | 
| 18377 | 
            +
                @method _addBeforeObserver
         | 
| 18113 18378 | 
             
                @for Ember
         | 
| 18114 18379 | 
             
                @param obj
         | 
| 18115 18380 | 
             
                @param {String} path
         | 
| 18116 18381 | 
             
                @param {Object|Function} target
         | 
| 18117 18382 | 
             
                @param {Function|String} [method]
         | 
| 18383 | 
            +
                @deprecated
         | 
| 18118 18384 | 
             
                @private
         | 
| 18119 18385 | 
             
              */
         | 
| 18120 18386 |  | 
| 18121 | 
            -
              function  | 
| 18387 | 
            +
              function _addBeforeObserver(obj, path, target, method) {
         | 
| 18122 18388 | 
             
                _emberMetalEvents.addListener(obj, beforeEvent(path), target, method);
         | 
| 18123 18389 | 
             
                _emberMetalWatching.watch(obj, path);
         | 
| 18124 18390 |  | 
| @@ -18148,7 +18414,7 @@ enifed("ember-metal/observer", ["exports", "ember-metal/watching", "ember-metal/ | |
| 18148 18414 | 
             
                return _emberMetalEvents.suspendListeners(obj, events, target, method, callback);
         | 
| 18149 18415 | 
             
              }
         | 
| 18150 18416 |  | 
| 18151 | 
            -
              function  | 
| 18417 | 
            +
              function _beforeObserversFor(obj, path) {
         | 
| 18152 18418 | 
             
                return _emberMetalEvents.listenersFor(obj, beforeEvent(path));
         | 
| 18153 18419 | 
             
              }
         | 
| 18154 18420 |  | 
| @@ -18159,10 +18425,11 @@ enifed("ember-metal/observer", ["exports", "ember-metal/watching", "ember-metal/ | |
| 18159 18425 | 
             
                @param {String} path
         | 
| 18160 18426 | 
             
                @param {Object|Function} target
         | 
| 18161 18427 | 
             
                @param {Function|String} [method]
         | 
| 18428 | 
            +
                @deprecated
         | 
| 18162 18429 | 
             
                @private
         | 
| 18163 18430 | 
             
              */
         | 
| 18164 18431 |  | 
| 18165 | 
            -
              function  | 
| 18432 | 
            +
              function _removeBeforeObserver(obj, path, target, method) {
         | 
| 18166 18433 | 
             
                _emberMetalWatching.unwatch(obj, path);
         | 
| 18167 18434 | 
             
                _emberMetalEvents.removeListener(obj, beforeEvent(path), target, method);
         | 
| 18168 18435 |  | 
| @@ -22309,17 +22576,19 @@ enifed("ember-routing-htmlbars/helpers/query-params", ["exports", "ember-metal/c | |
| 22309 22576 | 
             
              exports.queryParamsHelper = queryParamsHelper;
         | 
| 22310 22577 |  | 
| 22311 22578 | 
             
              /**
         | 
| 22312 | 
            -
                This is a  | 
| 22579 | 
            +
                This is a helper to be used in conjunction with the link-to helper.
         | 
| 22313 22580 | 
             
                It will supply url query parameters to the target route.
         | 
| 22314 22581 |  | 
| 22315 22582 | 
             
                Example
         | 
| 22316 22583 |  | 
| 22584 | 
            +
                ```handlebars
         | 
| 22317 22585 | 
             
                {{#link-to 'posts' (query-params direction="asc")}}Sort{{/link-to}}
         | 
| 22586 | 
            +
                ```
         | 
| 22318 22587 |  | 
| 22319 22588 | 
             
                @method query-params
         | 
| 22320 | 
            -
                @for Ember. | 
| 22589 | 
            +
                @for Ember.Templates.helpers
         | 
| 22321 22590 | 
             
                @param {Object} hash takes a hash of query parameters
         | 
| 22322 | 
            -
                @return { | 
| 22591 | 
            +
                @return {Object} A `QueryParams` object for `{{link-to}}`
         | 
| 22323 22592 | 
             
                @public
         | 
| 22324 22593 | 
             
              */
         | 
| 22325 22594 |  | 
| @@ -22340,60 +22609,151 @@ enifed("ember-routing-htmlbars/helpers/query-params", ["exports", "ember-metal/c | |
| 22340 22609 | 
             
            enifed("ember-routing-htmlbars/keywords/action", ["exports", "htmlbars-runtime/hooks", "ember-routing-htmlbars/keywords/closure-action"], function (exports, _htmlbarsRuntimeHooks, _emberRoutingHtmlbarsKeywordsClosureAction) {
         | 
| 22341 22610 |  | 
| 22342 22611 | 
             
              /**
         | 
| 22343 | 
            -
                The `{{action}}` helper provides a  | 
| 22344 | 
            -
                 | 
| 22345 | 
            -
             | 
| 22612 | 
            +
                The `{{action}}` helper provides a way to pass triggers for behavior (usually
         | 
| 22613 | 
            +
                just a function) between components, and into components from controllers.
         | 
| 22614 | 
            +
              
         | 
| 22615 | 
            +
                ### Passing functions with the action helper
         | 
| 22346 22616 |  | 
| 22347 | 
            -
                 | 
| 22348 | 
            -
                to  | 
| 22617 | 
            +
                There are three contexts an action helper can be used in. The first two
         | 
| 22618 | 
            +
                contexts to discuss are attribute context, and Handlebars value context.
         | 
| 22349 22619 |  | 
| 22350 | 
            -
                 | 
| 22620 | 
            +
                ```handlebars
         | 
| 22621 | 
            +
                {{! An example of attribute context }}
         | 
| 22622 | 
            +
                <div onclick={{action "save"}}></div>
         | 
| 22623 | 
            +
                {{! Examples of Handlebars value context }}
         | 
| 22624 | 
            +
                {{input on-input=(action "save")}}
         | 
| 22625 | 
            +
                {{yield (action "refreshData") andAnotherParam}}
         | 
| 22626 | 
            +
                ```
         | 
| 22351 22627 |  | 
| 22628 | 
            +
                In these contexts,
         | 
| 22629 | 
            +
                the helper is called a "closure action" helper. It's behavior is simple:
         | 
| 22630 | 
            +
                If passed a function name, read that function off the `actions` property
         | 
| 22631 | 
            +
                of the current context. Once that function is read (or if a function was
         | 
| 22632 | 
            +
                passed), create a closure over that function and any arguments.
         | 
| 22352 22633 |  | 
| 22353 | 
            -
                 | 
| 22354 | 
            -
                 | 
| 22634 | 
            +
                The resulting value of an action helper used this way is simply a function.
         | 
| 22635 | 
            +
                For example with this attribute context example:
         | 
| 22355 22636 |  | 
| 22356 22637 | 
             
                ```handlebars
         | 
| 22357 | 
            -
                 | 
| 22358 | 
            -
             | 
| 22359 | 
            -
                </div>
         | 
| 22638 | 
            +
                {{! An example of attribute context }}
         | 
| 22639 | 
            +
                <div onclick={{action "save"}}></div>
         | 
| 22360 22640 | 
             
                ```
         | 
| 22361 22641 |  | 
| 22362 | 
            -
                 | 
| 22642 | 
            +
                The resulting template render logic would be:
         | 
| 22363 22643 |  | 
| 22364 | 
            -
                ``` | 
| 22365 | 
            -
                 | 
| 22644 | 
            +
                ```js
         | 
| 22645 | 
            +
                var div = document.createElement('div');
         | 
| 22646 | 
            +
                var actionFunction = (function(context){
         | 
| 22647 | 
            +
                  return function() {
         | 
| 22648 | 
            +
                    return context.actions.save.apply(context, arguments);
         | 
| 22649 | 
            +
                  };
         | 
| 22650 | 
            +
                })(context);
         | 
| 22651 | 
            +
                div.onclick = actionFunction;
         | 
| 22652 | 
            +
                ```
         | 
| 22653 | 
            +
              
         | 
| 22654 | 
            +
                Thus when the div is clicked, the action on that context is called.
         | 
| 22655 | 
            +
                Because the `actionFunction` is just a function, closure actions can be
         | 
| 22656 | 
            +
                passed between components the still execute in the correct context.
         | 
| 22657 | 
            +
              
         | 
| 22658 | 
            +
                Here is an example action handler on a component:
         | 
| 22659 | 
            +
              
         | 
| 22660 | 
            +
                ```js
         | 
| 22661 | 
            +
                export default Ember.Component.extend({
         | 
| 22366 22662 | 
             
                  actions: {
         | 
| 22367 | 
            -
                     | 
| 22663 | 
            +
                    save(/* event *\/) {
         | 
| 22664 | 
            +
                      this.get('model').save();
         | 
| 22368 22665 | 
             
                    }
         | 
| 22369 22666 | 
             
                  }
         | 
| 22370 22667 | 
             
                });
         | 
| 22371 22668 | 
             
                ```
         | 
| 22372 22669 |  | 
| 22373 | 
            -
                 | 
| 22670 | 
            +
                Actions are always looked up on the `actions` property of the current context.
         | 
| 22671 | 
            +
                This avoids collisions in the naming of common actions, such as `destroy`.
         | 
| 22374 22672 |  | 
| 22375 | 
            -
                 | 
| 22376 | 
            -
             | 
| 22377 | 
            -
             | 
| 22378 | 
            -
             | 
| 22379 | 
            -
                   | 
| 22380 | 
            -
                 | 
| 22673 | 
            +
                Two options can be passed to the `action` helper when it is used in this way.
         | 
| 22674 | 
            +
              
         | 
| 22675 | 
            +
                * `target=someProperty` will look to `someProperty` instead of the current
         | 
| 22676 | 
            +
                  context for the `actions` hash. This can be useful when targetting a
         | 
| 22677 | 
            +
                  service for actions.
         | 
| 22678 | 
            +
                * `value="target.value"` will read the path `target.value` off the first
         | 
| 22679 | 
            +
                  argument to the action when it is called and rewrite the first argument
         | 
| 22680 | 
            +
                  to be that value. This is useful when attaching actions to event listeners.
         | 
| 22681 | 
            +
              
         | 
| 22682 | 
            +
                ### Invoking an action
         | 
| 22683 | 
            +
              
         | 
| 22684 | 
            +
                Closure actions curry both their scope and any arguments. When invoked, any
         | 
| 22685 | 
            +
                additional arguments are added to the already curried list.
         | 
| 22686 | 
            +
              
         | 
| 22687 | 
            +
                Actions should be invoked using the [sendAction](/api/classes/Ember.Component.html#method_sendAction)
         | 
| 22688 | 
            +
                method. The first argument to `sendAction` is the action to be called, and
         | 
| 22689 | 
            +
                additional arguments are passed to the action function. This has interesting
         | 
| 22690 | 
            +
                properties combined with currying of arguments. For example:
         | 
| 22691 | 
            +
              
         | 
| 22692 | 
            +
                ```js
         | 
| 22693 | 
            +
                export default Ember.Component.extend({
         | 
| 22694 | 
            +
                  actions: {
         | 
| 22695 | 
            +
                    // Usage {{input on-input=(action (action 'setName' model) value="target.value")}}
         | 
| 22696 | 
            +
                    setName(model, name) {
         | 
| 22697 | 
            +
                      model.set('name', name);
         | 
| 22698 | 
            +
                    }
         | 
| 22699 | 
            +
                  }
         | 
| 22700 | 
            +
                });
         | 
| 22701 | 
            +
                ```
         | 
| 22702 | 
            +
              
         | 
| 22703 | 
            +
                The first argument (`model`) was curried over, and the run-time argument (`event`)
         | 
| 22704 | 
            +
                becomes a second argument. Action calls be nested this way because each simply
         | 
| 22705 | 
            +
                returns a function. Any function can be passed to the `{{action` helper, including
         | 
| 22706 | 
            +
                other actions.
         | 
| 22707 | 
            +
              
         | 
| 22708 | 
            +
                Actions invoked with `sendAction` have the same currying behavior as demonstrated
         | 
| 22709 | 
            +
                with `on-input` above. For example:
         | 
| 22710 | 
            +
              
         | 
| 22711 | 
            +
                ```js
         | 
| 22712 | 
            +
                export default Ember.Component.extend({
         | 
| 22713 | 
            +
                  actions: {
         | 
| 22714 | 
            +
                    setName(model, name) {
         | 
| 22715 | 
            +
                      model.set('name', name);
         | 
| 22716 | 
            +
                    }
         | 
| 22717 | 
            +
                  }
         | 
| 22718 | 
            +
                });
         | 
| 22719 | 
            +
                ```
         | 
| 22720 | 
            +
              
         | 
| 22721 | 
            +
                ```handlebars
         | 
| 22722 | 
            +
                {{my-input submit=(action 'setName' model)}}
         | 
| 22723 | 
            +
                ```
         | 
| 22724 | 
            +
              
         | 
| 22725 | 
            +
                ```js
         | 
| 22726 | 
            +
                // app/components/my-component.js
         | 
| 22727 | 
            +
                export default Ember.Component.extend({
         | 
| 22728 | 
            +
                  click() {
         | 
| 22729 | 
            +
                    // Note that model is not passed, it was curried in the template
         | 
| 22730 | 
            +
                    this.sendAction('submit', 'bob');
         | 
| 22731 | 
            +
                  }
         | 
| 22732 | 
            +
                });
         | 
| 22381 22733 | 
             
                ```
         | 
| 22382 22734 |  | 
| 22383 | 
            -
                 | 
| 22384 | 
            -
                `App.ApplicationController`. In this case, no additional parameters will be passed.
         | 
| 22735 | 
            +
                ### Attaching actions to DOM
         | 
| 22385 22736 |  | 
| 22386 | 
            -
                 | 
| 22737 | 
            +
                The third context the `{{action` helper can be used in we call "element space".
         | 
| 22738 | 
            +
                For example:
         | 
| 22387 22739 |  | 
| 22388 22740 | 
             
                ```handlebars
         | 
| 22389 | 
            -
                 | 
| 22741 | 
            +
                {{! An example of element space }}
         | 
| 22742 | 
            +
                <div {{action "save"}}></div>
         | 
| 22390 22743 | 
             
                ```
         | 
| 22391 22744 |  | 
| 22392 | 
            -
                 | 
| 22393 | 
            -
                 | 
| 22745 | 
            +
                Used this way, the `{{action}}` helper provides a useful shortcut for
         | 
| 22746 | 
            +
                registering an HTML element within a template for a single DOM event and
         | 
| 22747 | 
            +
                forwarding that interaction to the template's context (controller or component).
         | 
| 22748 | 
            +
              
         | 
| 22749 | 
            +
                If the context of a template is a controller, actions used this way will
         | 
| 22750 | 
            +
                bubble to routes when the controller does not implement the specified action.
         | 
| 22751 | 
            +
                Once an action hits a route, it will bubble through the route hierarchy.
         | 
| 22394 22752 |  | 
| 22395 22753 | 
             
                ### Event Propagation
         | 
| 22396 22754 |  | 
| 22755 | 
            +
                `{{action` helpers called in element space can control event bubbling.
         | 
| 22756 | 
            +
              
         | 
| 22397 22757 | 
             
                Events triggered through the action helper will automatically have
         | 
| 22398 22758 | 
             
                `.preventDefault()` called on them. You do not need to do so in your event
         | 
| 22399 22759 | 
             
                handlers. If you need to allow event propagation (to handle file inputs for
         | 
| @@ -22418,20 +22778,24 @@ enifed("ember-routing-htmlbars/keywords/action", ["exports", "htmlbars-runtime/h | |
| 22418 22778 |  | 
| 22419 22779 | 
             
                ### Specifying DOM event type
         | 
| 22420 22780 |  | 
| 22781 | 
            +
                `{{action` helpers called in element space can specify an event type.
         | 
| 22782 | 
            +
              
         | 
| 22421 22783 | 
             
                By default the `{{action}}` helper registers for DOM `click` events. You can
         | 
| 22422 22784 | 
             
                supply an `on` option to the helper to specify a different DOM event name:
         | 
| 22423 22785 |  | 
| 22424 22786 | 
             
                ```handlebars
         | 
| 22425 | 
            -
                <div {{action "anActionName" on=" | 
| 22787 | 
            +
                <div {{action "anActionName" on="double-click"}}>
         | 
| 22426 22788 | 
             
                  click me
         | 
| 22427 22789 | 
             
                </div>
         | 
| 22428 22790 | 
             
                ```
         | 
| 22429 22791 |  | 
| 22430 | 
            -
                See  | 
| 22792 | 
            +
                See [Event Names](/api/classes/Ember.View.html#toc_event-names) for a list of
         | 
| 22431 22793 | 
             
                acceptable DOM event names.
         | 
| 22432 22794 |  | 
| 22433 22795 | 
             
                ### Specifying whitelisted modifier keys
         | 
| 22434 22796 |  | 
| 22797 | 
            +
                `{{action` helpers called in element space can specify modifier keys.
         | 
| 22798 | 
            +
              
         | 
| 22435 22799 | 
             
                By default the `{{action}}` helper will ignore click event with pressed modifier
         | 
| 22436 22800 | 
             
                keys. You can supply an `allowedKeys` option to specify which keys should not be ignored.
         | 
| 22437 22801 |  | 
| @@ -22453,51 +22817,26 @@ enifed("ember-routing-htmlbars/keywords/action", ["exports", "htmlbars-runtime/h | |
| 22453 22817 |  | 
| 22454 22818 | 
             
                ### Specifying a Target
         | 
| 22455 22819 |  | 
| 22456 | 
            -
                 | 
| 22457 | 
            -
              
         | 
| 22458 | 
            -
                In a typical Ember application, where templates are managed through use of the
         | 
| 22459 | 
            -
                `{{outlet}}` helper, actions will bubble to the current controller, then
         | 
| 22460 | 
            -
                to the current route, and then up the route hierarchy.
         | 
| 22461 | 
            -
              
         | 
| 22462 | 
            -
                Alternatively, a `target` option can be provided to the helper to change
         | 
| 22820 | 
            +
                A `target` option can be provided to the helper to change
         | 
| 22463 22821 | 
             
                which object will receive the method call. This option must be a path
         | 
| 22464 22822 | 
             
                to an object, accessible in the current context:
         | 
| 22465 22823 |  | 
| 22466 22824 | 
             
                ```handlebars
         | 
| 22467 | 
            -
                {{!  | 
| 22468 | 
            -
                <div {{action "anActionName" target= | 
| 22825 | 
            +
                {{! app/templates/application.hbs }}
         | 
| 22826 | 
            +
                <div {{action "anActionName" target=someService}}>
         | 
| 22469 22827 | 
             
                  click me
         | 
| 22470 22828 | 
             
                </div>
         | 
| 22471 22829 | 
             
                ```
         | 
| 22472 22830 |  | 
| 22473 22831 | 
             
                ```javascript
         | 
| 22474 | 
            -
                 | 
| 22475 | 
            -
             | 
| 22476 | 
            -
             | 
| 22477 | 
            -
                  }
         | 
| 22832 | 
            +
                // app/controllers/application.js
         | 
| 22833 | 
            +
                export default Ember.Controller.extend({
         | 
| 22834 | 
            +
                  someService: Ember.inject.service()
         | 
| 22478 22835 | 
             
                });
         | 
| 22479 | 
            -
              
         | 
| 22480 22836 | 
             
                ```
         | 
| 22481 22837 |  | 
| 22482 | 
            -
                ### Additional Parameters
         | 
| 22483 | 
            -
              
         | 
| 22484 | 
            -
                You may specify additional parameters to the `{{action}}` helper. These
         | 
| 22485 | 
            -
                parameters are passed along as the arguments to the JavaScript function
         | 
| 22486 | 
            -
                implementing the action.
         | 
| 22487 | 
            -
              
         | 
| 22488 | 
            -
                ```handlebars
         | 
| 22489 | 
            -
                {{#each people as |person|}}
         | 
| 22490 | 
            -
                  <div {{action "edit" person}}>
         | 
| 22491 | 
            -
                    click me
         | 
| 22492 | 
            -
                  </div>
         | 
| 22493 | 
            -
                {{/each}}
         | 
| 22494 | 
            -
                ```
         | 
| 22495 | 
            -
              
         | 
| 22496 | 
            -
                Clicking "click me" will trigger the `edit` method on the current controller
         | 
| 22497 | 
            -
                with the value of `person` as a parameter.
         | 
| 22498 | 
            -
              
         | 
| 22499 22838 | 
             
                @method action
         | 
| 22500 | 
            -
                @for Ember. | 
| 22839 | 
            +
                @for Ember.Templates.helpers
         | 
| 22501 22840 | 
             
                @public
         | 
| 22502 22841 | 
             
              */
         | 
| 22503 22842 |  | 
| @@ -22513,7 +22852,7 @@ enifed("ember-routing-htmlbars/keywords/action", ["exports", "htmlbars-runtime/h | |
| 22513 22852 | 
             
            });
         | 
| 22514 22853 | 
             
            /**
         | 
| 22515 22854 | 
             
            @module ember
         | 
| 22516 | 
            -
            @submodule ember- | 
| 22855 | 
            +
            @submodule ember-templates
         | 
| 22517 22856 | 
             
            */
         | 
| 22518 22857 | 
             
            enifed("ember-routing-htmlbars/keywords/closure-action", ["exports", "ember-metal/streams/stream", "ember-metal/array", "ember-metal/streams/utils", "ember-metal/keys", "ember-metal/utils", "ember-metal/property_get", "ember-metal/error"], function (exports, _emberMetalStreamsStream, _emberMetalArray, _emberMetalStreamsUtils, _emberMetalKeys, _emberMetalUtils, _emberMetalProperty_get, _emberMetalError) {
         | 
| 22519 22858 | 
             
              exports["default"] = closureAction;
         | 
| @@ -23030,7 +23369,7 @@ enifed("ember-routing-htmlbars/keywords/link-to", ["exports", "ember-metal/strea | |
| 23030 23369 | 
             
                ```
         | 
| 23031 23370 |  | 
| 23032 23371 | 
             
                @method link-to
         | 
| 23033 | 
            -
                @for Ember. | 
| 23372 | 
            +
                @for Ember.Templates.helpers
         | 
| 23034 23373 | 
             
                @param {String} routeName
         | 
| 23035 23374 | 
             
                @param {Object} [context]*
         | 
| 23036 23375 | 
             
                @param [options] {Object} Handlebars key/value pairs of options, you can override any property of Ember.LinkComponent
         | 
| @@ -23097,7 +23436,7 @@ enifed("ember-routing-htmlbars/keywords/render", ["exports", "ember-metal/core", | |
| 23097 23436 | 
             
                  _emberMetalCore["default"].assert("The first argument of {{render}} must be quoted, e.g. {{render \"sidebar\"}}.", typeof name === "string");
         | 
| 23098 23437 |  | 
| 23099 23438 | 
             
                  return {
         | 
| 23100 | 
            -
                    parentView:  | 
| 23439 | 
            +
                    parentView: env.view,
         | 
| 23101 23440 | 
             
                    manager: prevState.manager,
         | 
| 23102 23441 | 
             
                    controller: prevState.controller,
         | 
| 23103 23442 | 
             
                    childOutletState: childOutletState(name, env)
         | 
| @@ -23313,7 +23652,7 @@ enifed("ember-routing-views", ["exports", "ember-metal/core", "ember-routing-vie | |
| 23313 23652 | 
             
            @submodule ember-routing-views
         | 
| 23314 23653 | 
             
            */
         | 
| 23315 23654 | 
             
            enifed("ember-routing-views/views/link", ["exports", "ember-metal/core", "ember-metal/property_get", "ember-metal/property_set", "ember-metal/computed", "ember-views/system/utils", "ember-views/views/component", "ember-runtime/inject", "ember-runtime/mixins/controller", "ember-htmlbars/templates/link-to"], function (exports, _emberMetalCore, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalComputed, _emberViewsSystemUtils, _emberViewsViewsComponent, _emberRuntimeInject, _emberRuntimeMixinsController, _emberHtmlbarsTemplatesLinkTo) {
         | 
| 23316 | 
            -
              _emberHtmlbarsTemplatesLinkTo["default"].meta.revision = "Ember@1.13. | 
| 23655 | 
            +
              _emberHtmlbarsTemplatesLinkTo["default"].meta.revision = "Ember@1.13.4";
         | 
| 23317 23656 |  | 
| 23318 23657 | 
             
              var linkComponentClassNameBindings = ["active", "loading", "disabled"];
         | 
| 23319 23658 | 
             
              if (_emberMetalCore["default"].FEATURES.isEnabled("ember-routing-transitioning-classes")) {
         | 
| @@ -23657,7 +23996,7 @@ enifed("ember-routing-views/views/link", ["exports", "ember-metal/core", "ember- | |
| 23657 23996 | 
             
                  if (lastParam && lastParam.isQueryParams) {
         | 
| 23658 23997 | 
             
                    params.pop();
         | 
| 23659 23998 | 
             
                  }
         | 
| 23660 | 
            -
                  var onlyQueryParamsSupplied = params.length === 0;
         | 
| 23999 | 
            +
                  var onlyQueryParamsSupplied = this.attrs.hasBlock ? params.length === 0 : params.length === 1;
         | 
| 23661 24000 | 
             
                  if (onlyQueryParamsSupplied) {
         | 
| 23662 24001 | 
             
                    var appController = this.container.lookup("controller:application");
         | 
| 23663 24002 | 
             
                    if (appController) {
         | 
| @@ -23844,7 +24183,7 @@ enifed("ember-routing-views/views/link", ["exports", "ember-metal/core", "ember- | |
| 23844 24183 |  | 
| 23845 24184 | 
             
            // FEATURES, Logger, assert
         | 
| 23846 24185 | 
             
            enifed("ember-routing-views/views/outlet", ["exports", "ember-views/views/view", "ember-htmlbars/templates/top-level-view"], function (exports, _emberViewsViewsView, _emberHtmlbarsTemplatesTopLevelView) {
         | 
| 23847 | 
            -
              _emberHtmlbarsTemplatesTopLevelView["default"].meta.revision = "Ember@1.13. | 
| 24186 | 
            +
              _emberHtmlbarsTemplatesTopLevelView["default"].meta.revision = "Ember@1.13.4";
         | 
| 23848 24187 |  | 
| 23849 24188 | 
             
              var CoreOutletView = _emberViewsViewsView["default"].extend({
         | 
| 23850 24189 | 
             
                defaultTemplate: _emberHtmlbarsTemplatesTopLevelView["default"],
         | 
| @@ -26670,7 +27009,7 @@ enifed("ember-routing/system/route", ["exports", "ember-metal/core", "ember-meta | |
| 26670 27009 | 
             
                    args[_key] = arguments[_key];
         | 
| 26671 27010 | 
             
                  }
         | 
| 26672 27011 |  | 
| 26673 | 
            -
                  if (this.router || !_emberMetalCore["default"].testing) {
         | 
| 27012 | 
            +
                  if (this.router && this.router.router || !_emberMetalCore["default"].testing) {
         | 
| 26674 27013 | 
             
                    var _router;
         | 
| 26675 27014 |  | 
| 26676 27015 | 
             
                    (_router = this.router).send.apply(_router, args);
         | 
| @@ -26892,6 +27231,10 @@ enifed("ember-routing/system/route", ["exports", "ember-metal/core", "ember-meta | |
| 26892 27231 | 
             
                  this.transitionTo('post', thePost);
         | 
| 26893 27232 | 
             
                   // integer passed in, model hook is called
         | 
| 26894 27233 | 
             
                  this.transitionTo('post', 1);
         | 
| 27234 | 
            +
                   // model id passed in, model hook is called
         | 
| 27235 | 
            +
                  // useful for forcing the hook to execute
         | 
| 27236 | 
            +
                  thePost = store.find('post', 1);
         | 
| 27237 | 
            +
                  this.transitionTo('post', thePost.id);
         | 
| 26895 27238 | 
             
                  ```
         | 
| 26896 27239 | 
             
                    This hook follows the asynchronous/promise semantics
         | 
| 26897 27240 | 
             
                  described in the documentation for `beforeModel`. In particular,
         | 
| @@ -29305,7 +29648,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core', | |
| 29305 29648 | 
             
                    observerContexts[index] = observerContext;
         | 
| 29306 29649 |  | 
| 29307 29650 | 
             
                    _emberMetalEnumerable_utils.forEach(itemPropertyKeys, function (propertyKey) {
         | 
| 29308 | 
            -
                      _emberMetalObserver. | 
| 29651 | 
            +
                      _emberMetalObserver._addBeforeObserver(item, propertyKey, this, observerContext.beforeObserver);
         | 
| 29309 29652 | 
             
                      _emberMetalObserver.addObserver(item, propertyKey, this, observerContext.observer);
         | 
| 29310 29653 | 
             
                    }, this);
         | 
| 29311 29654 | 
             
                  }, this);
         | 
| @@ -29332,7 +29675,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core', | |
| 29332 29675 | 
             
                      item = observerContext.item;
         | 
| 29333 29676 |  | 
| 29334 29677 | 
             
                      _emberMetalEnumerable_utils.forEach(itemPropertyKeys, function (propertyKey) {
         | 
| 29335 | 
            -
                        _emberMetalObserver. | 
| 29678 | 
            +
                        _emberMetalObserver._removeBeforeObserver(item, propertyKey, dependentArrayObserver, beforeObserver);
         | 
| 29336 29679 | 
             
                        _emberMetalObserver.removeObserver(item, propertyKey, dependentArrayObserver, observer);
         | 
| 29337 29680 | 
             
                      });
         | 
| 29338 29681 | 
             
                    });
         | 
| @@ -29422,7 +29765,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core', | |
| 29422 29765 |  | 
| 29423 29766 | 
             
                  function removeObservers(propertyKey) {
         | 
| 29424 29767 | 
             
                    observerContexts[sliceIndex].destroyed = true;
         | 
| 29425 | 
            -
                    _emberMetalObserver. | 
| 29768 | 
            +
                    _emberMetalObserver._removeBeforeObserver(item, propertyKey, this, observerContexts[sliceIndex].beforeObserver);
         | 
| 29426 29769 | 
             
                    _emberMetalObserver.removeObserver(item, propertyKey, this, observerContexts[sliceIndex].observer);
         | 
| 29427 29770 | 
             
                  }
         | 
| 29428 29771 |  | 
| @@ -29463,7 +29806,7 @@ enifed('ember-runtime/computed/reduce_computed', ['exports', 'ember-metal/core', | |
| 29463 29806 | 
             
                      observerContexts[sliceIndex] = observerContext;
         | 
| 29464 29807 |  | 
| 29465 29808 | 
             
                      _emberMetalEnumerable_utils.forEach(itemPropertyKeys, function (propertyKey) {
         | 
| 29466 | 
            -
                        _emberMetalObserver. | 
| 29809 | 
            +
                        _emberMetalObserver._addBeforeObserver(item, propertyKey, this, observerContext.beforeObserver);
         | 
| 29467 29810 | 
             
                        _emberMetalObserver.addObserver(item, propertyKey, this, observerContext.observer);
         | 
| 29468 29811 | 
             
                      }, this);
         | 
| 29469 29812 | 
             
                    }
         | 
| @@ -31116,7 +31459,8 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co | |
| 31116 31459 | 
             
                },
         | 
| 31117 31460 |  | 
| 31118 31461 | 
             
                init: function () {
         | 
| 31119 | 
            -
                  _emberMetalCore["default"].deprecate(arrayControllerDeprecation);
         | 
| 31462 | 
            +
                  _emberMetalCore["default"].deprecate(arrayControllerDeprecation, this.isGenerated);
         | 
| 31463 | 
            +
             | 
| 31120 31464 | 
             
                  this._super.apply(this, arguments);
         | 
| 31121 31465 | 
             
                  this._subControllers = [];
         | 
| 31122 31466 | 
             
                },
         | 
| @@ -31497,8 +31841,7 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-metal/core', 'ember-meta | |
| 31497 31841 | 
             
                    }.observes('value')
         | 
| 31498 31842 | 
             
                  });
         | 
| 31499 31843 | 
             
                  ```
         | 
| 31500 | 
            -
                   In the future this method may become asynchronous. | 
| 31501 | 
            -
                  synchronous behavior, use `observesImmediately`.
         | 
| 31844 | 
            +
                   In the future this method may become asynchronous.
         | 
| 31502 31845 | 
             
                   See `Ember.observer`.
         | 
| 31503 31846 | 
             
                   @method observes
         | 
| 31504 31847 | 
             
                  @for Function
         | 
| @@ -31513,6 +31856,19 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-metal/core', 'ember-meta | |
| 31513 31856 | 
             
                  return _emberMetalMixin.observer.apply(this, args);
         | 
| 31514 31857 | 
             
                };
         | 
| 31515 31858 |  | 
| 31859 | 
            +
                FunctionPrototype._observesImmediately = function () {
         | 
| 31860 | 
            +
                  _emberMetalCore["default"].assert('Immediate observers must observe internal properties only, ' + 'not properties on other objects.', function checkIsInternalProperty() {
         | 
| 31861 | 
            +
                    for (var i = 0, l = arguments.length; i < l; i++) {
         | 
| 31862 | 
            +
                      if (arguments[i].indexOf('.') !== -1) {
         | 
| 31863 | 
            +
                        return false;
         | 
| 31864 | 
            +
                      }
         | 
| 31865 | 
            +
                    }
         | 
| 31866 | 
            +
                    return true;
         | 
| 31867 | 
            +
                  });
         | 
| 31868 | 
            +
             | 
| 31869 | 
            +
                  // observes handles property expansion
         | 
| 31870 | 
            +
                  return this.observes.apply(this, arguments);
         | 
| 31871 | 
            +
                };
         | 
| 31516 31872 | 
             
                /**
         | 
| 31517 31873 | 
             
                  The `observesImmediately` extension of Javascript's Function prototype is
         | 
| 31518 31874 | 
             
                  available when `Ember.EXTEND_PROTOTYPES` or
         | 
| @@ -31532,21 +31888,10 @@ enifed('ember-runtime/ext/function', ['exports', 'ember-metal/core', 'ember-meta | |
| 31532 31888 | 
             
                   See `Ember.immediateObserver`.
         | 
| 31533 31889 | 
             
                   @method observesImmediately
         | 
| 31534 31890 | 
             
                  @for Function
         | 
| 31891 | 
            +
                  @deprecated
         | 
| 31535 31892 | 
             
                  @private
         | 
| 31536 31893 | 
             
                */
         | 
| 31537 | 
            -
                FunctionPrototype.observesImmediately =  | 
| 31538 | 
            -
                  _emberMetalCore["default"].assert('Immediate observers must observe internal properties only, ' + 'not properties on other objects.', function checkIsInternalProperty() {
         | 
| 31539 | 
            -
                    for (var i = 0, l = arguments.length; i < l; i++) {
         | 
| 31540 | 
            -
                      if (arguments[i].indexOf('.') !== -1) {
         | 
| 31541 | 
            -
                        return false;
         | 
| 31542 | 
            -
                      }
         | 
| 31543 | 
            -
                    }
         | 
| 31544 | 
            -
                    return true;
         | 
| 31545 | 
            -
                  });
         | 
| 31546 | 
            -
             | 
| 31547 | 
            -
                  // observes handles property expansion
         | 
| 31548 | 
            -
                  return this.observes.apply(this, arguments);
         | 
| 31549 | 
            -
                };
         | 
| 31894 | 
            +
                FunctionPrototype.observesImmediately = _emberMetalCore["default"].deprecateFunc('Function#observesImmediately is deprecated. Use Function#observes instead', FunctionPrototype._observesImmediately);
         | 
| 31550 31895 |  | 
| 31551 31896 | 
             
                /**
         | 
| 31552 31897 | 
             
                  The `observesBefore` extension of Javascript's Function prototype is
         | 
| @@ -31919,13 +32264,13 @@ enifed("ember-runtime/mixins/-proxy", ["exports", "ember-metal/core", "ember-met | |
| 31919 32264 |  | 
| 31920 32265 | 
             
                willWatchProperty: function (key) {
         | 
| 31921 32266 | 
             
                  var contentKey = "content." + key;
         | 
| 31922 | 
            -
                  _emberMetalObserver. | 
| 32267 | 
            +
                  _emberMetalObserver._addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
         | 
| 31923 32268 | 
             
                  _emberMetalObserver.addObserver(this, contentKey, null, contentPropertyDidChange);
         | 
| 31924 32269 | 
             
                },
         | 
| 31925 32270 |  | 
| 31926 32271 | 
             
                didUnwatchProperty: function (key) {
         | 
| 31927 32272 | 
             
                  var contentKey = "content." + key;
         | 
| 31928 | 
            -
                  _emberMetalObserver. | 
| 32273 | 
            +
                  _emberMetalObserver._removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
         | 
| 31929 32274 | 
             
                  _emberMetalObserver.removeObserver(this, contentKey, null, contentPropertyDidChange);
         | 
| 31930 32275 | 
             
                },
         | 
| 31931 32276 |  | 
| @@ -33027,7 +33372,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33027 33372 | 
             
                  ```
         | 
| 33028 33373 | 
             
                   @property firstObject
         | 
| 33029 33374 | 
             
                  @return {Object} the object or undefined
         | 
| 33030 | 
            -
                  @ | 
| 33375 | 
            +
                  @public
         | 
| 33031 33376 | 
             
                */
         | 
| 33032 33377 | 
             
                firstObject: _emberMetalComputed.computed('[]', function () {
         | 
| 33033 33378 | 
             
                  if (_emberMetalProperty_get.get(this, 'length') === 0) {
         | 
| @@ -33055,7 +33400,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33055 33400 | 
             
                  ```
         | 
| 33056 33401 | 
             
                   @property lastObject
         | 
| 33057 33402 | 
             
                  @return {Object} the last object or undefined
         | 
| 33058 | 
            -
                  @ | 
| 33403 | 
            +
                  @public
         | 
| 33059 33404 | 
             
                */
         | 
| 33060 33405 | 
             
                lastObject: _emberMetalComputed.computed('[]', function () {
         | 
| 33061 33406 | 
             
                  var len = _emberMetalProperty_get.get(this, 'length');
         | 
| @@ -33091,7 +33436,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33091 33436 | 
             
                   @method contains
         | 
| 33092 33437 | 
             
                  @param {Object} obj The object to search for.
         | 
| 33093 33438 | 
             
                  @return {Boolean} `true` if object is found in enumerable.
         | 
| 33094 | 
            -
                  @ | 
| 33439 | 
            +
                  @public
         | 
| 33095 33440 | 
             
                */
         | 
| 33096 33441 | 
             
                contains: function (obj) {
         | 
| 33097 33442 | 
             
                  var found = this.find(function (item) {
         | 
| @@ -33152,7 +33497,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33152 33497 | 
             
                   @method getEach
         | 
| 33153 33498 | 
             
                  @param {String} key name of the property
         | 
| 33154 33499 | 
             
                  @return {Array} The mapped array.
         | 
| 33155 | 
            -
                  @ | 
| 33500 | 
            +
                  @public
         | 
| 33156 33501 | 
             
                */
         | 
| 33157 33502 | 
             
                getEach: _emberMetalMixin.aliasMethod('mapBy'),
         | 
| 33158 33503 |  | 
| @@ -33165,7 +33510,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33165 33510 | 
             
                  @param {String} key The key to set
         | 
| 33166 33511 | 
             
                  @param {Object} value The object to set
         | 
| 33167 33512 | 
             
                  @return {Object} receiver
         | 
| 33168 | 
            -
                  @ | 
| 33513 | 
            +
                  @public
         | 
| 33169 33514 | 
             
                */
         | 
| 33170 33515 | 
             
                setEach: function (key, value) {
         | 
| 33171 33516 | 
             
                  return this.forEach(function (item) {
         | 
| @@ -33192,7 +33537,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33192 33537 | 
             
                  @param {Function} callback The callback to execute
         | 
| 33193 33538 | 
             
                  @param {Object} [target] The target object to use
         | 
| 33194 33539 | 
             
                  @return {Array} The mapped array.
         | 
| 33195 | 
            -
                  @ | 
| 33540 | 
            +
                  @public
         | 
| 33196 33541 | 
             
                */
         | 
| 33197 33542 | 
             
                map: function (callback, target) {
         | 
| 33198 33543 | 
             
                  var ret = _emberMetalCore["default"].A();
         | 
| @@ -33210,7 +33555,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33210 33555 | 
             
                   @method mapBy
         | 
| 33211 33556 | 
             
                  @param {String} key name of the property
         | 
| 33212 33557 | 
             
                  @return {Array} The mapped array.
         | 
| 33213 | 
            -
                  @ | 
| 33558 | 
            +
                  @public
         | 
| 33214 33559 | 
             
                */
         | 
| 33215 33560 | 
             
                mapBy: function (key) {
         | 
| 33216 33561 | 
             
                  return this.map(function (next) {
         | 
| @@ -33251,7 +33596,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33251 33596 | 
             
                  @param {Function} callback The callback to execute
         | 
| 33252 33597 | 
             
                  @param {Object} [target] The target object to use
         | 
| 33253 33598 | 
             
                  @return {Array} A filtered array.
         | 
| 33254 | 
            -
                  @ | 
| 33599 | 
            +
                  @public
         | 
| 33255 33600 | 
             
                */
         | 
| 33256 33601 | 
             
                filter: function (callback, target) {
         | 
| 33257 33602 | 
             
                  var ret = _emberMetalCore["default"].A();
         | 
| @@ -33284,7 +33629,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33284 33629 | 
             
                  @param {Function} callback The callback to execute
         | 
| 33285 33630 | 
             
                  @param {Object} [target] The target object to use
         | 
| 33286 33631 | 
             
                  @return {Array} A rejected array.
         | 
| 33287 | 
            -
             | 
| 33632 | 
            +
                  @public
         | 
| 33288 33633 | 
             
                */
         | 
| 33289 33634 | 
             
                reject: function (callback, target) {
         | 
| 33290 33635 | 
             
                  return this.filter(function () {
         | 
| @@ -33300,7 +33645,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33300 33645 | 
             
                  @param {String} key the property to test
         | 
| 33301 33646 | 
             
                  @param {*} [value] optional value to test against.
         | 
| 33302 33647 | 
             
                  @return {Array} filtered array
         | 
| 33303 | 
            -
                  @ | 
| 33648 | 
            +
                  @public
         | 
| 33304 33649 | 
             
                */
         | 
| 33305 33650 | 
             
                filterBy: function (key, value) {
         | 
| 33306 33651 | 
             
                  return this.filter(iter.apply(this, arguments));
         | 
| @@ -33327,7 +33672,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33327 33672 | 
             
                  @param {String} key the property to test
         | 
| 33328 33673 | 
             
                  @param {String} [value] optional value to test against.
         | 
| 33329 33674 | 
             
                  @return {Array} rejected array
         | 
| 33330 | 
            -
                  @ | 
| 33675 | 
            +
                  @public
         | 
| 33331 33676 | 
             
                */
         | 
| 33332 33677 | 
             
                rejectBy: function (key, value) {
         | 
| 33333 33678 | 
             
                  var exactValue = function (item) {
         | 
| @@ -33377,7 +33722,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33377 33722 | 
             
                  @param {Function} callback The callback to execute
         | 
| 33378 33723 | 
             
                  @param {Object} [target] The target object to use
         | 
| 33379 33724 | 
             
                  @return {Object} Found item or `undefined`.
         | 
| 33380 | 
            -
                  @ | 
| 33725 | 
            +
                  @public
         | 
| 33381 33726 | 
             
                */
         | 
| 33382 33727 | 
             
                find: function (callback, target) {
         | 
| 33383 33728 | 
             
                  var len = _emberMetalProperty_get.get(this, 'length');
         | 
| @@ -33416,7 +33761,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33416 33761 | 
             
                  @param {String} key the property to test
         | 
| 33417 33762 | 
             
                  @param {String} [value] optional value to test against.
         | 
| 33418 33763 | 
             
                  @return {Object} found item or `undefined`
         | 
| 33419 | 
            -
                  @ | 
| 33764 | 
            +
                  @public
         | 
| 33420 33765 | 
             
                */
         | 
| 33421 33766 | 
             
                findBy: function (key, value) {
         | 
| 33422 33767 | 
             
                  return this.find(iter.apply(this, arguments));
         | 
| @@ -33475,7 +33820,7 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33475 33820 | 
             
                  @param {String} [value] optional value to test against.
         | 
| 33476 33821 | 
             
                  @deprecated Use `isEvery` instead
         | 
| 33477 33822 | 
             
                  @return {Boolean}
         | 
| 33478 | 
            -
                  @ | 
| 33823 | 
            +
                  @public
         | 
| 33479 33824 | 
             
                */
         | 
| 33480 33825 | 
             
                everyBy: _emberMetalMixin.aliasMethod('isEvery'),
         | 
| 33481 33826 |  | 
| @@ -33490,11 +33835,12 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33490 33835 | 
             
                everyProperty: _emberMetalMixin.aliasMethod('isEvery'),
         | 
| 33491 33836 |  | 
| 33492 33837 | 
             
                /**
         | 
| 33493 | 
            -
                  Returns `true` if the passed property resolves to  | 
| 33494 | 
            -
                  the enumerable. This method is often simpler/faster | 
| 33838 | 
            +
                  Returns `true` if the passed property resolves to the value of the second
         | 
| 33839 | 
            +
                  argument for all items in the enumerable. This method is often simpler/faster
         | 
| 33840 | 
            +
                  than using a callback.
         | 
| 33495 33841 | 
             
                   @method isEvery
         | 
| 33496 33842 | 
             
                  @param {String} key the property to test
         | 
| 33497 | 
            -
                  @param {String} [value] optional value to test against.
         | 
| 33843 | 
            +
                  @param {String} [value] optional value to test against. Defaults to `true`
         | 
| 33498 33844 | 
             
                  @return {Boolean}
         | 
| 33499 33845 | 
             
                  @since 1.3.0
         | 
| 33500 33846 | 
             
                  @public
         | 
| @@ -33585,11 +33931,12 @@ enifed('ember-runtime/mixins/enumerable', ['exports', 'ember-metal/core', 'ember | |
| 33585 33931 | 
             
                some: _emberMetalMixin.aliasMethod('any'),
         | 
| 33586 33932 |  | 
| 33587 33933 | 
             
                /**
         | 
| 33588 | 
            -
                  Returns `true` if the passed property resolves to  | 
| 33589 | 
            -
                  the enumerable. This method is often simpler/faster | 
| 33934 | 
            +
                  Returns `true` if the passed property resolves to the value of the second
         | 
| 33935 | 
            +
                  argument for any item in the enumerable. This method is often simpler/faster
         | 
| 33936 | 
            +
                  than using a callback.
         | 
| 33590 33937 | 
             
                   @method isAny
         | 
| 33591 33938 | 
             
                  @param {String} key the property to test
         | 
| 33592 | 
            -
                  @param {String} [value] optional value to test against.
         | 
| 33939 | 
            +
                  @param {String} [value] optional value to test against. Defaults to `true`
         | 
| 33593 33940 | 
             
                  @return {Boolean}
         | 
| 33594 33941 | 
             
                  @since 1.3.0
         | 
| 33595 33942 | 
             
                  @private
         | 
| @@ -34982,9 +35329,9 @@ enifed("ember-runtime/mixins/observable", ["exports", "ember-metal/core", "ember | |
| 34982 35329 | 
             
                  return this;
         | 
| 34983 35330 | 
             
                },
         | 
| 34984 35331 |  | 
| 34985 | 
            -
                 | 
| 35332 | 
            +
                _addBeforeObserver: function (key, target, method) {
         | 
| 34986 35333 | 
             
                  _emberMetalCore["default"].deprecate("Before observers are deprecated and will be removed in a future release. If you want to keep track of previous values you have to implement it yourself.", false, { url: "http://emberjs.com/guides/deprecations/#toc_deprecate-beforeobservers" });
         | 
| 34987 | 
            -
                  _emberMetalObserver. | 
| 35334 | 
            +
                  _emberMetalObserver._addBeforeObserver(this, key, target, method);
         | 
| 34988 35335 | 
             
                },
         | 
| 34989 35336 |  | 
| 34990 35337 | 
             
                /**
         | 
| @@ -35522,7 +35869,7 @@ enifed("ember-runtime/mixins/sortable", ["exports", "ember-metal/core", "ember-m | |
| 35522 35869 | 
             
                  }
         | 
| 35523 35870 | 
             
                }),
         | 
| 35524 35871 |  | 
| 35525 | 
            -
                _contentWillChange: _emberMetalMixin. | 
| 35872 | 
            +
                _contentWillChange: _emberMetalMixin._beforeObserver("content", function () {
         | 
| 35526 35873 | 
             
                  var content = _emberMetalProperty_get.get(this, "content");
         | 
| 35527 35874 | 
             
                  var sortProperties = _emberMetalProperty_get.get(this, "sortProperties");
         | 
| 35528 35875 |  | 
| @@ -35537,7 +35884,7 @@ enifed("ember-runtime/mixins/sortable", ["exports", "ember-metal/core", "ember-m | |
| 35537 35884 | 
             
                  this._super.apply(this, arguments);
         | 
| 35538 35885 | 
             
                }),
         | 
| 35539 35886 |  | 
| 35540 | 
            -
                sortPropertiesWillChange: _emberMetalMixin. | 
| 35887 | 
            +
                sortPropertiesWillChange: _emberMetalMixin._beforeObserver("sortProperties", function () {
         | 
| 35541 35888 | 
             
                  this._lastSortAscending = undefined;
         | 
| 35542 35889 | 
             
                }),
         | 
| 35543 35890 |  | 
| @@ -35545,7 +35892,7 @@ enifed("ember-runtime/mixins/sortable", ["exports", "ember-metal/core", "ember-m | |
| 35545 35892 | 
             
                  this._lastSortAscending = undefined;
         | 
| 35546 35893 | 
             
                }),
         | 
| 35547 35894 |  | 
| 35548 | 
            -
                sortAscendingWillChange: _emberMetalMixin. | 
| 35895 | 
            +
                sortAscendingWillChange: _emberMetalMixin._beforeObserver("sortAscending", function () {
         | 
| 35549 35896 | 
             
                  this._lastSortAscending = _emberMetalProperty_get.get(this, "sortAscending");
         | 
| 35550 35897 | 
             
                }),
         | 
| 35551 35898 |  | 
| @@ -35909,7 +36256,7 @@ enifed("ember-runtime/system/array_proxy", ["exports", "ember-metal/core", "embe | |
| 35909 36256 | 
             
                   @private
         | 
| 35910 36257 | 
             
                  @method _contentWillChange
         | 
| 35911 36258 | 
             
                */
         | 
| 35912 | 
            -
                _contentWillChange: _emberMetalMixin. | 
| 36259 | 
            +
                _contentWillChange: _emberMetalMixin._beforeObserver("content", function () {
         | 
| 35913 36260 | 
             
                  this._teardownContent();
         | 
| 35914 36261 | 
             
                }),
         | 
| 35915 36262 |  | 
| @@ -35972,7 +36319,7 @@ enifed("ember-runtime/system/array_proxy", ["exports", "ember-metal/core", "embe | |
| 35972 36319 | 
             
                  }
         | 
| 35973 36320 | 
             
                },
         | 
| 35974 36321 |  | 
| 35975 | 
            -
                _arrangedContentWillChange: _emberMetalMixin. | 
| 36322 | 
            +
                _arrangedContentWillChange: _emberMetalMixin._beforeObserver("arrangedContent", function () {
         | 
| 35976 36323 | 
             
                  var arrangedContent = _emberMetalProperty_get.get(this, "arrangedContent");
         | 
| 35977 36324 | 
             
                  var len = arrangedContent ? _emberMetalProperty_get.get(arrangedContent, "length") : 0;
         | 
| 35978 36325 |  | 
| @@ -37035,7 +37382,7 @@ enifed("ember-runtime/system/each_proxy", ["exports", "ember-metal/core", "ember | |
| 37035 37382 | 
             
                  var item = content.objectAt(loc);
         | 
| 37036 37383 | 
             
                  if (item) {
         | 
| 37037 37384 | 
             
                    _emberMetalCore["default"].assert("When using @each to observe the array " + content + ", the array must return an object", _emberRuntimeUtils.typeOf(item) === "instance" || _emberRuntimeUtils.typeOf(item) === "object");
         | 
| 37038 | 
            -
                    _emberMetalObserver. | 
| 37385 | 
            +
                    _emberMetalObserver._addBeforeObserver(item, keyName, proxy, "contentKeyWillChange");
         | 
| 37039 37386 | 
             
                    _emberMetalObserver.addObserver(item, keyName, proxy, "contentKeyDidChange");
         | 
| 37040 37387 |  | 
| 37041 37388 | 
             
                    // keep track of the index each item was found at so we can map
         | 
| @@ -37061,7 +37408,7 @@ enifed("ember-runtime/system/each_proxy", ["exports", "ember-metal/core", "ember | |
| 37061 37408 | 
             
                while (--loc >= idx) {
         | 
| 37062 37409 | 
             
                  var item = content.objectAt(loc);
         | 
| 37063 37410 | 
             
                  if (item) {
         | 
| 37064 | 
            -
                    _emberMetalObserver. | 
| 37411 | 
            +
                    _emberMetalObserver._removeBeforeObserver(item, keyName, proxy, "contentKeyWillChange");
         | 
| 37065 37412 | 
             
                    _emberMetalObserver.removeObserver(item, keyName, proxy, "contentKeyDidChange");
         | 
| 37066 37413 |  | 
| 37067 37414 | 
             
                    guid = _emberMetalUtils.guidFor(item);
         | 
| @@ -37237,14 +37584,14 @@ enifed("ember-runtime/system/lazy_load", ["exports", "ember-metal/core", "ember- | |
| 37237 37584 | 
             
              var loaded = {};
         | 
| 37238 37585 |  | 
| 37239 37586 | 
             
              /**
         | 
| 37240 | 
            -
                Detects when a specific package of Ember (e.g. 'Ember. | 
| 37587 | 
            +
                Detects when a specific package of Ember (e.g. 'Ember.Application')
         | 
| 37241 37588 | 
             
                has fully loaded and is available for extension.
         | 
| 37242 37589 |  | 
| 37243 37590 | 
             
                The provided `callback` will be called with the `name` passed
         | 
| 37244 37591 | 
             
                resolved from a string into the object:
         | 
| 37245 37592 |  | 
| 37246 37593 | 
             
                ``` javascript
         | 
| 37247 | 
            -
                Ember.onLoad('Ember. | 
| 37594 | 
            +
                Ember.onLoad('Ember.Application' function(hbars) {
         | 
| 37248 37595 | 
             
                  hbars.registerHelper(...);
         | 
| 37249 37596 | 
             
                });
         | 
| 37250 37597 | 
             
                ```
         | 
| @@ -37268,7 +37615,7 @@ enifed("ember-runtime/system/lazy_load", ["exports", "ember-metal/core", "ember- | |
| 37268 37615 | 
             
              }
         | 
| 37269 37616 |  | 
| 37270 37617 | 
             
              /**
         | 
| 37271 | 
            -
                Called when an Ember.js package (e.g Ember. | 
| 37618 | 
            +
                Called when an Ember.js package (e.g Ember.Application) has finished
         | 
| 37272 37619 | 
             
                loading. Triggers any callbacks registered for this event.
         | 
| 37273 37620 |  | 
| 37274 37621 | 
             
                @method runLoadHooks
         | 
| @@ -40569,7 +40916,7 @@ enifed("ember-template-compiler/system/compile_options", ["exports", "ember-meta | |
| 40569 40916 |  | 
| 40570 40917 | 
             
                options.buildMeta = function buildMeta(program) {
         | 
| 40571 40918 | 
             
                  return {
         | 
| 40572 | 
            -
                    revision: "Ember@1.13. | 
| 40919 | 
            +
                    revision: "Ember@1.13.4",
         | 
| 40573 40920 | 
             
                    loc: program.loc,
         | 
| 40574 40921 | 
             
                    moduleName: options.moduleName
         | 
| 40575 40922 | 
             
                  };
         | 
| @@ -41998,7 +42345,7 @@ enifed("ember-views/compat/attrs-proxy", ["exports", "ember-metal/property_get", | |
| 41998 42345 | 
             
                  }
         | 
| 41999 42346 |  | 
| 42000 42347 | 
             
                  var attrsKey = "attrs." + key;
         | 
| 42001 | 
            -
                  _emberMetalObserver. | 
| 42348 | 
            +
                  _emberMetalObserver._addBeforeObserver(this, attrsKey, null, attrsWillChange);
         | 
| 42002 42349 | 
             
                  _emberMetalObserver.addObserver(this, attrsKey, null, attrsDidChange);
         | 
| 42003 42350 | 
             
                },
         | 
| 42004 42351 |  | 
| @@ -42008,7 +42355,7 @@ enifed("ember-views/compat/attrs-proxy", ["exports", "ember-metal/property_get", | |
| 42008 42355 | 
             
                  }
         | 
| 42009 42356 |  | 
| 42010 42357 | 
             
                  var attrsKey = "attrs." + key;
         | 
| 42011 | 
            -
                  _emberMetalObserver. | 
| 42358 | 
            +
                  _emberMetalObserver._removeBeforeObserver(this, attrsKey, null, attrsWillChange);
         | 
| 42012 42359 | 
             
                  _emberMetalObserver.removeObserver(this, attrsKey, null, attrsDidChange);
         | 
| 42013 42360 | 
             
                },
         | 
| 42014 42361 |  | 
| @@ -43526,7 +43873,7 @@ enifed("ember-views/mixins/view_child_views_support", ["exports", "ember-metal/c | |
| 43526 43873 |  | 
| 43527 43874 | 
             
              var EMPTY_ARRAY = [];
         | 
| 43528 43875 |  | 
| 43529 | 
            -
               | 
| 43876 | 
            +
              exports["default"] = _emberMetalMixin.Mixin.create({
         | 
| 43530 43877 | 
             
                /**
         | 
| 43531 43878 | 
             
                  Array of child views. You should never edit this array directly.
         | 
| 43532 43879 | 
             
                  Instead, use `appendChild` and `removeFromParent`.
         | 
| @@ -43543,7 +43890,7 @@ enifed("ember-views/mixins/view_child_views_support", ["exports", "ember-metal/c | |
| 43543 43890 | 
             
                  // setup child views. be sure to clone the child views array first
         | 
| 43544 43891 | 
             
                  // 2.0TODO: Remove Ember.A() here
         | 
| 43545 43892 | 
             
                  this.childViews = _emberMetalCore["default"].A(this.childViews.slice());
         | 
| 43546 | 
            -
                  this.ownerView = this;
         | 
| 43893 | 
            +
                  this.ownerView = this.ownerView || this;
         | 
| 43547 43894 | 
             
                },
         | 
| 43548 43895 |  | 
| 43549 43896 | 
             
                appendChild: function (view) {
         | 
| @@ -43604,6 +43951,8 @@ enifed("ember-views/mixins/view_child_views_support", ["exports", "ember-metal/c | |
| 43604 43951 |  | 
| 43605 43952 | 
             
                  var attrs = _attrs || {};
         | 
| 43606 43953 | 
             
                  var view;
         | 
| 43954 | 
            +
             | 
| 43955 | 
            +
                  attrs.parentView = this;
         | 
| 43607 43956 | 
             
                  attrs.renderer = this.renderer;
         | 
| 43608 43957 | 
             
                  attrs._viewRegistry = this._viewRegistry;
         | 
| 43609 43958 |  | 
| @@ -43637,8 +43986,11 @@ enifed("ember-views/mixins/view_child_views_support", ["exports", "ember-metal/c | |
| 43637 43986 |  | 
| 43638 43987 | 
             
                linkChild: function (instance) {
         | 
| 43639 43988 | 
             
                  instance.container = this.container;
         | 
| 43640 | 
            -
                   | 
| 43641 | 
            -
             | 
| 43989 | 
            +
                  if (_emberMetalProperty_get.get(instance, "parentView") !== this) {
         | 
| 43990 | 
            +
                    // linkChild should be idempotentj
         | 
| 43991 | 
            +
                    _emberMetalProperty_set.set(instance, "parentView", this);
         | 
| 43992 | 
            +
                    instance.trigger("parentViewDidChange");
         | 
| 43993 | 
            +
                  }
         | 
| 43642 43994 | 
             
                  instance.ownerView = this.ownerView;
         | 
| 43643 43995 | 
             
                },
         | 
| 43644 43996 |  | 
| @@ -43647,8 +43999,6 @@ enifed("ember-views/mixins/view_child_views_support", ["exports", "ember-metal/c | |
| 43647 43999 | 
             
                  instance.trigger("parentViewDidChange");
         | 
| 43648 44000 | 
             
                }
         | 
| 43649 44001 | 
             
              });
         | 
| 43650 | 
            -
             | 
| 43651 | 
            -
              exports["default"] = ViewChildViewsSupport;
         | 
| 43652 44002 | 
             
            });
         | 
| 43653 44003 | 
             
            /**
         | 
| 43654 44004 | 
             
            @module ember
         | 
| @@ -44877,7 +45227,7 @@ enifed("ember-views/views/checkbox", ["exports", "ember-metal/property_get", "em | |
| 44877 45227 | 
             
                The internal class used to create text inputs when the `{{input}}`
         | 
| 44878 45228 | 
             
                helper is used with `type` of `checkbox`.
         | 
| 44879 45229 |  | 
| 44880 | 
            -
                See [ | 
| 45230 | 
            +
                See [Ember.Templates.helpers.input](/api/classes/Ember.Templates.helpers.html#method_input)  for usage details.
         | 
| 44881 45231 |  | 
| 44882 45232 | 
             
                ## Direct manipulation of `checked`
         | 
| 44883 45233 |  | 
| @@ -44965,7 +45315,7 @@ enifed("ember-views/views/collection_view", ["exports", "ember-metal/core", "emb | |
| 44965 45315 | 
             
                  classNames: ['a-collection'],
         | 
| 44966 45316 | 
             
                  content: ['A','B','C'],
         | 
| 44967 45317 | 
             
                  itemViewClass: Ember.View.extend({
         | 
| 44968 | 
            -
                    template: Ember. | 
| 45318 | 
            +
                    template: Ember.HTMLBars.compile("the letter: {{view.content}}")
         | 
| 44969 45319 | 
             
                  })
         | 
| 44970 45320 | 
             
                });
         | 
| 44971 45321 | 
             
                ```
         | 
| @@ -45000,7 +45350,7 @@ enifed("ember-views/views/collection_view", ["exports", "ember-metal/core", "emb | |
| 45000 45350 | 
             
                  tagName: 'ul',
         | 
| 45001 45351 | 
             
                  content: ['A','B','C'],
         | 
| 45002 45352 | 
             
                  itemViewClass: Ember.View.extend({
         | 
| 45003 | 
            -
                    template: Ember. | 
| 45353 | 
            +
                    template: Ember.HTMLBars.compile("the letter: {{view.content}}")
         | 
| 45004 45354 | 
             
                  })
         | 
| 45005 45355 | 
             
                });
         | 
| 45006 45356 | 
             
                ```
         | 
| @@ -45060,7 +45410,7 @@ enifed("ember-views/views/collection_view", ["exports", "ember-metal/core", "emb | |
| 45060 45410 | 
             
                  classNames: ['nothing'],
         | 
| 45061 45411 | 
             
                  content: null,
         | 
| 45062 45412 | 
             
                  emptyView: Ember.View.extend({
         | 
| 45063 | 
            -
                    template: Ember. | 
| 45413 | 
            +
                    template: Ember.HTMLBars.compile("The collection is empty")
         | 
| 45064 45414 | 
             
                  })
         | 
| 45065 45415 | 
             
                });
         | 
| 45066 45416 | 
             
                ```
         | 
| @@ -45131,7 +45481,7 @@ enifed("ember-views/views/collection_view", ["exports", "ember-metal/core", "emb | |
| 45131 45481 | 
             
                   @private
         | 
| 45132 45482 | 
             
                  @method _contentWillChange
         | 
| 45133 45483 | 
             
                */
         | 
| 45134 | 
            -
                _contentWillChange: _emberMetalMixin. | 
| 45484 | 
            +
                _contentWillChange: _emberMetalMixin._beforeObserver("content", function () {
         | 
| 45135 45485 | 
             
                  var content = this.get("content");
         | 
| 45136 45486 |  | 
| 45137 45487 | 
             
                  if (content) {
         | 
| @@ -45559,14 +45909,14 @@ enifed("ember-views/views/component", ["exports", "ember-metal/core", "ember-vie | |
| 45559 45909 | 
             
                }),
         | 
| 45560 45910 |  | 
| 45561 45911 | 
             
                /**
         | 
| 45562 | 
            -
                   | 
| 45563 | 
            -
                  this controller has registered for notifications of the action.
         | 
| 45912 | 
            +
                  Calls a action passed to a component.
         | 
| 45564 45913 | 
             
                   For example a component for playing or pausing music may translate click events
         | 
| 45565 45914 | 
             
                  into action notifications of "play" or "stop" depending on some internal state
         | 
| 45566 45915 | 
             
                  of the component:
         | 
| 45567 | 
            -
             | 
| 45568 | 
            -
                   | 
| 45569 | 
            -
             | 
| 45916 | 
            +
                   ```javascript
         | 
| 45917 | 
            +
                  // app/components/play-button.js
         | 
| 45918 | 
            +
                  export default Ember.Component.extend({
         | 
| 45919 | 
            +
                    click() {
         | 
| 45570 45920 | 
             
                      if (this.get('isPlaying')) {
         | 
| 45571 45921 | 
             
                        this.sendAction('play');
         | 
| 45572 45922 | 
             
                      } else {
         | 
| @@ -45575,55 +45925,56 @@ enifed("ember-views/views/component", ["exports", "ember-metal/core", "ember-vie | |
| 45575 45925 | 
             
                    }
         | 
| 45576 45926 | 
             
                  });
         | 
| 45577 45927 | 
             
                  ```
         | 
| 45578 | 
            -
                    | 
| 45579 | 
            -
                  trigger actions in the outer application context:
         | 
| 45928 | 
            +
                   The actions "play" and "stop" must be passed to this `play-button` component:
         | 
| 45580 45929 | 
             
                   ```handlebars
         | 
| 45581 | 
            -
                  {{! application.hbs }}
         | 
| 45582 | 
            -
                  {{play-button play="musicStarted" stop="musicStopped"}}
         | 
| 45930 | 
            +
                  {{! app/templates/application.hbs }}
         | 
| 45931 | 
            +
                  {{play-button play=(action "musicStarted") stop=(action "musicStopped")}}
         | 
| 45583 45932 | 
             
                  ```
         | 
| 45584 45933 | 
             
                   When the component receives a browser `click` event it translate this
         | 
| 45585 45934 | 
             
                  interaction into application-specific semantics ("play" or "stop") and
         | 
| 45586 | 
            -
                   | 
| 45587 | 
            -
             | 
| 45588 | 
            -
             | 
| 45589 | 
            -
                   | 
| 45935 | 
            +
                  calls the specified action.
         | 
| 45936 | 
            +
                   ```javascript
         | 
| 45937 | 
            +
                  // app/controller/application.js
         | 
| 45938 | 
            +
                  export default Ember.Controller.extend({
         | 
| 45590 45939 | 
             
                    actions: {
         | 
| 45591 | 
            -
                      musicStarted | 
| 45940 | 
            +
                      musicStarted() {
         | 
| 45592 45941 | 
             
                        // called when the play button is clicked
         | 
| 45593 45942 | 
             
                        // and the music started playing
         | 
| 45594 45943 | 
             
                      },
         | 
| 45595 | 
            -
                      musicStopped | 
| 45944 | 
            +
                      musicStopped() {
         | 
| 45596 45945 | 
             
                        // called when the play button is clicked
         | 
| 45597 45946 | 
             
                        // and the music stopped playing
         | 
| 45598 45947 | 
             
                      }
         | 
| 45599 45948 | 
             
                    }
         | 
| 45600 45949 | 
             
                  });
         | 
| 45601 45950 | 
             
                  ```
         | 
| 45602 | 
            -
                   If no action  | 
| 45951 | 
            +
                   If no action is passed to `sendAction` a default name of "action"
         | 
| 45603 45952 | 
             
                  is assumed.
         | 
| 45604 45953 | 
             
                   ```javascript
         | 
| 45605 | 
            -
                   | 
| 45606 | 
            -
             | 
| 45954 | 
            +
                  // app/components/next-button.js
         | 
| 45955 | 
            +
                  export default Ember.Component.extend({
         | 
| 45956 | 
            +
                    click() {
         | 
| 45607 45957 | 
             
                      this.sendAction();
         | 
| 45608 45958 | 
             
                    }
         | 
| 45609 45959 | 
             
                  });
         | 
| 45610 45960 | 
             
                  ```
         | 
| 45611 45961 | 
             
                   ```handlebars
         | 
| 45612 | 
            -
                  {{! application.hbs }}
         | 
| 45613 | 
            -
                  {{next-button action="playNextSongInAlbum"}}
         | 
| 45962 | 
            +
                  {{! app/templates/application.hbs }}
         | 
| 45963 | 
            +
                  {{next-button action=(action "playNextSongInAlbum")}}
         | 
| 45614 45964 | 
             
                  ```
         | 
| 45615 45965 | 
             
                   ```javascript
         | 
| 45966 | 
            +
                  // app/controllers/application.js
         | 
| 45616 45967 | 
             
                  App.ApplicationController = Ember.Controller.extend({
         | 
| 45617 45968 | 
             
                    actions: {
         | 
| 45618 | 
            -
                      playNextSongInAlbum | 
| 45969 | 
            +
                      playNextSongInAlbum() {
         | 
| 45619 45970 | 
             
                        ...
         | 
| 45620 45971 | 
             
                      }
         | 
| 45621 45972 | 
             
                    }
         | 
| 45622 45973 | 
             
                  });
         | 
| 45623 45974 | 
             
                  ```
         | 
| 45624 45975 | 
             
                   @method sendAction
         | 
| 45625 | 
            -
                  @param [action] {String} the action to  | 
| 45626 | 
            -
                  @param [ | 
| 45976 | 
            +
                  @param [action] {String} the action to call
         | 
| 45977 | 
            +
                  @param [params] {*} arguments for the action
         | 
| 45627 45978 | 
             
                  @public
         | 
| 45628 45979 | 
             
                */
         | 
| 45629 45980 | 
             
                sendAction: function (action) {
         | 
| @@ -45749,7 +46100,7 @@ enifed("ember-views/views/component", ["exports", "ember-metal/core", "ember-vie | |
| 45749 46100 | 
             
            });
         | 
| 45750 46101 | 
             
            // Ember.assert, Ember.Handlebars
         | 
| 45751 46102 | 
             
            enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "ember-runtime/mixins/mutable_array", "ember-views/views/view", "ember-metal/property_get", "ember-metal/property_set", "ember-metal/enumerable_utils", "ember-metal/mixin", "ember-metal/events", "ember-htmlbars/templates/container-view"], function (exports, _emberMetalCore, _emberRuntimeMixinsMutable_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalEnumerable_utils, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
         | 
| 45752 | 
            -
              _emberHtmlbarsTemplatesContainerView["default"].meta.revision = "Ember@1.13. | 
| 46103 | 
            +
              _emberHtmlbarsTemplatesContainerView["default"].meta.revision = "Ember@1.13.4";
         | 
| 45753 46104 |  | 
| 45754 46105 | 
             
              /**
         | 
| 45755 46106 | 
             
              @module ember
         | 
| @@ -45809,10 +46160,10 @@ enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "embe | |
| 45809 46160 | 
             
                  classNames: ['the-container'],
         | 
| 45810 46161 | 
             
                  childViews: ['aView', 'bView'],
         | 
| 45811 46162 | 
             
                  aView: Ember.View.create({
         | 
| 45812 | 
            -
                    template: Ember. | 
| 46163 | 
            +
                    template: Ember.HTMLBars.compile("A")
         | 
| 45813 46164 | 
             
                  }),
         | 
| 45814 46165 | 
             
                  bView: Ember.View.create({
         | 
| 45815 | 
            -
                    template: Ember. | 
| 46166 | 
            +
                    template: Ember.HTMLBars.compile("B")
         | 
| 45816 46167 | 
             
                  })
         | 
| 45817 46168 | 
             
                });
         | 
| 45818 46169 |  | 
| @@ -45854,10 +46205,10 @@ enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "embe | |
| 45854 46205 | 
             
                  classNames: ['the-container'],
         | 
| 45855 46206 | 
             
                  childViews: ['aView', 'bView'],
         | 
| 45856 46207 | 
             
                  aView: Ember.View.create({
         | 
| 45857 | 
            -
                    template: Ember. | 
| 46208 | 
            +
                    template: Ember.HTMLBars.compile("A")
         | 
| 45858 46209 | 
             
                  }),
         | 
| 45859 46210 | 
             
                  bView: Ember.View.create({
         | 
| 45860 | 
            -
                    template: Ember. | 
| 46211 | 
            +
                    template: Ember.HTMLBars.compile("B")
         | 
| 45861 46212 | 
             
                  })
         | 
| 45862 46213 | 
             
                });
         | 
| 45863 46214 |  | 
| @@ -45877,7 +46228,7 @@ enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "embe | |
| 45877 46228 |  | 
| 45878 46229 | 
             
                ```javascript
         | 
| 45879 46230 | 
             
                AnotherViewClass = Ember.View.extend({
         | 
| 45880 | 
            -
                  template: Ember. | 
| 46231 | 
            +
                  template: Ember.HTMLBars.compile("Another view")
         | 
| 45881 46232 | 
             
                });
         | 
| 45882 46233 |  | 
| 45883 46234 | 
             
                aContainer.toArray();  // [aContainer.aView, aContainer.bView]
         | 
| @@ -45961,7 +46312,7 @@ enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "embe | |
| 45961 46312 | 
             
                  }
         | 
| 45962 46313 | 
             
                },
         | 
| 45963 46314 |  | 
| 45964 | 
            -
                _currentViewWillChange: _emberMetalMixin. | 
| 46315 | 
            +
                _currentViewWillChange: _emberMetalMixin._beforeObserver("currentView", function () {
         | 
| 45965 46316 | 
             
                  var currentView = _emberMetalProperty_get.get(this, "currentView");
         | 
| 45966 46317 | 
             
                  if (currentView) {
         | 
| 45967 46318 | 
             
                    currentView.destroy();
         | 
| @@ -45981,7 +46332,7 @@ enifed("ember-views/views/container_view", ["exports", "ember-metal/core", "embe | |
| 45981 46332 | 
             
                replace: function (idx, removedCount) {
         | 
| 45982 46333 | 
             
                  var _this = this;
         | 
| 45983 46334 |  | 
| 45984 | 
            -
                  var addedViews = arguments[2] === undefined ? [] : arguments[2];
         | 
| 46335 | 
            +
                  var addedViews = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];
         | 
| 45985 46336 |  | 
| 45986 46337 | 
             
                  var addedCount = _emberMetalProperty_get.get(addedViews, "length");
         | 
| 45987 46338 | 
             
                  var childViews = _emberMetalProperty_get.get(this, "childViews");
         | 
| @@ -46099,7 +46450,7 @@ enifed("ember-views/views/core_view", ["exports", "ember-metal-views/renderer", | |
| 46099 46450 | 
             
                    this.renderer = renderer;
         | 
| 46100 46451 | 
             
                  }
         | 
| 46101 46452 |  | 
| 46102 | 
            -
                  this. | 
| 46453 | 
            +
                  this._destroyingSubtreeForView = null;
         | 
| 46103 46454 | 
             
                  this._dispatching = null;
         | 
| 46104 46455 | 
             
                },
         | 
| 46105 46456 |  | 
| @@ -46149,24 +46500,21 @@ enifed("ember-views/views/core_view", ["exports", "ember-metal-views/renderer", | |
| 46149 46500 | 
             
                },
         | 
| 46150 46501 |  | 
| 46151 46502 | 
             
                destroy: function () {
         | 
| 46152 | 
            -
                  var parent = this.parentView;
         | 
| 46153 | 
            -
             | 
| 46154 46503 | 
             
                  if (!this._super.apply(this, arguments)) {
         | 
| 46155 46504 | 
             
                    return;
         | 
| 46156 46505 | 
             
                  }
         | 
| 46157 46506 |  | 
| 46158 46507 | 
             
                  this.currentState.cleanup(this);
         | 
| 46159 46508 |  | 
| 46160 | 
            -
                   | 
| 46161 | 
            -
             | 
| 46162 | 
            -
             | 
| 46163 | 
            -
             | 
| 46164 | 
            -
             | 
| 46165 | 
            -
             | 
| 46166 | 
            -
             | 
| 46167 | 
            -
             | 
| 46168 | 
            -
                     | 
| 46169 | 
            -
                    this.ownerView.isDestroyingSubtree = false;
         | 
| 46509 | 
            +
                  // If the destroyingSubtreeForView property is not set but we have an
         | 
| 46510 | 
            +
                  // associated render node, it means this view is being destroyed from user
         | 
| 46511 | 
            +
                  // code and not via a change in the templating layer (like an {{if}}
         | 
| 46512 | 
            +
                  // becoming falsy, for example).  In this case, it is our responsibility to
         | 
| 46513 | 
            +
                  // make sure that any render nodes created as part of the rendering process
         | 
| 46514 | 
            +
                  // are cleaned up.
         | 
| 46515 | 
            +
                  if (!this.ownerView._destroyingSubtreeForView && this._renderNode) {
         | 
| 46516 | 
            +
                    Ember.assert("BUG: Render node exists without concomitant env.", this.ownerView.env);
         | 
| 46517 | 
            +
                    _htmlbarsRuntime.internal.clearMorph(this._renderNode, this.ownerView.env, true);
         | 
| 46170 46518 | 
             
                  }
         | 
| 46171 46519 |  | 
| 46172 46520 | 
             
                  return this;
         | 
| @@ -46775,7 +47123,7 @@ enifed("ember-views/views/select", ["exports", "ember-metal/enumerable_utils", " | |
| 46775 47123 | 
             
                },
         | 
| 46776 47124 |  | 
| 46777 47125 | 
             
                _selectedIndex: function (value) {
         | 
| 46778 | 
            -
                  var defaultIndex = arguments[1] === undefined ? 0 : arguments[1];
         | 
| 47126 | 
            +
                  var defaultIndex = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
         | 
| 46779 47127 |  | 
| 46780 47128 | 
             
                  var content = _emberMetalProperty_get.get(this, "contentValues");
         | 
| 46781 47129 |  | 
| @@ -47097,7 +47445,7 @@ enifed("ember-views/views/states/has_element", ["exports", "ember-views/views/st | |
| 47097 47445 | 
             
            @module ember
         | 
| 47098 47446 | 
             
            @submodule ember-views
         | 
| 47099 47447 | 
             
            */
         | 
| 47100 | 
            -
            enifed( | 
| 47448 | 
            +
            enifed('ember-views/views/states/in_dom', ['exports', 'ember-metal/core', 'ember-metal/platform/create', 'ember-metal/merge', 'ember-metal/error', 'ember-metal/observer', 'ember-views/views/states/has_element'], function (exports, _emberMetalCore, _emberMetalPlatformCreate, _emberMetalMerge, _emberMetalError, _emberMetalObserver, _emberViewsViewsStatesHas_element) {
         | 
| 47101 47449 | 
             
              /**
         | 
| 47102 47450 | 
             
              @module ember
         | 
| 47103 47451 | 
             
              @submodule ember-views
         | 
| @@ -47109,13 +47457,13 @@ enifed("ember-views/views/states/in_dom", ["exports", "ember-metal/platform/crea | |
| 47109 47457 | 
             
                enter: function (view) {
         | 
| 47110 47458 | 
             
                  // Register the view for event handling. This hash is used by
         | 
| 47111 47459 | 
             
                  // Ember.EventDispatcher to dispatch incoming events.
         | 
| 47112 | 
            -
                  if (view.tagName !==  | 
| 47460 | 
            +
                  if (view.tagName !== '') {
         | 
| 47113 47461 | 
             
                    view._register();
         | 
| 47114 47462 | 
             
                  }
         | 
| 47115 47463 |  | 
| 47116 | 
            -
                   | 
| 47117 | 
            -
                    _emberMetalObserver. | 
| 47118 | 
            -
                      throw new _emberMetalError["default"]( | 
| 47464 | 
            +
                  _emberMetalCore["default"].runInDebug(function () {
         | 
| 47465 | 
            +
                    _emberMetalObserver._addBeforeObserver(view, 'elementId', function () {
         | 
| 47466 | 
            +
                      throw new _emberMetalError["default"]('Changing a view\'s elementId after creation is not allowed');
         | 
| 47119 47467 | 
             
                    });
         | 
| 47120 47468 | 
             
                  });
         | 
| 47121 47469 | 
             
                },
         | 
| @@ -47135,7 +47483,7 @@ enifed("ember-views/views/states/in_dom", ["exports", "ember-metal/platform/crea | |
| 47135 47483 | 
             
                  attrNode.parentView = view;
         | 
| 47136 47484 | 
             
                  view.renderer.appendAttrTo(attrNode, view.element, attrNode.attrName);
         | 
| 47137 47485 |  | 
| 47138 | 
            -
                  view.propertyDidChange( | 
| 47486 | 
            +
                  view.propertyDidChange('childViews');
         | 
| 47139 47487 |  | 
| 47140 47488 | 
             
                  return attrNode;
         | 
| 47141 47489 | 
             
                }
         | 
| @@ -47167,7 +47515,7 @@ enifed("ember-views/views/text_area", ["exports", "ember-views/views/component", | |
| 47167 47515 | 
             
                The internal class used to create textarea element when the `{{textarea}}`
         | 
| 47168 47516 | 
             
                helper is used.
         | 
| 47169 47517 |  | 
| 47170 | 
            -
                See [ | 
| 47518 | 
            +
                See [Ember.Templates.helpers.textarea](/api/classes/Ember.Templates.helpers.html#method_textarea)  for usage details.
         | 
| 47171 47519 |  | 
| 47172 47520 | 
             
                ## Layout and LayoutName properties
         | 
| 47173 47521 |  | 
| @@ -47229,7 +47577,7 @@ enifed("ember-views/views/text_field", ["exports", "ember-metal/computed", "embe | |
| 47229 47577 | 
             
                The internal class used to create text inputs when the `{{input}}`
         | 
| 47230 47578 | 
             
                helper is used with `type` of `text`.
         | 
| 47231 47579 |  | 
| 47232 | 
            -
                See [ | 
| 47580 | 
            +
                See [Ember.Templates.helpers.input](/api/classes/Ember.Templates.helpers.html#method_input)  for usage details.
         | 
| 47233 47581 |  | 
| 47234 47582 | 
             
                ## Layout and LayoutName properties
         | 
| 47235 47583 |  | 
| @@ -47639,11 +47987,11 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47639 47987 | 
             
                template. Templates can be any function that accepts an optional context
         | 
| 47640 47988 | 
             
                parameter and returns a string of HTML that will be inserted within the
         | 
| 47641 47989 | 
             
                view's tag. Most typically in Ember this function will be a compiled
         | 
| 47642 | 
            -
                 | 
| 47990 | 
            +
                template.
         | 
| 47643 47991 |  | 
| 47644 47992 | 
             
                ```javascript
         | 
| 47645 47993 | 
             
                AView = Ember.View.extend({
         | 
| 47646 | 
            -
                  template: Ember. | 
| 47994 | 
            +
                  template: Ember.HTMLBars.compile('I am the template')
         | 
| 47647 47995 | 
             
                });
         | 
| 47648 47996 | 
             
                ```
         | 
| 47649 47997 |  | 
| @@ -47686,18 +48034,18 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47686 48034 | 
             
                });
         | 
| 47687 48035 | 
             
                ```
         | 
| 47688 48036 |  | 
| 47689 | 
            -
                Using a value for `templateName` that does not have a  | 
| 48037 | 
            +
                Using a value for `templateName` that does not have a template
         | 
| 47690 48038 | 
             
                with a matching `data-template-name` attribute will throw an error.
         | 
| 47691 48039 |  | 
| 47692 48040 | 
             
                For views classes that may have a template later defined (e.g. as the block
         | 
| 47693 | 
            -
                portion of a `{{view}}`  | 
| 48041 | 
            +
                portion of a `{{view}}` helper call in another template or in
         | 
| 47694 48042 | 
             
                a subclass), you can provide a `defaultTemplate` property set to compiled
         | 
| 47695 48043 | 
             
                template function. If a template is not later provided for the view instance
         | 
| 47696 48044 | 
             
                the `defaultTemplate` value will be used:
         | 
| 47697 48045 |  | 
| 47698 48046 | 
             
                ```javascript
         | 
| 47699 48047 | 
             
                AView = Ember.View.extend({
         | 
| 47700 | 
            -
                  defaultTemplate: Ember. | 
| 48048 | 
            +
                  defaultTemplate: Ember.HTMLBars.compile('I was the default'),
         | 
| 47701 48049 | 
             
                  template: null,
         | 
| 47702 48050 | 
             
                  templateName: null
         | 
| 47703 48051 | 
             
                });
         | 
| @@ -47714,11 +48062,11 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47714 48062 |  | 
| 47715 48063 | 
             
                ```javascript
         | 
| 47716 48064 | 
             
                AView = Ember.View.extend({
         | 
| 47717 | 
            -
                  defaultTemplate: Ember. | 
| 48065 | 
            +
                  defaultTemplate: Ember.HTMLBars.compile('I was the default')
         | 
| 47718 48066 | 
             
                });
         | 
| 47719 48067 |  | 
| 47720 48068 | 
             
                aView = AView.create({
         | 
| 47721 | 
            -
                  template: Ember. | 
| 48069 | 
            +
                  template: Ember.HTMLBars.compile('I was the template, not default')
         | 
| 47722 48070 | 
             
                });
         | 
| 47723 48071 | 
             
                ```
         | 
| 47724 48072 |  | 
| @@ -47734,7 +48082,7 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47734 48082 |  | 
| 47735 48083 | 
             
                ```javascript
         | 
| 47736 48084 | 
             
                AView = Ember.View.extend({
         | 
| 47737 | 
            -
                  template: Ember. | 
| 48085 | 
            +
                  template: Ember.HTMLBars.compile('Hello {{excitedGreeting}}')
         | 
| 47738 48086 | 
             
                });
         | 
| 47739 48087 |  | 
| 47740 48088 | 
             
                aController = Ember.Object.create({
         | 
| @@ -47767,20 +48115,19 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47767 48115 | 
             
                view's tag. Views whose HTML element is self closing (e.g. `<input />`)
         | 
| 47768 48116 | 
             
                cannot have a layout and this property will be ignored.
         | 
| 47769 48117 |  | 
| 47770 | 
            -
                Most typically in Ember a layout will be a compiled  | 
| 47771 | 
            -
                template.
         | 
| 48118 | 
            +
                Most typically in Ember a layout will be a compiled template.
         | 
| 47772 48119 |  | 
| 47773 48120 | 
             
                A view's layout can be set directly with the `layout` property or reference
         | 
| 47774 | 
            -
                an existing  | 
| 48121 | 
            +
                an existing template by name with the `layoutName` property.
         | 
| 47775 48122 |  | 
| 47776 | 
            -
                A template used as a layout must contain a single use of the | 
| 48123 | 
            +
                A template used as a layout must contain a single use of the
         | 
| 47777 48124 | 
             
                `{{yield}}` helper. The HTML contents of a view's rendered `template` will be
         | 
| 47778 48125 | 
             
                inserted at this location:
         | 
| 47779 48126 |  | 
| 47780 48127 | 
             
                ```javascript
         | 
| 47781 48128 | 
             
                AViewWithLayout = Ember.View.extend({
         | 
| 47782 | 
            -
                  layout: Ember. | 
| 47783 | 
            -
                  template: Ember. | 
| 48129 | 
            +
                  layout: Ember.HTMLBars.compile("<div class='my-decorative-class'>{{yield}}</div>"),
         | 
| 48130 | 
            +
                  template: Ember.HTMLBars.compile("I got wrapped")
         | 
| 47784 48131 | 
             
                });
         | 
| 47785 48132 | 
             
                ```
         | 
| 47786 48133 |  | 
| @@ -47794,7 +48141,7 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47794 48141 | 
             
                </div>
         | 
| 47795 48142 | 
             
                ```
         | 
| 47796 48143 |  | 
| 47797 | 
            -
                See [Ember. | 
| 48144 | 
            +
                See [Ember.Templates.helpers.yield](/api/classes/Ember.Templates.helpers.html#method_yield)
         | 
| 47798 48145 | 
             
                for more information.
         | 
| 47799 48146 |  | 
| 47800 48147 | 
             
                ## Responding to Browser Events
         | 
| @@ -47868,7 +48215,7 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47868 48215 | 
             
                ```javascript
         | 
| 47869 48216 | 
             
                var App = Ember.Application.create();
         | 
| 47870 48217 | 
             
                App.OuterView = Ember.View.extend({
         | 
| 47871 | 
            -
                  template: Ember. | 
| 48218 | 
            +
                  template: Ember.HTMLBars.compile("outer {{#view 'inner'}}inner{{/view}} outer"),
         | 
| 47872 48219 | 
             
                  eventManager: Ember.Object.create({
         | 
| 47873 48220 | 
             
                    mouseEnter: function(event, view) {
         | 
| 47874 48221 | 
             
                      // view might be instance of either
         | 
| @@ -47891,9 +48238,9 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47891 48238 | 
             
                });
         | 
| 47892 48239 | 
             
                ```
         | 
| 47893 48240 |  | 
| 47894 | 
            -
                ###  | 
| 48241 | 
            +
                ### `{{action}}` Helper
         | 
| 47895 48242 |  | 
| 47896 | 
            -
                See [ | 
| 48243 | 
            +
                See [Ember.Templates.helpers.action](/api/classes/Ember.Templates.helpers.html#method_action).
         | 
| 47897 48244 |  | 
| 47898 48245 | 
             
                ### Event Names
         | 
| 47899 48246 |  | 
| @@ -47946,10 +48293,10 @@ enifed("ember-views/views/view", ["exports", "ember-metal/core", "ember-runtime/ | |
| 47946 48293 | 
             
                * `dragEnd`
         | 
| 47947 48294 | 
             
                * `drop`
         | 
| 47948 48295 |  | 
| 47949 | 
            -
                ##  | 
| 48296 | 
            +
                ## `{{view}}` Helper
         | 
| 47950 48297 |  | 
| 47951 48298 | 
             
                Other `Ember.View` instances can be included as part of a view's template by
         | 
| 47952 | 
            -
                using the `{{view}}`  | 
| 48299 | 
            +
                using the `{{view}}` helper. See [Ember.Templates.helpers.view](/api/classes/Ember.Templates.helpers.html#method_view)
         | 
| 47953 48300 | 
             
                for additional information.
         | 
| 47954 48301 |  | 
| 47955 48302 | 
             
                @class View
         | 
| @@ -49650,7 +49997,7 @@ enifed("htmlbars-runtime/hooks", ["exports", "./render", "../morph-range/morph-l | |
| 49650 49997 | 
             
              */
         | 
| 49651 49998 |  | 
| 49652 49999 | 
             
              function bindBlock(env, scope, block) {
         | 
| 49653 | 
            -
                var name = arguments[3] === undefined ? "default" : arguments[3];
         | 
| 50000 | 
            +
                var name = arguments.length <= 3 || arguments[3] === undefined ? "default" : arguments[3];
         | 
| 49654 50001 |  | 
| 49655 50002 | 
             
                scope.blocks[name] = block;
         | 
| 49656 50003 | 
             
              }
         |