ember-source 2.0.0.beta.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
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.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
|
});
|