ember-source 2.0.0.beta.5 → 2.0.0
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 +151 -128
- data/dist/ember-testing.js +1 -1
- data/dist/ember.debug.js +938 -177
- data/dist/ember.js +938 -177
- data/dist/ember.min.js +13 -13
- data/dist/ember.prod.js +928 -164
- metadata +4 -4
data/dist/ember-testing.js
CHANGED
data/dist/ember.debug.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 2.0.0
|
8
|
+
* @version 2.0.0
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -3570,7 +3570,9 @@ enifed('ember-application/system/application-instance', ['exports', 'ember-metal
|
|
3570
3570
|
*/
|
3571
3571
|
setupEventDispatcher: function () {
|
3572
3572
|
var dispatcher = this.container.lookup('event_dispatcher:main');
|
3573
|
-
|
3573
|
+
var applicationCustomEvents = _emberMetalProperty_get.get(this.application, 'customEvents');
|
3574
|
+
|
3575
|
+
dispatcher.setup(applicationCustomEvents, this.rootElement);
|
3574
3576
|
|
3575
3577
|
return dispatcher;
|
3576
3578
|
},
|
@@ -3855,7 +3857,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
3855
3857
|
*/
|
3856
3858
|
buildInstance: function () {
|
3857
3859
|
return _emberApplicationSystemApplicationInstance.default.create({
|
3858
|
-
|
3860
|
+
application: this,
|
3859
3861
|
rootElement: _emberMetalProperty_get.get(this, 'rootElement'),
|
3860
3862
|
applicationRegistry: this.registry
|
3861
3863
|
});
|
@@ -6229,7 +6231,6 @@ enifed('ember-htmlbars/env', ['exports', 'ember-metal', 'ember-metal/features',
|
|
6229
6231
|
_emberHtmlbarsKeywords.registerKeyword('partial', _emberHtmlbarsKeywordsPartial.default);
|
6230
6232
|
_emberHtmlbarsKeywords.registerKeyword('input', _emberHtmlbarsKeywordsInput.default);
|
6231
6233
|
_emberHtmlbarsKeywords.registerKeyword('textarea', _emberHtmlbarsKeywordsTextarea.default);
|
6232
|
-
_emberHtmlbarsKeywords.registerKeyword('collection', _emberHtmlbarsKeywordsCollection.default);
|
6233
6234
|
_emberHtmlbarsKeywords.registerKeyword('legacy-yield', _emberHtmlbarsKeywordsLegacyYield.default);
|
6234
6235
|
_emberHtmlbarsKeywords.registerKeyword('mut', _emberHtmlbarsKeywordsMut.default);
|
6235
6236
|
_emberHtmlbarsKeywords.registerKeyword('@mut', _emberHtmlbarsKeywordsMut.privateMut);
|
@@ -6237,6 +6238,7 @@ enifed('ember-htmlbars/env', ['exports', 'ember-metal', 'ember-metal/features',
|
|
6237
6238
|
_emberHtmlbarsKeywords.registerKeyword('readonly', _emberHtmlbarsKeywordsReadonly.default);
|
6238
6239
|
|
6239
6240
|
if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
|
6241
|
+
_emberHtmlbarsKeywords.registerKeyword('collection', _emberHtmlbarsKeywordsCollection.default);
|
6240
6242
|
_emberHtmlbarsKeywords.registerKeyword('view', _emberHtmlbarsKeywordsView.default);
|
6241
6243
|
}
|
6242
6244
|
|
@@ -6606,8 +6608,38 @@ enifed('ember-htmlbars/helpers/-normalize-class', ['exports', 'ember-runtime/sys
|
|
6606
6608
|
}
|
6607
6609
|
});
|
6608
6610
|
enifed('ember-htmlbars/helpers/each-in', ['exports', 'ember-metal/features', 'ember-views/streams/should_display'], function (exports, _emberMetalFeatures, _emberViewsStreamsShould_display) {
|
6611
|
+
/**
|
6612
|
+
@module ember
|
6613
|
+
@submodule ember-templates
|
6614
|
+
*/
|
6615
|
+
|
6609
6616
|
'use strict';
|
6610
6617
|
|
6618
|
+
/**
|
6619
|
+
The `{{each-in}}` helper loops over properties on an object. It is unbound,
|
6620
|
+
in that new (or removed) properties added to the target object will not be
|
6621
|
+
rendered.
|
6622
|
+
For example, given a `user` object that looks like:
|
6623
|
+
```javascript
|
6624
|
+
{
|
6625
|
+
"name": "Shelly Sails",
|
6626
|
+
"age": 42
|
6627
|
+
}
|
6628
|
+
```
|
6629
|
+
This template would display all properties on the `user`
|
6630
|
+
object in a list:
|
6631
|
+
```handlebars
|
6632
|
+
<ul>
|
6633
|
+
{{#each-in user as |key value|}}
|
6634
|
+
<li>{{key}}: {{value}}</li>
|
6635
|
+
{{/each-in}}
|
6636
|
+
</ul>
|
6637
|
+
```
|
6638
|
+
Outputting their name and age.
|
6639
|
+
@method each-in
|
6640
|
+
@for Ember.Templates.helpers
|
6641
|
+
@public
|
6642
|
+
*/
|
6611
6643
|
var eachInHelper = function (_ref, hash, blocks) {
|
6612
6644
|
var object = _ref[0];
|
6613
6645
|
|
@@ -6625,6 +6657,11 @@ enifed('ember-htmlbars/helpers/each-in', ['exports', 'ember-metal/features', 'em
|
|
6625
6657
|
exports.default = eachInHelper;
|
6626
6658
|
});
|
6627
6659
|
enifed('ember-htmlbars/helpers/each', ['exports', 'ember-views/streams/should_display', 'ember-htmlbars/utils/decode-each-key'], function (exports, _emberViewsStreamsShould_display, _emberHtmlbarsUtilsDecodeEachKey) {
|
6660
|
+
/**
|
6661
|
+
@module ember
|
6662
|
+
@submodule ember-templates
|
6663
|
+
*/
|
6664
|
+
|
6628
6665
|
'use strict';
|
6629
6666
|
|
6630
6667
|
exports.default = eachHelper;
|
@@ -7738,11 +7775,135 @@ enifed('ember-htmlbars/keywords', ['exports', 'htmlbars-runtime'], function (exp
|
|
7738
7775
|
enifed('ember-htmlbars/keywords/collection', ['exports', 'ember-views/streams/utils', 'ember-views/views/collection_view', 'ember-htmlbars/node-managers/view-node-manager', 'ember-metal/merge'], function (exports, _emberViewsStreamsUtils, _emberViewsViewsCollection_view, _emberHtmlbarsNodeManagersViewNodeManager, _emberMetalMerge) {
|
7739
7776
|
/**
|
7740
7777
|
@module ember
|
7741
|
-
@submodule ember-
|
7778
|
+
@submodule ember-templates
|
7742
7779
|
*/
|
7743
7780
|
|
7744
7781
|
'use strict';
|
7745
7782
|
|
7783
|
+
/**
|
7784
|
+
`{{collection}}` is a template helper for adding instances of
|
7785
|
+
`Ember.CollectionView` to a template. See [Ember.CollectionView](/api/classes/Ember.CollectionView.html)
|
7786
|
+
for additional information on how a `CollectionView` functions.
|
7787
|
+
|
7788
|
+
`{{collection}}`'s primary use is as a block helper with a `contentBinding`
|
7789
|
+
option pointing towards an `Ember.Array`-compatible object. An `Ember.View`
|
7790
|
+
instance will be created for each item in its `content` property. Each view
|
7791
|
+
will have its own `content` property set to the appropriate item in the
|
7792
|
+
collection.
|
7793
|
+
|
7794
|
+
The provided block will be applied as the template for each item's view.
|
7795
|
+
|
7796
|
+
Given an empty `<body>` the following template:
|
7797
|
+
|
7798
|
+
```handlebars
|
7799
|
+
{{! application.hbs }}
|
7800
|
+
{{#collection content=model}}
|
7801
|
+
Hi {{view.content.name}}
|
7802
|
+
{{/collection}}
|
7803
|
+
```
|
7804
|
+
|
7805
|
+
And the following application code
|
7806
|
+
|
7807
|
+
```javascript
|
7808
|
+
App = Ember.Application.create();
|
7809
|
+
App.ApplicationRoute = Ember.Route.extend({
|
7810
|
+
model: function() {
|
7811
|
+
return [{name: 'Yehuda'},{name: 'Tom'},{name: 'Peter'}];
|
7812
|
+
}
|
7813
|
+
});
|
7814
|
+
```
|
7815
|
+
|
7816
|
+
The following HTML will result:
|
7817
|
+
|
7818
|
+
```html
|
7819
|
+
<div class="ember-view">
|
7820
|
+
<div class="ember-view">Hi Yehuda</div>
|
7821
|
+
<div class="ember-view">Hi Tom</div>
|
7822
|
+
<div class="ember-view">Hi Peter</div>
|
7823
|
+
</div>
|
7824
|
+
```
|
7825
|
+
|
7826
|
+
### Non-block version of collection
|
7827
|
+
|
7828
|
+
If you provide an `itemViewClass` option that has its own `template` you may
|
7829
|
+
omit the block.
|
7830
|
+
|
7831
|
+
The following template:
|
7832
|
+
|
7833
|
+
```handlebars
|
7834
|
+
{{! application.hbs }}
|
7835
|
+
{{collection content=model itemViewClass="an-item"}}
|
7836
|
+
```
|
7837
|
+
|
7838
|
+
And application code
|
7839
|
+
|
7840
|
+
```javascript
|
7841
|
+
App = Ember.Application.create();
|
7842
|
+
App.ApplicationRoute = Ember.Route.extend({
|
7843
|
+
model: function() {
|
7844
|
+
return [{name: 'Yehuda'},{name: 'Tom'},{name: 'Peter'}];
|
7845
|
+
}
|
7846
|
+
});
|
7847
|
+
|
7848
|
+
App.AnItemView = Ember.View.extend({
|
7849
|
+
template: Ember.Handlebars.compile("Greetings {{view.content.name}}")
|
7850
|
+
});
|
7851
|
+
```
|
7852
|
+
|
7853
|
+
Will result in the HTML structure below
|
7854
|
+
|
7855
|
+
```html
|
7856
|
+
<div class="ember-view">
|
7857
|
+
<div class="ember-view">Greetings Yehuda</div>
|
7858
|
+
<div class="ember-view">Greetings Tom</div>
|
7859
|
+
<div class="ember-view">Greetings Peter</div>
|
7860
|
+
</div>
|
7861
|
+
```
|
7862
|
+
|
7863
|
+
### Specifying a CollectionView subclass
|
7864
|
+
|
7865
|
+
By default the `{{collection}}` helper will create an instance of
|
7866
|
+
`Ember.CollectionView`. You can supply a `Ember.CollectionView` subclass to
|
7867
|
+
the helper by passing it as the first argument:
|
7868
|
+
|
7869
|
+
```handlebars
|
7870
|
+
{{#collection "my-custom-collection" content=model}}
|
7871
|
+
Hi {{view.content.name}}
|
7872
|
+
{{/collection}}
|
7873
|
+
```
|
7874
|
+
|
7875
|
+
This example would look for the class `App.MyCustomCollection`.
|
7876
|
+
|
7877
|
+
### Forwarded `item.*`-named Options
|
7878
|
+
|
7879
|
+
As with the `{{view}}`, helper options passed to the `{{collection}}` will be
|
7880
|
+
set on the resulting `Ember.CollectionView` as properties. Additionally,
|
7881
|
+
options prefixed with `item` will be applied to the views rendered for each
|
7882
|
+
item (note the camelcasing):
|
7883
|
+
|
7884
|
+
```handlebars
|
7885
|
+
{{#collection content=model
|
7886
|
+
itemTagName="p"
|
7887
|
+
itemClassNames="greeting"}}
|
7888
|
+
Howdy {{view.content.name}}
|
7889
|
+
{{/collection}}
|
7890
|
+
```
|
7891
|
+
|
7892
|
+
Will result in the following HTML structure:
|
7893
|
+
|
7894
|
+
```html
|
7895
|
+
<div class="ember-view">
|
7896
|
+
<p class="ember-view greeting">Howdy Yehuda</p>
|
7897
|
+
<p class="ember-view greeting">Howdy Tom</p>
|
7898
|
+
<p class="ember-view greeting">Howdy Peter</p>
|
7899
|
+
</div>
|
7900
|
+
```
|
7901
|
+
|
7902
|
+
@method collection
|
7903
|
+
@for Ember.Templates.helpers
|
7904
|
+
@deprecated Use `{{each}}` helper instead.
|
7905
|
+
@public
|
7906
|
+
*/
|
7746
7907
|
exports.default = {
|
7747
7908
|
setupState: function (state, env, scope, params, hash) {
|
7748
7909
|
var read = env.hooks.getValue;
|
@@ -8148,8 +8309,158 @@ enifed('ember-htmlbars/keywords/get', ['exports', 'ember-metal/core', 'ember-met
|
|
8148
8309
|
exports.default = getKeyword;
|
8149
8310
|
});
|
8150
8311
|
enifed('ember-htmlbars/keywords/input', ['exports', 'ember-metal/core', 'ember-metal/merge'], function (exports, _emberMetalCore, _emberMetalMerge) {
|
8312
|
+
/**
|
8313
|
+
@module ember
|
8314
|
+
@submodule ember-templates
|
8315
|
+
*/
|
8151
8316
|
'use strict';
|
8152
8317
|
|
8318
|
+
/**
|
8319
|
+
The `{{input}}` helper lets you create an HTML `<input />` component.
|
8320
|
+
It causes an `Ember.TextField` component to be rendered. For more info,
|
8321
|
+
see the [Ember.TextField](/api/classes/Ember.TextField.html) docs and
|
8322
|
+
the [templates guide](http://emberjs.com/guides/templates/input-helpers/).
|
8323
|
+
|
8324
|
+
```handlebars
|
8325
|
+
{{input value="987"}}
|
8326
|
+
```
|
8327
|
+
|
8328
|
+
renders as:
|
8329
|
+
|
8330
|
+
```HTML
|
8331
|
+
<input type="text" value="987" />
|
8332
|
+
```
|
8333
|
+
|
8334
|
+
### Text field
|
8335
|
+
|
8336
|
+
If no `type` option is specified, a default of type 'text' is used.
|
8337
|
+
|
8338
|
+
Many of the standard HTML attributes may be passed to this helper.
|
8339
|
+
|
8340
|
+
<table>
|
8341
|
+
<tr><td>`readonly`</td><td>`required`</td><td>`autofocus`</td></tr>
|
8342
|
+
<tr><td>`value`</td><td>`placeholder`</td><td>`disabled`</td></tr>
|
8343
|
+
<tr><td>`size`</td><td>`tabindex`</td><td>`maxlength`</td></tr>
|
8344
|
+
<tr><td>`name`</td><td>`min`</td><td>`max`</td></tr>
|
8345
|
+
<tr><td>`pattern`</td><td>`accept`</td><td>`autocomplete`</td></tr>
|
8346
|
+
<tr><td>`autosave`</td><td>`formaction`</td><td>`formenctype`</td></tr>
|
8347
|
+
<tr><td>`formmethod`</td><td>`formnovalidate`</td><td>`formtarget`</td></tr>
|
8348
|
+
<tr><td>`height`</td><td>`inputmode`</td><td>`multiple`</td></tr>
|
8349
|
+
<tr><td>`step`</td><td>`width`</td><td>`form`</td></tr>
|
8350
|
+
<tr><td>`selectionDirection`</td><td>`spellcheck`</td><td> </td></tr>
|
8351
|
+
</table>
|
8352
|
+
|
8353
|
+
|
8354
|
+
When set to a quoted string, these values will be directly applied to the HTML
|
8355
|
+
element. When left unquoted, these values will be bound to a property on the
|
8356
|
+
template's current rendering context (most typically a controller instance).
|
8357
|
+
|
8358
|
+
|
8359
|
+
A very common use of this helper is to bind the `value` of an input to an Object's attribute:
|
8360
|
+
|
8361
|
+
```handlebars
|
8362
|
+
Search:
|
8363
|
+
{{input value=searchWord}}
|
8364
|
+
```
|
8365
|
+
|
8366
|
+
In this example, the inital value in the `<input />` will be set to the value of `searchWord`.
|
8367
|
+
If the user changes the text, the value of `searchWord` will also be updated.
|
8368
|
+
|
8369
|
+
### Actions
|
8370
|
+
The helper can send multiple actions based on user events.
|
8371
|
+
The action property defines the action which is sent when
|
8372
|
+
the user presses the return key.
|
8373
|
+
|
8374
|
+
```handlebars
|
8375
|
+
{{input action="submit"}}
|
8376
|
+
```
|
8377
|
+
|
8378
|
+
The helper allows some user events to send actions.
|
8379
|
+
|
8380
|
+
* `enter`
|
8381
|
+
* `insert-newline`
|
8382
|
+
* `escape-press`
|
8383
|
+
* `focus-in`
|
8384
|
+
* `focus-out`
|
8385
|
+
* `key-press`
|
8386
|
+
* `key-up`
|
8387
|
+
|
8388
|
+
|
8389
|
+
For example, if you desire an action to be sent when the input is blurred,
|
8390
|
+
you only need to setup the action name to the event name property.
|
8391
|
+
|
8392
|
+
```handlebars
|
8393
|
+
{{input focus-in="alertMessage"}}
|
8394
|
+
```
|
8395
|
+
|
8396
|
+
See more about [Text Support Actions](/api/classes/Ember.TextField.html)
|
8397
|
+
|
8398
|
+
|
8399
|
+
### Extending `Ember.TextField`
|
8400
|
+
|
8401
|
+
Internally, `{{input type="text"}}` creates an instance of `Ember.TextField`, passing
|
8402
|
+
arguments from the helper to `Ember.TextField`'s `create` method. You can extend the
|
8403
|
+
capabilities of text inputs in your applications by reopening this class. For example,
|
8404
|
+
if you are building a Bootstrap project where `data-*` attributes are used, you
|
8405
|
+
can add one to the `TextField`'s `attributeBindings` property:
|
8406
|
+
|
8407
|
+
|
8408
|
+
```javascript
|
8409
|
+
Ember.TextField.reopen({
|
8410
|
+
attributeBindings: ['data-error']
|
8411
|
+
});
|
8412
|
+
```
|
8413
|
+
|
8414
|
+
Keep in mind when writing `Ember.TextField` subclasses that `Ember.TextField`
|
8415
|
+
itself extends `Ember.Component`. Expect isolated component semantics, not
|
8416
|
+
legacy 1.x view semantics (like `controller` being present).
|
8417
|
+
|
8418
|
+
See more about [Ember components](/api/classes/Ember.Component.html)
|
8419
|
+
|
8420
|
+
|
8421
|
+
### Checkbox
|
8422
|
+
|
8423
|
+
Checkboxes are special forms of the `{{input}}` helper. To create a `<checkbox />`:
|
8424
|
+
|
8425
|
+
```handlebars
|
8426
|
+
Emberize Everything:
|
8427
|
+
{{input type="checkbox" name="isEmberized" checked=isEmberized}}
|
8428
|
+
```
|
8429
|
+
|
8430
|
+
This will bind checked state of this checkbox to the value of `isEmberized` -- if either one changes,
|
8431
|
+
it will be reflected in the other.
|
8432
|
+
|
8433
|
+
|
8434
|
+
The following HTML attributes can be set via the helper:
|
8435
|
+
|
8436
|
+
* `checked`
|
8437
|
+
* `disabled`
|
8438
|
+
* `tabindex`
|
8439
|
+
* `indeterminate`
|
8440
|
+
* `name`
|
8441
|
+
* `autofocus`
|
8442
|
+
* `form`
|
8443
|
+
|
8444
|
+
|
8445
|
+
### Extending `Ember.Checkbox`
|
8446
|
+
|
8447
|
+
Internally, `{{input type="checkbox"}}` creates an instance of `Ember.Checkbox`, passing
|
8448
|
+
arguments from the helper to `Ember.Checkbox`'s `create` method. You can extend the
|
8449
|
+
capablilties of checkbox inputs in your applications by reopening this class. For example,
|
8450
|
+
if you wanted to add a css class to all checkboxes in your application:
|
8451
|
+
|
8452
|
+
```javascript
|
8453
|
+
Ember.Checkbox.reopen({
|
8454
|
+
classNames: ['my-app-checkbox']
|
8455
|
+
});
|
8456
|
+
```
|
8457
|
+
|
8458
|
+
|
8459
|
+
@method input
|
8460
|
+
@for Ember.Templates.helpers
|
8461
|
+
@param {Hash} options
|
8462
|
+
@public
|
8463
|
+
*/
|
8153
8464
|
exports.default = {
|
8154
8465
|
setupState: function (lastState, env, scope, params, hash) {
|
8155
8466
|
var type = env.hooks.getValue(hash.type);
|
@@ -8219,7 +8530,7 @@ enifed('ember-htmlbars/keywords/mut', ['exports', 'ember-metal/core', 'ember-met
|
|
8219
8530
|
exports.MUTABLE_REFERENCE = MUTABLE_REFERENCE;
|
8220
8531
|
/**
|
8221
8532
|
The `mut` helper lets you __clearly specify__ that a child `Component` can update the
|
8222
|
-
(mutable) value passed to it, which will __change the value of the parent
|
8533
|
+
(mutable) value passed to it, which will __change the value of the parent component__.
|
8223
8534
|
|
8224
8535
|
This is very helpful for passing mutable values to a `Component` of any size, but
|
8225
8536
|
critical to understanding the logic of a large/complex `Component`.
|
@@ -8336,7 +8647,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/core', 'ember-
|
|
8336
8647
|
|
8337
8648
|
'use strict';
|
8338
8649
|
|
8339
|
-
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0
|
8650
|
+
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0';
|
8340
8651
|
|
8341
8652
|
/**
|
8342
8653
|
The `{{outlet}}` helper lets you specify where a child routes will render in
|
@@ -8498,11 +8809,52 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/core', 'ember-
|
|
8498
8809
|
enifed('ember-htmlbars/keywords/partial', ['exports', 'ember-views/system/lookup_partial', 'htmlbars-runtime'], function (exports, _emberViewsSystemLookup_partial, _htmlbarsRuntime) {
|
8499
8810
|
/**
|
8500
8811
|
@module ember
|
8501
|
-
@submodule ember-
|
8812
|
+
@submodule ember-templates
|
8502
8813
|
*/
|
8503
8814
|
|
8504
8815
|
'use strict';
|
8505
8816
|
|
8817
|
+
/**
|
8818
|
+
The `partial` helper renders another template without
|
8819
|
+
changing the template context:
|
8820
|
+
|
8821
|
+
```handlebars
|
8822
|
+
{{foo}}
|
8823
|
+
{{partial "nav"}}
|
8824
|
+
```
|
8825
|
+
|
8826
|
+
The above example template will render a template named
|
8827
|
+
"_nav", which has the same context as the parent template
|
8828
|
+
it's rendered into, so if the "_nav" template also referenced
|
8829
|
+
`{{foo}}`, it would print the same thing as the `{{foo}}`
|
8830
|
+
in the above example.
|
8831
|
+
|
8832
|
+
If a "_nav" template isn't found, the `partial` helper will
|
8833
|
+
fall back to a template named "nav".
|
8834
|
+
|
8835
|
+
### Bound template names
|
8836
|
+
|
8837
|
+
The parameter supplied to `partial` can also be a path
|
8838
|
+
to a property containing a template name, e.g.:
|
8839
|
+
|
8840
|
+
```handlebars
|
8841
|
+
{{partial someTemplateName}}
|
8842
|
+
```
|
8843
|
+
|
8844
|
+
The above example will look up the value of `someTemplateName`
|
8845
|
+
on the template context (e.g. a controller) and use that
|
8846
|
+
value as the name of the template to render. If the resolved
|
8847
|
+
value is falsy, nothing will be rendered. If `someTemplateName`
|
8848
|
+
changes, the partial will be re-rendered using the new template
|
8849
|
+
name.
|
8850
|
+
|
8851
|
+
|
8852
|
+
@method partial
|
8853
|
+
@for Ember.Templates.helpers
|
8854
|
+
@param {String} partialName the name of the template to render minus the leading underscore
|
8855
|
+
@public
|
8856
|
+
*/
|
8857
|
+
|
8506
8858
|
exports.default = {
|
8507
8859
|
setupState: function (state, env, scope, params, hash) {
|
8508
8860
|
return { partialName: env.hooks.getValue(params[0]) };
|
@@ -8525,6 +8877,11 @@ enifed('ember-htmlbars/keywords/partial', ['exports', 'ember-views/system/lookup
|
|
8525
8877
|
};
|
8526
8878
|
});
|
8527
8879
|
enifed('ember-htmlbars/keywords/readonly', ['exports', 'ember-htmlbars/keywords/mut'], function (exports, _emberHtmlbarsKeywordsMut) {
|
8880
|
+
/**
|
8881
|
+
@module ember
|
8882
|
+
@submodule ember-templates
|
8883
|
+
*/
|
8884
|
+
|
8528
8885
|
'use strict';
|
8529
8886
|
|
8530
8887
|
exports.default = readonly;
|
@@ -8545,9 +8902,195 @@ enifed('ember-htmlbars/keywords/readonly', ['exports', 'ember-htmlbars/keywords/
|
|
8545
8902
|
enifed('ember-htmlbars/keywords/textarea', ['exports'], function (exports) {
|
8546
8903
|
/**
|
8547
8904
|
@module ember
|
8548
|
-
@submodule ember-
|
8905
|
+
@submodule ember-templates
|
8549
8906
|
*/
|
8550
8907
|
|
8908
|
+
/**
|
8909
|
+
`{{textarea}}` inserts a new instance of `<textarea>` tag into the template.
|
8910
|
+
The attributes of `{{textarea}}` match those of the native HTML tags as
|
8911
|
+
closely as possible.
|
8912
|
+
|
8913
|
+
The following HTML attributes can be set:
|
8914
|
+
|
8915
|
+
* `value`
|
8916
|
+
* `name`
|
8917
|
+
* `rows`
|
8918
|
+
* `cols`
|
8919
|
+
* `placeholder`
|
8920
|
+
* `disabled`
|
8921
|
+
* `maxlength`
|
8922
|
+
* `tabindex`
|
8923
|
+
* `selectionEnd`
|
8924
|
+
* `selectionStart`
|
8925
|
+
* `selectionDirection`
|
8926
|
+
* `wrap`
|
8927
|
+
* `readonly`
|
8928
|
+
* `autofocus`
|
8929
|
+
* `form`
|
8930
|
+
* `spellcheck`
|
8931
|
+
* `required`
|
8932
|
+
|
8933
|
+
When set to a quoted string, these value will be directly applied to the HTML
|
8934
|
+
element. When left unquoted, these values will be bound to a property on the
|
8935
|
+
template's current rendering context (most typically a controller instance).
|
8936
|
+
|
8937
|
+
Unbound:
|
8938
|
+
|
8939
|
+
```handlebars
|
8940
|
+
{{textarea value="Lots of static text that ISN'T bound"}}
|
8941
|
+
```
|
8942
|
+
|
8943
|
+
Would result in the following HTML:
|
8944
|
+
|
8945
|
+
```html
|
8946
|
+
<textarea class="ember-text-area">
|
8947
|
+
Lots of static text that ISN'T bound
|
8948
|
+
</textarea>
|
8949
|
+
```
|
8950
|
+
|
8951
|
+
Bound:
|
8952
|
+
|
8953
|
+
In the following example, the `writtenWords` property on `App.ApplicationController`
|
8954
|
+
will be updated live as the user types 'Lots of text that IS bound' into
|
8955
|
+
the text area of their browser's window.
|
8956
|
+
|
8957
|
+
```javascript
|
8958
|
+
App.ApplicationController = Ember.Controller.extend({
|
8959
|
+
writtenWords: "Lots of text that IS bound"
|
8960
|
+
});
|
8961
|
+
```
|
8962
|
+
|
8963
|
+
```handlebars
|
8964
|
+
{{textarea value=writtenWords}}
|
8965
|
+
```
|
8966
|
+
|
8967
|
+
Would result in the following HTML:
|
8968
|
+
|
8969
|
+
```html
|
8970
|
+
<textarea class="ember-text-area">
|
8971
|
+
Lots of text that IS bound
|
8972
|
+
</textarea>
|
8973
|
+
```
|
8974
|
+
|
8975
|
+
If you wanted a one way binding between the text area and a div tag
|
8976
|
+
somewhere else on your screen, you could use `Ember.computed.oneWay`:
|
8977
|
+
|
8978
|
+
```javascript
|
8979
|
+
App.ApplicationController = Ember.Controller.extend({
|
8980
|
+
writtenWords: "Lots of text that IS bound",
|
8981
|
+
outputWrittenWords: Ember.computed.oneWay("writtenWords")
|
8982
|
+
});
|
8983
|
+
```
|
8984
|
+
|
8985
|
+
```handlebars
|
8986
|
+
{{textarea value=writtenWords}}
|
8987
|
+
|
8988
|
+
<div>
|
8989
|
+
{{outputWrittenWords}}
|
8990
|
+
</div>
|
8991
|
+
```
|
8992
|
+
|
8993
|
+
Would result in the following HTML:
|
8994
|
+
|
8995
|
+
```html
|
8996
|
+
<textarea class="ember-text-area">
|
8997
|
+
Lots of text that IS bound
|
8998
|
+
</textarea>
|
8999
|
+
|
9000
|
+
<-- the following div will be updated in real time as you type -->
|
9001
|
+
|
9002
|
+
<div>
|
9003
|
+
Lots of text that IS bound
|
9004
|
+
</div>
|
9005
|
+
```
|
9006
|
+
|
9007
|
+
Finally, this example really shows the power and ease of Ember when two
|
9008
|
+
properties are bound to eachother via `Ember.computed.alias`. Type into
|
9009
|
+
either text area box and they'll both stay in sync. Note that
|
9010
|
+
`Ember.computed.alias` costs more in terms of performance, so only use it when
|
9011
|
+
your really binding in both directions:
|
9012
|
+
|
9013
|
+
```javascript
|
9014
|
+
App.ApplicationController = Ember.Controller.extend({
|
9015
|
+
writtenWords: "Lots of text that IS bound",
|
9016
|
+
twoWayWrittenWords: Ember.computed.alias("writtenWords")
|
9017
|
+
});
|
9018
|
+
```
|
9019
|
+
|
9020
|
+
```handlebars
|
9021
|
+
{{textarea value=writtenWords}}
|
9022
|
+
{{textarea value=twoWayWrittenWords}}
|
9023
|
+
```
|
9024
|
+
|
9025
|
+
```html
|
9026
|
+
<textarea id="ember1" class="ember-text-area">
|
9027
|
+
Lots of text that IS bound
|
9028
|
+
</textarea>
|
9029
|
+
|
9030
|
+
<-- both updated in real time -->
|
9031
|
+
|
9032
|
+
<textarea id="ember2" class="ember-text-area">
|
9033
|
+
Lots of text that IS bound
|
9034
|
+
</textarea>
|
9035
|
+
```
|
9036
|
+
|
9037
|
+
### Actions
|
9038
|
+
|
9039
|
+
The helper can send multiple actions based on user events.
|
9040
|
+
|
9041
|
+
The action property defines the action which is send when
|
9042
|
+
the user presses the return key.
|
9043
|
+
|
9044
|
+
```handlebars
|
9045
|
+
{{input action="submit"}}
|
9046
|
+
```
|
9047
|
+
|
9048
|
+
The helper allows some user events to send actions.
|
9049
|
+
|
9050
|
+
* `enter`
|
9051
|
+
* `insert-newline`
|
9052
|
+
* `escape-press`
|
9053
|
+
* `focus-in`
|
9054
|
+
* `focus-out`
|
9055
|
+
* `key-press`
|
9056
|
+
|
9057
|
+
For example, if you desire an action to be sent when the input is blurred,
|
9058
|
+
you only need to setup the action name to the event name property.
|
9059
|
+
|
9060
|
+
```handlebars
|
9061
|
+
{{textarea focus-in="alertMessage"}}
|
9062
|
+
```
|
9063
|
+
|
9064
|
+
See more about [Text Support Actions](/api/classes/Ember.TextArea.html)
|
9065
|
+
|
9066
|
+
### Extension
|
9067
|
+
|
9068
|
+
Internally, `{{textarea}}` creates an instance of `Ember.TextArea`, passing
|
9069
|
+
arguments from the helper to `Ember.TextArea`'s `create` method. You can
|
9070
|
+
extend the capabilities of text areas in your application by reopening this
|
9071
|
+
class. For example, if you are building a Bootstrap project where `data-*`
|
9072
|
+
attributes are used, you can globally add support for a `data-*` attribute
|
9073
|
+
on all `{{textarea}}`s' in your app by reopening `Ember.TextArea` or
|
9074
|
+
`Ember.TextSupport` and adding it to the `attributeBindings` concatenated
|
9075
|
+
property:
|
9076
|
+
|
9077
|
+
```javascript
|
9078
|
+
Ember.TextArea.reopen({
|
9079
|
+
attributeBindings: ['data-error']
|
9080
|
+
});
|
9081
|
+
```
|
9082
|
+
|
9083
|
+
Keep in mind when writing `Ember.TextArea` subclasses that `Ember.TextArea`
|
9084
|
+
itself extends `Ember.Component`. Expect isolated component semantics, not
|
9085
|
+
legacy 1.x view semantics (like `controller` being present).
|
9086
|
+
|
9087
|
+
See more about [Ember components](/api/classes/Ember.Component.html)
|
9088
|
+
|
9089
|
+
@method textarea
|
9090
|
+
@for Ember.Templates.helpers
|
9091
|
+
@param {Hash} options
|
9092
|
+
@public
|
9093
|
+
*/
|
8551
9094
|
'use strict';
|
8552
9095
|
|
8553
9096
|
exports.default = textarea;
|
@@ -8635,11 +9178,189 @@ enifed('ember-htmlbars/keywords/unbound', ['exports', 'ember-metal/core', 'ember
|
|
8635
9178
|
enifed('ember-htmlbars/keywords/view', ['exports', 'ember-views/streams/utils', 'ember-views/views/view', 'ember-htmlbars/node-managers/view-node-manager'], function (exports, _emberViewsStreamsUtils, _emberViewsViewsView, _emberHtmlbarsNodeManagersViewNodeManager) {
|
8636
9179
|
/**
|
8637
9180
|
@module ember
|
8638
|
-
@submodule ember-
|
9181
|
+
@submodule ember-templates
|
8639
9182
|
*/
|
8640
9183
|
|
8641
9184
|
'use strict';
|
8642
9185
|
|
9186
|
+
/**
|
9187
|
+
`{{view}}` inserts a new instance of an `Ember.View` into a template passing its
|
9188
|
+
options to the `Ember.View`'s `create` method and using the supplied block as
|
9189
|
+
the view's own template.
|
9190
|
+
|
9191
|
+
An empty `<body>` and the following template:
|
9192
|
+
|
9193
|
+
```handlebars
|
9194
|
+
A span:
|
9195
|
+
{{#view tagName="span"}}
|
9196
|
+
hello.
|
9197
|
+
{{/view}}
|
9198
|
+
```
|
9199
|
+
|
9200
|
+
Will result in HTML structure:
|
9201
|
+
|
9202
|
+
```html
|
9203
|
+
<body>
|
9204
|
+
<!-- Note: the handlebars template script
|
9205
|
+
also results in a rendered Ember.View
|
9206
|
+
which is the outer <div> here -->
|
9207
|
+
|
9208
|
+
<div class="ember-view">
|
9209
|
+
A span:
|
9210
|
+
<span id="ember1" class="ember-view">
|
9211
|
+
Hello.
|
9212
|
+
</span>
|
9213
|
+
</div>
|
9214
|
+
</body>
|
9215
|
+
```
|
9216
|
+
|
9217
|
+
### `parentView` setting
|
9218
|
+
|
9219
|
+
The `parentView` property of the new `Ember.View` instance created through
|
9220
|
+
`{{view}}` will be set to the `Ember.View` instance of the template where
|
9221
|
+
`{{view}}` was called.
|
9222
|
+
|
9223
|
+
```javascript
|
9224
|
+
aView = Ember.View.create({
|
9225
|
+
template: Ember.Handlebars.compile("{{#view}} my parent: {{parentView.elementId}} {{/view}}")
|
9226
|
+
});
|
9227
|
+
|
9228
|
+
aView.appendTo('body');
|
9229
|
+
```
|
9230
|
+
|
9231
|
+
Will result in HTML structure:
|
9232
|
+
|
9233
|
+
```html
|
9234
|
+
<div id="ember1" class="ember-view">
|
9235
|
+
<div id="ember2" class="ember-view">
|
9236
|
+
my parent: ember1
|
9237
|
+
</div>
|
9238
|
+
</div>
|
9239
|
+
```
|
9240
|
+
|
9241
|
+
### Setting CSS id and class attributes
|
9242
|
+
|
9243
|
+
The HTML `id` attribute can be set on the `{{view}}`'s resulting element with
|
9244
|
+
the `id` option. This option will _not_ be passed to `Ember.View.create`.
|
9245
|
+
|
9246
|
+
```handlebars
|
9247
|
+
{{#view tagName="span" id="a-custom-id"}}
|
9248
|
+
hello.
|
9249
|
+
{{/view}}
|
9250
|
+
```
|
9251
|
+
|
9252
|
+
Results in the following HTML structure:
|
9253
|
+
|
9254
|
+
```html
|
9255
|
+
<div class="ember-view">
|
9256
|
+
<span id="a-custom-id" class="ember-view">
|
9257
|
+
hello.
|
9258
|
+
</span>
|
9259
|
+
</div>
|
9260
|
+
```
|
9261
|
+
|
9262
|
+
The HTML `class` attribute can be set on the `{{view}}`'s resulting element
|
9263
|
+
with the `class` or `classNameBindings` options. The `class` option will
|
9264
|
+
directly set the CSS `class` attribute and will not be passed to
|
9265
|
+
`Ember.View.create`. `classNameBindings` will be passed to `create` and use
|
9266
|
+
`Ember.View`'s class name binding functionality:
|
9267
|
+
|
9268
|
+
```handlebars
|
9269
|
+
{{#view tagName="span" class="a-custom-class"}}
|
9270
|
+
hello.
|
9271
|
+
{{/view}}
|
9272
|
+
```
|
9273
|
+
|
9274
|
+
Results in the following HTML structure:
|
9275
|
+
|
9276
|
+
```html
|
9277
|
+
<div class="ember-view">
|
9278
|
+
<span id="ember2" class="ember-view a-custom-class">
|
9279
|
+
hello.
|
9280
|
+
</span>
|
9281
|
+
</div>
|
9282
|
+
```
|
9283
|
+
|
9284
|
+
### Supplying a different view class
|
9285
|
+
|
9286
|
+
`{{view}}` can take an optional first argument before its supplied options to
|
9287
|
+
specify a path to a custom view class.
|
9288
|
+
|
9289
|
+
```handlebars
|
9290
|
+
{{#view "custom"}}{{! will look up App.CustomView }}
|
9291
|
+
hello.
|
9292
|
+
{{/view}}
|
9293
|
+
```
|
9294
|
+
|
9295
|
+
The first argument can also be a relative path accessible from the current
|
9296
|
+
context.
|
9297
|
+
|
9298
|
+
```javascript
|
9299
|
+
MyApp = Ember.Application.create({});
|
9300
|
+
MyApp.OuterView = Ember.View.extend({
|
9301
|
+
innerViewClass: Ember.View.extend({
|
9302
|
+
classNames: ['a-custom-view-class-as-property']
|
9303
|
+
}),
|
9304
|
+
template: Ember.Handlebars.compile('{{#view view.innerViewClass}} hi {{/view}}')
|
9305
|
+
});
|
9306
|
+
|
9307
|
+
MyApp.OuterView.create().appendTo('body');
|
9308
|
+
```
|
9309
|
+
|
9310
|
+
Will result in the following HTML:
|
9311
|
+
|
9312
|
+
```html
|
9313
|
+
<div id="ember1" class="ember-view">
|
9314
|
+
<div id="ember2" class="ember-view a-custom-view-class-as-property">
|
9315
|
+
hi
|
9316
|
+
</div>
|
9317
|
+
</div>
|
9318
|
+
```
|
9319
|
+
|
9320
|
+
### Blockless use
|
9321
|
+
|
9322
|
+
If you supply a custom `Ember.View` subclass that specifies its own template
|
9323
|
+
or provide a `templateName` option to `{{view}}` it can be used without
|
9324
|
+
supplying a block. Attempts to use both a `templateName` option and supply a
|
9325
|
+
block will throw an error.
|
9326
|
+
|
9327
|
+
```javascript
|
9328
|
+
var App = Ember.Application.create();
|
9329
|
+
App.WithTemplateDefinedView = Ember.View.extend({
|
9330
|
+
templateName: 'defined-template'
|
9331
|
+
});
|
9332
|
+
```
|
9333
|
+
|
9334
|
+
```handlebars
|
9335
|
+
{{! application.hbs }}
|
9336
|
+
{{view 'with-template-defined'}}
|
9337
|
+
```
|
9338
|
+
|
9339
|
+
```handlebars
|
9340
|
+
{{! defined-template.hbs }}
|
9341
|
+
Some content for the defined template view.
|
9342
|
+
```
|
9343
|
+
|
9344
|
+
### `viewName` property
|
9345
|
+
|
9346
|
+
You can supply a `viewName` option to `{{view}}`. The `Ember.View` instance
|
9347
|
+
will be referenced as a property of its parent view by this name.
|
9348
|
+
|
9349
|
+
```javascript
|
9350
|
+
aView = Ember.View.create({
|
9351
|
+
template: Ember.Handlebars.compile('{{#view viewName="aChildByName"}} hi {{/view}}')
|
9352
|
+
});
|
9353
|
+
|
9354
|
+
aView.appendTo('body');
|
9355
|
+
aView.get('aChildByName') // the instance of Ember.View created by {{view}} helper
|
9356
|
+
```
|
9357
|
+
|
9358
|
+
@method view
|
9359
|
+
@for Ember.Templates.helpers
|
9360
|
+
@public
|
9361
|
+
@deprecated
|
9362
|
+
*/
|
9363
|
+
|
8643
9364
|
exports.default = {
|
8644
9365
|
setupState: function (state, env, scope, params, hash) {
|
8645
9366
|
var read = env.hooks.getValue;
|
@@ -8744,6 +9465,11 @@ enifed('ember-htmlbars/keywords/view', ['exports', 'ember-views/streams/utils',
|
|
8744
9465
|
}
|
8745
9466
|
});
|
8746
9467
|
enifed('ember-htmlbars/keywords/with', ['exports', 'ember-metal/core', 'htmlbars-runtime'], function (exports, _emberMetalCore, _htmlbarsRuntime) {
|
9468
|
+
/**
|
9469
|
+
@module ember
|
9470
|
+
@submodule ember-templates
|
9471
|
+
*/
|
9472
|
+
|
8747
9473
|
'use strict';
|
8748
9474
|
|
8749
9475
|
exports.default = {
|
@@ -12109,7 +12835,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
|
|
12109
12835
|
}
|
12110
12836
|
|
12111
12837
|
function isVolatile(obj) {
|
12112
|
-
return !(isObject(obj) && obj.isDescriptor && obj.
|
12838
|
+
return !(isObject(obj) && obj.isDescriptor && !obj._volatile);
|
12113
12839
|
}
|
12114
12840
|
|
12115
12841
|
function Chains() {}
|
@@ -12628,7 +13354,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12628
13354
|
this._dependentKeys = undefined;
|
12629
13355
|
this._suspended = undefined;
|
12630
13356
|
this._meta = undefined;
|
12631
|
-
this.
|
13357
|
+
this._volatile = false;
|
12632
13358
|
this._dependentKeys = opts && opts.dependentKeys;
|
12633
13359
|
this._readOnly = false;
|
12634
13360
|
}
|
@@ -12641,6 +13367,12 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12641
13367
|
Call on a computed property to set it into non-cached mode. When in this
|
12642
13368
|
mode the computed property will not automatically cache the return value.
|
12643
13369
|
|
13370
|
+
It also does not automatically fire any change events. You must manually notify
|
13371
|
+
any changes if you want to observe this property.
|
13372
|
+
|
13373
|
+
Dependency keys have no effect on volatile properties as they are for cache
|
13374
|
+
invalidation and notification when cached value is invalidated.
|
13375
|
+
|
12644
13376
|
```javascript
|
12645
13377
|
var outsideService = Ember.Object.extend({
|
12646
13378
|
value: function() {
|
@@ -12655,7 +13387,7 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12655
13387
|
@public
|
12656
13388
|
*/
|
12657
13389
|
ComputedPropertyPrototype.volatile = function () {
|
12658
|
-
this.
|
13390
|
+
this._volatile = true;
|
12659
13391
|
return this;
|
12660
13392
|
};
|
12661
13393
|
|
@@ -12766,16 +13498,24 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12766
13498
|
}
|
12767
13499
|
};
|
12768
13500
|
|
12769
|
-
|
13501
|
+
// invalidate cache when CP key changes
|
12770
13502
|
ComputedPropertyPrototype.didChange = function (obj, keyName) {
|
12771
13503
|
// _suspended is set via a CP.set to ensure we don't clear
|
12772
13504
|
// the cached value set by the setter
|
12773
|
-
if (this.
|
12774
|
-
|
12775
|
-
|
12776
|
-
|
12777
|
-
|
12778
|
-
|
13505
|
+
if (this._volatile || this._suspended === obj) {
|
13506
|
+
return;
|
13507
|
+
}
|
13508
|
+
|
13509
|
+
// don't create objects just to invalidate
|
13510
|
+
var meta = obj.__ember_meta__;
|
13511
|
+
if (!meta || meta.source !== obj) {
|
13512
|
+
return;
|
13513
|
+
}
|
13514
|
+
|
13515
|
+
var cache = meta.cache;
|
13516
|
+
if (cache && cache[keyName] !== undefined) {
|
13517
|
+
cache[keyName] = undefined;
|
13518
|
+
_emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
|
12779
13519
|
}
|
12780
13520
|
};
|
12781
13521
|
|
@@ -12807,37 +13547,36 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12807
13547
|
@public
|
12808
13548
|
*/
|
12809
13549
|
ComputedPropertyPrototype.get = function (obj, keyName) {
|
12810
|
-
|
12811
|
-
|
12812
|
-
|
12813
|
-
cache = meta.cache;
|
12814
|
-
|
12815
|
-
var result = cache && cache[keyName];
|
13550
|
+
if (this._volatile) {
|
13551
|
+
return this._getter.call(obj, keyName);
|
13552
|
+
}
|
12816
13553
|
|
12817
|
-
|
12818
|
-
|
12819
|
-
|
12820
|
-
|
12821
|
-
|
13554
|
+
var meta = metaFor(obj);
|
13555
|
+
var cache = meta.cache;
|
13556
|
+
if (!cache) {
|
13557
|
+
cache = meta.cache = {};
|
13558
|
+
}
|
12822
13559
|
|
12823
|
-
|
12824
|
-
|
12825
|
-
|
12826
|
-
|
12827
|
-
|
12828
|
-
|
12829
|
-
cache[keyName] = UNDEFINED;
|
12830
|
-
} else {
|
12831
|
-
cache[keyName] = ret;
|
12832
|
-
}
|
13560
|
+
var result = cache[keyName];
|
13561
|
+
if (result === UNDEFINED) {
|
13562
|
+
return undefined;
|
13563
|
+
} else if (result !== undefined) {
|
13564
|
+
return result;
|
13565
|
+
}
|
12833
13566
|
|
12834
|
-
|
12835
|
-
|
12836
|
-
|
12837
|
-
_emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
|
13567
|
+
var ret = this._getter.call(obj, keyName);
|
13568
|
+
if (ret === undefined) {
|
13569
|
+
cache[keyName] = UNDEFINED;
|
12838
13570
|
} else {
|
12839
|
-
|
13571
|
+
cache[keyName] = ret;
|
12840
13572
|
}
|
13573
|
+
|
13574
|
+
var chainWatchers = meta.chainWatchers;
|
13575
|
+
if (chainWatchers) {
|
13576
|
+
chainWatchers.revalidate(keyName);
|
13577
|
+
}
|
13578
|
+
_emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
|
13579
|
+
|
12841
13580
|
return ret;
|
12842
13581
|
};
|
12843
13582
|
|
@@ -12890,51 +13629,72 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12890
13629
|
@return {Object} The return value of the function backing the CP.
|
12891
13630
|
@public
|
12892
13631
|
*/
|
12893
|
-
ComputedPropertyPrototype.set = function
|
12894
|
-
|
13632
|
+
ComputedPropertyPrototype.set = function computedPropertySetEntry(obj, keyName, value) {
|
13633
|
+
if (this._readOnly) {
|
13634
|
+
this._throwReadOnlyError(obj, keyName);
|
13635
|
+
}
|
12895
13636
|
|
12896
|
-
this.
|
13637
|
+
if (!this._setter) {
|
13638
|
+
return this.clobberSet(obj, keyName, value);
|
13639
|
+
}
|
13640
|
+
|
13641
|
+
if (this._volatile) {
|
13642
|
+
return this.volatileSet(obj, keyName, value);
|
13643
|
+
}
|
13644
|
+
|
13645
|
+
return this.setWithSuspend(obj, keyName, value);
|
13646
|
+
};
|
13647
|
+
|
13648
|
+
ComputedPropertyPrototype._throwReadOnlyError = function computedPropertyThrowReadOnlyError(obj, keyName) {
|
13649
|
+
throw new _emberMetalError.default('Cannot set read-only property "' + keyName + '" on object: ' + _emberMetalUtils.inspect(obj));
|
13650
|
+
};
|
13651
|
+
|
13652
|
+
ComputedPropertyPrototype.clobberSet = function computedPropertyClobberSet(obj, keyName, value) {
|
13653
|
+
var cachedValue = cacheFor(obj, keyName);
|
13654
|
+
_emberMetalProperties.defineProperty(obj, keyName, null, cachedValue);
|
13655
|
+
_emberMetalProperty_set.set(obj, keyName, value);
|
13656
|
+
return value;
|
13657
|
+
};
|
13658
|
+
|
13659
|
+
ComputedPropertyPrototype.volatileSet = function computedPropertyVolatileSet(obj, keyName, value) {
|
13660
|
+
return this._setter.call(obj, keyName, value);
|
13661
|
+
};
|
12897
13662
|
|
13663
|
+
ComputedPropertyPrototype.setWithSuspend = function computedPropertySetWithSuspend(obj, keyName, value) {
|
13664
|
+
var oldSuspended = this._suspended;
|
13665
|
+
this._suspended = obj;
|
12898
13666
|
try {
|
12899
|
-
this._set(obj, keyName, value);
|
13667
|
+
return this._set(obj, keyName, value);
|
12900
13668
|
} finally {
|
12901
13669
|
this._suspended = oldSuspended;
|
12902
13670
|
}
|
12903
13671
|
};
|
12904
13672
|
|
12905
13673
|
ComputedPropertyPrototype._set = function computedPropertySet(obj, keyName, value) {
|
12906
|
-
|
12907
|
-
var
|
12908
|
-
|
13674
|
+
// cache requires own meta
|
13675
|
+
var meta = metaFor(obj);
|
13676
|
+
// either there is a writable cache or we need one to update
|
12909
13677
|
var cache = meta.cache;
|
12910
|
-
|
12911
|
-
|
12912
|
-
var cachedValue, ret;
|
12913
|
-
|
12914
|
-
if (this._readOnly) {
|
12915
|
-
throw new _emberMetalError.default('Cannot set read-only property "' + keyName + '" on object: ' + _emberMetalUtils.inspect(obj));
|
13678
|
+
if (!cache) {
|
13679
|
+
cache = meta.cache = {};
|
12916
13680
|
}
|
12917
|
-
|
12918
|
-
|
13681
|
+
var hadCachedValue = false;
|
13682
|
+
var cachedValue = undefined;
|
13683
|
+
if (cache[keyName] !== undefined) {
|
12919
13684
|
if (cache[keyName] !== UNDEFINED) {
|
12920
13685
|
cachedValue = cache[keyName];
|
12921
13686
|
}
|
12922
|
-
|
12923
13687
|
hadCachedValue = true;
|
12924
13688
|
}
|
12925
13689
|
|
12926
|
-
|
12927
|
-
_emberMetalProperties.defineProperty(obj, keyName, null, cachedValue);
|
12928
|
-
return _emberMetalProperty_set.set(obj, keyName, value);
|
12929
|
-
} else {
|
12930
|
-
ret = setter.call(obj, keyName, value, cachedValue);
|
12931
|
-
}
|
13690
|
+
var ret = this._setter.call(obj, keyName, value, cachedValue);
|
12932
13691
|
|
13692
|
+
// allows setter to return the same value that is cached already
|
12933
13693
|
if (hadCachedValue && cachedValue === ret) {
|
12934
|
-
return;
|
13694
|
+
return ret;
|
12935
13695
|
}
|
12936
13696
|
|
12937
|
-
var watched = meta.watching[keyName];
|
13697
|
+
var watched = meta.watching && meta.watching[keyName];
|
12938
13698
|
if (watched) {
|
12939
13699
|
_emberMetalProperty_events.propertyWillChange(obj, keyName);
|
12940
13700
|
}
|
@@ -12943,18 +13703,14 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12943
13703
|
cache[keyName] = undefined;
|
12944
13704
|
}
|
12945
13705
|
|
12946
|
-
if (
|
12947
|
-
|
12948
|
-
|
12949
|
-
|
12950
|
-
|
12951
|
-
|
12952
|
-
|
12953
|
-
|
12954
|
-
cache[keyName] = UNDEFINED;
|
12955
|
-
} else {
|
12956
|
-
cache[keyName] = ret;
|
12957
|
-
}
|
13706
|
+
if (!hadCachedValue) {
|
13707
|
+
_emberMetalDependent_keys.addDependentKeys(this, obj, keyName, meta);
|
13708
|
+
}
|
13709
|
+
|
13710
|
+
if (ret === undefined) {
|
13711
|
+
cache[keyName] = UNDEFINED;
|
13712
|
+
} else {
|
13713
|
+
cache[keyName] = ret;
|
12958
13714
|
}
|
12959
13715
|
|
12960
13716
|
if (watched) {
|
@@ -12966,19 +13722,15 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
12966
13722
|
|
12967
13723
|
/* called before property is overridden */
|
12968
13724
|
ComputedPropertyPrototype.teardown = function (obj, keyName) {
|
13725
|
+
if (this._volatile) {
|
13726
|
+
return;
|
13727
|
+
}
|
12969
13728
|
var meta = metaFor(obj);
|
12970
|
-
|
12971
|
-
if (
|
12972
|
-
|
12973
|
-
|
12974
|
-
}
|
12975
|
-
|
12976
|
-
if (this._cacheable) {
|
12977
|
-
delete meta.cache[keyName];
|
12978
|
-
}
|
13729
|
+
var cache = meta.cache;
|
13730
|
+
if (cache && cache[keyName] !== undefined) {
|
13731
|
+
_emberMetalDependent_keys.removeDependentKeys(this, obj, keyName, meta);
|
13732
|
+
cache[keyName] = undefined;
|
12979
13733
|
}
|
12980
|
-
|
12981
|
-
return null; // no value to restore
|
12982
13734
|
};
|
12983
13735
|
|
12984
13736
|
/**
|
@@ -13068,8 +13820,8 @@ enifed('ember-metal/computed', ['exports', 'ember-metal/core', 'ember-metal/prop
|
|
13068
13820
|
@public
|
13069
13821
|
*/
|
13070
13822
|
function cacheFor(obj, key) {
|
13071
|
-
var meta = obj
|
13072
|
-
var cache = meta && meta.cache;
|
13823
|
+
var meta = obj.__ember_meta__;
|
13824
|
+
var cache = meta && meta.source === obj && meta.cache;
|
13073
13825
|
var ret = cache && cache[key];
|
13074
13826
|
|
13075
13827
|
if (ret === UNDEFINED) {
|
@@ -13819,7 +14571,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
13819
14571
|
|
13820
14572
|
@class Ember
|
13821
14573
|
@static
|
13822
|
-
@version 2.0.0
|
14574
|
+
@version 2.0.0
|
13823
14575
|
@public
|
13824
14576
|
*/
|
13825
14577
|
|
@@ -13853,11 +14605,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
13853
14605
|
|
13854
14606
|
@property VERSION
|
13855
14607
|
@type String
|
13856
|
-
@default '2.0.0
|
14608
|
+
@default '2.0.0'
|
13857
14609
|
@static
|
13858
14610
|
@public
|
13859
14611
|
*/
|
13860
|
-
Ember.VERSION = '2.0.0
|
14612
|
+
Ember.VERSION = '2.0.0';
|
13861
14613
|
|
13862
14614
|
/**
|
13863
14615
|
The hash of environment variables used to control various configuration
|
@@ -20145,6 +20897,9 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/features'], function (expor
|
|
20145
20897
|
*/
|
20146
20898
|
|
20147
20899
|
function guidFor(obj) {
|
20900
|
+
if (obj && obj[GUID_KEY]) {
|
20901
|
+
return obj[GUID_KEY];
|
20902
|
+
}
|
20148
20903
|
|
20149
20904
|
// special cases where we don't want to add a key to object
|
20150
20905
|
if (obj === undefined) {
|
@@ -20182,10 +20937,6 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/features'], function (expor
|
|
20182
20937
|
return obj ? '(true)' : '(false)';
|
20183
20938
|
|
20184
20939
|
default:
|
20185
|
-
if (obj[GUID_KEY]) {
|
20186
|
-
return obj[GUID_KEY];
|
20187
|
-
}
|
20188
|
-
|
20189
20940
|
if (obj === Object) {
|
20190
20941
|
return '(Object)';
|
20191
20942
|
}
|
@@ -21494,6 +22245,35 @@ enifed('ember-routing-htmlbars/keywords/link-to', ['exports', 'ember-metal/strea
|
|
21494
22245
|
To override this option for your entire application, see
|
21495
22246
|
"Overriding Application-wide Defaults".
|
21496
22247
|
|
22248
|
+
### Keeping a link active for other routes
|
22249
|
+
|
22250
|
+
If you need a link to be 'active' even when it doesn't match
|
22251
|
+
the current route, you can use the the `current-when`
|
22252
|
+
argument.
|
22253
|
+
|
22254
|
+
```handlebars
|
22255
|
+
{{#link-to 'photoGallery' current-when='photos'}}
|
22256
|
+
Photo Gallery
|
22257
|
+
{{/link-to}}
|
22258
|
+
```
|
22259
|
+
|
22260
|
+
This may be helpful for keeping links active for:
|
22261
|
+
|
22262
|
+
* non-nested routes that are logically related
|
22263
|
+
* some secondary menu approaches
|
22264
|
+
* 'top navigation' with 'sub navigation' scenarios
|
22265
|
+
|
22266
|
+
A link will be active if `current-when` is `true` or the current
|
22267
|
+
route is the route this link would transition to.
|
22268
|
+
|
22269
|
+
To match multiple routes 'space-separate' the routes:
|
22270
|
+
|
22271
|
+
```handlebars
|
22272
|
+
{{#link-to 'gallery' current-when='photos drawings paintings'}}
|
22273
|
+
Art Gallery
|
22274
|
+
{{/link-to}}
|
22275
|
+
```
|
22276
|
+
|
21497
22277
|
### Supplying a model
|
21498
22278
|
An optional model argument can be used for routes whose
|
21499
22279
|
paths contain dynamic segments. This argument will become
|
@@ -21896,7 +22676,7 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
|
|
21896
22676
|
|
21897
22677
|
'use strict';
|
21898
22678
|
|
21899
|
-
_emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.0
|
22679
|
+
_emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.0';
|
21900
22680
|
|
21901
22681
|
var linkComponentClassNameBindings = ['active', 'loading', 'disabled'];
|
21902
22682
|
|
@@ -22191,7 +22971,7 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
|
|
22191
22971
|
}
|
22192
22972
|
|
22193
22973
|
var routing = _emberMetalProperty_get.get(this, '_routing');
|
22194
|
-
var targetRouteName = _emberMetalProperty_get.get(this, 'targetRouteName');
|
22974
|
+
var targetRouteName = this._handleOnlyQueryParamsSupplied(_emberMetalProperty_get.get(this, 'targetRouteName'));
|
22195
22975
|
var models = _emberMetalProperty_get.get(this, 'models');
|
22196
22976
|
var queryParamValues = _emberMetalProperty_get.get(this, 'queryParams.values');
|
22197
22977
|
var shouldReplace = _emberMetalProperty_get.get(this, 'attrs.replace');
|
@@ -22398,7 +23178,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
|
|
22398
23178
|
|
22399
23179
|
'use strict';
|
22400
23180
|
|
22401
|
-
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0
|
23181
|
+
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.0';
|
22402
23182
|
|
22403
23183
|
var CoreOutletView = _emberViewsViewsView.default.extend({
|
22404
23184
|
defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
|
@@ -24669,7 +25449,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
24669
25449
|
@property controller
|
24670
25450
|
@type Ember.Controller
|
24671
25451
|
@since 1.6.0
|
24672
|
-
@
|
25452
|
+
@public
|
24673
25453
|
*/
|
24674
25454
|
|
24675
25455
|
actions: {
|
@@ -27313,11 +28093,13 @@ enifed('ember-routing/utils', ['exports', 'ember-metal/merge', 'ember-metal/prop
|
|
27313
28093
|
var part = parts[i];
|
27314
28094
|
var cacheValuePrefix = _calculateCacheValuePrefix(prefix, part);
|
27315
28095
|
var value;
|
27316
|
-
if (
|
27317
|
-
|
27318
|
-
|
27319
|
-
|
27320
|
-
|
28096
|
+
if (values) {
|
28097
|
+
if (cacheValuePrefix && cacheValuePrefix in values) {
|
28098
|
+
var partRemovedPrefix = part.indexOf(cacheValuePrefix) === 0 ? part.substr(cacheValuePrefix.length + 1) : part;
|
28099
|
+
value = _emberMetalProperty_get.get(values[cacheValuePrefix], partRemovedPrefix);
|
28100
|
+
} else {
|
28101
|
+
value = _emberMetalProperty_get.get(values, part);
|
28102
|
+
}
|
27321
28103
|
}
|
27322
28104
|
suffixes += '::' + part + ':' + value;
|
27323
28105
|
}
|
@@ -34689,7 +35471,7 @@ enifed('ember-runtime/utils', ['exports', 'ember-runtime/mixins/array', 'ember-r
|
|
34689
35471
|
return ret;
|
34690
35472
|
}
|
34691
35473
|
});
|
34692
|
-
enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/
|
35474
|
+
enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-compiler/system/precompile', 'ember-template-compiler/system/compile', 'ember-template-compiler/system/template', 'ember-template-compiler/plugins', 'ember-template-compiler/plugins/transform-old-binding-syntax', 'ember-template-compiler/plugins/transform-old-class-binding-syntax', 'ember-template-compiler/plugins/transform-item-class', 'ember-template-compiler/plugins/transform-component-attrs-into-mut', 'ember-template-compiler/plugins/transform-component-curly-to-readonly', 'ember-template-compiler/plugins/transform-angle-bracket-components', 'ember-template-compiler/plugins/transform-input-on-to-onEvent', 'ember-template-compiler/plugins/transform-each-into-collection', 'ember-template-compiler/plugins/assert-no-view-and-controller-paths', 'ember-template-compiler/plugins/assert-no-view-helper', 'ember-template-compiler/compat'], function (exports, _emberMetal, _emberTemplateCompilerSystemPrecompile, _emberTemplateCompilerSystemCompile, _emberTemplateCompilerSystemTemplate, _emberTemplateCompilerPlugins, _emberTemplateCompilerPluginsTransformOldBindingSyntax, _emberTemplateCompilerPluginsTransformOldClassBindingSyntax, _emberTemplateCompilerPluginsTransformItemClass, _emberTemplateCompilerPluginsTransformComponentAttrsIntoMut, _emberTemplateCompilerPluginsTransformComponentCurlyToReadonly, _emberTemplateCompilerPluginsTransformAngleBracketComponents, _emberTemplateCompilerPluginsTransformInputOnToOnEvent, _emberTemplateCompilerPluginsTransformEachIntoCollection, _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths, _emberTemplateCompilerPluginsAssertNoViewHelper, _emberTemplateCompilerCompat) {
|
34693
35475
|
'use strict';
|
34694
35476
|
|
34695
35477
|
_emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformOldBindingSyntax.default);
|
@@ -34702,8 +35484,9 @@ enifed('ember-template-compiler', ['exports', 'ember-metal', 'ember-template-com
|
|
34702
35484
|
|
34703
35485
|
if (_emberMetal.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
|
34704
35486
|
_emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsTransformEachIntoCollection.default);
|
34705
|
-
|
34706
|
-
_emberTemplateCompilerPlugins.registerPlugin('ast',
|
35487
|
+
} else {
|
35488
|
+
_emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewAndControllerPaths.default);
|
35489
|
+
_emberTemplateCompilerPlugins.registerPlugin('ast', _emberTemplateCompilerPluginsAssertNoViewHelper.default);
|
34707
35490
|
}
|
34708
35491
|
|
34709
35492
|
exports._Ember = _emberMetal.default;
|
@@ -34784,10 +35567,10 @@ enifed('ember-template-compiler/plugins', ['exports'], function (exports) {
|
|
34784
35567
|
|
34785
35568
|
exports.default = plugins;
|
34786
35569
|
});
|
34787
|
-
enifed('ember-template-compiler/plugins/
|
35570
|
+
enifed('ember-template-compiler/plugins/assert-no-view-and-controller-paths', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
|
34788
35571
|
'use strict';
|
34789
35572
|
|
34790
|
-
function
|
35573
|
+
function AssertNoViewAndControllerPaths(options) {
|
34791
35574
|
// set later within HTMLBars to the syntax package
|
34792
35575
|
this.syntax = null;
|
34793
35576
|
this.options = options || {};
|
@@ -34798,7 +35581,7 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
|
|
34798
35581
|
@method transform
|
34799
35582
|
@param {AST} ast The AST to be transformed.
|
34800
35583
|
*/
|
34801
|
-
|
35584
|
+
AssertNoViewAndControllerPaths.prototype.transform = function AssertNoViewAndControllerPaths_transform(ast) {
|
34802
35585
|
var walker = new this.syntax.Walker();
|
34803
35586
|
var moduleName = this.options && this.options.moduleName;
|
34804
35587
|
|
@@ -34807,15 +35590,15 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
|
|
34807
35590
|
return;
|
34808
35591
|
}
|
34809
35592
|
|
34810
|
-
|
34811
|
-
|
34812
|
-
|
35593
|
+
assertPath(moduleName, node, node.path);
|
35594
|
+
assertPaths(moduleName, node, node.params);
|
35595
|
+
assertHash(moduleName, node, node.hash);
|
34813
35596
|
});
|
34814
35597
|
|
34815
35598
|
return ast;
|
34816
35599
|
};
|
34817
35600
|
|
34818
|
-
function
|
35601
|
+
function assertHash(moduleName, node, hash) {
|
34819
35602
|
if (!hash || !hash.pairs) {
|
34820
35603
|
return;
|
34821
35604
|
}
|
@@ -34823,46 +35606,49 @@ enifed('ember-template-compiler/plugins/deprecate-view-and-controller-paths', ['
|
|
34823
35606
|
for (i = 0, l = hash.pairs.length; i < l; i++) {
|
34824
35607
|
pair = hash.pairs[i];
|
34825
35608
|
paths = pair.value.params;
|
34826
|
-
|
35609
|
+
assertPaths(moduleName, pair, paths);
|
34827
35610
|
}
|
34828
35611
|
}
|
34829
35612
|
|
34830
|
-
function
|
35613
|
+
function assertPaths(moduleName, node, paths) {
|
34831
35614
|
if (!paths) {
|
34832
35615
|
return;
|
34833
35616
|
}
|
34834
35617
|
var i, l, path;
|
34835
35618
|
for (i = 0, l = paths.length; i < l; i++) {
|
34836
35619
|
path = paths[i];
|
34837
|
-
|
35620
|
+
assertPath(moduleName, node, path);
|
34838
35621
|
}
|
34839
35622
|
}
|
34840
35623
|
|
34841
|
-
function
|
34842
|
-
_emberMetalCore.default.
|
34843
|
-
var
|
35624
|
+
function assertPath(moduleName, node, path) {
|
35625
|
+
_emberMetalCore.default.assert('Using `{{' + (path && path.type === 'PathExpression' && path.parts[0]) + '}}` or any path based on it ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc) + 'has been removed in Ember 2.0', function assertPath_test() {
|
35626
|
+
var noAssertion = true;
|
34844
35627
|
|
34845
35628
|
var viewKeyword = path && path.type === 'PathExpression' && path.parts && path.parts[0];
|
34846
35629
|
if (viewKeyword === 'view') {
|
34847
|
-
|
35630
|
+
noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT;
|
34848
35631
|
} else if (viewKeyword === 'controller') {
|
34849
|
-
|
35632
|
+
noAssertion = _emberMetalCore.default.ENV._ENABLE_LEGACY_CONTROLLER_SUPPORT;
|
34850
35633
|
}
|
34851
35634
|
|
34852
|
-
return
|
34853
|
-
}, {
|
35635
|
+
return noAssertion;
|
35636
|
+
}, {
|
35637
|
+
id: path.parts && path.parts[0] === 'view' ? 'view.keyword.view' : 'view.keyword.controller',
|
35638
|
+
until: '2.0.0'
|
35639
|
+
});
|
34854
35640
|
}
|
34855
35641
|
|
34856
35642
|
function validate(node) {
|
34857
35643
|
return node.type === 'MustacheStatement' || node.type === 'BlockStatement';
|
34858
35644
|
}
|
34859
35645
|
|
34860
|
-
exports.default =
|
35646
|
+
exports.default = AssertNoViewAndControllerPaths;
|
34861
35647
|
});
|
34862
|
-
enifed('ember-template-compiler/plugins/
|
35648
|
+
enifed('ember-template-compiler/plugins/assert-no-view-helper', ['exports', 'ember-metal/core', 'ember-template-compiler/system/calculate-location-display'], function (exports, _emberMetalCore, _emberTemplateCompilerSystemCalculateLocationDisplay) {
|
34863
35649
|
'use strict';
|
34864
35650
|
|
34865
|
-
function
|
35651
|
+
function AssertNoViewHelper(options) {
|
34866
35652
|
// set later within HTMLBars to the syntax package
|
34867
35653
|
this.syntax = null;
|
34868
35654
|
this.options = options || {};
|
@@ -34873,7 +35659,7 @@ enifed('ember-template-compiler/plugins/deprecate-view-helper', ['exports', 'emb
|
|
34873
35659
|
@method transform
|
34874
35660
|
@param {AST} ast The AST to be transformed.
|
34875
35661
|
*/
|
34876
|
-
|
35662
|
+
AssertNoViewHelper.prototype.transform = function AssertNoViewHelper_transform(ast) {
|
34877
35663
|
if (!!_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
|
34878
35664
|
return ast;
|
34879
35665
|
}
|
@@ -34885,33 +35671,27 @@ enifed('ember-template-compiler/plugins/deprecate-view-helper', ['exports', 'emb
|
|
34885
35671
|
return;
|
34886
35672
|
}
|
34887
35673
|
|
34888
|
-
|
35674
|
+
assertHelper(moduleName, node);
|
34889
35675
|
});
|
34890
35676
|
|
34891
35677
|
return ast;
|
34892
35678
|
};
|
34893
35679
|
|
34894
|
-
function
|
35680
|
+
function assertHelper(moduleName, node) {
|
34895
35681
|
var paramValue = node.params.length && node.params[0].value;
|
34896
35682
|
|
34897
35683
|
if (!paramValue) {
|
34898
35684
|
return;
|
34899
|
-
} else if (paramValue === 'select') {
|
34900
|
-
deprecateSelect(moduleName, node);
|
34901
35685
|
} else {
|
34902
|
-
_emberMetalCore.default.
|
35686
|
+
_emberMetalCore.default.assert('Using the `{{view "string"}}` helper is removed in 2.0. ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc), _emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT, { id: 'view.helper', until: '2.0.0' });
|
34903
35687
|
}
|
34904
35688
|
}
|
34905
35689
|
|
34906
|
-
function deprecateSelect(moduleName, node) {
|
34907
|
-
_emberMetalCore.default.deprecate('Using `{{view "select"}}` is deprecated. ' + _emberTemplateCompilerSystemCalculateLocationDisplay.default(moduleName, node.loc), false, { url: 'http://emberjs.com/deprecations/v1.x#toc_ember-select', id: 'view.helper.select' });
|
34908
|
-
}
|
34909
|
-
|
34910
35690
|
function validate(node) {
|
34911
35691
|
return (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && node.path.parts[0] === 'view';
|
34912
35692
|
}
|
34913
35693
|
|
34914
|
-
exports.default =
|
35694
|
+
exports.default = AssertNoViewHelper;
|
34915
35695
|
});
|
34916
35696
|
enifed('ember-template-compiler/plugins/transform-angle-bracket-components', ['exports'], function (exports) {
|
34917
35697
|
'use strict';
|
@@ -35660,7 +36440,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
|
|
35660
36440
|
|
35661
36441
|
options.buildMeta = function buildMeta(program) {
|
35662
36442
|
return {
|
35663
|
-
revision: 'Ember@2.0.0
|
36443
|
+
revision: 'Ember@2.0.0',
|
35664
36444
|
loc: program.loc,
|
35665
36445
|
moduleName: options.moduleName
|
35666
36446
|
};
|
@@ -37014,7 +37794,7 @@ enifed('ember-views', ['exports', 'ember-runtime', 'ember-views/system/jquery',
|
|
37014
37794
|
_emberRuntime.default.TextArea = _emberViewsViewsText_area.default;
|
37015
37795
|
|
37016
37796
|
if (_emberRuntime.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
|
37017
|
-
_emberRuntime.default.Select = _emberViewsViewsSelect.
|
37797
|
+
_emberRuntime.default.Select = _emberViewsViewsSelect.Select;
|
37018
37798
|
}
|
37019
37799
|
|
37020
37800
|
_emberRuntime.default.SelectOption = _emberViewsViewsSelect.SelectOption;
|
@@ -37082,13 +37862,16 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
|
|
37082
37862
|
|
37083
37863
|
_propagateAttrsToThis: function () {
|
37084
37864
|
var attrs = this.attrs;
|
37085
|
-
|
37865
|
+
|
37086
37866
|
for (var prop in attrs) {
|
37087
|
-
if (prop !== 'attrs'
|
37088
|
-
|
37867
|
+
if (prop !== 'attrs' &&
|
37868
|
+
// These list of properties are concatenated and merged properties of
|
37869
|
+
// Ember.View / Ember.Component. Setting them here results in them being
|
37870
|
+
// completely stomped and not handled properly, BAIL OUT!
|
37871
|
+
prop !== 'actions' && prop !== 'classNames' && prop !== 'classNameBindings' && prop !== 'attributeBindings') {
|
37872
|
+
this.set(prop, this.getAttr(prop));
|
37089
37873
|
}
|
37090
37874
|
}
|
37091
|
-
this.setProperties(values);
|
37092
37875
|
},
|
37093
37876
|
|
37094
37877
|
initializeShape: _emberMetalEvents.on('init', function () {
|
@@ -37113,7 +37896,7 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
|
|
37113
37896
|
// do not deprecate accessing `this[key]` at this time.
|
37114
37897
|
// add this back when we have a proper migration path
|
37115
37898
|
// Ember.deprecate(deprecation(key), { id: 'ember-views.', until: '3.0.0' });
|
37116
|
-
var possibleCell = attrs
|
37899
|
+
var possibleCell = attrs[key];
|
37117
37900
|
|
37118
37901
|
if (possibleCell && possibleCell[MUTABLE_CELL]) {
|
37119
37902
|
return possibleCell.value;
|
@@ -38112,7 +38895,7 @@ enifed('ember-views/mixins/view_context_support', ['exports', 'ember-metal/mixin
|
|
38112
38895
|
_emberMetalProperty_set.set(this, '_context', value);
|
38113
38896
|
return value;
|
38114
38897
|
}
|
38115
|
-
})
|
38898
|
+
}),
|
38116
38899
|
|
38117
38900
|
/**
|
38118
38901
|
Private copy of the view's template context. This can be set directly
|
@@ -40188,7 +40971,7 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-run
|
|
40188
40971
|
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/mixin', 'ember-metal/events', 'ember-htmlbars/templates/container-view'], function (exports, _emberMetalCore, _emberRuntimeMixinsMutable_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
|
40189
40972
|
'use strict';
|
40190
40973
|
|
40191
|
-
_emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.0
|
40974
|
+
_emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.0';
|
40192
40975
|
|
40193
40976
|
/**
|
40194
40977
|
@module ember
|
@@ -40685,7 +41468,7 @@ enifed('ember-views/views/legacy_each_view', ['exports', 'ember-htmlbars/templat
|
|
40685
41468
|
})
|
40686
41469
|
});
|
40687
41470
|
});
|
40688
|
-
enifed('ember-views/views/select', ['exports', 'ember-metal/
|
41471
|
+
enifed('ember-views/views/select', ['exports', 'ember-metal/replace', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-views/views/view', 'ember-runtime/utils', 'ember-metal/is_none', 'ember-metal/computed', 'ember-runtime/system/native_array', 'ember-metal/mixin', 'ember-metal/properties', 'ember-htmlbars/templates/select', 'ember-htmlbars/templates/select-option', 'ember-htmlbars/templates/select-optgroup'], function (exports, _emberMetalReplace, _emberMetalProperty_get, _emberMetalProperty_set, _emberViewsViewsView, _emberRuntimeUtils, _emberMetalIs_none, _emberMetalComputed, _emberRuntimeSystemNative_array, _emberMetalMixin, _emberMetalProperties, _emberHtmlbarsTemplatesSelect, _emberHtmlbarsTemplatesSelectOption, _emberHtmlbarsTemplatesSelectOptgroup) {
|
40689
41472
|
/**
|
40690
41473
|
@module ember
|
40691
41474
|
@submodule ember-views
|
@@ -41336,27 +42119,6 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/core', 'ember-metal/
|
|
41336
42119
|
}
|
41337
42120
|
});
|
41338
42121
|
|
41339
|
-
function selectViewDeprecationMessage() {
|
41340
|
-
_emberMetalCore.default.deprecate('Ember.Select is deprecated. Consult the Deprecations Guide for a migration strategy.', !!_emberMetalCore.default.ENV._ENABLE_LEGACY_VIEW_SUPPORT, {
|
41341
|
-
url: 'http://emberjs.com/deprecations/v1.x/#toc_ember-select',
|
41342
|
-
id: 'ember-views.select-deprecated',
|
41343
|
-
until: '2.4.0'
|
41344
|
-
});
|
41345
|
-
}
|
41346
|
-
|
41347
|
-
var DeprecatedSelect = Select.extend({
|
41348
|
-
init: function () {
|
41349
|
-
selectViewDeprecationMessage();
|
41350
|
-
this._super.apply(this, arguments);
|
41351
|
-
}
|
41352
|
-
});
|
41353
|
-
|
41354
|
-
DeprecatedSelect.reopen = function () {
|
41355
|
-
selectViewDeprecationMessage();
|
41356
|
-
Select.reopen.apply(Select, arguments);
|
41357
|
-
return this;
|
41358
|
-
};
|
41359
|
-
|
41360
42122
|
function indexesOf(iterable, elements) {
|
41361
42123
|
return elements === undefined ? [] : elements.map(function (item) {
|
41362
42124
|
return iterable.indexOf(item);
|
@@ -41365,7 +42127,6 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/core', 'ember-metal/
|
|
41365
42127
|
|
41366
42128
|
exports.default = Select;
|
41367
42129
|
exports.Select = Select;
|
41368
|
-
exports.DeprecatedSelect = DeprecatedSelect;
|
41369
42130
|
exports.SelectOption = SelectOption;
|
41370
42131
|
exports.SelectOptgroup = SelectOptgroup;
|
41371
42132
|
});
|