ember-source 2.0.0 → 2.0.2
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 +37 -9
- data/dist/ember-testing.js +1 -1
- data/dist/ember.debug.js +318 -38
- data/dist/ember.js +318 -38
- data/dist/ember.min.js +13 -13
- data/dist/ember.prod.js +397 -50
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45499c9207754276970daaaf7962746303a12a72
|
4
|
+
data.tar.gz: 522a436237cde74c5b9550edc08995f85f6a36ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd0b9392a655ee076794ef87f91f55669fab2255c24ad1b96840724abe3a3d5337b7cd031bf73b5ce852e7ef60aa95e7754bd43527a0330bd52de0b25ac34b69
|
7
|
+
data.tar.gz: 76d77b09f1e7fd5ac7bea83e62152f50ff1e2dafc3145547326d3322d4f0e741aeaa88d612096bc1384b26cb8d9ea23db1704adfae8cc85d2b3c4af31ef97260
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.2
|
@@ -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.
|
8
|
+
* @version 2.0.2
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -2323,7 +2323,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
|
|
2323
2323
|
}
|
2324
2324
|
|
2325
2325
|
function isVolatile(obj) {
|
2326
|
-
return !(isObject(obj) && obj.isDescriptor &&
|
2326
|
+
return !(isObject(obj) && obj.isDescriptor && obj._volatile === false);
|
2327
2327
|
}
|
2328
2328
|
|
2329
2329
|
function Chains() {}
|
@@ -4059,7 +4059,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
4059
4059
|
|
4060
4060
|
@class Ember
|
4061
4061
|
@static
|
4062
|
-
@version 2.0.
|
4062
|
+
@version 2.0.2
|
4063
4063
|
@public
|
4064
4064
|
*/
|
4065
4065
|
|
@@ -4093,11 +4093,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
4093
4093
|
|
4094
4094
|
@property VERSION
|
4095
4095
|
@type String
|
4096
|
-
@default '2.0.
|
4096
|
+
@default '2.0.2'
|
4097
4097
|
@static
|
4098
4098
|
@public
|
4099
4099
|
*/
|
4100
|
-
Ember.VERSION = '2.0.
|
4100
|
+
Ember.VERSION = '2.0.2';
|
4101
4101
|
|
4102
4102
|
/**
|
4103
4103
|
The hash of environment variables used to control various configuration
|
@@ -4384,6 +4384,29 @@ enifed('ember-metal/dictionary', ['exports'], function (exports) {
|
|
4384
4384
|
return dict;
|
4385
4385
|
}
|
4386
4386
|
});
|
4387
|
+
enifed("ember-metal/empty_object", ["exports"], function (exports) {
|
4388
|
+
// This exists because `Object.create(null)` is absurdly slow compared
|
4389
|
+
// to `new EmptyObject()`. In either case, you want a null prototype
|
4390
|
+
// when you're treating the object instances as arbitrary dictionaries
|
4391
|
+
// and don't want your keys colliding with build-in methods on the
|
4392
|
+
// default object prototype.
|
4393
|
+
|
4394
|
+
"use strict";
|
4395
|
+
|
4396
|
+
var proto = Object.create(null, {
|
4397
|
+
// without this, we will always still end up with (new
|
4398
|
+
// EmptyObject()).constructor === Object
|
4399
|
+
constructor: {
|
4400
|
+
value: undefined,
|
4401
|
+
enumerable: false,
|
4402
|
+
writable: true
|
4403
|
+
}
|
4404
|
+
});
|
4405
|
+
|
4406
|
+
function EmptyObject() {}
|
4407
|
+
EmptyObject.prototype = proto;
|
4408
|
+
exports.default = EmptyObject;
|
4409
|
+
});
|
4387
4410
|
enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exports, _emberMetalCore) {
|
4388
4411
|
'use strict';
|
4389
4412
|
|
@@ -7176,7 +7199,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
|
|
7176
7199
|
@method aliasMethod
|
7177
7200
|
@for Ember
|
7178
7201
|
@param {String} methodName name of the method to alias
|
7179
|
-
@
|
7202
|
+
@public
|
7180
7203
|
*/
|
7181
7204
|
|
7182
7205
|
function aliasMethod(methodName) {
|
@@ -9988,7 +10011,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/core', './stream'],
|
|
9988
10011
|
});
|
9989
10012
|
|
9990
10013
|
for (i = 0, l = array.length; i < l; i++) {
|
9991
|
-
|
10014
|
+
stream.addDependency(array[i]);
|
9992
10015
|
}
|
9993
10016
|
|
9994
10017
|
// used by angle bracket components to detect an attribute was provided
|
@@ -12015,7 +12038,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
|
|
12015
12038
|
|
12016
12039
|
options.buildMeta = function buildMeta(program) {
|
12017
12040
|
return {
|
12018
|
-
revision: 'Ember@2.0.
|
12041
|
+
revision: 'Ember@2.0.2',
|
12019
12042
|
loc: program.loc,
|
12020
12043
|
moduleName: options.moduleName
|
12021
12044
|
};
|
@@ -18432,7 +18455,12 @@ enifed("htmlbars-util/morph-utils", ["exports"], function (exports) {
|
|
18432
18455
|
current = current.nextMorph;
|
18433
18456
|
}
|
18434
18457
|
} else if (node.morphList) {
|
18435
|
-
|
18458
|
+
var current = node.morphList.firstChildMorph;
|
18459
|
+
|
18460
|
+
while (current) {
|
18461
|
+
nodes.push(current);
|
18462
|
+
current = current.nextMorph;
|
18463
|
+
}
|
18436
18464
|
}
|
18437
18465
|
}
|
18438
18466
|
}
|
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.
|
8
|
+
* @version 2.0.2
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -4264,7 +4264,13 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4264
4264
|
instanceInitializers: Object.create(null),
|
4265
4265
|
|
4266
4266
|
/**
|
4267
|
-
|
4267
|
+
The goal of initializers should be to register dependencies and injections.
|
4268
|
+
This phase runs once. Because these initializers may load code, they are
|
4269
|
+
allowed to defer application readiness and advance it. If you need to access
|
4270
|
+
the container or store you should use an InstanceInitializer that will be run
|
4271
|
+
after all initializers and therefore after all code is loaded and the app is
|
4272
|
+
ready.
|
4273
|
+
Initializer receives an object which has the following attributes:
|
4268
4274
|
`name`, `before`, `after`, `initialize`. The only required attribute is
|
4269
4275
|
`initialize`, all others are optional.
|
4270
4276
|
* `name` allows you to specify under which name the initializer is registered.
|
@@ -4339,6 +4345,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4339
4345
|
```javascript
|
4340
4346
|
Ember.Application.initializer({
|
4341
4347
|
name: 'preload-data',
|
4348
|
+
after: 'ember-data', // ember-data must be loaded before we can access store
|
4342
4349
|
initialize: function(container, application) {
|
4343
4350
|
var store = container.lookup('store:main');
|
4344
4351
|
store.pushPayload(preloadedData);
|
@@ -4357,7 +4364,62 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4357
4364
|
@method initializer
|
4358
4365
|
@param initializer {Object}
|
4359
4366
|
@public
|
4360
|
-
|
4367
|
+
*/
|
4368
|
+
|
4369
|
+
/**
|
4370
|
+
InstanceInitializers run after all initializers have run. Because
|
4371
|
+
instanceInitializers run after the app is fully set up. We have access
|
4372
|
+
to the store, container, and other items. However, these initializers run
|
4373
|
+
after code has loaded and are not allowed to defer readiness.
|
4374
|
+
InstanceInitializer receives an object which has the following attributes:
|
4375
|
+
`name`, `before`, `after`, `initialize`. The only required attribute is
|
4376
|
+
`initialize`, all others are optional.
|
4377
|
+
* `name` allows you to specify under which name the instanceInitializer is
|
4378
|
+
registered. This must be a unique name, as trying to register two
|
4379
|
+
instanceInitializer with the same name will result in an error.
|
4380
|
+
```javascript
|
4381
|
+
Ember.Application.instanceInitializer({
|
4382
|
+
name: 'namedinstanceInitializer',
|
4383
|
+
initialize: function(application) {
|
4384
|
+
Ember.debug('Running namedInitializer!');
|
4385
|
+
}
|
4386
|
+
});
|
4387
|
+
```
|
4388
|
+
* `before` and `after` are used to ensure that this initializer is ran prior
|
4389
|
+
or after the one identified by the value. This value can be a single string
|
4390
|
+
or an array of strings, referencing the `name` of other initializers.
|
4391
|
+
* See Ember.Application.initializer for discussion on the usage of before
|
4392
|
+
and after.
|
4393
|
+
Example instanceInitializer to preload data into the store.
|
4394
|
+
```javascript
|
4395
|
+
Ember.Application.initializer({
|
4396
|
+
name: 'preload-data',
|
4397
|
+
initialize: function(application) {
|
4398
|
+
var userConfig, userConfigEncoded, store;
|
4399
|
+
// We have a HTML escaped JSON representation of the user's basic
|
4400
|
+
// configuration generated server side and stored in the DOM of the main
|
4401
|
+
// index.html file. This allows the app to have access to a set of data
|
4402
|
+
// without making any additional remote calls. Good for basic data that is
|
4403
|
+
// needed for immediate rendering of the page. Keep in mind, this data,
|
4404
|
+
// like all local models and data can be manipulated by the user, so it
|
4405
|
+
// should not be relied upon for security or authorization.
|
4406
|
+
//
|
4407
|
+
// Grab the encoded data from the meta tag
|
4408
|
+
userConfigEncoded = Ember.$('head meta[name=app-user-config]').attr('content');
|
4409
|
+
// Unescape the text, then parse the resulting JSON into a real object
|
4410
|
+
userConfig = JSON.parse(unescape(userConfigEncoded));
|
4411
|
+
// Lookup the store
|
4412
|
+
store = application.container.lookup('service:store');
|
4413
|
+
// Push the encoded JSON into the store
|
4414
|
+
store.pushPayload(userConfig);
|
4415
|
+
}
|
4416
|
+
});
|
4417
|
+
```
|
4418
|
+
@method instanceInitializer
|
4419
|
+
@param instanceInitializer
|
4420
|
+
@public
|
4421
|
+
*/
|
4422
|
+
|
4361
4423
|
initializer: buildInitializerMethod('initializers', 'initializer'),
|
4362
4424
|
|
4363
4425
|
/**
|
@@ -8647,7 +8709,7 @@ enifed('ember-htmlbars/keywords/outlet', ['exports', 'ember-metal/core', 'ember-
|
|
8647
8709
|
|
8648
8710
|
'use strict';
|
8649
8711
|
|
8650
|
-
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.
|
8712
|
+
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.2';
|
8651
8713
|
|
8652
8714
|
/**
|
8653
8715
|
The `{{outlet}}` helper lets you specify where a child routes will render in
|
@@ -11907,6 +11969,8 @@ enifed('ember-metal-views/renderer', ['exports', 'ember-metal/run_loop', 'ember-
|
|
11907
11969
|
}; // set attrs the first time
|
11908
11970
|
|
11909
11971
|
Renderer.prototype.componentInitAttrs = function (component, attrs) {
|
11972
|
+
// for attrs-proxy support
|
11973
|
+
component.trigger('_internalDidReceiveAttrs');
|
11910
11974
|
component.trigger('didInitAttrs', { attrs: attrs });
|
11911
11975
|
component.trigger('didReceiveAttrs', { newAttrs: attrs });
|
11912
11976
|
}; // set attrs the first time
|
@@ -11947,6 +12011,8 @@ enifed('ember-metal-views/renderer', ['exports', 'ember-metal/run_loop', 'ember-
|
|
11947
12011
|
_emberMetalProperty_set.set(component, 'attrs', newAttrs);
|
11948
12012
|
}
|
11949
12013
|
|
12014
|
+
// for attrs-proxy support
|
12015
|
+
component.trigger('_internalDidReceiveAttrs');
|
11950
12016
|
component.trigger('didUpdateAttrs', { oldAttrs: oldAttrs, newAttrs: newAttrs });
|
11951
12017
|
component.trigger('didReceiveAttrs', { oldAttrs: oldAttrs, newAttrs: newAttrs });
|
11952
12018
|
};
|
@@ -12835,7 +12901,7 @@ enifed('ember-metal/chains', ['exports', 'ember-metal/core', 'ember-metal/proper
|
|
12835
12901
|
}
|
12836
12902
|
|
12837
12903
|
function isVolatile(obj) {
|
12838
|
-
return !(isObject(obj) && obj.isDescriptor &&
|
12904
|
+
return !(isObject(obj) && obj.isDescriptor && obj._volatile === false);
|
12839
12905
|
}
|
12840
12906
|
|
12841
12907
|
function Chains() {}
|
@@ -14571,7 +14637,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
14571
14637
|
|
14572
14638
|
@class Ember
|
14573
14639
|
@static
|
14574
|
-
@version 2.0.
|
14640
|
+
@version 2.0.2
|
14575
14641
|
@public
|
14576
14642
|
*/
|
14577
14643
|
|
@@ -14605,11 +14671,11 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
14605
14671
|
|
14606
14672
|
@property VERSION
|
14607
14673
|
@type String
|
14608
|
-
@default '2.0.
|
14674
|
+
@default '2.0.2'
|
14609
14675
|
@static
|
14610
14676
|
@public
|
14611
14677
|
*/
|
14612
|
-
Ember.VERSION = '2.0.
|
14678
|
+
Ember.VERSION = '2.0.2';
|
14613
14679
|
|
14614
14680
|
/**
|
14615
14681
|
The hash of environment variables used to control various configuration
|
@@ -14896,6 +14962,29 @@ enifed('ember-metal/dictionary', ['exports'], function (exports) {
|
|
14896
14962
|
return dict;
|
14897
14963
|
}
|
14898
14964
|
});
|
14965
|
+
enifed("ember-metal/empty_object", ["exports"], function (exports) {
|
14966
|
+
// This exists because `Object.create(null)` is absurdly slow compared
|
14967
|
+
// to `new EmptyObject()`. In either case, you want a null prototype
|
14968
|
+
// when you're treating the object instances as arbitrary dictionaries
|
14969
|
+
// and don't want your keys colliding with build-in methods on the
|
14970
|
+
// default object prototype.
|
14971
|
+
|
14972
|
+
"use strict";
|
14973
|
+
|
14974
|
+
var proto = Object.create(null, {
|
14975
|
+
// without this, we will always still end up with (new
|
14976
|
+
// EmptyObject()).constructor === Object
|
14977
|
+
constructor: {
|
14978
|
+
value: undefined,
|
14979
|
+
enumerable: false,
|
14980
|
+
writable: true
|
14981
|
+
}
|
14982
|
+
});
|
14983
|
+
|
14984
|
+
function EmptyObject() {}
|
14985
|
+
EmptyObject.prototype = proto;
|
14986
|
+
exports.default = EmptyObject;
|
14987
|
+
});
|
14899
14988
|
enifed('ember-metal/environment', ['exports', 'ember-metal/core'], function (exports, _emberMetalCore) {
|
14900
14989
|
'use strict';
|
14901
14990
|
|
@@ -17688,7 +17777,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
|
|
17688
17777
|
@method aliasMethod
|
17689
17778
|
@for Ember
|
17690
17779
|
@param {String} methodName name of the method to alias
|
17691
|
-
@
|
17780
|
+
@public
|
17692
17781
|
*/
|
17693
17782
|
|
17694
17783
|
function aliasMethod(methodName) {
|
@@ -20500,7 +20589,7 @@ enifed('ember-metal/streams/utils', ['exports', 'ember-metal/core', './stream'],
|
|
20500
20589
|
});
|
20501
20590
|
|
20502
20591
|
for (i = 0, l = array.length; i < l; i++) {
|
20503
|
-
|
20592
|
+
stream.addDependency(array[i]);
|
20504
20593
|
}
|
20505
20594
|
|
20506
20595
|
// used by angle bracket components to detect an attribute was provided
|
@@ -22444,8 +22533,80 @@ enifed('ember-routing-htmlbars/keywords/link-to', ['exports', 'ember-metal/strea
|
|
22444
22533
|
});
|
22445
22534
|
// assert
|
22446
22535
|
enifed('ember-routing-htmlbars/keywords/render', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/streams/utils', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-htmlbars/node-managers/view-node-manager'], function (exports, _emberMetalCore, _emberMetalProperty_get, _emberMetalError, _emberMetalStreamsUtils, _emberRuntimeSystemString, _emberRoutingSystemGenerate_controller, _emberHtmlbarsNodeManagersViewNodeManager) {
|
22536
|
+
/**
|
22537
|
+
@module ember
|
22538
|
+
@submodule ember-templates
|
22539
|
+
*/
|
22540
|
+
|
22447
22541
|
'use strict';
|
22448
22542
|
|
22543
|
+
/**
|
22544
|
+
Calling ``{{render}}`` from within a template will insert another
|
22545
|
+
template that matches the provided name. The inserted template will
|
22546
|
+
access its properties on its own controller (rather than the controller
|
22547
|
+
of the parent template).
|
22548
|
+
If a view class with the same name exists, the view class also will be used.
|
22549
|
+
Note: A given controller may only be used *once* in your app in this manner.
|
22550
|
+
A singleton instance of the controller will be created for you.
|
22551
|
+
Example:
|
22552
|
+
|
22553
|
+
```javascript
|
22554
|
+
App.NavigationController = Ember.Controller.extend({
|
22555
|
+
who: "world"
|
22556
|
+
});
|
22557
|
+
```
|
22558
|
+
|
22559
|
+
```handlebars
|
22560
|
+
<!-- navigation.hbs -->
|
22561
|
+
Hello, {{who}}.
|
22562
|
+
```
|
22563
|
+
|
22564
|
+
```handlebars
|
22565
|
+
<!-- application.hbs -->
|
22566
|
+
<h1>My great app</h1>
|
22567
|
+
{{render "navigation"}}
|
22568
|
+
```
|
22569
|
+
|
22570
|
+
```html
|
22571
|
+
<h1>My great app</h1>
|
22572
|
+
<div class='ember-view'>
|
22573
|
+
Hello, world.
|
22574
|
+
</div>
|
22575
|
+
```
|
22576
|
+
|
22577
|
+
Optionally you may provide a second argument: a property path
|
22578
|
+
that will be bound to the `model` property of the controller.
|
22579
|
+
If a `model` property path is specified, then a new instance of the
|
22580
|
+
controller will be created and `{{render}}` can be used multiple times
|
22581
|
+
with the same name.
|
22582
|
+
|
22583
|
+
For example if you had this `author` template.
|
22584
|
+
|
22585
|
+
```handlebars
|
22586
|
+
<div class="author">
|
22587
|
+
Written by {{firstName}} {{lastName}}.
|
22588
|
+
Total Posts: {{postCount}}
|
22589
|
+
</div>
|
22590
|
+
```
|
22591
|
+
|
22592
|
+
You could render it inside the `post` template using the `render` helper.
|
22593
|
+
|
22594
|
+
```handlebars
|
22595
|
+
<div class="post">
|
22596
|
+
<h1>{{title}}</h1>
|
22597
|
+
<div>{{body}}</div>
|
22598
|
+
{{render "author" author}}
|
22599
|
+
</div>
|
22600
|
+
```
|
22601
|
+
|
22602
|
+
@method render
|
22603
|
+
@for Ember.Templates.helpers
|
22604
|
+
@param {String} name
|
22605
|
+
@param {Object?} context
|
22606
|
+
@param {Hash} options
|
22607
|
+
@return {String} HTML string
|
22608
|
+
@public
|
22609
|
+
*/
|
22449
22610
|
exports.default = {
|
22450
22611
|
willRender: function (renderNode, env) {
|
22451
22612
|
if (env.view.ownerView._outlets) {
|
@@ -22676,7 +22837,7 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
|
|
22676
22837
|
|
22677
22838
|
'use strict';
|
22678
22839
|
|
22679
|
-
_emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.
|
22840
|
+
_emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.0.2';
|
22680
22841
|
|
22681
22842
|
var linkComponentClassNameBindings = ['active', 'loading', 'disabled'];
|
22682
22843
|
|
@@ -23178,7 +23339,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/view',
|
|
23178
23339
|
|
23179
23340
|
'use strict';
|
23180
23341
|
|
23181
|
-
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.
|
23342
|
+
_emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.0.2';
|
23182
23343
|
|
23183
23344
|
var CoreOutletView = _emberViewsViewsView.default.extend({
|
23184
23345
|
defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
|
@@ -25619,7 +25780,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
25619
25780
|
// if you just want to transition the query parameters without changing the route
|
25620
25781
|
this.transitionTo({queryParams: {sort: 'date'}});
|
25621
25782
|
```
|
25622
|
-
See also
|
25783
|
+
See also [replaceWith](#method_replaceWith).
|
25623
25784
|
Simple Transition Example
|
25624
25785
|
```javascript
|
25625
25786
|
App.Router.map(function() {
|
@@ -25715,7 +25876,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
25715
25876
|
@param {...Object} models the model(s) to be used while transitioning
|
25716
25877
|
to the route.
|
25717
25878
|
@since 1.2.0
|
25718
|
-
@
|
25879
|
+
@public
|
25719
25880
|
*/
|
25720
25881
|
intermediateTransitionTo: function () {
|
25721
25882
|
var router = this.router;
|
@@ -26350,13 +26511,14 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
26350
26511
|
},
|
26351
26512
|
|
26352
26513
|
/**
|
26353
|
-
Returns the model of a parent (or any ancestor) route
|
26514
|
+
Returns the resolved model of a parent (or any ancestor) route
|
26354
26515
|
in a route hierarchy. During a transition, all routes
|
26355
26516
|
must resolve a model object, and if a route
|
26356
26517
|
needs access to a parent route's model in order to
|
26357
26518
|
resolve a model (or just reuse the model from a parent),
|
26358
26519
|
it can call `this.modelFor(theNameOfParentRoute)` to
|
26359
|
-
retrieve it.
|
26520
|
+
retrieve it. If the ancestor route's model was a promise,
|
26521
|
+
its resolved result is returned.
|
26360
26522
|
Example
|
26361
26523
|
```javascript
|
26362
26524
|
App.Router.map(function() {
|
@@ -26873,10 +27035,11 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
|
|
26873
27035
|
The `location` property determines the type of URL's that your
|
26874
27036
|
application will use.
|
26875
27037
|
The following location types are currently available:
|
26876
|
-
* `
|
26877
|
-
* `hash`
|
26878
|
-
* `
|
26879
|
-
* `none`
|
27038
|
+
* `history` - use the browser's history API to make the URLs look just like any standard URL
|
27039
|
+
* `hash` - use `#` to separate the server part of the URL from the Ember part: `/blog/#/posts/new`
|
27040
|
+
* `none` - do not store the Ember URL in the actual browser URL (mainly used for testing)
|
27041
|
+
* `auto` - use the best option based on browser capabilites: `history` if possible, then `hash` if possible, otherwise `none`
|
27042
|
+
Note: If using ember-cli, this value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`
|
26880
27043
|
@property location
|
26881
27044
|
@default 'hash'
|
26882
27045
|
@see {Ember.Location}
|
@@ -26997,6 +27160,20 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
|
|
26997
27160
|
Handles updating the paths and notifying any listeners of the URL
|
26998
27161
|
change.
|
26999
27162
|
Triggers the router level `didTransition` hook.
|
27163
|
+
For example, to notify google analytics when the route changes,
|
27164
|
+
you could use this hook. (Note: requires also including GA scripts, etc.)
|
27165
|
+
```javascript
|
27166
|
+
var Router = Ember.Router.extend({
|
27167
|
+
location: config.locationType,
|
27168
|
+
didTransition: function() {
|
27169
|
+
this._super(...arguments);
|
27170
|
+
return ga('send', 'pageview', {
|
27171
|
+
'page': this.get('url'),
|
27172
|
+
'title': this.get('url')
|
27173
|
+
});
|
27174
|
+
}
|
27175
|
+
});
|
27176
|
+
```
|
27000
27177
|
@method didTransition
|
27001
27178
|
@public
|
27002
27179
|
@since 1.2.0
|
@@ -28218,7 +28395,7 @@ enifed('ember-runtime', ['exports', 'ember-metal', 'ember-runtime/core', 'ember-
|
|
28218
28395
|
_emberMetal.default.Observable = _emberRuntimeMixinsObservable.default;
|
28219
28396
|
|
28220
28397
|
_emberMetal.default.typeOf = _emberRuntimeUtils.typeOf;
|
28221
|
-
_emberMetal.default.isArray =
|
28398
|
+
_emberMetal.default.isArray = _emberRuntimeUtils.isArray;
|
28222
28399
|
|
28223
28400
|
// ES6TODO: this seems a less than ideal way/place to add properties to Ember.computed
|
28224
28401
|
var EmComputed = _emberMetal.default.computed;
|
@@ -28406,7 +28583,13 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
28406
28583
|
return _emberMetalComputed.computed(dependentKey + '.[]', function () {
|
28407
28584
|
var _this = this;
|
28408
28585
|
|
28409
|
-
|
28586
|
+
var arr = _emberMetalProperty_get.get(this, dependentKey);
|
28587
|
+
|
28588
|
+
if (arr === null || typeof arr !== 'object') {
|
28589
|
+
return initialValue;
|
28590
|
+
}
|
28591
|
+
|
28592
|
+
return arr.reduce(function (previousValue, currentValue, index, array) {
|
28410
28593
|
return callback.call(_this, previousValue, currentValue, index, array);
|
28411
28594
|
}, initialValue);
|
28412
28595
|
}).readOnly();
|
@@ -28997,6 +29180,10 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
28997
29180
|
var items = itemsKey === '@this' ? this : _emberMetalProperty_get.get(this, itemsKey);
|
28998
29181
|
var sortProperties = _emberMetalProperty_get.get(this, sortPropertiesKey);
|
28999
29182
|
|
29183
|
+
if (items === null || typeof items !== 'object') {
|
29184
|
+
return _emberMetalCore.default.A();
|
29185
|
+
}
|
29186
|
+
|
29000
29187
|
// TODO: Ideally we'd only do this if things have changed
|
29001
29188
|
if (cp._sortPropObservers) {
|
29002
29189
|
cp._sortPropObservers.forEach(function (args) {
|
@@ -29767,7 +29954,7 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-metal/core', 'ember-met
|
|
29767
29954
|
});
|
29768
29955
|
});
|
29769
29956
|
// Ember.assert
|
29770
|
-
enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/core', 'ember-metal/mixin', 'ember-metal/property_get'
|
29957
|
+
enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/core', 'ember-metal/mixin', 'ember-metal/property_get'], function (exports, _emberMetalCore, _emberMetalMixin, _emberMetalProperty_get) {
|
29771
29958
|
/**
|
29772
29959
|
@module ember
|
29773
29960
|
@submodule ember-runtime
|
@@ -29937,14 +30124,37 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/core', 'e
|
|
29937
30124
|
_emberMetalCore.default.assert('The `target` for ' + this + ' (' + target + ') does not have a `send` method', typeof target.send === 'function');
|
29938
30125
|
(_target = target).send.apply(_target, arguments);
|
29939
30126
|
}
|
30127
|
+
},
|
30128
|
+
|
30129
|
+
willMergeMixin: function (props) {
|
30130
|
+
_emberMetalCore.default.assert('Specifying `_actions` and `actions` in the same mixin is not supported.', !props.actions || !props._actions);
|
30131
|
+
|
30132
|
+
if (props._actions) {
|
30133
|
+
_emberMetalCore.default.deprecate('Specifying actions in `_actions` is deprecated, please use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
|
30134
|
+
|
30135
|
+
props.actions = props._actions;
|
30136
|
+
delete props._actions;
|
30137
|
+
}
|
29940
30138
|
}
|
29941
30139
|
});
|
29942
30140
|
|
29943
30141
|
exports.default = ActionHandler;
|
29944
30142
|
|
29945
30143
|
function deprecateUnderscoreActions(factory) {
|
29946
|
-
|
29947
|
-
id: 'ember-runtime.action-handler-_actions', until: '3.0.0'
|
30144
|
+
function deprecate() {
|
30145
|
+
_emberMetalCore.default.deprecate('Usage of `_actions` is deprecated, use `actions` instead.', false, { id: 'ember-runtime.action-handler-_actions', until: '3.0.0' });
|
30146
|
+
}
|
30147
|
+
|
30148
|
+
Object.defineProperty(factory.prototype, '_actions', {
|
30149
|
+
configurable: true,
|
30150
|
+
enumerable: false,
|
30151
|
+
set: function (value) {
|
30152
|
+
_emberMetalCore.default.assert('You cannot set `_actions` on ' + this + ', please use `actions` instead.');
|
30153
|
+
},
|
30154
|
+
get: function () {
|
30155
|
+
deprecate();
|
30156
|
+
return _emberMetalProperty_get.get(this, 'actions');
|
30157
|
+
}
|
29948
30158
|
});
|
29949
30159
|
}
|
29950
30160
|
});
|
@@ -30501,7 +30711,7 @@ enifed('ember-runtime/mixins/controller', ['exports', 'ember-metal/mixin', 'embe
|
|
30501
30711
|
consumer of actions for the controller.
|
30502
30712
|
@property target
|
30503
30713
|
@default null
|
30504
|
-
@
|
30714
|
+
@public
|
30505
30715
|
*/
|
30506
30716
|
target: null,
|
30507
30717
|
|
@@ -32355,9 +32565,10 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal/core', 'ember
|
|
32355
32565
|
|
32356
32566
|
```javascript
|
32357
32567
|
Ember.Object.extend({
|
32358
|
-
valueObserver: function() {
|
32568
|
+
valueObserver: Ember.observer('value', function(sender, key, value, rev) {
|
32359
32569
|
// Executes whenever the "value" property changes
|
32360
|
-
|
32570
|
+
// See the addObserver method for more information about the callback arguments
|
32571
|
+
})
|
32361
32572
|
});
|
32362
32573
|
```
|
32363
32574
|
|
@@ -36440,7 +36651,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
|
|
36440
36651
|
|
36441
36652
|
options.buildMeta = function buildMeta(program) {
|
36442
36653
|
return {
|
36443
|
-
revision: 'Ember@2.0.
|
36654
|
+
revision: 'Ember@2.0.2',
|
36444
36655
|
loc: program.loc,
|
36445
36656
|
moduleName: options.moduleName
|
36446
36657
|
};
|
@@ -37817,7 +38028,7 @@ enifed('ember-views', ['exports', 'ember-runtime', 'ember-views/system/jquery',
|
|
37817
38028
|
exports.default = _emberRuntime.default;
|
37818
38029
|
});
|
37819
38030
|
// for the side effect of extending Ember.run.queues
|
37820
|
-
enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember-metal/utils', 'ember-metal/property_events', 'ember-metal/events'], function (exports, _emberMetalMixin, _emberMetalUtils, _emberMetalProperty_events, _emberMetalEvents) {
|
38031
|
+
enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember-metal/utils', 'ember-metal/property_events', 'ember-metal/events', 'ember-metal/empty_object'], function (exports, _emberMetalMixin, _emberMetalUtils, _emberMetalProperty_events, _emberMetalEvents, _emberMetalEmpty_object) {
|
37821
38032
|
'use strict';
|
37822
38033
|
|
37823
38034
|
exports.deprecation = deprecation;
|
@@ -37833,9 +38044,38 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
|
|
37833
38044
|
return val && val[MUTABLE_CELL];
|
37834
38045
|
}
|
37835
38046
|
|
38047
|
+
function setupAvoidPropagating(instance) {
|
38048
|
+
// This caches the list of properties to avoid setting onto the component instance
|
38049
|
+
// inside `_propagateAttrsToThis`. We cache them so that every instantiated component
|
38050
|
+
// does not have to pay the calculation penalty.
|
38051
|
+
var constructor = instance.constructor;
|
38052
|
+
if (!constructor.__avoidPropagating) {
|
38053
|
+
constructor.__avoidPropagating = new _emberMetalEmpty_object.default();
|
38054
|
+
var i = undefined,
|
38055
|
+
l = undefined;
|
38056
|
+
for (i = 0, l = instance.concatenatedProperties.length; i < l; i++) {
|
38057
|
+
var prop = instance.concatenatedProperties[i];
|
38058
|
+
|
38059
|
+
constructor.__avoidPropagating[prop] = true;
|
38060
|
+
}
|
38061
|
+
|
38062
|
+
for (i = 0, l = instance.mergedProperties.length; i < l; i++) {
|
38063
|
+
var prop = instance.mergedProperties[i];
|
38064
|
+
|
38065
|
+
constructor.__avoidPropagating[prop] = true;
|
38066
|
+
}
|
38067
|
+
}
|
38068
|
+
}
|
38069
|
+
|
37836
38070
|
var AttrsProxyMixin = {
|
37837
38071
|
attrs: null,
|
37838
38072
|
|
38073
|
+
init: function () {
|
38074
|
+
this._super.apply(this, arguments);
|
38075
|
+
|
38076
|
+
setupAvoidPropagating(this);
|
38077
|
+
},
|
38078
|
+
|
37839
38079
|
getAttr: function (key) {
|
37840
38080
|
var attrs = this.attrs;
|
37841
38081
|
if (!attrs) {
|
@@ -37864,11 +38104,7 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
|
|
37864
38104
|
var attrs = this.attrs;
|
37865
38105
|
|
37866
38106
|
for (var prop in attrs) {
|
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') {
|
38107
|
+
if (prop !== 'attrs' && !this.constructor.__avoidPropagating[prop]) {
|
37872
38108
|
this.set(prop, this.getAttr(prop));
|
37873
38109
|
}
|
37874
38110
|
}
|
@@ -37878,7 +38114,7 @@ enifed('ember-views/compat/attrs-proxy', ['exports', 'ember-metal/mixin', 'ember
|
|
37878
38114
|
this._isDispatchingAttrs = false;
|
37879
38115
|
}),
|
37880
38116
|
|
37881
|
-
|
38117
|
+
_internalDidReceiveAttrs: function () {
|
37882
38118
|
this._super();
|
37883
38119
|
this._isDispatchingAttrs = true;
|
37884
38120
|
this._propagateAttrsToThis();
|
@@ -40959,6 +41195,45 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-run
|
|
40959
41195
|
@property hasBlockParams
|
40960
41196
|
@returns Boolean
|
40961
41197
|
*/
|
41198
|
+
|
41199
|
+
/**
|
41200
|
+
Enables components to take a list of parameters as arguments
|
41201
|
+
For example a component that takes two parameters with the names
|
41202
|
+
`name` and `age`:
|
41203
|
+
```javascript
|
41204
|
+
let MyComponent = Ember.Component.extend;
|
41205
|
+
MyComponent.reopenClass({
|
41206
|
+
positionalParams: ['name', 'age']
|
41207
|
+
});
|
41208
|
+
```
|
41209
|
+
It can then be invoked like this:
|
41210
|
+
```hbs
|
41211
|
+
{{my-component "John" 38}}
|
41212
|
+
```
|
41213
|
+
The parameters can be refered to just like named parameters:
|
41214
|
+
```hbs
|
41215
|
+
Name: {{attrs.name}}, Age: {{attrs.age}}.
|
41216
|
+
```
|
41217
|
+
Using a string instead of an array allows for an arbitrary number of
|
41218
|
+
parameters:
|
41219
|
+
```javascript
|
41220
|
+
let MyComponent = Ember.Component.extend;
|
41221
|
+
MyComponent.reopenClass({
|
41222
|
+
positionalParams: 'names'
|
41223
|
+
});
|
41224
|
+
```
|
41225
|
+
It can then be invoked like this:
|
41226
|
+
```hbs
|
41227
|
+
{{my-component "John" "Michael" "Scott"}}
|
41228
|
+
```
|
41229
|
+
The parameters can then be refered to by enumerating over the list:
|
41230
|
+
```hbs
|
41231
|
+
{{#each attrs.names as |name|}}{{name}}{{/each}}
|
41232
|
+
```
|
41233
|
+
@static
|
41234
|
+
@public
|
41235
|
+
@property positionalParams
|
41236
|
+
*/
|
40962
41237
|
});
|
40963
41238
|
|
40964
41239
|
Component.reopenClass({
|
@@ -40971,7 +41246,7 @@ enifed('ember-views/views/component', ['exports', 'ember-metal/core', 'ember-run
|
|
40971
41246
|
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) {
|
40972
41247
|
'use strict';
|
40973
41248
|
|
40974
|
-
_emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.
|
41249
|
+
_emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.0.2';
|
40975
41250
|
|
40976
41251
|
/**
|
40977
41252
|
@module ember
|
@@ -46145,7 +46420,12 @@ enifed("htmlbars-util/morph-utils", ["exports"], function (exports) {
|
|
46145
46420
|
current = current.nextMorph;
|
46146
46421
|
}
|
46147
46422
|
} else if (node.morphList) {
|
46148
|
-
|
46423
|
+
var current = node.morphList.firstChildMorph;
|
46424
|
+
|
46425
|
+
while (current) {
|
46426
|
+
nodes.push(current);
|
46427
|
+
current = current.nextMorph;
|
46428
|
+
}
|
46149
46429
|
}
|
46150
46430
|
}
|
46151
46431
|
}
|