ember-source 1.11.0.beta.5 → 1.11.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-runtime.js +42 -34
- data/dist/ember-template-compiler.js +35 -50
- data/dist/ember-testing.js +23 -41
- data/dist/ember-tests.js +960 -213
- data/dist/ember-tests.prod.js +1012 -244
- data/dist/ember.debug.cjs.js +470 -276
- data/dist/ember.debug.js +470 -276
- data/dist/ember.js +470 -276
- data/dist/ember.min.js +19 -13
- data/dist/ember.prod.js +330 -199
- metadata +4 -4
data/dist/ember.debug.cjs.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.11.0
|
8
|
+
* @version 1.11.0
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -1136,7 +1136,11 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
|
|
1136
1136
|
*/
|
1137
1137
|
function Container(registry, options) {
|
1138
1138
|
this._registry = registry || (function() {
|
1139
|
-
Ember['default'].deprecate(
|
1139
|
+
Ember['default'].deprecate(
|
1140
|
+
"A container should only be created for an already instantiated " +
|
1141
|
+
"registry. For backward compatibility, an isolated registry will " +
|
1142
|
+
"be instantiated just for this container."
|
1143
|
+
);
|
1140
1144
|
|
1141
1145
|
// TODO - See note above about transpiler import workaround.
|
1142
1146
|
if (!Registry) { Registry = requireModule('container/registry')['default']; }
|
@@ -1155,6 +1159,7 @@ enifed('container/container', ['exports', 'ember-metal/core', 'ember-metal/keys'
|
|
1155
1159
|
|
1156
1160
|
@property _registry
|
1157
1161
|
@type Registry
|
1162
|
+
@since 1.11.0
|
1158
1163
|
*/
|
1159
1164
|
_registry: null,
|
1160
1165
|
|
@@ -1503,6 +1508,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
|
|
1503
1508
|
|
1504
1509
|
@private
|
1505
1510
|
@class Registry
|
1511
|
+
@since 1.11.0
|
1506
1512
|
*/
|
1507
1513
|
function Registry(options) {
|
1508
1514
|
this.fallback = options && options.fallback ? options.fallback : null;
|
@@ -1618,7 +1624,7 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
|
|
1618
1624
|
@property _defaultContainer
|
1619
1625
|
@type Container
|
1620
1626
|
*/
|
1621
|
-
|
1627
|
+
_defaultContainer: null,
|
1622
1628
|
|
1623
1629
|
/**
|
1624
1630
|
Creates a container based on this registry.
|
@@ -1659,7 +1665,11 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
|
|
1659
1665
|
Ember['default'].assert('Create a container on the registry (with `registry.container()`) before calling `lookup`.', this._defaultContainer);
|
1660
1666
|
|
1661
1667
|
if (instanceInitializersFeatureEnabled) {
|
1662
|
-
Ember['default'].deprecate(
|
1668
|
+
Ember['default'].deprecate(
|
1669
|
+
'`lookup` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.',
|
1670
|
+
false,
|
1671
|
+
{ url: "http://emberjs.com/guides/deprecations#toc_access-to-instances-in-initializers" }
|
1672
|
+
);
|
1663
1673
|
}
|
1664
1674
|
|
1665
1675
|
return this._defaultContainer.lookup(fullName, options);
|
@@ -1669,7 +1679,11 @@ enifed('container/registry', ['exports', 'ember-metal/core', 'ember-metal/dictio
|
|
1669
1679
|
Ember['default'].assert('Create a container on the registry (with `registry.container()`) before calling `lookupFactory`.', this._defaultContainer);
|
1670
1680
|
|
1671
1681
|
if (instanceInitializersFeatureEnabled) {
|
1672
|
-
Ember['default'].deprecate(
|
1682
|
+
Ember['default'].deprecate(
|
1683
|
+
'`lookupFactory` was called on a Registry. The `initializer` API no longer receives a container, and you should use an `instanceInitializer` to look up objects from the container.',
|
1684
|
+
false,
|
1685
|
+
{ url: "http://emberjs.com/guides/deprecations#toc_access-to-instances-in-initializers" }
|
1686
|
+
);
|
1673
1687
|
}
|
1674
1688
|
|
1675
1689
|
return this._defaultContainer.lookupFactory(fullName);
|
@@ -4394,7 +4408,11 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4394
4408
|
@deprecated
|
4395
4409
|
*/
|
4396
4410
|
then: function() {
|
4397
|
-
Ember['default'].deprecate(
|
4411
|
+
Ember['default'].deprecate(
|
4412
|
+
'Do not use `.then` on an instance of Ember.Application. Please use the `.ready` hook instead.',
|
4413
|
+
false,
|
4414
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_code-then-code-on-ember-application' }
|
4415
|
+
);
|
4398
4416
|
|
4399
4417
|
this._super.apply(this, arguments);
|
4400
4418
|
}
|
@@ -4636,7 +4654,10 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4636
4654
|
@return {*} the resolved value for a given lookup
|
4637
4655
|
*/
|
4638
4656
|
function resolverFor(namespace) {
|
4639
|
-
Ember['default'].deprecate(
|
4657
|
+
Ember['default'].deprecate(
|
4658
|
+
'Application.resolver is deprecated in favor of Application.Resolver',
|
4659
|
+
!namespace.get('resolver')
|
4660
|
+
);
|
4640
4661
|
|
4641
4662
|
var ResolverClass = namespace.get('resolver') || namespace.get('Resolver') || DefaultResolver['default'];
|
4642
4663
|
var resolver = ResolverClass.create({
|
@@ -4659,7 +4680,7 @@ enifed('ember-application/system/application', ['exports', 'dag-map', 'container
|
|
4659
4680
|
if (resolver.normalize) {
|
4660
4681
|
return resolver.normalize(fullName);
|
4661
4682
|
} else {
|
4662
|
-
Ember['default'].deprecate('The Resolver should now provide a \'normalize\' function'
|
4683
|
+
Ember['default'].deprecate('The Resolver should now provide a \'normalize\' function');
|
4663
4684
|
return fullName;
|
4664
4685
|
}
|
4665
4686
|
};
|
@@ -6492,8 +6513,11 @@ enifed('ember-htmlbars/helpers/collection', ['exports', 'ember-metal/core', 'emb
|
|
6492
6513
|
function collectionHelper(params, hash, options, env) {
|
6493
6514
|
var path = params[0];
|
6494
6515
|
|
6495
|
-
Ember['default'].deprecate(
|
6496
|
-
|
6516
|
+
Ember['default'].deprecate(
|
6517
|
+
"Using the {{collection}} helper without specifying a class has been" +
|
6518
|
+
" deprecated as the {{each}} helper now supports the same functionality.",
|
6519
|
+
path !== 'collection'
|
6520
|
+
);
|
6497
6521
|
|
6498
6522
|
Ember['default'].assert("You cannot pass more than one argument to the collection helper", params.length <= 1);
|
6499
6523
|
|
@@ -6571,8 +6595,8 @@ enifed('ember-htmlbars/helpers/collection', ['exports', 'ember-metal/core', 'emb
|
|
6571
6595
|
if (inverse) {
|
6572
6596
|
emptyViewClass = property_get.get(collectionPrototype, 'emptyViewClass');
|
6573
6597
|
emptyViewClass = emptyViewClass.extend({
|
6574
|
-
|
6575
|
-
|
6598
|
+
template: inverse,
|
6599
|
+
tagName: itemHash.tagName
|
6576
6600
|
});
|
6577
6601
|
} else if (hash.emptyViewClass) {
|
6578
6602
|
emptyViewClass = utils.readViewFactory(hash.emptyViewClass, container);
|
@@ -6908,8 +6932,10 @@ enifed('ember-htmlbars/helpers/template', ['exports', 'ember-metal/core'], funct
|
|
6908
6932
|
exports.templateHelper = templateHelper;
|
6909
6933
|
|
6910
6934
|
function templateHelper(params, hash, options, env) {
|
6911
|
-
Ember['default'].deprecate(
|
6912
|
-
|
6935
|
+
Ember['default'].deprecate(
|
6936
|
+
"The `template` helper has been deprecated in favor of the `partial` helper." +
|
6937
|
+
" Please use `partial` instead, which will work the same way."
|
6938
|
+
);
|
6913
6939
|
|
6914
6940
|
options.helperName = options.helperName || 'template';
|
6915
6941
|
|
@@ -7120,7 +7146,7 @@ enifed('ember-htmlbars/helpers/yield', ['exports', 'ember-metal/core', 'ember-me
|
|
7120
7146
|
}
|
7121
7147
|
|
7122
7148
|
});
|
7123
|
-
enifed('ember-htmlbars/hooks/attribute', ['exports', 'ember-views/attr_nodes/attr_node', 'ember-metal/error', 'ember-metal/streams/utils', '
|
7149
|
+
enifed('ember-htmlbars/hooks/attribute', ['exports', 'ember-views/attr_nodes/attr_node', 'ember-metal/error', 'ember-metal/streams/utils', 'morph-attr/sanitize-attribute-value'], function (exports, AttrNode, EmberError, utils, sanitizeAttributeValue) {
|
7124
7150
|
|
7125
7151
|
'use strict';
|
7126
7152
|
|
@@ -7672,9 +7698,15 @@ enifed('ember-htmlbars/system/merge-view-bindings', ['exports', 'ember-metal/cor
|
|
7672
7698
|
|
7673
7699
|
if (mixin.IS_BINDING.test(key)) {
|
7674
7700
|
if (typeof value === 'string') {
|
7701
|
+
Ember['default'].deprecate(
|
7702
|
+
"You're attempting to render a view by passing " + key + " " +
|
7703
|
+
"to a view helper, but this syntax is deprecated. You should use `" +
|
7704
|
+
key.slice(0, -7) + "=someValue` instead."
|
7705
|
+
);
|
7706
|
+
|
7675
7707
|
props[key] = view._getBindingForStream(value);
|
7676
7708
|
} else if (utils.isStream(value)) {
|
7677
|
-
Ember['default'].
|
7709
|
+
Ember['default'].deprecate(
|
7678
7710
|
"You're attempting to render a view by passing " + key + " " +
|
7679
7711
|
"to a view helper without a quoted value, but this syntax is " +
|
7680
7712
|
"ambiguous. You should either surround " + key + "'s value in " +
|
@@ -7703,7 +7735,7 @@ enifed('ember-htmlbars/system/merge-view-bindings', ['exports', 'ember-metal/cor
|
|
7703
7735
|
);
|
7704
7736
|
|
7705
7737
|
if (hash.id) {
|
7706
|
-
props.elementId = utils.read(hash.id);
|
7738
|
+
props.id = props.elementId = utils.read(hash.id);
|
7707
7739
|
}
|
7708
7740
|
|
7709
7741
|
if (hash.tag) {
|
@@ -7715,8 +7747,15 @@ enifed('ember-htmlbars/system/merge-view-bindings', ['exports', 'ember-metal/cor
|
|
7715
7747
|
if (hash['class']) {
|
7716
7748
|
if (typeof hash['class'] === 'string') {
|
7717
7749
|
props.classNames = hash['class'].split(' ');
|
7718
|
-
} else {
|
7750
|
+
} else if (hash['class']._label) {
|
7751
|
+
// label exists for via property paths in the template
|
7752
|
+
// but not for streams with nested sub-expressions
|
7719
7753
|
classBindings.push(hash['class']._label);
|
7754
|
+
} else {
|
7755
|
+
// this stream did not have a label which means that
|
7756
|
+
// it is not a simple property path type stream (likely
|
7757
|
+
// the result of a sub-expression)
|
7758
|
+
classBindings.push(hash['class']);
|
7720
7759
|
}
|
7721
7760
|
}
|
7722
7761
|
|
@@ -7732,7 +7771,15 @@ enifed('ember-htmlbars/system/merge-view-bindings', ['exports', 'ember-metal/cor
|
|
7732
7771
|
props.classNameBindings = classBindings;
|
7733
7772
|
|
7734
7773
|
for (var i = 0; i < classBindings.length; i++) {
|
7735
|
-
var
|
7774
|
+
var initialValue = classBindings[i];
|
7775
|
+
var classBinding;
|
7776
|
+
|
7777
|
+
if (utils.isStream(initialValue)) {
|
7778
|
+
classBinding = initialValue;
|
7779
|
+
} else {
|
7780
|
+
classBinding = class_name_binding.streamifyClassNameBinding(view, initialValue);
|
7781
|
+
}
|
7782
|
+
|
7736
7783
|
if (utils.isStream(classBinding)) {
|
7737
7784
|
classBindings[i] = classBinding;
|
7738
7785
|
} else {
|
@@ -7771,8 +7818,8 @@ enifed('ember-htmlbars/system/render-view', ['exports', 'ember-metal/core', 'emb
|
|
7771
7818
|
function renderHTMLBarsTemplate(view, buffer, template) {
|
7772
7819
|
Ember['default'].assert(
|
7773
7820
|
'The template being rendered by `' + view + '` was compiled with `' + template.revision +
|
7774
|
-
'` which does not match `Ember@1.11.0
|
7775
|
-
template.revision === 'Ember@1.11.0
|
7821
|
+
'` which does not match `Ember@1.11.0` (this revision).',
|
7822
|
+
template.revision === 'Ember@1.11.0'
|
7776
7823
|
);
|
7777
7824
|
|
7778
7825
|
var contextualElement = buffer.innerContextualElement();
|
@@ -7812,7 +7859,7 @@ enifed('ember-htmlbars/templates/component', ['exports', 'ember-template-compile
|
|
7812
7859
|
exports['default'] = template['default']((function() {
|
7813
7860
|
return {
|
7814
7861
|
isHTMLBars: true,
|
7815
|
-
revision: "Ember@1.11.0
|
7862
|
+
revision: "Ember@1.11.0",
|
7816
7863
|
blockParams: 0,
|
7817
7864
|
cachedFragment: null,
|
7818
7865
|
hasRendered: false,
|
@@ -7859,7 +7906,7 @@ enifed('ember-htmlbars/templates/empty', ['exports', 'ember-template-compiler/sy
|
|
7859
7906
|
exports['default'] = template['default']((function() {
|
7860
7907
|
return {
|
7861
7908
|
isHTMLBars: true,
|
7862
|
-
revision: "Ember@1.11.0
|
7909
|
+
revision: "Ember@1.11.0",
|
7863
7910
|
blockParams: 0,
|
7864
7911
|
cachedFragment: null,
|
7865
7912
|
hasRendered: false,
|
@@ -7899,7 +7946,7 @@ enifed('ember-htmlbars/templates/link-to-escaped', ['exports', 'ember-template-c
|
|
7899
7946
|
exports['default'] = template['default']((function() {
|
7900
7947
|
return {
|
7901
7948
|
isHTMLBars: true,
|
7902
|
-
revision: "Ember@1.11.0
|
7949
|
+
revision: "Ember@1.11.0",
|
7903
7950
|
blockParams: 0,
|
7904
7951
|
cachedFragment: null,
|
7905
7952
|
hasRendered: false,
|
@@ -7946,7 +7993,7 @@ enifed('ember-htmlbars/templates/link-to-unescaped', ['exports', 'ember-template
|
|
7946
7993
|
exports['default'] = template['default']((function() {
|
7947
7994
|
return {
|
7948
7995
|
isHTMLBars: true,
|
7949
|
-
revision: "Ember@1.11.0
|
7996
|
+
revision: "Ember@1.11.0",
|
7950
7997
|
blockParams: 0,
|
7951
7998
|
cachedFragment: null,
|
7952
7999
|
hasRendered: false,
|
@@ -7994,7 +8041,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
7994
8041
|
var child0 = (function() {
|
7995
8042
|
return {
|
7996
8043
|
isHTMLBars: true,
|
7997
|
-
revision: "Ember@1.11.0
|
8044
|
+
revision: "Ember@1.11.0",
|
7998
8045
|
blockParams: 0,
|
7999
8046
|
cachedFragment: null,
|
8000
8047
|
hasRendered: false,
|
@@ -8037,7 +8084,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
8037
8084
|
var child0 = (function() {
|
8038
8085
|
return {
|
8039
8086
|
isHTMLBars: true,
|
8040
|
-
revision: "Ember@1.11.0
|
8087
|
+
revision: "Ember@1.11.0",
|
8041
8088
|
blockParams: 0,
|
8042
8089
|
cachedFragment: null,
|
8043
8090
|
hasRendered: false,
|
@@ -8077,7 +8124,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
8077
8124
|
}());
|
8078
8125
|
return {
|
8079
8126
|
isHTMLBars: true,
|
8080
|
-
revision: "Ember@1.11.0
|
8127
|
+
revision: "Ember@1.11.0",
|
8081
8128
|
blockParams: 0,
|
8082
8129
|
cachedFragment: null,
|
8083
8130
|
hasRendered: false,
|
@@ -8119,7 +8166,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
8119
8166
|
var child0 = (function() {
|
8120
8167
|
return {
|
8121
8168
|
isHTMLBars: true,
|
8122
|
-
revision: "Ember@1.11.0
|
8169
|
+
revision: "Ember@1.11.0",
|
8123
8170
|
blockParams: 0,
|
8124
8171
|
cachedFragment: null,
|
8125
8172
|
hasRendered: false,
|
@@ -8159,7 +8206,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
8159
8206
|
}());
|
8160
8207
|
return {
|
8161
8208
|
isHTMLBars: true,
|
8162
|
-
revision: "Ember@1.11.0
|
8209
|
+
revision: "Ember@1.11.0",
|
8163
8210
|
blockParams: 0,
|
8164
8211
|
cachedFragment: null,
|
8165
8212
|
hasRendered: false,
|
@@ -8199,7 +8246,7 @@ enifed('ember-htmlbars/templates/select', ['exports', 'ember-template-compiler/s
|
|
8199
8246
|
}());
|
8200
8247
|
return {
|
8201
8248
|
isHTMLBars: true,
|
8202
|
-
revision: "Ember@1.11.0
|
8249
|
+
revision: "Ember@1.11.0",
|
8203
8250
|
blockParams: 0,
|
8204
8251
|
cachedFragment: null,
|
8205
8252
|
hasRendered: false,
|
@@ -11201,8 +11248,8 @@ enifed('ember-metal/computed_macros', ['exports', 'ember-metal/core', 'ember-met
|
|
11201
11248
|
This is a more semantically meaningful alias of `computed.oneWay`,
|
11202
11249
|
whose name is somewhat ambiguous as to which direction the data flows.
|
11203
11250
|
|
11204
|
-
@method
|
11205
|
-
@for Ember
|
11251
|
+
@method reads
|
11252
|
+
@for Ember.computed
|
11206
11253
|
@param {String} dependentKey
|
11207
11254
|
@return {Ember.ComputedProperty} computed property which creates a
|
11208
11255
|
one way computed property to the original value for property.
|
@@ -11346,7 +11393,7 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
11346
11393
|
|
11347
11394
|
@class Ember
|
11348
11395
|
@static
|
11349
|
-
@version 1.11.0
|
11396
|
+
@version 1.11.0
|
11350
11397
|
*/
|
11351
11398
|
|
11352
11399
|
if ('undefined' === typeof Ember) {
|
@@ -11374,10 +11421,10 @@ enifed('ember-metal/core', ['exports'], function (exports) {
|
|
11374
11421
|
/**
|
11375
11422
|
@property VERSION
|
11376
11423
|
@type String
|
11377
|
-
@default '1.11.0
|
11424
|
+
@default '1.11.0'
|
11378
11425
|
@static
|
11379
11426
|
*/
|
11380
|
-
Ember.VERSION = '1.11.0
|
11427
|
+
Ember.VERSION = '1.11.0';
|
11381
11428
|
|
11382
11429
|
/**
|
11383
11430
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -11542,7 +11589,7 @@ enifed('ember-metal/dependent_keys', ['exports', 'ember-metal/platform/create',
|
|
11542
11589
|
// Remove "use strict"; from transpiled module until
|
11543
11590
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
11544
11591
|
//
|
11545
|
-
|
11592
|
+
"REMOVE_USE_STRICT: true";
|
11546
11593
|
|
11547
11594
|
function keysForDep(depsMeta, depKey) {
|
11548
11595
|
var keys = depsMeta[depKey];
|
@@ -11998,7 +12045,7 @@ enifed('ember-metal/events', ['exports', 'ember-metal/core', 'ember-metal/utils'
|
|
11998
12045
|
// Remove "use strict"; from transpiled module until
|
11999
12046
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
12000
12047
|
//
|
12001
|
-
|
12048
|
+
"REMOVE_USE_STRICT: true";
|
12002
12049
|
|
12003
12050
|
/**
|
12004
12051
|
@module ember-metal
|
@@ -13216,7 +13263,10 @@ enifed('ember-metal/map', ['exports', 'ember-metal/utils', 'ember-metal/array',
|
|
13216
13263
|
@return {Boolean}
|
13217
13264
|
*/
|
13218
13265
|
remove: function(obj, _guid) {
|
13219
|
-
Ember.deprecate(
|
13266
|
+
Ember.deprecate(
|
13267
|
+
'Calling `OrderedSet.prototype.remove` has been deprecated, please use `OrderedSet.prototype.delete` instead.',
|
13268
|
+
this._silenceRemoveDeprecation
|
13269
|
+
);
|
13220
13270
|
|
13221
13271
|
return this["delete"](obj, _guid);
|
13222
13272
|
},
|
@@ -13631,7 +13681,7 @@ enifed('ember-metal/mixin', ['exports', 'ember-metal/core', 'ember-metal/merge',
|
|
13631
13681
|
// Remove "use strict"; from transpiled module until
|
13632
13682
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
13633
13683
|
//
|
13634
|
-
|
13684
|
+
"REMOVE_USE_STRICT: true";
|
13635
13685
|
|
13636
13686
|
/**
|
13637
13687
|
@module ember
|
@@ -14783,8 +14833,7 @@ enifed('ember-metal/platform/create', ['exports', 'ember-metal/platform/define_p
|
|
14783
14833
|
// Remove "use strict"; from transpiled module until
|
14784
14834
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
14785
14835
|
//
|
14786
|
-
|
14787
|
-
//
|
14836
|
+
"REMOVE_USE_STRICT: true";
|
14788
14837
|
|
14789
14838
|
var create;
|
14790
14839
|
// ES5 15.2.3.5
|
@@ -15000,7 +15049,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
|
|
15000
15049
|
})();
|
15001
15050
|
|
15002
15051
|
if (!canDefinePropertyOnDOM) {
|
15003
|
-
defineProperty = function(obj, keyName, desc) {
|
15052
|
+
exports.defineProperty = defineProperty = function(obj, keyName, desc) {
|
15004
15053
|
var isNode;
|
15005
15054
|
|
15006
15055
|
if (typeof Node === "object") {
|
@@ -15020,7 +15069,7 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
|
|
15020
15069
|
}
|
15021
15070
|
|
15022
15071
|
if (!hasES5CompliantDefineProperty) {
|
15023
|
-
defineProperty = function definePropertyPolyfill(obj, keyName, desc) {
|
15072
|
+
exports.defineProperty = defineProperty = function definePropertyPolyfill(obj, keyName, desc) {
|
15024
15073
|
if (!desc.get) { obj[keyName] = desc.value; }
|
15025
15074
|
};
|
15026
15075
|
}
|
@@ -15029,7 +15078,6 @@ enifed('ember-metal/platform/define_property', ['exports'], function (exports) {
|
|
15029
15078
|
var canDefineNonEnumerableProperties = hasES5CompliantDefineProperty;
|
15030
15079
|
|
15031
15080
|
exports.hasES5CompliantDefineProperty = hasES5CompliantDefineProperty;
|
15032
|
-
exports.defineProperty = defineProperty;
|
15033
15081
|
exports.hasPropertyAccessors = hasPropertyAccessors;
|
15034
15082
|
exports.canDefineNonEnumerableProperties = canDefineNonEnumerableProperties;
|
15035
15083
|
|
@@ -17072,7 +17120,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
17072
17120
|
// Remove "use strict"; from transpiled module until
|
17073
17121
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
17074
17122
|
//
|
17075
|
-
|
17123
|
+
"REMOVE_USE_STRICT: true";
|
17076
17124
|
|
17077
17125
|
var _uuid = 0;
|
17078
17126
|
|
@@ -17724,7 +17772,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
17724
17772
|
|
17725
17773
|
var tryFinally;
|
17726
17774
|
if (needsFinallyFix) {
|
17727
|
-
tryFinally = function(tryable, finalizer, binding) {
|
17775
|
+
exports.tryFinally = tryFinally = function(tryable, finalizer, binding) {
|
17728
17776
|
var result, finalResult, finalError;
|
17729
17777
|
|
17730
17778
|
binding = binding || this;
|
@@ -17744,7 +17792,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
17744
17792
|
return (finalResult === undefined) ? result : finalResult;
|
17745
17793
|
};
|
17746
17794
|
} else {
|
17747
|
-
tryFinally = function(tryable, finalizer, binding) {
|
17795
|
+
exports.tryFinally = tryFinally = function(tryable, finalizer, binding) {
|
17748
17796
|
var result, finalResult;
|
17749
17797
|
|
17750
17798
|
binding = binding || this;
|
@@ -17800,7 +17848,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
17800
17848
|
*/
|
17801
17849
|
var tryCatchFinally;
|
17802
17850
|
if (needsFinallyFix) {
|
17803
|
-
tryCatchFinally = function(tryable, catchable, finalizer, binding) {
|
17851
|
+
exports.tryCatchFinally = tryCatchFinally = function(tryable, catchable, finalizer, binding) {
|
17804
17852
|
var result, finalResult, finalError;
|
17805
17853
|
|
17806
17854
|
binding = binding || this;
|
@@ -17822,7 +17870,7 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
17822
17870
|
return (finalResult === undefined) ? result : finalResult;
|
17823
17871
|
};
|
17824
17872
|
} else {
|
17825
|
-
tryCatchFinally = function(tryable, catchable, finalizer, binding) {
|
17873
|
+
exports.tryCatchFinally = tryCatchFinally = function(tryable, catchable, finalizer, binding) {
|
17826
17874
|
var result, finalResult;
|
17827
17875
|
|
17828
17876
|
binding = binding || this;
|
@@ -18020,8 +18068,6 @@ enifed('ember-metal/utils', ['exports', 'ember-metal/core', 'ember-metal/platfor
|
|
18020
18068
|
exports.GUID_KEY = GUID_KEY;
|
18021
18069
|
exports.META_DESC = META_DESC;
|
18022
18070
|
exports.EMPTY_META = EMPTY_META;
|
18023
|
-
exports.tryCatchFinally = tryCatchFinally;
|
18024
|
-
exports.tryFinally = tryFinally;
|
18025
18071
|
|
18026
18072
|
});
|
18027
18073
|
enifed('ember-metal/watch_key', ['exports', 'ember-metal/core', 'ember-metal/utils', 'ember-metal/platform/define_property', 'ember-metal/properties'], function (exports, Ember, utils, define_property, properties) {
|
@@ -18738,7 +18784,7 @@ enifed('ember-routing-htmlbars/helpers/query-params', ['exports', 'ember-metal/c
|
|
18738
18784
|
}
|
18739
18785
|
|
18740
18786
|
});
|
18741
|
-
enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view'], function (exports, Ember, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView) {
|
18787
|
+
enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core', 'ember-metal/error', 'ember-runtime/system/string', 'ember-routing/system/generate_controller', 'ember-metal/streams/utils', 'ember-htmlbars/system/merge-view-bindings', 'ember-htmlbars/system/append-templated-view', 'ember-metal/platform/create'], function (exports, Ember, EmberError, string, generate_controller, utils, mergeViewBindings, appendTemplatedView, create) {
|
18742
18788
|
|
18743
18789
|
'use strict';
|
18744
18790
|
|
@@ -18788,8 +18834,19 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
|
|
18788
18834
|
name = name.replace(/\//g, '.');
|
18789
18835
|
// \ legacy slash as namespace support
|
18790
18836
|
|
18837
|
+
var templateName = 'template:' + name;
|
18838
|
+
Ember['default'].assert(
|
18839
|
+
"You used `{{render '" + name + "'}}`, but '" + name + "' can not be " +
|
18840
|
+
"found as either a template or a view.",
|
18841
|
+
container._registry.has("view:" + name) || container._registry.has(templateName) || !!options.template
|
18842
|
+
);
|
18791
18843
|
|
18792
|
-
|
18844
|
+
var template = options.template;
|
18845
|
+
view = container.lookup('view:' + name);
|
18846
|
+
if (!view) {
|
18847
|
+
view = container.lookup('view:default');
|
18848
|
+
template = template || container.lookup(templateName);
|
18849
|
+
}
|
18793
18850
|
|
18794
18851
|
// provide controller override
|
18795
18852
|
var controllerName;
|
@@ -18838,14 +18895,6 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
|
|
18838
18895
|
|
18839
18896
|
hash.viewName = string.camelize(name);
|
18840
18897
|
|
18841
|
-
var templateName = 'template:' + name;
|
18842
|
-
Ember['default'].assert(
|
18843
|
-
"You used `{{render '" + name + "'}}`, but '" + name + "' can not be " +
|
18844
|
-
"found as either a template or a view.",
|
18845
|
-
container._registry.has("view:" + name) || container._registry.has(templateName) || !!options.template
|
18846
|
-
);
|
18847
|
-
var template = options.template || container.lookup(templateName);
|
18848
|
-
|
18849
18898
|
if (router && !initialContext) {
|
18850
18899
|
router._connectActiveView(name, view);
|
18851
18900
|
}
|
@@ -18856,10 +18905,55 @@ enifed('ember-routing-htmlbars/helpers/render', ['exports', 'ember-metal/core',
|
|
18856
18905
|
helperName: 'render "' + name + '"'
|
18857
18906
|
};
|
18858
18907
|
|
18908
|
+
impersonateAnOutlet(currentView, view, name);
|
18859
18909
|
mergeViewBindings['default'](currentView, props, hash);
|
18860
18910
|
appendTemplatedView['default'](currentView, options.morph, view, props);
|
18861
18911
|
}
|
18862
18912
|
|
18913
|
+
// Megahax to make outlets inside the render helper work, until we
|
18914
|
+
// can kill that behavior at 2.0.
|
18915
|
+
function impersonateAnOutlet(currentView, view, name) {
|
18916
|
+
view._childOutlets = Ember['default'].A();
|
18917
|
+
view._isOutlet = true;
|
18918
|
+
view._outletName = '__ember_orphans__';
|
18919
|
+
view._matchOutletName = name;
|
18920
|
+
view.setOutletState = function(state) {
|
18921
|
+
var ownState;
|
18922
|
+
if (state && (ownState = state.outlets[this._matchOutletName])) {
|
18923
|
+
this._outletState = {
|
18924
|
+
render: { name: 'render helper stub' },
|
18925
|
+
outlets: create['default'](null)
|
18926
|
+
};
|
18927
|
+
this._outletState.outlets[ownState.render.outlet] = ownState;
|
18928
|
+
ownState.wasUsed = true;
|
18929
|
+
} else {
|
18930
|
+
this._outletState = null;
|
18931
|
+
}
|
18932
|
+
for (var i = 0; i < this._childOutlets.length; i++) {
|
18933
|
+
var child = this._childOutlets[i];
|
18934
|
+
child.setOutletState(this._outletState && this._outletState.outlets[child._outletName]);
|
18935
|
+
}
|
18936
|
+
};
|
18937
|
+
|
18938
|
+
var pointer = currentView;
|
18939
|
+
var po;
|
18940
|
+
while (pointer && !pointer._isOutlet) {
|
18941
|
+
pointer = pointer._parentView;
|
18942
|
+
}
|
18943
|
+
while (pointer && (po = pointer._parentOutlet())) {
|
18944
|
+
pointer = po;
|
18945
|
+
}
|
18946
|
+
if (pointer) {
|
18947
|
+
// we've found the toplevel outlet. Subscribe to its
|
18948
|
+
// __ember_orphan__ child outlet, which is our hack convention for
|
18949
|
+
// stashing outlet state that may target the render helper.
|
18950
|
+
pointer._childOutlets.push(view);
|
18951
|
+
if (pointer._outletState) {
|
18952
|
+
view.setOutletState(pointer._outletState.outlets[view._outletName]);
|
18953
|
+
}
|
18954
|
+
}
|
18955
|
+
}
|
18956
|
+
|
18863
18957
|
});
|
18864
18958
|
enifed('ember-routing-views', ['exports', 'ember-metal/core', 'ember-routing-views/views/link', 'ember-routing-views/views/outlet'], function (exports, Ember, link, outlet) {
|
18865
18959
|
|
@@ -19081,7 +19175,10 @@ enifed('ember-routing-views/views/link', ['exports', 'ember-metal/core', 'ember-
|
|
19081
19175
|
init: function() {
|
19082
19176
|
this._super.apply(this, arguments);
|
19083
19177
|
|
19084
|
-
Ember['default'].deprecate(
|
19178
|
+
Ember['default'].deprecate(
|
19179
|
+
'Using currentWhen with {{link-to}} is deprecated in favor of `current-when`.',
|
19180
|
+
!this.currentWhen
|
19181
|
+
);
|
19085
19182
|
|
19086
19183
|
// Map desired event name to invoke function
|
19087
19184
|
var eventName = property_get.get(this, 'eventName');
|
@@ -19501,7 +19598,7 @@ enifed('ember-routing-views/views/outlet', ['exports', 'ember-views/views/contai
|
|
19501
19598
|
var CoreOutletView = ContainerView['default'].extend({
|
19502
19599
|
init: function() {
|
19503
19600
|
this._super();
|
19504
|
-
this._childOutlets =
|
19601
|
+
this._childOutlets = Ember.A();
|
19505
19602
|
this._outletState = null;
|
19506
19603
|
},
|
19507
19604
|
|
@@ -20066,7 +20163,7 @@ enifed('ember-routing/location/api', ['exports', 'ember-metal/core', 'ember-meta
|
|
20066
20163
|
*/
|
20067
20164
|
registerImplementation: function(name, implementation) {
|
20068
20165
|
Ember['default'].deprecate('Using the Ember.Location.registerImplementation is no longer supported.' +
|
20069
|
-
' Register your custom location implementation with the container instead.'
|
20166
|
+
' Register your custom location implementation with the container instead.');
|
20070
20167
|
|
20071
20168
|
this.implementations[name] = implementation;
|
20072
20169
|
},
|
@@ -20947,7 +21044,7 @@ enifed('ember-routing/system/controller_for', ['exports'], function (exports) {
|
|
20947
21044
|
exports['default'] = controllerFor;
|
20948
21045
|
|
20949
21046
|
});
|
20950
|
-
enifed('ember-routing/system/dsl', ['exports', 'ember-metal/core'], function (exports, Ember) {
|
21047
|
+
enifed('ember-routing/system/dsl', ['exports', 'ember-metal/core', 'ember-metal/array'], function (exports, Ember, array) {
|
20951
21048
|
|
20952
21049
|
'use strict';
|
20953
21050
|
|
@@ -20975,7 +21072,7 @@ enifed('ember-routing/system/dsl', ['exports', 'ember-metal/core'], function (ex
|
|
20975
21072
|
(function() {
|
20976
21073
|
if (options.overrideNameAssertion === true) { return true; }
|
20977
21074
|
|
20978
|
-
return ['array', 'basic', 'object', 'application']
|
21075
|
+
return array.indexOf.call(['array', 'basic', 'object', 'application'], name) === -1;
|
20979
21076
|
})()
|
20980
21077
|
);
|
20981
21078
|
|
@@ -21353,7 +21450,7 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
21353
21450
|
variable and getQueryParamsFor, using the supplied routeName.
|
21354
21451
|
|
21355
21452
|
@method paramsFor
|
21356
|
-
@param {String}
|
21453
|
+
@param {String} name
|
21357
21454
|
|
21358
21455
|
*/
|
21359
21456
|
paramsFor: function(name) {
|
@@ -21719,6 +21816,38 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
21719
21816
|
@param {Transition} transition
|
21720
21817
|
*/
|
21721
21818
|
|
21819
|
+
/**
|
21820
|
+
This event is triggered when the router enters the route. It is
|
21821
|
+
not executed when the model for the route changes.
|
21822
|
+
|
21823
|
+
```javascript
|
21824
|
+
App.ApplicationRoute = Ember.Route.extend({
|
21825
|
+
collectAnalytics: function(){
|
21826
|
+
collectAnalytics();
|
21827
|
+
}.on('activate')
|
21828
|
+
});
|
21829
|
+
```
|
21830
|
+
|
21831
|
+
@event activate
|
21832
|
+
@since 1.9.0
|
21833
|
+
*/
|
21834
|
+
|
21835
|
+
/**
|
21836
|
+
This event is triggered when the router completely exits this
|
21837
|
+
route. It is not executed when the model for the route changes.
|
21838
|
+
|
21839
|
+
```javascript
|
21840
|
+
App.IndexRoute = Ember.Route.extend({
|
21841
|
+
trackPageLeaveAnalytics: function(){
|
21842
|
+
trackPageLeaveAnalytics();
|
21843
|
+
}.on('deactivate')
|
21844
|
+
});
|
21845
|
+
```
|
21846
|
+
|
21847
|
+
@event deactivate
|
21848
|
+
@since 1.9.0
|
21849
|
+
*/
|
21850
|
+
|
21722
21851
|
/**
|
21723
21852
|
The controller associated with this route.
|
21724
21853
|
|
@@ -22967,27 +23096,45 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
22967
23096
|
disconnectOutlet: function(options) {
|
22968
23097
|
var outletName;
|
22969
23098
|
var parentView;
|
22970
|
-
var parent;
|
22971
23099
|
if (!options || typeof options === "string") {
|
22972
23100
|
outletName = options;
|
22973
23101
|
} else {
|
22974
23102
|
outletName = options.outlet;
|
22975
23103
|
parentView = options.parentView;
|
22976
23104
|
}
|
22977
|
-
|
22978
23105
|
parentView = parentView && parentView.replace(/\//g, '.');
|
22979
|
-
|
23106
|
+
outletName = outletName || 'main';
|
23107
|
+
this._disconnectOutlet(outletName, parentView);
|
23108
|
+
for (var i = 0; i < this.router.router.currentHandlerInfos.length; i++) {
|
23109
|
+
// This non-local state munging is sadly necessary to maintain
|
23110
|
+
// backward compatibility with our existing semantics, which allow
|
23111
|
+
// any route to disconnectOutlet things originally rendered by any
|
23112
|
+
// other route. This should all get cut in 2.0.
|
23113
|
+
this.router.router.
|
23114
|
+
currentHandlerInfos[i].handler._disconnectOutlet(outletName, parentView);
|
23115
|
+
}
|
23116
|
+
},
|
23117
|
+
|
23118
|
+
_disconnectOutlet: function(outletName, parentView) {
|
23119
|
+
var parent = parentRoute(this);
|
22980
23120
|
if (parent && parentView === parent.routeName) {
|
22981
23121
|
parentView = undefined;
|
22982
23122
|
}
|
22983
|
-
outletName = outletName || 'main';
|
22984
|
-
|
22985
23123
|
for (var i = 0; i < this.connections.length; i++) {
|
22986
23124
|
var connection = this.connections[i];
|
22987
23125
|
if (connection.outlet === outletName && connection.into === parentView) {
|
22988
|
-
|
23126
|
+
// This neuters the disconnected outlet such that it doesn't
|
23127
|
+
// render anything, but it leaves an entry in the outlet
|
23128
|
+
// hierarchy so that any existing other renders that target it
|
23129
|
+
// don't suddenly blow up. They will still stick themselves
|
23130
|
+
// into its outlets, which won't render anywhere. All of this
|
23131
|
+
// statefulness should get the machete in 2.0.
|
23132
|
+
this.connections[i] = {
|
23133
|
+
into: connection.into,
|
23134
|
+
outlet: connection.outlet,
|
23135
|
+
name: connection.name
|
23136
|
+
};
|
22989
23137
|
run['default'].once(this.router, '_setOutlets');
|
22990
|
-
return;
|
22991
23138
|
}
|
22992
23139
|
}
|
22993
23140
|
},
|
@@ -23079,8 +23226,6 @@ enifed('ember-routing/system/route', ['exports', 'ember-metal/core', 'ember-meta
|
|
23079
23226
|
}
|
23080
23227
|
}
|
23081
23228
|
|
23082
|
-
Ember['default'].assert("An outlet ("+outlet+") was specified but was not found.", outlet === 'main' || into);
|
23083
|
-
|
23084
23229
|
var parent;
|
23085
23230
|
if (into && (parent = parentRoute(route)) && into === parentRoute(route).routeName) {
|
23086
23231
|
into = undefined;
|
@@ -23320,15 +23465,18 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
|
|
23320
23465
|
|
23321
23466
|
for (var i = 0; i < handlerInfos.length; i++) {
|
23322
23467
|
route = handlerInfos[i].handler;
|
23323
|
-
var connections =
|
23468
|
+
var connections = route.connections;
|
23324
23469
|
var ownState;
|
23325
23470
|
for (var j = 0; j < connections.length; j++) {
|
23326
23471
|
var appended = appendLiveRoute(liveRoutes, defaultParentState, connections[j]);
|
23327
23472
|
liveRoutes = appended.liveRoutes;
|
23328
|
-
if (appended.ownState.render.name === route.routeName) {
|
23473
|
+
if (appended.ownState.render.name === route.routeName || appended.ownState.render.outlet === 'main') {
|
23329
23474
|
ownState = appended.ownState;
|
23330
23475
|
}
|
23331
23476
|
}
|
23477
|
+
if (connections.length === 0) {
|
23478
|
+
ownState = representEmptyRoute(liveRoutes, defaultParentState, route);
|
23479
|
+
}
|
23332
23480
|
defaultParentState = ownState;
|
23333
23481
|
}
|
23334
23482
|
if (!this._toplevelView) {
|
@@ -24140,8 +24288,17 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
|
|
24140
24288
|
if (target) {
|
24141
24289
|
property_set.set(target.outlets, renderOptions.outlet, myState);
|
24142
24290
|
} else {
|
24143
|
-
|
24144
|
-
|
24291
|
+
if (renderOptions.into) {
|
24292
|
+
// Megahax time. Post-2.0-breaking-changes, we will just assert
|
24293
|
+
// right here that the user tried to target a nonexistent
|
24294
|
+
// thing. But for now we still need to support the `render`
|
24295
|
+
// helper, and people are allowed to target templates rendered
|
24296
|
+
// by the render helper. So instead we defer doing anyting with
|
24297
|
+
// these orphan renders until afterRender.
|
24298
|
+
appendOrphan(liveRoutes, renderOptions.into, myState);
|
24299
|
+
} else {
|
24300
|
+
liveRoutes = myState;
|
24301
|
+
}
|
24145
24302
|
}
|
24146
24303
|
return {
|
24147
24304
|
liveRoutes: liveRoutes,
|
@@ -24149,36 +24306,47 @@ enifed('ember-routing/system/router', ['exports', 'ember-metal/core', 'ember-met
|
|
24149
24306
|
};
|
24150
24307
|
}
|
24151
24308
|
|
24152
|
-
function
|
24153
|
-
|
24154
|
-
|
24155
|
-
|
24156
|
-
|
24157
|
-
|
24158
|
-
|
24159
|
-
|
24160
|
-
mainConnections.push(connection);
|
24161
|
-
} else {
|
24162
|
-
otherConnections.push(connection);
|
24163
|
-
}
|
24309
|
+
function appendOrphan(liveRoutes, into, myState) {
|
24310
|
+
if (!liveRoutes.outlets.__ember_orphans__) {
|
24311
|
+
liveRoutes.outlets.__ember_orphans__ = {
|
24312
|
+
render: {
|
24313
|
+
name: '__ember_orphans__'
|
24314
|
+
},
|
24315
|
+
outlets: create['default'](null)
|
24316
|
+
};
|
24164
24317
|
}
|
24318
|
+
liveRoutes.outlets.__ember_orphans__.outlets[into] = myState;
|
24319
|
+
Ember['default'].run.schedule('afterRender', function() {
|
24320
|
+
// `wasUsed` gets set by the render helper. See the function
|
24321
|
+
// `impersonateAnOutlet`.
|
24322
|
+
Ember['default'].assert("You attempted to render into '" + into + "' but it was not found",
|
24323
|
+
liveRoutes.outlets.__ember_orphans__.outlets[into].wasUsed);
|
24324
|
+
});
|
24325
|
+
}
|
24165
24326
|
|
24166
|
-
|
24167
|
-
|
24168
|
-
|
24169
|
-
|
24170
|
-
|
24171
|
-
|
24172
|
-
|
24173
|
-
|
24327
|
+
function representEmptyRoute(liveRoutes, defaultParentState, route) {
|
24328
|
+
// the route didn't render anything
|
24329
|
+
var alreadyAppended = findLiveRoute(liveRoutes, route.routeName);
|
24330
|
+
if (alreadyAppended) {
|
24331
|
+
// But some other route has already rendered our default
|
24332
|
+
// template, so that becomes the default target for any
|
24333
|
+
// children we may have.
|
24334
|
+
return alreadyAppended;
|
24335
|
+
} else {
|
24336
|
+
// Create an entry to represent our default template name,
|
24337
|
+
// just so other routes can target it and inherit its place
|
24338
|
+
// in the outlet hierarchy.
|
24339
|
+
defaultParentState.outlets.main = {
|
24340
|
+
render: {
|
24341
|
+
name: route.routeName,
|
24342
|
+
outlet: 'main'
|
24343
|
+
},
|
24344
|
+
outlets: {}
|
24345
|
+
};
|
24346
|
+
return defaultParentState;
|
24174
24347
|
}
|
24175
|
-
|
24176
|
-
// We process main connections first, because a main connection may
|
24177
|
-
// be targeted by other connections.
|
24178
|
-
return mainConnections.concat(otherConnections);
|
24179
24348
|
}
|
24180
24349
|
|
24181
|
-
|
24182
24350
|
exports['default'] = EmberRouter;
|
24183
24351
|
|
24184
24352
|
});
|
@@ -26365,7 +26533,7 @@ enifed('ember-runtime/computed/reduce_computed_macros', ['exports', 'ember-metal
|
|
26365
26533
|
exports.union = union;
|
26366
26534
|
|
26367
26535
|
});
|
26368
|
-
enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/enumerable_utils', 'ember-runtime/system/array_proxy', 'ember-runtime/mixins/sortable', 'ember-runtime/mixins/controller', 'ember-metal/computed', 'ember-metal/error'], function (exports, Ember, property_get, enumerable_utils, ArrayProxy, SortableMixin, ControllerMixin, computed, EmberError) {
|
26536
|
+
enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/core', 'ember-metal/property_get', 'ember-metal/enumerable_utils', 'ember-runtime/system/array_proxy', 'ember-runtime/mixins/sortable', 'ember-runtime/mixins/controller', 'ember-metal/computed', 'ember-metal/error', 'ember-runtime/mixins/array'], function (exports, Ember, property_get, enumerable_utils, ArrayProxy, SortableMixin, ControllerMixin, computed, EmberError, EmberArray) {
|
26369
26537
|
|
26370
26538
|
'use strict';
|
26371
26539
|
|
@@ -26475,7 +26643,17 @@ enifed('ember-runtime/controllers/array_controller', ['exports', 'ember-metal/co
|
|
26475
26643
|
this._subControllers = [];
|
26476
26644
|
},
|
26477
26645
|
|
26478
|
-
model: computed.computed(function () {
|
26646
|
+
model: computed.computed(function (key, value) {
|
26647
|
+
if (arguments.length > 1) {
|
26648
|
+
Ember['default'].assert(
|
26649
|
+
'ArrayController expects `model` to implement the Ember.Array mixin. ' +
|
26650
|
+
'This can often be fixed by wrapping your model with `Ember.A()`.',
|
26651
|
+
EmberArray['default'].detect(value)
|
26652
|
+
);
|
26653
|
+
|
26654
|
+
return value;
|
26655
|
+
}
|
26656
|
+
|
26479
26657
|
return Ember['default'].A();
|
26480
26658
|
}),
|
26481
26659
|
|
@@ -26559,7 +26737,7 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal/core', '
|
|
26559
26737
|
|
26560
26738
|
function controllerInjectionHelper(factory) {
|
26561
26739
|
Ember['default'].assert("Defining an injected controller property on a " +
|
26562
|
-
"non-controller is not allowed.",
|
26740
|
+
"non-controller is not allowed.", Mixin['default'].detect(factory.PrototypeMixin));
|
26563
26741
|
}
|
26564
26742
|
|
26565
26743
|
/**
|
@@ -26585,8 +26763,9 @@ enifed('ember-runtime/controllers/controller', ['exports', 'ember-metal/core', '
|
|
26585
26763
|
});
|
26586
26764
|
```
|
26587
26765
|
|
26588
|
-
@method
|
26589
|
-
@
|
26766
|
+
@method controller
|
26767
|
+
@since 1.10.0
|
26768
|
+
@for Ember.inject
|
26590
26769
|
@param {String} name (optional) name of the controller to inject, defaults
|
26591
26770
|
to the property's name
|
26592
26771
|
@return {Ember.InjectedProperty} injection descriptor instance
|
@@ -26624,7 +26803,11 @@ enifed('ember-runtime/controllers/object_controller', ['exports', 'ember-metal/c
|
|
26624
26803
|
**/
|
26625
26804
|
exports['default'] = ObjectProxy['default'].extend(ControllerMixin['default'], {
|
26626
26805
|
init: function() {
|
26627
|
-
|
26806
|
+
this._super();
|
26807
|
+
|
26808
|
+
Ember['default'].deprecate(objectControllerDeprecation, this.isGenerated, {
|
26809
|
+
url: 'http://emberjs.com/guides/deprecations/#toc_objectcontroller'
|
26810
|
+
});
|
26628
26811
|
}
|
26629
26812
|
});
|
26630
26813
|
|
@@ -27014,13 +27197,13 @@ enifed('ember-runtime/ext/rsvp', ['exports', 'ember-metal/core', 'ember-metal/lo
|
|
27014
27197
|
|
27015
27198
|
if (Ember['default'].testing && async) { asyncStart(); }
|
27016
27199
|
|
27017
|
-
run['default'].backburner.schedule('actions', function(){
|
27200
|
+
run['default'].backburner.schedule('actions', function() {
|
27018
27201
|
if (Ember['default'].testing && async) { asyncEnd(); }
|
27019
27202
|
callback(promise);
|
27020
27203
|
});
|
27021
27204
|
});
|
27022
27205
|
|
27023
|
-
RSVP.Promise.prototype.fail = function(callback, label){
|
27206
|
+
RSVP.Promise.prototype.fail = function(callback, label) {
|
27024
27207
|
Ember['default'].deprecate('RSVP.Promise.fail has been renamed as RSVP.Promise.catch');
|
27025
27208
|
return this['catch'](callback, label);
|
27026
27209
|
};
|
@@ -27192,7 +27375,8 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/core', 'ember-metal/enum
|
|
27192
27375
|
|
27193
27376
|
@private
|
27194
27377
|
@method createInjectionHelper
|
27195
|
-
@
|
27378
|
+
@since 1.10.0
|
27379
|
+
@for Ember
|
27196
27380
|
@param {String} type The container type the helper will inject
|
27197
27381
|
@param {Function} validator A validation callback that is executed at mixin-time
|
27198
27382
|
*/
|
@@ -27210,7 +27394,8 @@ enifed('ember-runtime/inject', ['exports', 'ember-metal/core', 'ember-metal/enum
|
|
27210
27394
|
|
27211
27395
|
@private
|
27212
27396
|
@method validatePropertyInjections
|
27213
|
-
@
|
27397
|
+
@since 1.10.0
|
27398
|
+
@for Ember
|
27214
27399
|
@param {Object} factory The factory object
|
27215
27400
|
*/
|
27216
27401
|
function validatePropertyInjections(factory) {
|
@@ -27304,7 +27489,8 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-metal/core', 'ember-met
|
|
27304
27489
|
Ember['default'].deprecate(
|
27305
27490
|
string.fmt('You attempted to access `%@` from `%@`, but object proxying is deprecated. ' +
|
27306
27491
|
'Please use `model.%@` instead.', [key, this, key]),
|
27307
|
-
!this.isController
|
27492
|
+
!this.isController,
|
27493
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_objectcontroller' }
|
27308
27494
|
);
|
27309
27495
|
return property_get.get(content, key);
|
27310
27496
|
}
|
@@ -27326,7 +27512,8 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-metal/core', 'ember-met
|
|
27326
27512
|
Ember['default'].deprecate(
|
27327
27513
|
string.fmt('You attempted to set `%@` from `%@`, but object proxying is deprecated. ' +
|
27328
27514
|
'Please use `model.%@` instead.', [key, this, key]),
|
27329
|
-
!this.isController
|
27515
|
+
!this.isController,
|
27516
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_objectcontroller' }
|
27330
27517
|
);
|
27331
27518
|
return property_set.set(content, key, value);
|
27332
27519
|
}
|
@@ -27483,7 +27670,7 @@ enifed('ember-runtime/mixins/action_handler', ['exports', 'ember-metal/merge', '
|
|
27483
27670
|
hashName = 'actions';
|
27484
27671
|
} else if (utils.typeOf(props.events) === 'object') {
|
27485
27672
|
Ember.deprecate('Action handlers contained in an `events` object are deprecated in favor' +
|
27486
|
-
' of putting them in an `actions` object'
|
27673
|
+
' of putting them in an `actions` object');
|
27487
27674
|
hashName = 'events';
|
27488
27675
|
}
|
27489
27676
|
|
@@ -28151,7 +28338,7 @@ enifed('ember-runtime/mixins/controller_content_model_alias_deprecation', ['expo
|
|
28151
28338
|
props.model = props.content;
|
28152
28339
|
delete props['content'];
|
28153
28340
|
|
28154
|
-
Ember['default'].deprecate('Do not specify `content` on a Controller, use `model` instead.'
|
28341
|
+
Ember['default'].deprecate('Do not specify `content` on a Controller, use `model` instead.');
|
28155
28342
|
}
|
28156
28343
|
}
|
28157
28344
|
});
|
@@ -28260,7 +28447,11 @@ enifed('ember-runtime/mixins/deferred', ['exports', 'ember-metal/core', 'ember-m
|
|
28260
28447
|
},
|
28261
28448
|
|
28262
28449
|
_deferred: computed.computed(function() {
|
28263
|
-
Ember['default'].deprecate(
|
28450
|
+
Ember['default'].deprecate(
|
28451
|
+
'Usage of Ember.DeferredMixin or Ember.Deferred is deprecated.',
|
28452
|
+
this._suppressDeferredDeprecation,
|
28453
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_ember-deferredmixin-and-ember-deferred' }
|
28454
|
+
);
|
28264
28455
|
|
28265
28456
|
return RSVP['default'].defer('Ember: DeferredMixin - ' + this);
|
28266
28457
|
})
|
@@ -30315,7 +30506,11 @@ enifed('ember-runtime/mixins/observable', ['exports', 'ember-metal/core', 'ember
|
|
30315
30506
|
},
|
30316
30507
|
|
30317
30508
|
addBeforeObserver: function(key, target, method) {
|
30318
|
-
Ember['default'].deprecate(
|
30509
|
+
Ember['default'].deprecate(
|
30510
|
+
'Before observers are deprecated and will be removed in a future release. If you want to keep track of previous values you have to implement it yourself.',
|
30511
|
+
false,
|
30512
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_beforeobserver' }
|
30513
|
+
);
|
30319
30514
|
observer.addBeforeObserver(this, key, target, method);
|
30320
30515
|
},
|
30321
30516
|
|
@@ -31465,7 +31660,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-metal', 'ember-met
|
|
31465
31660
|
// Remove "use strict"; from transpiled module until
|
31466
31661
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
31467
31662
|
//
|
31468
|
-
|
31663
|
+
"REMOVE_USE_STRICT: true";
|
31469
31664
|
|
31470
31665
|
/**
|
31471
31666
|
@module ember
|
@@ -32338,7 +32533,11 @@ enifed('ember-runtime/system/deferred', ['exports', 'ember-metal/core', 'ember-r
|
|
32338
32533
|
|
32339
32534
|
var Deferred = EmberObject['default'].extend(DeferredMixin['default'], {
|
32340
32535
|
init: function() {
|
32341
|
-
Ember['default'].deprecate(
|
32536
|
+
Ember['default'].deprecate(
|
32537
|
+
'Usage of Ember.Deferred is deprecated.',
|
32538
|
+
false,
|
32539
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_deferredmixin-and-ember-deferred' }
|
32540
|
+
);
|
32342
32541
|
this._super.apply(this, arguments);
|
32343
32542
|
}
|
32344
32543
|
});
|
@@ -32923,7 +33122,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
32923
33122
|
}
|
32924
33123
|
});
|
32925
33124
|
|
32926
|
-
NativeArray = NativeArray.without.apply(NativeArray, ignore);
|
33125
|
+
exports.NativeArray = NativeArray = NativeArray.without.apply(NativeArray, ignore);
|
32927
33126
|
|
32928
33127
|
/**
|
32929
33128
|
Creates an `Ember.NativeArray` from an Array like object.
|
@@ -32980,7 +33179,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
32980
33179
|
NativeArray.activate = function() {
|
32981
33180
|
NativeArray.apply(Array.prototype);
|
32982
33181
|
|
32983
|
-
A = function(arr) { return arr || []; };
|
33182
|
+
exports.A = A = function(arr) { return arr || []; };
|
32984
33183
|
};
|
32985
33184
|
|
32986
33185
|
if (Ember['default'].EXTEND_PROTOTYPES === true || Ember['default'].EXTEND_PROTOTYPES.Array) {
|
@@ -32991,7 +33190,6 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal/core', 'emb
|
|
32991
33190
|
exports['default'] = NativeArray;
|
32992
33191
|
|
32993
33192
|
exports.A = A;
|
32994
|
-
exports.NativeArray = NativeArray;
|
32995
33193
|
|
32996
33194
|
});
|
32997
33195
|
enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, CoreObject, Observable) {
|
@@ -33028,6 +33226,7 @@ enifed('ember-runtime/system/service', ['exports', 'ember-runtime/system/object'
|
|
33028
33226
|
@class Service
|
33029
33227
|
@namespace Ember
|
33030
33228
|
@extends Ember.Object
|
33229
|
+
@since 1.10.0
|
33031
33230
|
*/
|
33032
33231
|
exports['default'] = Object['default'].extend();
|
33033
33232
|
|
@@ -34510,7 +34709,7 @@ enifed('ember-template-compiler/system/compile_options', ['exports', 'ember-meta
|
|
34510
34709
|
var disableComponentGeneration = true;
|
34511
34710
|
|
34512
34711
|
return {
|
34513
|
-
revision: 'Ember@1.11.0
|
34712
|
+
revision: 'Ember@1.11.0',
|
34514
34713
|
|
34515
34714
|
disableComponentGeneration: disableComponentGeneration,
|
34516
34715
|
|
@@ -34669,13 +34868,12 @@ enifed('ember-testing/adapters/qunit', ['exports', 'ember-testing/adapters/adapt
|
|
34669
34868
|
});
|
34670
34869
|
|
34671
34870
|
});
|
34672
|
-
enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test'], function (Ember, property_get, EmberError, run, jQuery, Test) {
|
34871
|
+
enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get', 'ember-metal/error', 'ember-metal/run_loop', 'ember-views/system/jquery', 'ember-testing/test', 'ember-runtime/ext/rsvp'], function (Ember, property_get, EmberError, run, jQuery, Test, RSVP) {
|
34673
34872
|
|
34674
34873
|
'use strict';
|
34675
34874
|
|
34676
34875
|
var helper = Test['default'].registerHelper;
|
34677
34876
|
var asyncHelper = Test['default'].registerAsyncHelper;
|
34678
|
-
var countAsync = 0;
|
34679
34877
|
|
34680
34878
|
function currentRouteName(app) {
|
34681
34879
|
var appController = app.__container__.lookup('controller:application');
|
@@ -34862,12 +35060,7 @@ enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get',
|
|
34862
35060
|
}
|
34863
35061
|
|
34864
35062
|
function wait(app, value) {
|
34865
|
-
return
|
34866
|
-
// If this is the first async promise, kick off the async test
|
34867
|
-
if (++countAsync === 1) {
|
34868
|
-
Test['default'].adapter.asyncStart();
|
34869
|
-
}
|
34870
|
-
|
35063
|
+
return new RSVP['default'].Promise(function(resolve) {
|
34871
35064
|
// Every 10ms, poll for the async thing to have finished
|
34872
35065
|
var watcher = setInterval(function() {
|
34873
35066
|
var router = app.__container__.lookup('router:main');
|
@@ -34891,11 +35084,6 @@ enifed('ember-testing/helpers', ['ember-metal/core', 'ember-metal/property_get',
|
|
34891
35084
|
// Stop polling
|
34892
35085
|
clearInterval(watcher);
|
34893
35086
|
|
34894
|
-
// If this is the last async promise, end the async test
|
34895
|
-
if (--countAsync === 0) {
|
34896
|
-
Test['default'].adapter.asyncEnd();
|
34897
|
-
}
|
34898
|
-
|
34899
35087
|
// Synchronously resolve the promise
|
34900
35088
|
run['default'](null, resolve, value);
|
34901
35089
|
}, 10);
|
@@ -35547,7 +35735,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35547
35735
|
|
35548
35736
|
return function() {
|
35549
35737
|
var args = slice.call(arguments);
|
35550
|
-
var lastPromise
|
35738
|
+
var lastPromise;
|
35551
35739
|
|
35552
35740
|
args.unshift(app);
|
35553
35741
|
|
@@ -35558,35 +35746,28 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35558
35746
|
return fn.apply(app, args);
|
35559
35747
|
}
|
35560
35748
|
|
35561
|
-
|
35562
|
-
|
35563
|
-
|
35564
|
-
} else {
|
35565
|
-
// wait for last helper's promise to resolve and then
|
35566
|
-
// execute. To be safe, we need to tell the adapter we're going
|
35567
|
-
// asynchronous here, because fn may not be invoked before we
|
35568
|
-
// return.
|
35569
|
-
Test.adapter.asyncStart();
|
35570
|
-
run(function() {
|
35571
|
-
lastPromise = Test.resolve(lastPromise).then(function() {
|
35572
|
-
try {
|
35573
|
-
return fn.apply(app, args);
|
35574
|
-
} finally {
|
35575
|
-
Test.adapter.asyncEnd();
|
35576
|
-
}
|
35577
|
-
});
|
35578
|
-
});
|
35579
|
-
}
|
35749
|
+
lastPromise = run(function() {
|
35750
|
+
return Test.resolve(Test.lastPromise);
|
35751
|
+
});
|
35580
35752
|
|
35581
|
-
|
35753
|
+
// wait for last helper's promise to resolve and then
|
35754
|
+
// execute. To be safe, we need to tell the adapter we're going
|
35755
|
+
// asynchronous here, because fn may not be invoked before we
|
35756
|
+
// return.
|
35757
|
+
Test.adapter.asyncStart();
|
35758
|
+
return lastPromise.then(function() {
|
35759
|
+
return fn.apply(app, args);
|
35760
|
+
})["finally"](function() {
|
35761
|
+
Test.adapter.asyncEnd();
|
35762
|
+
});
|
35582
35763
|
};
|
35583
35764
|
}
|
35584
35765
|
|
35585
35766
|
function run(fn) {
|
35586
35767
|
if (!emberRun['default'].currentRunLoop) {
|
35587
|
-
emberRun['default'](fn);
|
35768
|
+
return emberRun['default'](fn);
|
35588
35769
|
} else {
|
35589
|
-
fn();
|
35770
|
+
return fn();
|
35590
35771
|
}
|
35591
35772
|
}
|
35592
35773
|
|
@@ -35750,6 +35931,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35750
35931
|
|
35751
35932
|
Test.Promise.prototype = create['default'](RSVP['default'].Promise.prototype);
|
35752
35933
|
Test.Promise.prototype.constructor = Test.Promise;
|
35934
|
+
Test.Promise.resolve = Test.resolve;
|
35753
35935
|
|
35754
35936
|
// Patch `then` to isolate async methods
|
35755
35937
|
// specifically `Ember.Test.lastPromise`
|
@@ -35766,7 +35948,6 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35766
35948
|
// 1. Set `Ember.Test.lastPromise` to null
|
35767
35949
|
// 2. Invoke method
|
35768
35950
|
// 3. Return the last promise created during method
|
35769
|
-
// 4. Restore `Ember.Test.lastPromise` to original value
|
35770
35951
|
function isolate(fn, val) {
|
35771
35952
|
var value, lastPromise;
|
35772
35953
|
|
@@ -35776,6 +35957,7 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35776
35957
|
value = fn(val);
|
35777
35958
|
|
35778
35959
|
lastPromise = Test.lastPromise;
|
35960
|
+
Test.lastPromise = null;
|
35779
35961
|
|
35780
35962
|
// If the method returned a promise
|
35781
35963
|
// return that promise. If not,
|
@@ -35783,12 +35965,11 @@ enifed('ember-testing/test', ['exports', 'ember-metal/core', 'ember-metal/run_lo
|
|
35783
35965
|
if ((value && (value instanceof Test.Promise)) || !lastPromise) {
|
35784
35966
|
return value;
|
35785
35967
|
} else {
|
35786
|
-
run(function() {
|
35787
|
-
|
35968
|
+
return run(function() {
|
35969
|
+
return Test.resolve(lastPromise).then(function() {
|
35788
35970
|
return value;
|
35789
35971
|
});
|
35790
35972
|
});
|
35791
|
-
return lastPromise;
|
35792
35973
|
}
|
35793
35974
|
}
|
35794
35975
|
|
@@ -35847,7 +36028,7 @@ enifed('ember-views', ['exports', 'ember-runtime', 'ember-views/system/jquery',
|
|
35847
36028
|
exports['default'] = Ember['default'];
|
35848
36029
|
|
35849
36030
|
});
|
35850
|
-
enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/streams/utils', 'ember-metal/run_loop'], function (exports, utils, run) {
|
36031
|
+
enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/core', 'ember-metal/streams/utils', 'ember-metal/run_loop'], function (exports, Ember, utils, run) {
|
35851
36032
|
|
35852
36033
|
'use strict';
|
35853
36034
|
|
@@ -35860,7 +36041,13 @@ enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/streams/util
|
|
35860
36041
|
this.init(attrName, attrValue);
|
35861
36042
|
}
|
35862
36043
|
|
36044
|
+
var styleWarning = 'Binding style attributes may introduce cross-site scripting vulnerabilities; ' +
|
36045
|
+
'please ensure that values being bound are properly escaped. For more information, ' +
|
36046
|
+
'including how to disable this warning, see ' +
|
36047
|
+
'http://emberjs.com/deprecations/v1.x/#toc_warning-when-binding-style-attributes.';
|
36048
|
+
|
35863
36049
|
AttrNode.prototype.init = function init(attrName, simpleAttrValue) {
|
36050
|
+
this.isAttrNode = true;
|
35864
36051
|
this.isView = true;
|
35865
36052
|
|
35866
36053
|
this.tagName = '';
|
@@ -35892,12 +36079,18 @@ enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/streams/util
|
|
35892
36079
|
if (this.isDestroying) {
|
35893
36080
|
return;
|
35894
36081
|
}
|
36082
|
+
|
35895
36083
|
var value = utils.read(this.attrValue);
|
35896
36084
|
|
35897
36085
|
if (this.attrName === 'value' && (value === null || value === undefined)) {
|
35898
36086
|
value = '';
|
35899
36087
|
}
|
35900
36088
|
|
36089
|
+
if (value === undefined) {
|
36090
|
+
value = null;
|
36091
|
+
}
|
36092
|
+
|
36093
|
+
|
35901
36094
|
// If user is typing in a value we don't want to rerender and loose cursor position.
|
35902
36095
|
if (this.hasRenderedInitially && this.attrName === 'value' && this._morph.element.value === value) {
|
35903
36096
|
this.lastValue = value;
|
@@ -35905,12 +36098,31 @@ enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/streams/util
|
|
35905
36098
|
}
|
35906
36099
|
|
35907
36100
|
if (this.lastValue !== null || value !== null) {
|
36101
|
+
this._deprecateEscapedStyle(value);
|
35908
36102
|
this._morph.setContent(value);
|
35909
36103
|
this.lastValue = value;
|
35910
36104
|
this.hasRenderedInitially = true;
|
35911
36105
|
}
|
35912
36106
|
};
|
35913
36107
|
|
36108
|
+
AttrNode.prototype._deprecateEscapedStyle = function AttrNode_deprecateEscapedStyle(value) {
|
36109
|
+
Ember['default'].warn(
|
36110
|
+
styleWarning,
|
36111
|
+
(function(name, value, escaped) {
|
36112
|
+
// SafeString
|
36113
|
+
if (value && value.toHTML) {
|
36114
|
+
return true;
|
36115
|
+
}
|
36116
|
+
|
36117
|
+
if (name !== 'style') {
|
36118
|
+
return true;
|
36119
|
+
}
|
36120
|
+
|
36121
|
+
return !escaped;
|
36122
|
+
}(this.attrName, value, this._morph.escaped))
|
36123
|
+
);
|
36124
|
+
};
|
36125
|
+
|
35914
36126
|
AttrNode.prototype.rerender = function render() {
|
35915
36127
|
this.isDirty = true;
|
35916
36128
|
run['default'].schedule('render', this, this.renderIfDirty);
|
@@ -35927,8 +36139,19 @@ enifed('ember-views/attr_nodes/attr_node', ['exports', 'ember-metal/streams/util
|
|
35927
36139
|
}
|
35928
36140
|
};
|
35929
36141
|
|
36142
|
+
AttrNode.prototype.propertyDidChange = function render() {
|
36143
|
+
};
|
36144
|
+
|
36145
|
+
AttrNode.prototype._notifyBecameHidden = function render() {
|
36146
|
+
};
|
36147
|
+
|
36148
|
+
AttrNode.prototype._notifyBecameVisible = function render() {
|
36149
|
+
};
|
36150
|
+
|
35930
36151
|
exports['default'] = AttrNode;
|
35931
36152
|
|
36153
|
+
exports.styleWarning = styleWarning;
|
36154
|
+
|
35932
36155
|
});
|
35933
36156
|
enifed('ember-views/attr_nodes/legacy_bind', ['exports', './attr_node', 'ember-runtime/system/string', 'ember-metal/utils', 'ember-metal/streams/utils', 'ember-metal/platform/create'], function (exports, AttrNode, string, utils, streams__utils, o_create) {
|
35934
36157
|
|
@@ -35956,14 +36179,15 @@ enifed('ember-views/attr_nodes/legacy_bind', ['exports', './attr_node', 'ember-r
|
|
35956
36179
|
value = null;
|
35957
36180
|
}
|
35958
36181
|
|
35959
|
-
if (this.attrName === 'value' && value === null) {
|
36182
|
+
if ((this.attrName === 'value' || this.attrName === 'src') && value === null) {
|
35960
36183
|
value = '';
|
35961
36184
|
}
|
35962
36185
|
|
35963
36186
|
Ember.assert(string.fmt("Attributes must be numbers, strings or booleans, not %@", [value]),
|
35964
|
-
value === null || value === undefined || utils.typeOf(value) === 'number' || utils.typeOf(value) === 'string' || utils.typeOf(value) === 'boolean');
|
36187
|
+
value === null || value === undefined || utils.typeOf(value) === 'number' || utils.typeOf(value) === 'string' || utils.typeOf(value) === 'boolean' || !!(value && value.toHTML));
|
35965
36188
|
|
35966
36189
|
if (this.lastValue !== null || value !== null) {
|
36190
|
+
this._deprecateEscapedStyle(value);
|
35967
36191
|
this._morph.setContent(value);
|
35968
36192
|
this.lastValue = value;
|
35969
36193
|
}
|
@@ -37611,7 +37835,11 @@ enifed('ember-views/streams/utils', ['exports', 'ember-metal/core', 'ember-metal
|
|
37611
37835
|
if (typeof value === 'string') {
|
37612
37836
|
if (path_cache.isGlobal(value)) {
|
37613
37837
|
viewClass = property_get.get(null, value);
|
37614
|
-
Ember['default'].deprecate(
|
37838
|
+
Ember['default'].deprecate(
|
37839
|
+
'Resolved the view "'+value+'" on the global context. Pass a view name to be looked up on the container instead, such as {{view "select"}}.',
|
37840
|
+
!viewClass,
|
37841
|
+
{ url: 'http://emberjs.com/guides/deprecations/#toc_global-lookup-of-views' }
|
37842
|
+
);
|
37615
37843
|
} else {
|
37616
37844
|
Ember['default'].assert("View requires a container to resolve views not passed in through the context", !!container);
|
37617
37845
|
viewClass = container.lookupFactory('view:'+value);
|
@@ -38715,70 +38943,6 @@ enifed('ember-views/system/renderer', ['exports', 'ember-metal/core', 'ember-met
|
|
38715
38943
|
|
38716
38944
|
exports['default'] = EmberRenderer;
|
38717
38945
|
|
38718
|
-
});
|
38719
|
-
enifed('ember-views/system/sanitize_attribute_value', ['exports'], function (exports) {
|
38720
|
-
|
38721
|
-
'use strict';
|
38722
|
-
|
38723
|
-
/* jshint scripturl:true */
|
38724
|
-
|
38725
|
-
var badProtocols = {
|
38726
|
-
'javascript:': true,
|
38727
|
-
'vbscript:': true
|
38728
|
-
};
|
38729
|
-
|
38730
|
-
var badTags = {
|
38731
|
-
'A': true,
|
38732
|
-
'BODY': true,
|
38733
|
-
'LINK': true,
|
38734
|
-
'IMG': true,
|
38735
|
-
'IFRAME': true
|
38736
|
-
};
|
38737
|
-
|
38738
|
-
var badAttributes = {
|
38739
|
-
'href': true,
|
38740
|
-
'src': true,
|
38741
|
-
'background': true
|
38742
|
-
};
|
38743
|
-
|
38744
|
-
function sanitizeAttributeValue(dom, element, attribute, value) {
|
38745
|
-
var tagName;
|
38746
|
-
|
38747
|
-
if (!element) {
|
38748
|
-
tagName = null;
|
38749
|
-
} else {
|
38750
|
-
tagName = element.tagName;
|
38751
|
-
}
|
38752
|
-
|
38753
|
-
if (value && value.toHTML) {
|
38754
|
-
return value.toHTML();
|
38755
|
-
}
|
38756
|
-
|
38757
|
-
if ((tagName === null || badTags[tagName]) && badAttributes[attribute]) {
|
38758
|
-
// Previously, we relied on creating a new `<a>` element and setting
|
38759
|
-
// its `href` in order to get the DOM to parse and extract its protocol.
|
38760
|
-
// Naive approaches to URL parsing are susceptible to all sorts of XSS
|
38761
|
-
// attacks.
|
38762
|
-
//
|
38763
|
-
// However, this approach does not work in environments without a DOM,
|
38764
|
-
// such as Node & FastBoot. We have extracted the logic for parsing to
|
38765
|
-
// the DOM helper, so that in locations without DOM, we can substitute
|
38766
|
-
// our own robust URL parsing.
|
38767
|
-
//
|
38768
|
-
// This will also allow us to use the new `URL` API in browsers that
|
38769
|
-
// support it, and skip the process of creating an element entirely.
|
38770
|
-
var protocol = dom.protocolForURL(value);
|
38771
|
-
if (badProtocols[protocol] === true) {
|
38772
|
-
return 'unsafe:' + value;
|
38773
|
-
}
|
38774
|
-
}
|
38775
|
-
|
38776
|
-
return value;
|
38777
|
-
}
|
38778
|
-
exports['default'] = sanitizeAttributeValue;
|
38779
|
-
|
38780
|
-
exports.badAttributes = badAttributes;
|
38781
|
-
|
38782
38946
|
});
|
38783
38947
|
enifed('ember-views/system/utils', ['exports'], function (exports) {
|
38784
38948
|
|
@@ -40258,8 +40422,11 @@ enifed('ember-views/views/metamorph_view', ['exports', 'ember-metal/core', 'embe
|
|
40258
40422
|
|
40259
40423
|
init: function() {
|
40260
40424
|
this._super.apply(this, arguments);
|
40261
|
-
Ember['default'].deprecate(
|
40262
|
-
|
40425
|
+
Ember['default'].deprecate(
|
40426
|
+
'Supplying a tagName to Metamorph views is unreliable and is deprecated.' +
|
40427
|
+
' You may be setting the tagName on a Handlebars helper that creates a Metamorph.',
|
40428
|
+
!this.tagName
|
40429
|
+
);
|
40263
40430
|
}
|
40264
40431
|
});
|
40265
40432
|
|
@@ -40288,7 +40455,7 @@ enifed('ember-views/views/select', ['exports', 'ember-metal/enumerable_utils', '
|
|
40288
40455
|
|
40289
40456
|
var selectOptionDefaultTemplate = {
|
40290
40457
|
isHTMLBars: true,
|
40291
|
-
revision: 'Ember@1.11.0
|
40458
|
+
revision: 'Ember@1.11.0',
|
40292
40459
|
render: function(context, env, contextualElement) {
|
40293
40460
|
var lazyValue = context.getStream('view.label');
|
40294
40461
|
|
@@ -42101,6 +42268,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
|
|
42101
42268
|
@namespace Ember
|
42102
42269
|
@extends Ember.CoreView
|
42103
42270
|
*/
|
42271
|
+
// jscs:disable validateIndentation
|
42104
42272
|
var View = CoreView['default'].extend(
|
42105
42273
|
ViewStreamSupport['default'],
|
42106
42274
|
ViewKeywordSupport['default'],
|
@@ -42782,6 +42950,7 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
|
|
42782
42950
|
return scheduledFn;
|
42783
42951
|
}
|
42784
42952
|
});
|
42953
|
+
// jscs:enable validateIndentation
|
42785
42954
|
|
42786
42955
|
deprecate_property.deprecateProperty(View.prototype, 'state', '_state');
|
42787
42956
|
deprecate_property.deprecateProperty(View.prototype, 'states', '_states');
|
@@ -42804,14 +42973,14 @@ enifed('ember-views/views/view', ['exports', 'ember-metal/core', 'ember-runtime/
|
|
42804
42973
|
on a destroyed view.
|
42805
42974
|
*/
|
42806
42975
|
|
42807
|
-
|
42976
|
+
// in the destroyed state, everything is illegal
|
42808
42977
|
|
42809
|
-
|
42978
|
+
// before rendering has begun, all legal manipulations are noops.
|
42810
42979
|
|
42811
|
-
|
42980
|
+
// inside the buffer, legal manipulations are done on the buffer
|
42812
42981
|
|
42813
|
-
|
42814
|
-
|
42982
|
+
// once the view has been inserted into the DOM, legal manipulations
|
42983
|
+
// are done on the DOM element.
|
42815
42984
|
|
42816
42985
|
var mutation = EmberObject['default'].extend(Evented['default']).create();
|
42817
42986
|
// TODO MOVE TO RENDERER HOOKS
|
@@ -42951,7 +43120,10 @@ enifed('ember', ['ember-metal', 'ember-runtime', 'ember-views', 'ember-routing',
|
|
42951
43120
|
@module ember
|
42952
43121
|
*/
|
42953
43122
|
|
42954
|
-
Ember.deprecate(
|
43123
|
+
Ember.deprecate(
|
43124
|
+
'Usage of Ember is deprecated for Internet Explorer 6 and 7, support will be removed in the next major version.',
|
43125
|
+
!environment['default'].userAgent.match(/MSIE [67]/)
|
43126
|
+
);
|
42955
43127
|
|
42956
43128
|
});
|
42957
43129
|
enifed("htmlbars-util",
|
@@ -43293,7 +43465,12 @@ enifed("morph-attr/sanitize-attribute-value",
|
|
43293
43465
|
'BODY': true,
|
43294
43466
|
'LINK': true,
|
43295
43467
|
'IMG': true,
|
43296
|
-
'IFRAME': true
|
43468
|
+
'IFRAME': true,
|
43469
|
+
'BASE': true
|
43470
|
+
};
|
43471
|
+
|
43472
|
+
var badTagsForDataURI = {
|
43473
|
+
'EMBED': true
|
43297
43474
|
};
|
43298
43475
|
|
43299
43476
|
var badAttributes = {
|
@@ -43302,13 +43479,17 @@ enifed("morph-attr/sanitize-attribute-value",
|
|
43302
43479
|
'background': true
|
43303
43480
|
};
|
43304
43481
|
__exports__.badAttributes = badAttributes;
|
43482
|
+
var badAttributesForDataURI = {
|
43483
|
+
'src': true
|
43484
|
+
};
|
43485
|
+
|
43305
43486
|
function sanitizeAttributeValue(dom, element, attribute, value) {
|
43306
43487
|
var tagName;
|
43307
43488
|
|
43308
43489
|
if (!element) {
|
43309
43490
|
tagName = null;
|
43310
43491
|
} else {
|
43311
|
-
tagName = element.tagName;
|
43492
|
+
tagName = element.tagName.toUpperCase();
|
43312
43493
|
}
|
43313
43494
|
|
43314
43495
|
if (value && value.toHTML) {
|
@@ -43322,6 +43503,10 @@ enifed("morph-attr/sanitize-attribute-value",
|
|
43322
43503
|
}
|
43323
43504
|
}
|
43324
43505
|
|
43506
|
+
if (badTagsForDataURI[tagName] && badAttributesForDataURI[attribute]) {
|
43507
|
+
return 'unsafe:' + value;
|
43508
|
+
}
|
43509
|
+
|
43325
43510
|
return value;
|
43326
43511
|
}
|
43327
43512
|
|
@@ -44639,7 +44824,17 @@ enifed("router/router",
|
|
44639
44824
|
|
44640
44825
|
var pop = Array.prototype.pop;
|
44641
44826
|
|
44642
|
-
function Router() {
|
44827
|
+
function Router(_options) {
|
44828
|
+
var options = _options || {};
|
44829
|
+
this.getHandler = options.getHandler || this.getHandler;
|
44830
|
+
this.updateURL = options.updateURL || this.updateURL;
|
44831
|
+
this.replaceURL = options.replaceURL || this.replaceURL;
|
44832
|
+
this.didTransition = options.didTransition || this.didTransition;
|
44833
|
+
this.willTransition = options.willTransition || this.willTransition;
|
44834
|
+
this.delegate = options.delegate || this.delegate;
|
44835
|
+
this.triggerEvent = options.triggerEvent || this.triggerEvent;
|
44836
|
+
this.log = options.log || this.log;
|
44837
|
+
|
44643
44838
|
this.recognizer = new RouteRecognizer();
|
44644
44839
|
this.reset();
|
44645
44840
|
}
|
@@ -44663,7 +44858,7 @@ enifed("router/router",
|
|
44663
44858
|
}
|
44664
44859
|
|
44665
44860
|
// No-op. No need to create a new transition.
|
44666
|
-
return new Transition(this);
|
44861
|
+
return this.activeTransition || new Transition(this);
|
44667
44862
|
}
|
44668
44863
|
|
44669
44864
|
if (isIntermediate) {
|
@@ -44723,6 +44918,8 @@ enifed("router/router",
|
|
44723
44918
|
return this.recognizer.hasRoute(route);
|
44724
44919
|
},
|
44725
44920
|
|
44921
|
+
getHandler: function() {},
|
44922
|
+
|
44726
44923
|
queryParamsTransition: function(changelist, wasTransitioning, oldState, newState) {
|
44727
44924
|
var router = this;
|
44728
44925
|
|
@@ -44984,16 +45181,7 @@ enifed("router/router",
|
|
44984
45181
|
|
44985
45182
|
@param {String} message The message to log.
|
44986
45183
|
*/
|
44987
|
-
log: null
|
44988
|
-
|
44989
|
-
_willChangeContextEvent: 'willChangeContext',
|
44990
|
-
_triggerWillChangeContext: function(handlerInfos, newTransition) {
|
44991
|
-
trigger(this, handlerInfos, true, [this._willChangeContextEvent, newTransition]);
|
44992
|
-
},
|
44993
|
-
|
44994
|
-
_triggerWillLeave: function(handlerInfos, newTransition, leavingChecker) {
|
44995
|
-
trigger(this, handlerInfos, true, ['willLeave', newTransition, leavingChecker]);
|
44996
|
-
}
|
45184
|
+
log: null
|
44997
45185
|
};
|
44998
45186
|
|
44999
45187
|
/**
|
@@ -45423,12 +45611,6 @@ enifed("router/router",
|
|
45423
45611
|
}
|
45424
45612
|
return false;
|
45425
45613
|
};
|
45426
|
-
|
45427
|
-
router._triggerWillLeave(leaving, newTransition, leavingChecker);
|
45428
|
-
}
|
45429
|
-
|
45430
|
-
if (changing.length > 0) {
|
45431
|
-
router._triggerWillChangeContext(changing, newTransition);
|
45432
45614
|
}
|
45433
45615
|
|
45434
45616
|
trigger(router, oldHandlers, true, ['willTransition', newTransition]);
|
@@ -45662,8 +45844,8 @@ enifed("router/transition-intent/named-transition-intent",
|
|
45662
45844
|
});
|
45663
45845
|
});
|
45664
45846
|
enifed("router/transition-intent/url-transition-intent",
|
45665
|
-
["../transition-intent","../transition-state","../handler-info/factory","../utils","exports"],
|
45666
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
45847
|
+
["../transition-intent","../transition-state","../handler-info/factory","../utils","./../unrecognized-url-error","exports"],
|
45848
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
45667
45849
|
"use strict";
|
45668
45850
|
var TransitionIntent = __dependency1__["default"];
|
45669
45851
|
var TransitionState = __dependency2__["default"];
|
@@ -45671,6 +45853,7 @@ enifed("router/transition-intent/url-transition-intent",
|
|
45671
45853
|
var oCreate = __dependency4__.oCreate;
|
45672
45854
|
var merge = __dependency4__.merge;
|
45673
45855
|
var subclass = __dependency4__.subclass;
|
45856
|
+
var UnrecognizedURLError = __dependency5__["default"];
|
45674
45857
|
|
45675
45858
|
__exports__["default"] = subclass(TransitionIntent, {
|
45676
45859
|
url: null,
|
@@ -45721,15 +45904,6 @@ enifed("router/transition-intent/url-transition-intent",
|
|
45721
45904
|
return newState;
|
45722
45905
|
}
|
45723
45906
|
});
|
45724
|
-
|
45725
|
-
/**
|
45726
|
-
Promise reject reasons passed to promise rejection
|
45727
|
-
handlers for failed transitions.
|
45728
|
-
*/
|
45729
|
-
function UnrecognizedURLError(message) {
|
45730
|
-
this.message = (message || "UnrecognizedURLError");
|
45731
|
-
this.name = "UnrecognizedURLError";
|
45732
|
-
}
|
45733
45907
|
});
|
45734
45908
|
enifed("router/transition-state",
|
45735
45909
|
["./handler-info","./utils","rsvp/promise","exports"],
|
@@ -46159,6 +46333,26 @@ enifed("router/transition",
|
|
46159
46333
|
__exports__.logAbort = logAbort;
|
46160
46334
|
__exports__.TransitionAborted = TransitionAborted;
|
46161
46335
|
});
|
46336
|
+
enifed("router/unrecognized-url-error",
|
46337
|
+
["./utils","exports"],
|
46338
|
+
function(__dependency1__, __exports__) {
|
46339
|
+
"use strict";
|
46340
|
+
var oCreate = __dependency1__.oCreate;
|
46341
|
+
|
46342
|
+
/**
|
46343
|
+
Promise reject reasons passed to promise rejection
|
46344
|
+
handlers for failed transitions.
|
46345
|
+
*/
|
46346
|
+
function UnrecognizedURLError(message) {
|
46347
|
+
this.message = (message || "UnrecognizedURLError");
|
46348
|
+
this.name = "UnrecognizedURLError";
|
46349
|
+
Error.call(this);
|
46350
|
+
}
|
46351
|
+
|
46352
|
+
UnrecognizedURLError.prototype = oCreate(Error.prototype);
|
46353
|
+
|
46354
|
+
__exports__["default"] = UnrecognizedURLError;
|
46355
|
+
});
|
46162
46356
|
enifed("router/utils",
|
46163
46357
|
["exports"],
|
46164
46358
|
function(__exports__) {
|