ember-source 1.10.0.beta.1 → 1.10.0.beta.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-runtime.js +129 -43
- data/dist/ember-template-compiler.js +6995 -0
- data/dist/ember-testing.js +1 -1
- data/dist/ember-tests.js +1120 -370
- data/dist/ember-tests.prod.js +1120 -370
- data/dist/ember.debug.js +1199 -868
- data/dist/ember.js +1199 -868
- data/dist/ember.min.js +14 -14
- data/dist/ember.prod.js +1184 -858
- metadata +3 -2
data/dist/ember.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
6
6
|
* @license Licensed under MIT license
|
7
7
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
8
|
-
* @version 1.10.0-beta.
|
8
|
+
* @version 1.10.0-beta.2
|
9
9
|
*/
|
10
10
|
|
11
11
|
(function() {
|
@@ -4207,7 +4207,7 @@ enifed("ember-extension-support/container_debug_adapter",
|
|
4207
4207
|
|
4208
4208
|
@class ContainerDebugAdapter
|
4209
4209
|
@namespace Ember
|
4210
|
-
@extends
|
4210
|
+
@extends Ember.Object
|
4211
4211
|
@since 1.5.0
|
4212
4212
|
*/
|
4213
4213
|
__exports__["default"] = EmberObject.extend({
|
@@ -4769,47 +4769,51 @@ enifed("ember-extension-support/data_adapter",
|
|
4769
4769
|
});
|
4770
4770
|
});
|
4771
4771
|
enifed("ember-htmlbars",
|
4772
|
-
["ember-metal/core","ember-htmlbars/hooks/content","ember-htmlbars/hooks/component","ember-htmlbars/hooks/element","ember-htmlbars/hooks/subexpr","ember-htmlbars/hooks/attribute","ember-htmlbars/hooks/concat","ember-htmlbars/hooks/get","ember-htmlbars/hooks/set","morph","ember-htmlbars/system/
|
4773
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __dependency29__, __dependency30__, __dependency31__, __dependency32__,
|
4772
|
+
["ember-metal/core","ember-template-compiler","ember-htmlbars/hooks/content","ember-htmlbars/hooks/component","ember-htmlbars/hooks/element","ember-htmlbars/hooks/subexpr","ember-htmlbars/hooks/attribute","ember-htmlbars/hooks/concat","ember-htmlbars/hooks/get","ember-htmlbars/hooks/set","morph","ember-htmlbars/system/make-view-helper","ember-htmlbars/system/make_bound_helper","ember-htmlbars/helpers","ember-htmlbars/helpers/binding","ember-htmlbars/helpers/view","ember-htmlbars/helpers/yield","ember-htmlbars/helpers/with","ember-htmlbars/helpers/log","ember-htmlbars/helpers/debugger","ember-htmlbars/helpers/bind-attr","ember-htmlbars/helpers/if_unless","ember-htmlbars/helpers/loc","ember-htmlbars/helpers/partial","ember-htmlbars/helpers/template","ember-htmlbars/helpers/input","ember-htmlbars/helpers/text_area","ember-htmlbars/helpers/collection","ember-htmlbars/helpers/each","ember-htmlbars/helpers/unbound","ember-htmlbars/system/bootstrap","ember-htmlbars/compat","exports"],
|
4773
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __dependency29__, __dependency30__, __dependency31__, __dependency32__, __exports__) {
|
4774
4774
|
"use strict";
|
4775
4775
|
var Ember = __dependency1__["default"];
|
4776
|
-
|
4777
|
-
var
|
4778
|
-
var
|
4779
|
-
var
|
4780
|
-
var
|
4781
|
-
|
4782
|
-
var
|
4783
|
-
var
|
4784
|
-
var
|
4785
|
-
var
|
4786
|
-
var
|
4787
|
-
var
|
4788
|
-
var
|
4789
|
-
|
4790
|
-
var
|
4791
|
-
var
|
4792
|
-
var
|
4793
|
-
|
4794
|
-
var
|
4795
|
-
var
|
4796
|
-
var
|
4797
|
-
var
|
4798
|
-
var
|
4799
|
-
var
|
4800
|
-
var
|
4801
|
-
var
|
4802
|
-
var
|
4803
|
-
var
|
4804
|
-
var
|
4805
|
-
var
|
4806
|
-
var
|
4807
|
-
var
|
4808
|
-
var
|
4809
|
-
var
|
4810
|
-
var
|
4811
|
-
var
|
4812
|
-
var
|
4776
|
+
|
4777
|
+
var precompile = __dependency2__.precompile;
|
4778
|
+
var compile = __dependency2__.compile;
|
4779
|
+
var template = __dependency2__.template;
|
4780
|
+
var registerPlugin = __dependency2__.registerPlugin;
|
4781
|
+
|
4782
|
+
var content = __dependency3__["default"];
|
4783
|
+
var component = __dependency4__["default"];
|
4784
|
+
var element = __dependency5__["default"];
|
4785
|
+
var subexpr = __dependency6__["default"];
|
4786
|
+
var attribute = __dependency7__["default"];
|
4787
|
+
var concat = __dependency8__["default"];
|
4788
|
+
var get = __dependency9__["default"];
|
4789
|
+
var set = __dependency10__["default"];
|
4790
|
+
var DOMHelper = __dependency11__.DOMHelper;
|
4791
|
+
var makeViewHelper = __dependency12__["default"];
|
4792
|
+
var makeBoundHelper = __dependency13__["default"];
|
4793
|
+
|
4794
|
+
var registerHelper = __dependency14__.registerHelper;
|
4795
|
+
var helper = __dependency14__.helper;
|
4796
|
+
var helpers = __dependency14__["default"];
|
4797
|
+
var bindHelper = __dependency15__.bindHelper;
|
4798
|
+
var viewHelper = __dependency16__.viewHelper;
|
4799
|
+
var yieldHelper = __dependency17__.yieldHelper;
|
4800
|
+
var withHelper = __dependency18__.withHelper;
|
4801
|
+
var logHelper = __dependency19__.logHelper;
|
4802
|
+
var debuggerHelper = __dependency20__.debuggerHelper;
|
4803
|
+
var bindAttrHelper = __dependency21__.bindAttrHelper;
|
4804
|
+
var bindAttrHelperDeprecated = __dependency21__.bindAttrHelperDeprecated;
|
4805
|
+
var ifHelper = __dependency22__.ifHelper;
|
4806
|
+
var unlessHelper = __dependency22__.unlessHelper;
|
4807
|
+
var unboundIfHelper = __dependency22__.unboundIfHelper;
|
4808
|
+
var boundIfHelper = __dependency22__.boundIfHelper;
|
4809
|
+
var locHelper = __dependency23__.locHelper;
|
4810
|
+
var partialHelper = __dependency24__.partialHelper;
|
4811
|
+
var templateHelper = __dependency25__.templateHelper;
|
4812
|
+
var inputHelper = __dependency26__.inputHelper;
|
4813
|
+
var textareaHelper = __dependency27__.textareaHelper;
|
4814
|
+
var collectionHelper = __dependency28__.collectionHelper;
|
4815
|
+
var eachHelper = __dependency29__.eachHelper;
|
4816
|
+
var unboundHelper = __dependency30__.unboundHelper;
|
4813
4817
|
|
4814
4818
|
// importing adds template bootstrapping
|
4815
4819
|
// initializer to enable embedded templates
|
@@ -4847,8 +4851,10 @@ enifed("ember-htmlbars",
|
|
4847
4851
|
_registerHelper: registerHelper,
|
4848
4852
|
template: template,
|
4849
4853
|
compile: compile,
|
4854
|
+
precompile: precompile,
|
4850
4855
|
makeViewHelper: makeViewHelper,
|
4851
|
-
makeBoundHelper: makeBoundHelper
|
4856
|
+
makeBoundHelper: makeBoundHelper,
|
4857
|
+
registerPlugin: registerPlugin
|
4852
4858
|
};
|
4853
4859
|
|
4854
4860
|
|
@@ -4872,8 +4878,8 @@ enifed("ember-htmlbars",
|
|
4872
4878
|
__exports__.defaultEnv = defaultEnv;
|
4873
4879
|
});
|
4874
4880
|
enifed("ember-htmlbars/attr_nodes",
|
4875
|
-
["ember-htmlbars/attr_nodes/quoted","ember-htmlbars/attr_nodes/unquoted","ember-htmlbars/attr_nodes/unquoted_nonproperty","ember-htmlbars/attr_nodes/
|
4876
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
4881
|
+
["ember-htmlbars/attr_nodes/quoted","ember-htmlbars/attr_nodes/unquoted","ember-htmlbars/attr_nodes/unquoted_nonproperty","ember-views/system/sanitize_attribute_value","ember-htmlbars/attr_nodes/sanitized","ember-metal/platform","ember-htmlbars/attr_nodes/utils","exports"],
|
4882
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
4877
4883
|
"use strict";
|
4878
4884
|
/**
|
4879
4885
|
@module ember
|
@@ -4883,9 +4889,10 @@ enifed("ember-htmlbars/attr_nodes",
|
|
4883
4889
|
var QuotedAttrNode = __dependency1__["default"];
|
4884
4890
|
var UnquotedAttrNode = __dependency2__["default"];
|
4885
4891
|
var UnquotedNonpropertyAttrNode = __dependency3__["default"];
|
4886
|
-
var
|
4887
|
-
var
|
4888
|
-
var
|
4892
|
+
var badAttributes = __dependency4__.badAttributes;
|
4893
|
+
var SanitizedAttrNode = __dependency5__["default"];
|
4894
|
+
var o_create = __dependency6__.create;
|
4895
|
+
var normalizeProperty = __dependency7__.normalizeProperty;
|
4889
4896
|
|
4890
4897
|
var svgNamespaceURI = 'http://www.w3.org/2000/svg';
|
4891
4898
|
|
@@ -4893,7 +4900,11 @@ enifed("ember-htmlbars/attr_nodes",
|
|
4893
4900
|
unquotedAttrNodeTypes['class'] = UnquotedNonpropertyAttrNode;
|
4894
4901
|
|
4895
4902
|
var quotedAttrNodeTypes = o_create(null);
|
4896
|
-
|
4903
|
+
|
4904
|
+
for (var attrName in badAttributes) {
|
4905
|
+
unquotedAttrNodeTypes[attrName] = SanitizedAttrNode;
|
4906
|
+
quotedAttrNodeTypes[attrName] = SanitizedAttrNode;
|
4907
|
+
}
|
4897
4908
|
|
4898
4909
|
__exports__["default"] = function attrNodeTypeFor(attrName, element, quoted) {
|
4899
4910
|
var result;
|
@@ -4994,7 +5005,7 @@ enifed("ember-htmlbars/attr_nodes/quoted",
|
|
4994
5005
|
|
4995
5006
|
function QuotedAttrNode(element, attrName, attrValue, dom) {
|
4996
5007
|
this.init(element, attrName, attrValue, dom);
|
4997
|
-
}
|
5008
|
+
}
|
4998
5009
|
|
4999
5010
|
QuotedAttrNode.prototype = o_create(SimpleAttrNode.prototype);
|
5000
5011
|
|
@@ -5004,118 +5015,35 @@ enifed("ember-htmlbars/attr_nodes/quoted",
|
|
5004
5015
|
|
5005
5016
|
__exports__["default"] = QuotedAttrNode;
|
5006
5017
|
});
|
5007
|
-
enifed("ember-htmlbars/attr_nodes/
|
5008
|
-
["ember-metal/
|
5009
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
5018
|
+
enifed("ember-htmlbars/attr_nodes/sanitized",
|
5019
|
+
["./simple","ember-metal/platform","ember-metal/streams/utils","ember-views/system/sanitize_attribute_value","exports"],
|
5020
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
5010
5021
|
"use strict";
|
5011
5022
|
/**
|
5012
5023
|
@module ember
|
5013
5024
|
@submodule ember-htmlbars
|
5014
5025
|
*/
|
5015
5026
|
|
5016
|
-
var
|
5017
|
-
var
|
5018
|
-
var
|
5019
|
-
|
5020
|
-
var
|
5021
|
-
var ADD_LIST = [];
|
5022
|
-
var REMOVE_LIST = [];
|
5023
|
-
|
5024
|
-
// Dedupes and removes empty strings. It expects the array
|
5025
|
-
// to be sorted.
|
5026
|
-
// TODO: This could be done in-place instead of splicing.
|
5027
|
-
function normalizeClasses(array) {
|
5028
|
-
var i = 0;
|
5029
|
-
while (i < array.length - 1) {
|
5030
|
-
if (array[i] === array[i+1]) {
|
5031
|
-
array.splice(i, 1);
|
5032
|
-
} else {
|
5033
|
-
i++;
|
5034
|
-
}
|
5035
|
-
}
|
5036
|
-
if (array[0] === '') {
|
5037
|
-
array.shift();
|
5038
|
-
}
|
5039
|
-
}
|
5040
|
-
|
5041
|
-
function buildClasses(value) {
|
5042
|
-
if (typeof value === 'string') {
|
5043
|
-
return value.split(SPACES);
|
5044
|
-
} else {
|
5045
|
-
return [];
|
5046
|
-
}
|
5047
|
-
}
|
5027
|
+
var SimpleAttrNode = __dependency1__["default"];
|
5028
|
+
var o_create = __dependency2__.create;
|
5029
|
+
var chainStream = __dependency3__.chainStream;
|
5030
|
+
var read = __dependency3__.read;
|
5031
|
+
var sanitizeAttributeValue = __dependency4__["default"];
|
5048
5032
|
|
5049
|
-
function
|
5050
|
-
|
5051
|
-
|
5052
|
-
|
5053
|
-
this.isDirty = false;
|
5033
|
+
function SanitizedAttrNode(element, attrName, attrValue, dom) {
|
5034
|
+
var sanitizedValue = chainStream(attrValue, function(){
|
5035
|
+
var unsafeValue = read(attrValue);
|
5036
|
+
var safeValue = sanitizeAttributeValue(element, attrName, unsafeValue);
|
5054
5037
|
|
5055
|
-
|
5056
|
-
|
5038
|
+
return safeValue;
|
5039
|
+
});
|
5057
5040
|
|
5058
|
-
|
5059
|
-
this.renderIfNeeded();
|
5041
|
+
this.init(element, attrName, sanitizedValue, dom);
|
5060
5042
|
}
|
5061
5043
|
|
5062
|
-
|
5063
|
-
this.isDirty = true;
|
5064
|
-
run.schedule('render', this, this.scheduledRenderIfNeeded);
|
5065
|
-
};
|
5066
|
-
|
5067
|
-
QuotedClassAttrNode.prototype.scheduledRenderIfNeeded = function scheduledRenderIfNeeded(){
|
5068
|
-
if (this.isDirty) {
|
5069
|
-
this.isDirty = false;
|
5070
|
-
this.render();
|
5071
|
-
}
|
5072
|
-
};
|
5073
|
-
|
5074
|
-
QuotedClassAttrNode.prototype.render = function render(){
|
5075
|
-
ADD_LIST.length = 0;
|
5076
|
-
REMOVE_LIST.length = 0;
|
5077
|
-
|
5078
|
-
var oldClasses = this.oldClasses;
|
5079
|
-
var newClasses = buildClasses(read(this.classes));
|
5080
|
-
newClasses.sort();
|
5081
|
-
normalizeClasses(newClasses);
|
5082
|
-
|
5083
|
-
var oldIndex = 0;
|
5084
|
-
var oldLength = oldClasses.length;
|
5085
|
-
var newIndex = 0;
|
5086
|
-
var newLength = newClasses.length;
|
5087
|
-
|
5088
|
-
while (oldIndex < oldLength || newIndex < newLength) {
|
5089
|
-
var oldClass = oldClasses[oldIndex];
|
5090
|
-
var newClass = newClasses[newIndex];
|
5091
|
-
|
5092
|
-
if (oldIndex === oldLength) {
|
5093
|
-
ADD_LIST.push(newClass);
|
5094
|
-
newIndex++;
|
5095
|
-
} else if (newIndex === newLength) {
|
5096
|
-
REMOVE_LIST.push(oldClass);
|
5097
|
-
oldIndex++;
|
5098
|
-
} else {
|
5099
|
-
if (oldClass === newClass) {
|
5100
|
-
oldIndex++;
|
5101
|
-
newIndex++;
|
5102
|
-
} else if (oldClass < newClass) {
|
5103
|
-
REMOVE_LIST.push(oldClass);
|
5104
|
-
oldIndex++;
|
5105
|
-
} else {
|
5106
|
-
ADD_LIST.push(newClass);
|
5107
|
-
newIndex++;
|
5108
|
-
}
|
5109
|
-
}
|
5110
|
-
}
|
5111
|
-
|
5112
|
-
this.oldClasses = newClasses;
|
5113
|
-
|
5114
|
-
this.dom.addClasses(this.element, ADD_LIST);
|
5115
|
-
this.dom.removeClasses(this.element, REMOVE_LIST);
|
5116
|
-
};
|
5044
|
+
SanitizedAttrNode.prototype = o_create(SimpleAttrNode.prototype);
|
5117
5045
|
|
5118
|
-
__exports__["default"] =
|
5046
|
+
__exports__["default"] = SanitizedAttrNode;
|
5119
5047
|
});
|
5120
5048
|
enifed("ember-htmlbars/attr_nodes/simple",
|
5121
5049
|
["ember-metal/run_loop","exports"],
|
@@ -5130,32 +5058,32 @@ enifed("ember-htmlbars/attr_nodes/simple",
|
|
5130
5058
|
|
5131
5059
|
function SimpleAttrNode() {
|
5132
5060
|
// abstract class
|
5133
|
-
}
|
5061
|
+
}
|
5134
5062
|
|
5135
5063
|
SimpleAttrNode.prototype.init = function init(element, attrName, simpleAttrValue, dom){
|
5136
5064
|
this.element = element;
|
5137
5065
|
this.attrName = attrName;
|
5138
5066
|
this.attrValue = simpleAttrValue;
|
5139
5067
|
this.dom = dom;
|
5140
|
-
this.isDirty =
|
5068
|
+
this.isDirty = true;
|
5141
5069
|
this.lastValue = null;
|
5142
5070
|
this.currentValue = null;
|
5143
5071
|
|
5144
5072
|
if (this.attrValue.isStream) {
|
5145
|
-
this.attrValue.subscribe(this.
|
5146
|
-
this.
|
5073
|
+
this.attrValue.subscribe(this.markDirty, this);
|
5074
|
+
this.renderIfDirty();
|
5147
5075
|
} else {
|
5148
5076
|
this.currentValue = simpleAttrValue;
|
5149
5077
|
this.render();
|
5150
5078
|
}
|
5151
5079
|
};
|
5152
5080
|
|
5153
|
-
SimpleAttrNode.prototype.
|
5081
|
+
SimpleAttrNode.prototype.markDirty = function markDirty(){
|
5154
5082
|
this.isDirty = true;
|
5155
|
-
run.schedule('render', this, this.
|
5083
|
+
run.schedule('render', this, this.renderIfDirty);
|
5156
5084
|
};
|
5157
5085
|
|
5158
|
-
SimpleAttrNode.prototype.
|
5086
|
+
SimpleAttrNode.prototype.renderIfDirty = function renderIfDirty(){
|
5159
5087
|
if (this.isDirty) {
|
5160
5088
|
this.isDirty = false;
|
5161
5089
|
var value = this.attrValue.value();
|
@@ -5189,7 +5117,7 @@ enifed("ember-htmlbars/attr_nodes/unquoted",
|
|
5189
5117
|
function UnquotedAttrNode(element, attrName, attrValue, dom) {
|
5190
5118
|
var normalizedAttrName = normalizeProperty(element, attrName) || attrName;
|
5191
5119
|
this.init(element, normalizedAttrName, attrValue, dom);
|
5192
|
-
}
|
5120
|
+
}
|
5193
5121
|
|
5194
5122
|
UnquotedAttrNode.prototype = o_create(SimpleAttrNode.prototype);
|
5195
5123
|
|
@@ -5209,7 +5137,7 @@ enifed("ember-htmlbars/attr_nodes/unquoted_nonproperty",
|
|
5209
5137
|
|
5210
5138
|
function UnquotedNonpropertyAttrNode(element, attrName, attrValue, dom) {
|
5211
5139
|
this.init(element, attrName, attrValue, dom);
|
5212
|
-
}
|
5140
|
+
}
|
5213
5141
|
|
5214
5142
|
UnquotedNonpropertyAttrNode.prototype = o_create(SimpleAttrNode.prototype);
|
5215
5143
|
|
@@ -5252,20 +5180,22 @@ enifed("ember-htmlbars/attr_nodes/utils",
|
|
5252
5180
|
__exports__.normalizeProperty = normalizeProperty;
|
5253
5181
|
});
|
5254
5182
|
enifed("ember-htmlbars/compat",
|
5255
|
-
["ember-metal/core","ember-htmlbars/helpers","ember-
|
5183
|
+
["ember-metal/core","ember-htmlbars/helpers","ember-template-compiler","ember-htmlbars/compat/helper","ember-htmlbars/compat/handlebars-get","ember-htmlbars/compat/make-bound-helper","ember-htmlbars/compat/register-bound-helper","ember-htmlbars/compat/precompile","ember-htmlbars/system/make-view-helper","ember-htmlbars/utils/string","exports"],
|
5256
5184
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __exports__) {
|
5257
5185
|
"use strict";
|
5258
5186
|
var Ember = __dependency1__["default"];
|
5259
5187
|
var helpers = __dependency2__["default"];
|
5260
|
-
var template = __dependency3__
|
5261
|
-
var compile =
|
5262
|
-
var compatRegisterHelper =
|
5263
|
-
var compatHandlebarsHelper =
|
5264
|
-
var compatHandlebarsGet =
|
5265
|
-
var compatMakeBoundHelper =
|
5266
|
-
var compatRegisterBoundHelper =
|
5267
|
-
var compatPrecompile =
|
5268
|
-
var makeViewHelper =
|
5188
|
+
var template = __dependency3__.template;
|
5189
|
+
var compile = __dependency3__.compile;
|
5190
|
+
var compatRegisterHelper = __dependency4__.registerHandlebarsCompatibleHelper;
|
5191
|
+
var compatHandlebarsHelper = __dependency4__.handlebarsHelper;
|
5192
|
+
var compatHandlebarsGet = __dependency5__["default"];
|
5193
|
+
var compatMakeBoundHelper = __dependency6__["default"];
|
5194
|
+
var compatRegisterBoundHelper = __dependency7__["default"];
|
5195
|
+
var compatPrecompile = __dependency8__["default"];
|
5196
|
+
var makeViewHelper = __dependency9__["default"];
|
5197
|
+
var SafeString = __dependency10__.SafeString;
|
5198
|
+
var escapeExpression = __dependency10__.escapeExpression;
|
5269
5199
|
|
5270
5200
|
var EmberHandlebars;
|
5271
5201
|
|
@@ -5280,6 +5210,11 @@ enifed("ember-htmlbars/compat",
|
|
5280
5210
|
EmberHandlebars.compile = compile;
|
5281
5211
|
EmberHandlebars.template = template;
|
5282
5212
|
EmberHandlebars.makeViewHelper = makeViewHelper;
|
5213
|
+
|
5214
|
+
EmberHandlebars.SafeString = SafeString;
|
5215
|
+
EmberHandlebars.Utils = {
|
5216
|
+
escapeExpression: escapeExpression
|
5217
|
+
};
|
5283
5218
|
|
5284
5219
|
|
5285
5220
|
__exports__["default"] = EmberHandlebars;
|
@@ -5312,8 +5247,8 @@ enifed("ember-htmlbars/compat/handlebars-get",
|
|
5312
5247
|
}
|
5313
5248
|
});
|
5314
5249
|
enifed("ember-htmlbars/compat/helper",
|
5315
|
-
["ember-metal/merge","ember-htmlbars/helpers","ember-views/views/view","ember-views/views/component","ember-htmlbars/system/make-view-helper","ember-htmlbars/compat/make-bound-helper","exports"],
|
5316
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
5250
|
+
["ember-metal/merge","ember-htmlbars/helpers","ember-views/views/view","ember-views/views/component","ember-htmlbars/system/make-view-helper","ember-htmlbars/compat/make-bound-helper","ember-metal/streams/utils","exports"],
|
5251
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
5317
5252
|
"use strict";
|
5318
5253
|
/**
|
5319
5254
|
@module ember
|
@@ -5326,6 +5261,7 @@ enifed("ember-htmlbars/compat/helper",
|
|
5326
5261
|
var Component = __dependency4__["default"];
|
5327
5262
|
var makeViewHelper = __dependency5__["default"];
|
5328
5263
|
var makeBoundHelper = __dependency6__["default"];
|
5264
|
+
var isStream = __dependency7__.isStream;
|
5329
5265
|
|
5330
5266
|
var slice = [].slice;
|
5331
5267
|
|
@@ -5347,7 +5283,7 @@ enifed("ember-htmlbars/compat/helper",
|
|
5347
5283
|
for (var prop in hash) {
|
5348
5284
|
param = hash[prop];
|
5349
5285
|
|
5350
|
-
if (param
|
5286
|
+
if (isStream(param)) {
|
5351
5287
|
handlebarsOptions.hash[prop] = param._label;
|
5352
5288
|
} else {
|
5353
5289
|
handlebarsOptions.hash[prop] = param;
|
@@ -5358,7 +5294,7 @@ enifed("ember-htmlbars/compat/helper",
|
|
5358
5294
|
for (var i = 0, l = params.length; i < l; i++) {
|
5359
5295
|
param = params[i];
|
5360
5296
|
|
5361
|
-
if (param
|
5297
|
+
if (isStream(param)) {
|
5362
5298
|
args[i] = param._label;
|
5363
5299
|
} else {
|
5364
5300
|
args[i] = param;
|
@@ -5397,8 +5333,8 @@ enifed("ember-htmlbars/compat/helper",
|
|
5397
5333
|
__exports__.handlebarsHelper = handlebarsHelper;__exports__["default"] = HandlebarsCompatibleHelper;
|
5398
5334
|
});
|
5399
5335
|
enifed("ember-htmlbars/compat/make-bound-helper",
|
5400
|
-
["ember-metal/core","ember-metal/mixin","ember-
|
5401
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__,
|
5336
|
+
["ember-metal/core","ember-metal/mixin","ember-htmlbars/system/helper","ember-metal/streams/stream","ember-metal/streams/utils","exports"],
|
5337
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
5402
5338
|
"use strict";
|
5403
5339
|
/**
|
5404
5340
|
@module ember
|
@@ -5408,12 +5344,14 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5408
5344
|
var Ember = __dependency1__["default"];
|
5409
5345
|
// Ember.FEATURES, Ember.assert, Ember.Handlebars, Ember.lookup
|
5410
5346
|
var IS_BINDING = __dependency2__.IS_BINDING;
|
5411
|
-
var
|
5412
|
-
var Helper = __dependency4__["default"];
|
5347
|
+
var Helper = __dependency3__["default"];
|
5413
5348
|
|
5414
|
-
var Stream =
|
5415
|
-
var readArray =
|
5416
|
-
var
|
5349
|
+
var Stream = __dependency4__["default"];
|
5350
|
+
var readArray = __dependency5__.readArray;
|
5351
|
+
var scanArray = __dependency5__.scanArray;
|
5352
|
+
var scanHash = __dependency5__.scanHash;
|
5353
|
+
var readHash = __dependency5__.readHash;
|
5354
|
+
var isStream = __dependency5__.isStream;
|
5417
5355
|
|
5418
5356
|
/**
|
5419
5357
|
A helper function used by `registerBoundHelper`. Takes the
|
@@ -5450,6 +5388,7 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5450
5388
|
function helperFunc(params, hash, options, env) {
|
5451
5389
|
var view = this;
|
5452
5390
|
var numParams = params.length;
|
5391
|
+
var param;
|
5453
5392
|
|
5454
5393
|
Ember.assert("registerBoundHelper-generated helpers do not support use with Handlebars blocks.", !options.template);
|
5455
5394
|
|
@@ -5466,7 +5405,7 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5466
5405
|
for (var i = 0, l = params.length; i < l; i++) {
|
5467
5406
|
param = params[i];
|
5468
5407
|
|
5469
|
-
if (param
|
5408
|
+
if (isStream(param)) {
|
5470
5409
|
properties[i] = param._label;
|
5471
5410
|
} else {
|
5472
5411
|
properties[i] = param;
|
@@ -5480,25 +5419,25 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5480
5419
|
return fn.apply(view, args);
|
5481
5420
|
}
|
5482
5421
|
|
5483
|
-
|
5422
|
+
// If none of the hash parameters are bound, act as an unbound helper.
|
5423
|
+
// This prevents views from being unnecessarily created
|
5424
|
+
var hasStream = scanArray(params) || scanHash(hash);
|
5425
|
+
|
5426
|
+
if (env.data.isUnbound || !hasStream){
|
5484
5427
|
return valueFn();
|
5485
5428
|
} else {
|
5486
5429
|
var lazyValue = new Stream(valueFn);
|
5487
5430
|
|
5488
|
-
appendSimpleBoundView(this, options.morph, lazyValue);
|
5489
|
-
|
5490
|
-
var param;
|
5491
|
-
|
5492
5431
|
for (i = 0; i < numParams; i++) {
|
5493
5432
|
param = params[i];
|
5494
|
-
if (param
|
5433
|
+
if (isStream(param)) {
|
5495
5434
|
param.subscribe(lazyValue.notify, lazyValue);
|
5496
5435
|
}
|
5497
5436
|
}
|
5498
5437
|
|
5499
5438
|
for (prop in hash) {
|
5500
5439
|
param = hash[prop];
|
5501
|
-
if (param
|
5440
|
+
if (isStream(param)) {
|
5502
5441
|
param.subscribe(lazyValue.notify, lazyValue);
|
5503
5442
|
}
|
5504
5443
|
}
|
@@ -5507,7 +5446,7 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5507
5446
|
var firstParam = params[0];
|
5508
5447
|
// Only bother with subscriptions if the first argument
|
5509
5448
|
// is a stream itself, and not a primitive.
|
5510
|
-
if (firstParam
|
5449
|
+
if (isStream(firstParam)) {
|
5511
5450
|
var onDependentKeyNotify = function onDependentKeyNotify(stream) {
|
5512
5451
|
stream.value();
|
5513
5452
|
lazyValue.notify();
|
@@ -5519,6 +5458,8 @@ enifed("ember-htmlbars/compat/make-bound-helper",
|
|
5519
5458
|
}
|
5520
5459
|
}
|
5521
5460
|
}
|
5461
|
+
|
5462
|
+
return lazyValue;
|
5522
5463
|
}
|
5523
5464
|
}
|
5524
5465
|
|
@@ -5675,30 +5616,32 @@ enifed("ember-htmlbars/compat/register-bound-helper",
|
|
5675
5616
|
}
|
5676
5617
|
});
|
5677
5618
|
enifed("ember-htmlbars/helpers",
|
5678
|
-
["ember-views/views/view","ember-views/views/component","ember-htmlbars/system/make-view-helper","ember-htmlbars/system/helper","ember-htmlbars/system/make_bound_helper","exports"],
|
5679
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
5619
|
+
["ember-metal/platform","ember-views/views/view","ember-views/views/component","ember-htmlbars/system/make-view-helper","ember-htmlbars/system/helper","ember-htmlbars/system/make_bound_helper","exports"],
|
5620
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
5680
5621
|
"use strict";
|
5681
5622
|
/**
|
5682
5623
|
@module ember
|
5683
5624
|
@submodule ember-htmlbars
|
5684
5625
|
*/
|
5685
5626
|
|
5627
|
+
var o_create = __dependency1__.create;
|
5628
|
+
|
5686
5629
|
/**
|
5687
5630
|
@private
|
5688
5631
|
@property helpers
|
5689
5632
|
*/
|
5690
|
-
var helpers =
|
5633
|
+
var helpers = o_create(null);
|
5691
5634
|
|
5692
5635
|
/**
|
5693
5636
|
@module ember
|
5694
5637
|
@submodule ember-htmlbars
|
5695
5638
|
*/
|
5696
5639
|
|
5697
|
-
var View =
|
5698
|
-
var Component =
|
5699
|
-
var makeViewHelper =
|
5700
|
-
var Helper =
|
5701
|
-
var makeBoundHelper =
|
5640
|
+
var View = __dependency2__["default"];
|
5641
|
+
var Component = __dependency3__["default"];
|
5642
|
+
var makeViewHelper = __dependency4__["default"];
|
5643
|
+
var Helper = __dependency5__["default"];
|
5644
|
+
var makeBoundHelper = __dependency6__["default"];
|
5702
5645
|
|
5703
5646
|
/**
|
5704
5647
|
Register a bound helper or custom view helper.
|
@@ -5876,8 +5819,8 @@ enifed("ember-htmlbars/helpers",
|
|
5876
5819
|
__exports__.registerBoundHelper = registerBoundHelper;__exports__["default"] = helpers;
|
5877
5820
|
});
|
5878
5821
|
enifed("ember-htmlbars/helpers/bind-attr",
|
5879
|
-
["ember-metal/core","ember-runtime/system/string","ember-htmlbars/attr_nodes/
|
5880
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
|
5822
|
+
["ember-metal/core","ember-runtime/system/string","ember-htmlbars/attr_nodes/quoted","ember-htmlbars/attr_nodes/legacy_bind","ember-views/system/sanitize_attribute_value","ember-htmlbars/attr_nodes/sanitized","ember-metal/keys","ember-htmlbars/helpers","ember-metal/enumerable_utils","ember-metal/streams/utils","ember-views/streams/class_name_binding","exports"],
|
5823
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
|
5881
5824
|
"use strict";
|
5882
5825
|
/**
|
5883
5826
|
@module ember
|
@@ -5888,13 +5831,16 @@ enifed("ember-htmlbars/helpers/bind-attr",
|
|
5888
5831
|
// Ember.assert
|
5889
5832
|
|
5890
5833
|
var fmt = __dependency2__.fmt;
|
5891
|
-
var
|
5834
|
+
var QuotedAttrNode = __dependency3__["default"];
|
5892
5835
|
var LegacyBindAttrNode = __dependency4__["default"];
|
5893
|
-
var
|
5894
|
-
var
|
5836
|
+
var badAttributes = __dependency5__.badAttributes;
|
5837
|
+
var SanitizedAttrNode = __dependency6__["default"];
|
5895
5838
|
var keys = __dependency7__["default"];
|
5896
5839
|
var helpers = __dependency8__["default"];
|
5897
|
-
var
|
5840
|
+
var map = __dependency9__.map;
|
5841
|
+
var isStream = __dependency10__.isStream;
|
5842
|
+
var concat = __dependency10__.concat;
|
5843
|
+
var streamifyClassNameBinding = __dependency11__.streamifyClassNameBinding;
|
5898
5844
|
|
5899
5845
|
/**
|
5900
5846
|
`bind-attr` allows you to create a binding between DOM element attributes and
|
@@ -6027,10 +5973,14 @@ enifed("ember-htmlbars/helpers/bind-attr",
|
|
6027
5973
|
var view = this;
|
6028
5974
|
|
6029
5975
|
// Handle classes differently, as we can bind multiple classes
|
6030
|
-
var
|
6031
|
-
if (
|
6032
|
-
|
6033
|
-
|
5976
|
+
var classNameBindings = hash['class'];
|
5977
|
+
if (classNameBindings !== null && classNameBindings !== undefined) {
|
5978
|
+
if (isStream(classNameBindings)) {
|
5979
|
+
new QuotedAttrNode(element, 'class', classNameBindings, env.dom);
|
5980
|
+
} else {
|
5981
|
+
var classNameBindingsStream = applyClassNameBindings(classNameBindings, view);
|
5982
|
+
new QuotedAttrNode(element, 'class', classNameBindingsStream, env.dom);
|
5983
|
+
}
|
6034
5984
|
delete hash['class'];
|
6035
5985
|
}
|
6036
5986
|
|
@@ -6040,7 +5990,7 @@ enifed("ember-htmlbars/helpers/bind-attr",
|
|
6040
5990
|
for (var i=0, l=attrKeys.length;i<l;i++) {
|
6041
5991
|
attr = attrKeys[i];
|
6042
5992
|
path = hash[attr];
|
6043
|
-
if (path
|
5993
|
+
if (isStream(path)) {
|
6044
5994
|
lazyValue = path;
|
6045
5995
|
} else {
|
6046
5996
|
Ember.assert(
|
@@ -6050,10 +6000,23 @@ enifed("ember-htmlbars/helpers/bind-attr",
|
|
6050
6000
|
);
|
6051
6001
|
lazyValue = view.getStream(path);
|
6052
6002
|
}
|
6053
|
-
|
6003
|
+
if (badAttributes[attr]) {
|
6004
|
+
new SanitizedAttrNode(element, attr, lazyValue, env.dom);
|
6005
|
+
} else {
|
6006
|
+
new LegacyBindAttrNode(element, attr, lazyValue, env.dom);
|
6007
|
+
}
|
6054
6008
|
}
|
6055
6009
|
}
|
6056
6010
|
|
6011
|
+
function applyClassNameBindings(classNameBindings, view) {
|
6012
|
+
var arrayOfClassNameBindings = classNameBindings.split(' ');
|
6013
|
+
var boundClassNameBindings = map(arrayOfClassNameBindings, function(classNameBinding) {
|
6014
|
+
return streamifyClassNameBinding(view, classNameBinding);
|
6015
|
+
});
|
6016
|
+
var concatenatedClassNames = concat(boundClassNameBindings, ' ');
|
6017
|
+
return concatenatedClassNames;
|
6018
|
+
}
|
6019
|
+
|
6057
6020
|
/**
|
6058
6021
|
See `bind-attr`
|
6059
6022
|
|
@@ -6070,65 +6033,13 @@ enifed("ember-htmlbars/helpers/bind-attr",
|
|
6070
6033
|
return helpers['bind-attr'].apply(this, arguments);
|
6071
6034
|
}
|
6072
6035
|
|
6073
|
-
/**
|
6074
|
-
Helper that, given a space-separated string of property paths and a context,
|
6075
|
-
returns an array of class names. Calling this method also has the side
|
6076
|
-
effect of setting up observers at those property paths, such that if they
|
6077
|
-
change, the correct class name will be reapplied to the DOM element.
|
6078
|
-
|
6079
|
-
For example, if you pass the string "fooBar", it will first look up the
|
6080
|
-
"fooBar" value of the context. If that value is true, it will add the
|
6081
|
-
"foo-bar" class to the current element (i.e., the dasherized form of
|
6082
|
-
"fooBar"). If the value is a string, it will add that string as the class.
|
6083
|
-
Otherwise, it will not add any new class name.
|
6084
|
-
|
6085
|
-
@private
|
6086
|
-
@method bindClasses
|
6087
|
-
@for Ember.Handlebars
|
6088
|
-
@param {String} classBindings A string, space-separated, of class bindings
|
6089
|
-
to use
|
6090
|
-
@param {View} view The view in which observers should look for the
|
6091
|
-
element to update
|
6092
|
-
@return {Array} An array of class names to add
|
6093
|
-
*/
|
6094
|
-
function streamifyClassBindings(view, classBindingsString) {
|
6095
|
-
var classBindings = classBindingsString.split(' ');
|
6096
|
-
var streamified = [];
|
6097
|
-
|
6098
|
-
var parsedPath;
|
6099
|
-
for (var i=0, l=classBindings.length;i<l;i++) {
|
6100
|
-
parsedPath = View._parsePropertyPath(classBindings[i]);
|
6101
|
-
|
6102
|
-
if (parsedPath.path === '') {
|
6103
|
-
streamified.push(classStringForParsedPath(parsedPath, true) + " ");
|
6104
|
-
} else {
|
6105
|
-
(function(){
|
6106
|
-
var lazyValue = view.getStream(parsedPath.path);
|
6107
|
-
var _parsedPath = parsedPath;
|
6108
|
-
var classNameBound = new Stream(function(){
|
6109
|
-
var value = lazyValue.value();
|
6110
|
-
return classStringForParsedPath(_parsedPath, value) + " ";
|
6111
|
-
});
|
6112
|
-
lazyValue.subscribe(classNameBound.notify, classNameBound);
|
6113
|
-
streamified.push(classNameBound);
|
6114
|
-
})(); // jshint ignore:line
|
6115
|
-
}
|
6116
|
-
}
|
6117
|
-
|
6118
|
-
return concat(streamified);
|
6119
|
-
}
|
6120
|
-
|
6121
|
-
function classStringForParsedPath(parsedPath, value) {
|
6122
|
-
return View._classStringForValue(parsedPath.path, value, parsedPath.className, parsedPath.falsyClassName);
|
6123
|
-
}
|
6124
|
-
|
6125
6036
|
__exports__["default"] = bindAttrHelper;
|
6126
6037
|
|
6127
6038
|
__exports__.bindAttrHelper = bindAttrHelper;
|
6128
6039
|
__exports__.bindAttrHelperDeprecated = bindAttrHelperDeprecated;
|
6129
6040
|
});
|
6130
6041
|
enifed("ember-htmlbars/helpers/binding",
|
6131
|
-
["ember-metal/is_none","ember-metal/run_loop","ember-metal/property_get","ember-metal/streams/simple","ember-views/views/bound_view","ember-
|
6042
|
+
["ember-metal/is_none","ember-metal/run_loop","ember-metal/property_get","ember-metal/streams/simple","ember-views/views/bound_view","ember-metal/streams/utils","exports"],
|
6132
6043
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
6133
6044
|
"use strict";
|
6134
6045
|
/**
|
@@ -6141,7 +6052,7 @@ enifed("ember-htmlbars/helpers/binding",
|
|
6141
6052
|
var get = __dependency3__.get;
|
6142
6053
|
var SimpleStream = __dependency4__["default"];
|
6143
6054
|
var BoundView = __dependency5__["default"];
|
6144
|
-
var
|
6055
|
+
var isStream = __dependency6__.isStream;
|
6145
6056
|
|
6146
6057
|
function exists(value) {
|
6147
6058
|
return !isNone(value);
|
@@ -6150,7 +6061,7 @@ enifed("ember-htmlbars/helpers/binding",
|
|
6150
6061
|
// Binds a property into the DOM. This will create a hook in DOM that the
|
6151
6062
|
// KVO system will look for and update if the property changes.
|
6152
6063
|
function bind(property, hash, options, env, preserveContext, shouldDisplay, valueNormalizer, childProperties, _viewClass) {
|
6153
|
-
var valueStream = property
|
6064
|
+
var valueStream = isStream(property) ? property : this.getStream(property);
|
6154
6065
|
var lazyValue;
|
6155
6066
|
|
6156
6067
|
if (childProperties) {
|
@@ -6239,7 +6150,7 @@ enifed("ember-htmlbars/helpers/binding",
|
|
6239
6150
|
Ember.deprecate("The block form of bind, {{#bind foo}}{{/bind}}, has been deprecated and will be removed.");
|
6240
6151
|
bind.call(this, property, hash, options, env, false, exists);
|
6241
6152
|
} else {
|
6242
|
-
|
6153
|
+
return property;
|
6243
6154
|
}
|
6244
6155
|
}
|
6245
6156
|
|
@@ -6247,8 +6158,8 @@ enifed("ember-htmlbars/helpers/binding",
|
|
6247
6158
|
__exports__.bindHelper = bindHelper;
|
6248
6159
|
});
|
6249
6160
|
enifed("ember-htmlbars/helpers/collection",
|
6250
|
-
["ember-metal/core","ember-metal/mixin","ember-runtime/system/string","ember-metal/property_get","ember-
|
6251
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
|
6161
|
+
["ember-metal/core","ember-metal/mixin","ember-runtime/system/string","ember-metal/property_get","ember-htmlbars/helpers/view","ember-views/views/collection_view","ember-views/streams/utils","ember-metal/enumerable_utils","ember-views/streams/class_name_binding","ember-metal/binding","exports"],
|
6162
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __exports__) {
|
6252
6163
|
"use strict";
|
6253
6164
|
/**
|
6254
6165
|
@module ember
|
@@ -6260,11 +6171,12 @@ enifed("ember-htmlbars/helpers/collection",
|
|
6260
6171
|
var IS_BINDING = __dependency2__.IS_BINDING;
|
6261
6172
|
var fmt = __dependency3__.fmt;
|
6262
6173
|
var get = __dependency4__.get;
|
6263
|
-
var
|
6264
|
-
var
|
6265
|
-
var
|
6266
|
-
var
|
6267
|
-
var
|
6174
|
+
var ViewHelper = __dependency5__.ViewHelper;
|
6175
|
+
var CollectionView = __dependency6__["default"];
|
6176
|
+
var readViewFactory = __dependency7__.readViewFactory;
|
6177
|
+
var map = __dependency8__.map;
|
6178
|
+
var streamifyClassNameBinding = __dependency9__.streamifyClassNameBinding;
|
6179
|
+
var Binding = __dependency10__.Binding;
|
6268
6180
|
|
6269
6181
|
/**
|
6270
6182
|
`{{collection}}` is a `Ember.Handlebars` helper for adding instances of
|
@@ -6406,7 +6318,8 @@ enifed("ember-htmlbars/helpers/collection",
|
|
6406
6318
|
view = data.view,
|
6407
6319
|
// This should be deterministic, and should probably come from a
|
6408
6320
|
// parent view and not the controller.
|
6409
|
-
|
6321
|
+
controller = get(view, 'controller'),
|
6322
|
+
container = (controller && controller.container ? controller.container : view.container);
|
6410
6323
|
|
6411
6324
|
// If passed a path string, convert that into an object.
|
6412
6325
|
// Otherwise, just default to the standard class.
|
@@ -6482,27 +6395,18 @@ enifed("ember-htmlbars/helpers/collection",
|
|
6482
6395
|
if (emptyViewClass) { hash.emptyView = emptyViewClass; }
|
6483
6396
|
|
6484
6397
|
if (hash.keyword) {
|
6485
|
-
itemHash._contextBinding = '_parentView.context';
|
6398
|
+
itemHash._contextBinding = Binding.oneWay('_parentView.context');
|
6486
6399
|
} else {
|
6487
|
-
itemHash._contextBinding = 'content';
|
6400
|
+
itemHash._contextBinding = Binding.oneWay('content');
|
6488
6401
|
}
|
6489
6402
|
|
6490
6403
|
var viewOptions = ViewHelper.propertiesFromHTMLOptions(itemHash, {}, { data: data });
|
6491
6404
|
|
6492
6405
|
if (hash.itemClassBinding) {
|
6493
6406
|
var itemClassBindings = hash.itemClassBinding.split(' ');
|
6494
|
-
|
6495
|
-
|
6496
|
-
|
6497
|
-
if (parsedPath.path === '') {
|
6498
|
-
parsedPath.stream = new SimpleStream(true);
|
6499
|
-
} else {
|
6500
|
-
parsedPath.stream = view.getStream(parsedPath.path);
|
6501
|
-
}
|
6502
|
-
itemClassBindings[i] = parsedPath;
|
6503
|
-
}
|
6504
|
-
|
6505
|
-
viewOptions.classNameBindings = itemClassBindings;
|
6407
|
+
viewOptions.classNameBindings = map(itemClassBindings, function(classBinding){
|
6408
|
+
return streamifyClassNameBinding(view, classBinding);
|
6409
|
+
});
|
6506
6410
|
}
|
6507
6411
|
|
6508
6412
|
hash.itemViewClass = itemViewClass;
|
@@ -6883,6 +6787,7 @@ enifed("ember-htmlbars/helpers/if_unless",
|
|
6883
6787
|
options.helperName = options.helperName || ('if ');
|
6884
6788
|
|
6885
6789
|
if (env.data.isUnbound) {
|
6790
|
+
env.data.isUnbound = false;
|
6886
6791
|
return env.helpers.unboundIf.helperFunction.call(this, params, hash, options, env);
|
6887
6792
|
} else {
|
6888
6793
|
return env.helpers.boundIf.helperFunction.call(this, params, hash, options, env);
|
@@ -6910,6 +6815,7 @@ enifed("ember-htmlbars/helpers/if_unless",
|
|
6910
6815
|
options.helperName = options.helperName || helperName;
|
6911
6816
|
|
6912
6817
|
if (env.data.isUnbound) {
|
6818
|
+
env.data.isUnbound = false;
|
6913
6819
|
return env.helpers.unboundIf.helperFunction.call(this, params, hash, options, env);
|
6914
6820
|
} else {
|
6915
6821
|
return env.helpers.boundIf.helperFunction.call(this, params, hash, options, env);
|
@@ -7235,14 +7141,15 @@ enifed("ember-htmlbars/helpers/log",
|
|
7235
7141
|
__exports__.logHelper = logHelper;
|
7236
7142
|
});
|
7237
7143
|
enifed("ember-htmlbars/helpers/partial",
|
7238
|
-
["ember-metal/core","ember-metal/is_none","./binding","exports"],
|
7239
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
7144
|
+
["ember-metal/core","ember-metal/is_none","./binding","ember-metal/streams/utils","exports"],
|
7145
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
7240
7146
|
"use strict";
|
7241
7147
|
var Ember = __dependency1__["default"];
|
7242
7148
|
// Ember.assert
|
7243
7149
|
|
7244
7150
|
var isNone = __dependency2__["default"];
|
7245
7151
|
var bind = __dependency3__.bind;
|
7152
|
+
var isStream = __dependency4__.isStream;
|
7246
7153
|
|
7247
7154
|
/**
|
7248
7155
|
@module ember
|
@@ -7294,7 +7201,7 @@ enifed("ember-htmlbars/helpers/partial",
|
|
7294
7201
|
|
7295
7202
|
var name = params[0];
|
7296
7203
|
|
7297
|
-
if (name
|
7204
|
+
if (isStream(name)) {
|
7298
7205
|
options.template = createPartialTemplate(name);
|
7299
7206
|
bind.call(this, name, hash, options, env, true, exists);
|
7300
7207
|
} else {
|
@@ -7642,8 +7549,8 @@ enifed("ember-htmlbars/helpers/unbound",
|
|
7642
7549
|
__exports__.unboundHelper = unboundHelper;
|
7643
7550
|
});
|
7644
7551
|
enifed("ember-htmlbars/helpers/view",
|
7645
|
-
["ember-metal/core","ember-runtime/system/object","ember-metal/property_get","ember-metal/keys","ember-metal/mixin","ember-metal/streams/utils","ember-views/streams/utils","ember-views/views/view","ember-metal/streams/
|
7646
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
|
7552
|
+
["ember-metal/core","ember-runtime/system/object","ember-metal/property_get","ember-metal/streams/simple","ember-metal/keys","ember-metal/mixin","ember-metal/streams/utils","ember-views/streams/utils","ember-views/views/view","ember-metal/enumerable_utils","ember-views/streams/class_name_binding","exports"],
|
7553
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __exports__) {
|
7647
7554
|
"use strict";
|
7648
7555
|
/**
|
7649
7556
|
@module ember
|
@@ -7655,13 +7562,16 @@ enifed("ember-htmlbars/helpers/view",
|
|
7655
7562
|
|
7656
7563
|
var EmberObject = __dependency2__["default"];
|
7657
7564
|
var get = __dependency3__.get;
|
7658
|
-
var
|
7659
|
-
var
|
7660
|
-
var
|
7661
|
-
var
|
7662
|
-
var
|
7663
|
-
var
|
7664
|
-
var
|
7565
|
+
var SimpleStream = __dependency4__["default"];
|
7566
|
+
var keys = __dependency5__["default"];
|
7567
|
+
var IS_BINDING = __dependency6__.IS_BINDING;
|
7568
|
+
var read = __dependency7__.read;
|
7569
|
+
var isStream = __dependency7__.isStream;
|
7570
|
+
var readViewFactory = __dependency8__.readViewFactory;
|
7571
|
+
var View = __dependency9__["default"];
|
7572
|
+
|
7573
|
+
var map = __dependency10__.map;
|
7574
|
+
var streamifyClassNameBinding = __dependency11__.streamifyClassNameBinding;
|
7665
7575
|
|
7666
7576
|
function makeBindings(hash, options, view) {
|
7667
7577
|
for (var prop in hash) {
|
@@ -7751,17 +7661,17 @@ enifed("ember-htmlbars/helpers/view",
|
|
7751
7661
|
}
|
7752
7662
|
}
|
7753
7663
|
|
7754
|
-
|
7755
|
-
|
7756
|
-
|
7757
|
-
|
7758
|
-
|
7759
|
-
parsedPath.stream = new SimpleStream(true);
|
7664
|
+
if (extensions.classNameBindings) {
|
7665
|
+
extensions.classNameBindings = map(extensions.classNameBindings, function(classNameBinding){
|
7666
|
+
var binding = streamifyClassNameBinding(view, classNameBinding);
|
7667
|
+
if (isStream(binding)) {
|
7668
|
+
return binding;
|
7760
7669
|
} else {
|
7761
|
-
|
7670
|
+
// returning a stream informs the classNameBindings logic
|
7671
|
+
// in views/view that this value is already processed.
|
7672
|
+
return new SimpleStream(binding);
|
7762
7673
|
}
|
7763
|
-
|
7764
|
-
}
|
7674
|
+
});
|
7765
7675
|
}
|
7766
7676
|
|
7767
7677
|
return extensions;
|
@@ -7770,12 +7680,18 @@ enifed("ember-htmlbars/helpers/view",
|
|
7770
7680
|
helper: function(newView, hash, options, env) {
|
7771
7681
|
var data = env.data;
|
7772
7682
|
var template = options.template;
|
7683
|
+
var newViewProto;
|
7773
7684
|
|
7774
7685
|
makeBindings(hash, options, env.data.view);
|
7775
7686
|
|
7776
7687
|
var viewOptions = this.propertiesFromHTMLOptions(hash, options, env);
|
7777
7688
|
var currentView = data.view;
|
7778
|
-
|
7689
|
+
|
7690
|
+
if (View.detectInstance(newView)) {
|
7691
|
+
newViewProto = newView;
|
7692
|
+
} else {
|
7693
|
+
newViewProto = newView.proto();
|
7694
|
+
}
|
7779
7695
|
|
7780
7696
|
if (template) {
|
7781
7697
|
Ember.assert(
|
@@ -8111,7 +8027,7 @@ enifed("ember-htmlbars/helpers/with",
|
|
8111
8027
|
|
8112
8028
|
var preserveContext;
|
8113
8029
|
|
8114
|
-
if (
|
8030
|
+
if (options.blockParams) {
|
8115
8031
|
preserveContext = true;
|
8116
8032
|
} else {
|
8117
8033
|
Ember.deprecate(
|
@@ -8245,8 +8161,8 @@ enifed("ember-htmlbars/helpers/yield",
|
|
8245
8161
|
__exports__.yieldHelper = yieldHelper;
|
8246
8162
|
});
|
8247
8163
|
enifed("ember-htmlbars/hooks/attribute",
|
8248
|
-
["ember-htmlbars/attr_nodes","ember-metal/error","ember-metal/streams/utils","exports"],
|
8249
|
-
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
8164
|
+
["ember-htmlbars/attr_nodes","ember-metal/error","ember-metal/streams/utils","ember-views/system/sanitize_attribute_value","exports"],
|
8165
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
8250
8166
|
"use strict";
|
8251
8167
|
/**
|
8252
8168
|
@module ember
|
@@ -8256,6 +8172,7 @@ enifed("ember-htmlbars/hooks/attribute",
|
|
8256
8172
|
var attrNodeTypeFor = __dependency1__["default"];
|
8257
8173
|
var EmberError = __dependency2__["default"];
|
8258
8174
|
var isStream = __dependency3__.isStream;
|
8175
|
+
var sanitizeAttributeValue = __dependency4__["default"];
|
8259
8176
|
|
8260
8177
|
var boundAttributesEnabled = false;
|
8261
8178
|
|
@@ -8268,7 +8185,8 @@ enifed("ember-htmlbars/hooks/attribute",
|
|
8268
8185
|
if (isStream(attrValue)) {
|
8269
8186
|
throw new EmberError('Bound attributes are not yet supported in Ember.js');
|
8270
8187
|
} else {
|
8271
|
-
|
8188
|
+
var sanitizedValue = sanitizeAttributeValue(element, attrName, attrValue);
|
8189
|
+
env.dom.setAttribute(element, attrName, sanitizedValue);
|
8272
8190
|
}
|
8273
8191
|
}
|
8274
8192
|
}
|
@@ -8295,51 +8213,23 @@ enifed("ember-htmlbars/hooks/component",
|
|
8295
8213
|
}
|
8296
8214
|
});
|
8297
8215
|
enifed("ember-htmlbars/hooks/concat",
|
8298
|
-
["ember-metal/streams/
|
8299
|
-
function(__dependency1__,
|
8216
|
+
["ember-metal/streams/utils","exports"],
|
8217
|
+
function(__dependency1__, __exports__) {
|
8300
8218
|
"use strict";
|
8301
8219
|
/**
|
8302
8220
|
@module ember
|
8303
8221
|
@submodule ember-htmlbars
|
8304
8222
|
*/
|
8305
8223
|
|
8306
|
-
var
|
8307
|
-
var isStream = __dependency2__.isStream;
|
8308
|
-
var readArray = __dependency2__.readArray;
|
8309
|
-
var subscribe = __dependency2__.subscribe;
|
8224
|
+
var streamConcat = __dependency1__.concat;
|
8310
8225
|
|
8311
|
-
// TODO: Create subclass ConcatStream < Stream. Defer
|
8312
|
-
// subscribing to streams until the value() is called.
|
8313
8226
|
__exports__["default"] = function concat(params) {
|
8314
|
-
|
8315
|
-
var isStatic = true;
|
8316
|
-
|
8317
|
-
for (i = 0; i < params.length; i++) {
|
8318
|
-
if (isStream(params[i])) {
|
8319
|
-
isStatic = false;
|
8320
|
-
break;
|
8321
|
-
}
|
8322
|
-
}
|
8323
|
-
|
8324
|
-
if (isStatic) {
|
8325
|
-
return params.join('');
|
8326
|
-
} else {
|
8327
|
-
var stream = new Stream(function() {
|
8328
|
-
return readArray(params).join('');
|
8329
|
-
});
|
8330
|
-
|
8331
|
-
for (i = 0; i < params.length; i++) {
|
8332
|
-
subscribe(params[i], stream.notify, stream);
|
8333
|
-
}
|
8334
|
-
|
8335
|
-
return stream;
|
8336
|
-
}
|
8337
|
-
|
8227
|
+
return streamConcat(params, '');
|
8338
8228
|
}
|
8339
8229
|
});
|
8340
8230
|
enifed("ember-htmlbars/hooks/content",
|
8341
|
-
["ember-htmlbars/hooks/subexpr","ember-views/views/simple_bound_view","exports"],
|
8342
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
8231
|
+
["ember-htmlbars/hooks/subexpr","ember-views/views/simple_bound_view","ember-metal/streams/utils","exports"],
|
8232
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
8343
8233
|
"use strict";
|
8344
8234
|
/**
|
8345
8235
|
@module ember
|
@@ -8348,11 +8238,12 @@ enifed("ember-htmlbars/hooks/content",
|
|
8348
8238
|
|
8349
8239
|
var subexpr = __dependency1__["default"];
|
8350
8240
|
var appendSimpleBoundView = __dependency2__.appendSimpleBoundView;
|
8241
|
+
var isStream = __dependency3__.isStream;
|
8351
8242
|
|
8352
8243
|
__exports__["default"] = function content(morph, path, view, params, hash, options, env) {
|
8353
8244
|
var result = subexpr(path, view, params, hash, options, env);
|
8354
8245
|
|
8355
|
-
if (result
|
8246
|
+
if (isStream(result)) {
|
8356
8247
|
appendSimpleBoundView(view, morph, result);
|
8357
8248
|
} else {
|
8358
8249
|
morph.update(result);
|
@@ -8431,120 +8322,8 @@ enifed("ember-htmlbars/hooks/subexpr",
|
|
8431
8322
|
}
|
8432
8323
|
}
|
8433
8324
|
});
|
8434
|
-
enifed("ember-htmlbars/plugins/transform-each-in-to-hash",
|
8435
|
-
["htmlbars-syntax/walker","htmlbars-syntax/builders","exports"],
|
8436
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
8437
|
-
"use strict";
|
8438
|
-
var Walker = __dependency1__["default"];
|
8439
|
-
var b = __dependency2__["default"];
|
8440
|
-
|
8441
|
-
/**
|
8442
|
-
An HTMLBars AST transformation that replaces all instances of
|
8443
|
-
|
8444
|
-
```handlebars
|
8445
|
-
{{#each item in items}}
|
8446
|
-
{{/each}}
|
8447
|
-
```
|
8448
|
-
|
8449
|
-
with
|
8450
|
-
|
8451
|
-
```handlebars
|
8452
|
-
{{#each items keyword="item"}}
|
8453
|
-
{{/each}}
|
8454
|
-
```
|
8455
|
-
|
8456
|
-
@private
|
8457
|
-
@param {AST} The AST to be transformed.
|
8458
|
-
*/
|
8459
|
-
__exports__["default"] = function(ast) {
|
8460
|
-
var walker = new Walker();
|
8461
|
-
|
8462
|
-
walker.visit(ast, function(node) {
|
8463
|
-
if (validate(node)) {
|
8464
|
-
var removedParams = node.sexpr.params.splice(0, 2);
|
8465
|
-
var keyword = removedParams[0].original;
|
8466
|
-
|
8467
|
-
// TODO: This may not be necessary.
|
8468
|
-
if (!node.sexpr.hash) {
|
8469
|
-
node.sexpr.hash = b.hash();
|
8470
|
-
}
|
8471
|
-
|
8472
|
-
node.sexpr.hash.pairs.push(b.pair(
|
8473
|
-
'keyword',
|
8474
|
-
b.string(keyword)
|
8475
|
-
));
|
8476
|
-
}
|
8477
|
-
});
|
8478
|
-
|
8479
|
-
return ast;
|
8480
|
-
}
|
8481
|
-
|
8482
|
-
function validate(node) {
|
8483
|
-
return (node.type === 'BlockStatement' || node.type === 'MustacheStatement') &&
|
8484
|
-
node.sexpr.path.original === 'each' &&
|
8485
|
-
node.sexpr.params.length === 3 &&
|
8486
|
-
node.sexpr.params[1].type === 'PathExpression' &&
|
8487
|
-
node.sexpr.params[1].original === 'in';
|
8488
|
-
}
|
8489
|
-
});
|
8490
|
-
enifed("ember-htmlbars/plugins/transform-with-as-to-hash",
|
8491
|
-
["htmlbars-syntax/walker","htmlbars-syntax/builders","exports"],
|
8492
|
-
function(__dependency1__, __dependency2__, __exports__) {
|
8493
|
-
"use strict";
|
8494
|
-
var Walker = __dependency1__["default"];
|
8495
|
-
var b = __dependency2__["default"];
|
8496
|
-
|
8497
|
-
/**
|
8498
|
-
An HTMLBars AST transformation that replaces all instances of
|
8499
|
-
|
8500
|
-
```handlebars
|
8501
|
-
{{#with foo.bar as bar}}
|
8502
|
-
{{/with}}
|
8503
|
-
```
|
8504
|
-
|
8505
|
-
with
|
8506
|
-
|
8507
|
-
```handlebars
|
8508
|
-
{{#with foo.bar keywordName="bar"}}
|
8509
|
-
{{/with}}
|
8510
|
-
```
|
8511
|
-
|
8512
|
-
@private
|
8513
|
-
@param {AST} The AST to be transformed.
|
8514
|
-
*/
|
8515
|
-
__exports__["default"] = function(ast) {
|
8516
|
-
var walker = new Walker();
|
8517
|
-
|
8518
|
-
walker.visit(ast, function(node) {
|
8519
|
-
if (validate(node)) {
|
8520
|
-
var removedParams = node.sexpr.params.splice(1, 2);
|
8521
|
-
var keyword = removedParams[1].original;
|
8522
|
-
|
8523
|
-
// TODO: This may not be necessary.
|
8524
|
-
if (!node.sexpr.hash) {
|
8525
|
-
node.sexpr.hash = b.hash();
|
8526
|
-
}
|
8527
|
-
|
8528
|
-
node.sexpr.hash.pairs.push(b.pair(
|
8529
|
-
'keywordName',
|
8530
|
-
b.string(keyword)
|
8531
|
-
));
|
8532
|
-
}
|
8533
|
-
});
|
8534
|
-
|
8535
|
-
return ast;
|
8536
|
-
}
|
8537
|
-
|
8538
|
-
function validate(node) {
|
8539
|
-
return node.type === 'BlockStatement' &&
|
8540
|
-
node.sexpr.path.original === 'with' &&
|
8541
|
-
node.sexpr.params.length === 3 &&
|
8542
|
-
node.sexpr.params[1].type === 'PathExpression' &&
|
8543
|
-
node.sexpr.params[1].original === 'as';
|
8544
|
-
}
|
8545
|
-
});
|
8546
8325
|
enifed("ember-htmlbars/system/bootstrap",
|
8547
|
-
["ember-metal/core","ember-views/component_lookup","ember-views/system/jquery","ember-metal/error","ember-runtime/system/lazy_load","ember-
|
8326
|
+
["ember-metal/core","ember-views/component_lookup","ember-views/system/jquery","ember-metal/error","ember-runtime/system/lazy_load","ember-template-compiler/system/compile","exports"],
|
8548
8327
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
8549
8328
|
"use strict";
|
8550
8329
|
/*globals Handlebars */
|
@@ -8650,48 +8429,6 @@ enifed("ember-htmlbars/system/bootstrap",
|
|
8650
8429
|
|
8651
8430
|
__exports__["default"] = bootstrap;
|
8652
8431
|
});
|
8653
|
-
enifed("ember-htmlbars/system/compile",
|
8654
|
-
["ember-metal/core","htmlbars-compiler/compiler","ember-htmlbars/system/template","ember-htmlbars/plugins/transform-each-in-to-hash","ember-htmlbars/plugins/transform-with-as-to-hash","exports"],
|
8655
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
8656
|
-
"use strict";
|
8657
|
-
/**
|
8658
|
-
@module ember
|
8659
|
-
@submodule ember-htmlbars
|
8660
|
-
*/
|
8661
|
-
|
8662
|
-
var Ember = __dependency1__["default"];
|
8663
|
-
var compile = __dependency2__.compile;
|
8664
|
-
var template = __dependency3__["default"];
|
8665
|
-
|
8666
|
-
var transformEachInToHash = __dependency4__["default"];
|
8667
|
-
var transformWithAsToHash = __dependency5__["default"];
|
8668
|
-
|
8669
|
-
var disableComponentGeneration = true;
|
8670
|
-
|
8671
|
-
/**
|
8672
|
-
Uses HTMLBars `compile` function to process a string into a compiled template.
|
8673
|
-
|
8674
|
-
This is not present in production builds.
|
8675
|
-
|
8676
|
-
@private
|
8677
|
-
@method template
|
8678
|
-
@param {String} templateString This is the string to be compiled by HTMLBars.
|
8679
|
-
*/
|
8680
|
-
__exports__["default"] = function(templateString) {
|
8681
|
-
var templateSpec = compile(templateString, {
|
8682
|
-
disableComponentGeneration: disableComponentGeneration,
|
8683
|
-
|
8684
|
-
plugins: {
|
8685
|
-
ast: [
|
8686
|
-
transformEachInToHash,
|
8687
|
-
transformWithAsToHash
|
8688
|
-
]
|
8689
|
-
}
|
8690
|
-
});
|
8691
|
-
|
8692
|
-
return template(templateSpec);
|
8693
|
-
}
|
8694
|
-
});
|
8695
8432
|
enifed("ember-htmlbars/system/helper",
|
8696
8433
|
["exports"],
|
8697
8434
|
function(__exports__) {
|
@@ -8755,8 +8492,9 @@ enifed("ember-htmlbars/system/lookup-helper",
|
|
8755
8492
|
@return {Handlebars Helper}
|
8756
8493
|
*/
|
8757
8494
|
__exports__["default"] = function lookupHelper(name, view, env) {
|
8758
|
-
|
8759
|
-
|
8495
|
+
var helper = env.helpers[name];
|
8496
|
+
if (helper) {
|
8497
|
+
return helper;
|
8760
8498
|
}
|
8761
8499
|
|
8762
8500
|
var container = view.container;
|
@@ -8766,7 +8504,7 @@ enifed("ember-htmlbars/system/lookup-helper",
|
|
8766
8504
|
}
|
8767
8505
|
|
8768
8506
|
var helperName = 'helper:' + name;
|
8769
|
-
|
8507
|
+
helper = container.lookup(helperName);
|
8770
8508
|
if (!helper) {
|
8771
8509
|
var componentLookup = container.lookup('component-lookup:main');
|
8772
8510
|
Ember.assert("Could not find 'component-lookup:main' on the provided container," +
|
@@ -8824,8 +8562,8 @@ enifed("ember-htmlbars/system/make-view-helper",
|
|
8824
8562
|
}
|
8825
8563
|
});
|
8826
8564
|
enifed("ember-htmlbars/system/make_bound_helper",
|
8827
|
-
["ember-metal/core","ember-
|
8828
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__,
|
8565
|
+
["ember-metal/core","ember-htmlbars/system/helper","ember-metal/streams/stream","ember-metal/streams/utils","exports"],
|
8566
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
8829
8567
|
"use strict";
|
8830
8568
|
/**
|
8831
8569
|
@module ember
|
@@ -8834,14 +8572,14 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8834
8572
|
|
8835
8573
|
var Ember = __dependency1__["default"];
|
8836
8574
|
// Ember.FEATURES, Ember.assert, Ember.Handlebars, Ember.lookup
|
8837
|
-
var
|
8838
|
-
var appendSimpleBoundView = __dependency3__.appendSimpleBoundView;
|
8839
|
-
var Helper = __dependency4__["default"];
|
8575
|
+
var Helper = __dependency2__["default"];
|
8840
8576
|
|
8841
|
-
var Stream =
|
8842
|
-
var readArray =
|
8843
|
-
var readHash =
|
8844
|
-
var subscribe =
|
8577
|
+
var Stream = __dependency3__["default"];
|
8578
|
+
var readArray = __dependency4__.readArray;
|
8579
|
+
var readHash = __dependency4__.readHash;
|
8580
|
+
var subscribe = __dependency4__.subscribe;
|
8581
|
+
var scanHash = __dependency4__.scanHash;
|
8582
|
+
var scanArray = __dependency4__.scanArray;
|
8845
8583
|
|
8846
8584
|
/**
|
8847
8585
|
Create a bound helper. Accepts a function that receives the ordered and hash parameters
|
@@ -8851,9 +8589,9 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8851
8589
|
|
8852
8590
|
* `params` - An array of resolved ordered parameters.
|
8853
8591
|
* `hash` - An object containing the hash parameters.
|
8854
|
-
|
8592
|
+
|
8855
8593
|
For example:
|
8856
|
-
|
8594
|
+
|
8857
8595
|
* With an unqouted ordered parameter:
|
8858
8596
|
|
8859
8597
|
```javascript
|
@@ -8864,7 +8602,7 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8864
8602
|
an empty hash as its second.
|
8865
8603
|
|
8866
8604
|
* With a quoted ordered parameter:
|
8867
|
-
|
8605
|
+
|
8868
8606
|
```javascript
|
8869
8607
|
{{x-capitalize "foo"}}
|
8870
8608
|
```
|
@@ -8872,7 +8610,7 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8872
8610
|
The bound helper would receive `["foo"]` as its first argument, and an empty hash as its second.
|
8873
8611
|
|
8874
8612
|
* With an unquoted hash parameter:
|
8875
|
-
|
8613
|
+
|
8876
8614
|
```javascript
|
8877
8615
|
{{x-repeat "foo" count=repeatCount}}
|
8878
8616
|
```
|
@@ -8889,30 +8627,25 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8889
8627
|
__exports__["default"] = function makeBoundHelper(fn) {
|
8890
8628
|
function helperFunc(params, hash, options, env) {
|
8891
8629
|
var view = this;
|
8630
|
+
var numParams = params.length;
|
8631
|
+
var param, prop;
|
8892
8632
|
|
8893
8633
|
Ember.assert("makeBoundHelper generated helpers do not support use with blocks", !options.template);
|
8894
8634
|
|
8895
|
-
for (var prop in hash) {
|
8896
|
-
if (IS_BINDING.test(prop)) {
|
8897
|
-
hash[prop.slice(0, -7)] = view._getBindingForStream(hash[prop]);
|
8898
|
-
|
8899
|
-
delete hash[prop];
|
8900
|
-
}
|
8901
|
-
}
|
8902
|
-
|
8903
8635
|
function valueFn() {
|
8904
8636
|
return fn.call(view, readArray(params), readHash(hash), options, env);
|
8905
8637
|
}
|
8906
8638
|
|
8907
|
-
|
8639
|
+
// If none of the hash parameters are bound, act as an unbound helper.
|
8640
|
+
// This prevents views from being unnecessarily created
|
8641
|
+
var hasStream = scanArray(params) || scanHash(hash);
|
8642
|
+
|
8643
|
+
if (env.data.isUnbound || !hasStream) {
|
8908
8644
|
return valueFn();
|
8909
8645
|
} else {
|
8910
8646
|
var lazyValue = new Stream(valueFn);
|
8911
8647
|
|
8912
|
-
|
8913
|
-
|
8914
|
-
var param;
|
8915
|
-
for (var i = 0, l = params.length; i < l; i++) {
|
8648
|
+
for (var i = 0; i < numParams; i++) {
|
8916
8649
|
param = params[i];
|
8917
8650
|
subscribe(param, lazyValue.notify, lazyValue);
|
8918
8651
|
}
|
@@ -8921,39 +8654,50 @@ enifed("ember-htmlbars/system/make_bound_helper",
|
|
8921
8654
|
param = hash[prop];
|
8922
8655
|
subscribe(param, lazyValue.notify, lazyValue);
|
8923
8656
|
}
|
8657
|
+
|
8658
|
+
return lazyValue;
|
8924
8659
|
}
|
8925
8660
|
}
|
8926
8661
|
|
8927
8662
|
return new Helper(helperFunc);
|
8928
8663
|
}
|
8929
8664
|
});
|
8930
|
-
enifed("ember-htmlbars/
|
8931
|
-
["exports"],
|
8932
|
-
function(__exports__) {
|
8665
|
+
enifed("ember-htmlbars/templates/component",
|
8666
|
+
["ember-template-compiler/system/template","exports"],
|
8667
|
+
function(__dependency1__, __exports__) {
|
8933
8668
|
"use strict";
|
8934
|
-
|
8935
|
-
|
8936
|
-
|
8937
|
-
|
8938
|
-
|
8939
|
-
|
8940
|
-
|
8941
|
-
|
8942
|
-
|
8943
|
-
|
8944
|
-
|
8945
|
-
|
8946
|
-
|
8947
|
-
|
8948
|
-
|
8949
|
-
|
8950
|
-
|
8951
|
-
|
8952
|
-
|
8953
|
-
|
8669
|
+
var template = __dependency1__["default"];
|
8670
|
+
var t = (function() {
|
8671
|
+
return {
|
8672
|
+
isHTMLBars: true,
|
8673
|
+
cachedFragment: null,
|
8674
|
+
build: function build(dom) {
|
8675
|
+
var el0 = dom.createDocumentFragment();
|
8676
|
+
var el1 = dom.createTextNode("");
|
8677
|
+
dom.appendChild(el0, el1);
|
8678
|
+
var el1 = dom.createTextNode("");
|
8679
|
+
dom.appendChild(el0, el1);
|
8680
|
+
return el0;
|
8681
|
+
},
|
8682
|
+
render: function render(context, env, contextualElement) {
|
8683
|
+
var dom = env.dom;
|
8684
|
+
var hooks = env.hooks, content = hooks.content;
|
8685
|
+
dom.detectNamespace(contextualElement);
|
8686
|
+
if (this.cachedFragment === null) {
|
8687
|
+
this.cachedFragment = this.build(dom);
|
8688
|
+
}
|
8689
|
+
var fragment = dom.cloneNode(this.cachedFragment, true);
|
8690
|
+
dom.repairClonedNode(fragment,[0,1]);
|
8691
|
+
var morph0 = dom.createMorphAt(fragment,0,1,contextualElement);
|
8692
|
+
content(morph0, "yield", context, [], {}, {morph: morph0}, env);
|
8693
|
+
return fragment;
|
8694
|
+
}
|
8695
|
+
};
|
8696
|
+
}());
|
8697
|
+
__exports__["default"] = template(t);
|
8954
8698
|
});
|
8955
8699
|
enifed("ember-htmlbars/templates/select",
|
8956
|
-
["ember-
|
8700
|
+
["ember-template-compiler/system/template","exports"],
|
8957
8701
|
function(__dependency1__, __exports__) {
|
8958
8702
|
"use strict";
|
8959
8703
|
var template = __dependency1__["default"];
|
@@ -9487,8 +9231,8 @@ enifed("ember-metal-views/renderer",
|
|
9487
9231
|
__exports__["default"] = Renderer;
|
9488
9232
|
});
|
9489
9233
|
enifed("ember-metal",
|
9490
|
-
["ember-metal/core","ember-metal/merge","ember-metal/instrumentation","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/cache","ember-metal/platform","ember-metal/array","ember-metal/logger","ember-metal/property_get","ember-metal/events","ember-metal/observer_set","ember-metal/property_events","ember-metal/properties","ember-metal/property_set","ember-metal/map","ember-metal/get_properties","ember-metal/set_properties","ember-metal/watch_key","ember-metal/chains","ember-metal/watch_path","ember-metal/watching","ember-metal/expand_properties","ember-metal/computed","ember-metal/computed_macros","ember-metal/observer","ember-metal/mixin","ember-metal/binding","ember-metal/run_loop","ember-metal/libraries","ember-metal/is_none","ember-metal/is_empty","ember-metal/is_blank","ember-metal/is_present","ember-metal/keys","exports"],
|
9491
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __dependency29__, __dependency30__, __dependency31__, __dependency32__, __dependency33__, __dependency34__, __dependency35__, __dependency36__, __exports__) {
|
9234
|
+
["ember-metal/core","ember-metal/merge","ember-metal/instrumentation","ember-metal/utils","ember-metal/error","ember-metal/enumerable_utils","ember-metal/cache","ember-metal/platform","ember-metal/array","ember-metal/logger","ember-metal/property_get","ember-metal/events","ember-metal/observer_set","ember-metal/property_events","ember-metal/properties","ember-metal/property_set","ember-metal/map","ember-metal/get_properties","ember-metal/set_properties","ember-metal/watch_key","ember-metal/chains","ember-metal/watch_path","ember-metal/watching","ember-metal/expand_properties","ember-metal/computed","ember-metal/computed_macros","ember-metal/observer","ember-metal/mixin","ember-metal/binding","ember-metal/run_loop","ember-metal/libraries","ember-metal/is_none","ember-metal/is_empty","ember-metal/is_blank","ember-metal/is_present","ember-metal/keys","backburner","exports"],
|
9235
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __dependency29__, __dependency30__, __dependency31__, __dependency32__, __dependency33__, __dependency34__, __dependency35__, __dependency36__, __dependency37__, __exports__) {
|
9492
9236
|
"use strict";
|
9493
9237
|
/**
|
9494
9238
|
Ember Metal
|
@@ -9620,6 +9364,7 @@ enifed("ember-metal",
|
|
9620
9364
|
var isBlank = __dependency34__["default"];
|
9621
9365
|
var isPresent = __dependency35__["default"];
|
9622
9366
|
var keys = __dependency36__["default"];
|
9367
|
+
var Backburner = __dependency37__["default"];
|
9623
9368
|
|
9624
9369
|
// END IMPORTS
|
9625
9370
|
|
@@ -9764,6 +9509,13 @@ enifed("ember-metal",
|
|
9764
9509
|
|
9765
9510
|
Ember.run = run;
|
9766
9511
|
|
9512
|
+
/**
|
9513
|
+
* @class Backburner
|
9514
|
+
* @for Ember
|
9515
|
+
* @private
|
9516
|
+
*/
|
9517
|
+
Ember.Backburner = Backburner;
|
9518
|
+
|
9767
9519
|
Ember.libraries = new Libraries();
|
9768
9520
|
Ember.libraries.registerCoreLibrary('Ember', Ember.VERSION);
|
9769
9521
|
|
@@ -12324,7 +12076,7 @@ enifed("ember-metal/core",
|
|
12324
12076
|
|
12325
12077
|
@class Ember
|
12326
12078
|
@static
|
12327
|
-
@version 1.10.0-beta.
|
12079
|
+
@version 1.10.0-beta.2
|
12328
12080
|
*/
|
12329
12081
|
|
12330
12082
|
if ('undefined' === typeof Ember) {
|
@@ -12351,10 +12103,10 @@ enifed("ember-metal/core",
|
|
12351
12103
|
/**
|
12352
12104
|
@property VERSION
|
12353
12105
|
@type String
|
12354
|
-
@default '1.10.0-beta.
|
12106
|
+
@default '1.10.0-beta.2'
|
12355
12107
|
@static
|
12356
12108
|
*/
|
12357
|
-
Ember.VERSION = '1.10.0-beta.
|
12109
|
+
Ember.VERSION = '1.10.0-beta.2';
|
12358
12110
|
|
12359
12111
|
/**
|
12360
12112
|
Standard environmental variables. You can define these in a global `EmberENV`
|
@@ -13505,17 +13257,16 @@ enifed("ember-metal/get_properties",
|
|
13505
13257
|
}
|
13506
13258
|
});
|
13507
13259
|
enifed("ember-metal/injected_property",
|
13508
|
-
["ember-metal/core","ember-metal/computed","ember-metal/
|
13260
|
+
["ember-metal/core","ember-metal/computed","ember-metal/alias","ember-metal/properties","ember-metal/platform","ember-metal/utils","exports"],
|
13509
13261
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
13510
13262
|
"use strict";
|
13511
13263
|
var Ember = __dependency1__["default"];
|
13512
13264
|
// Ember.assert
|
13513
13265
|
var ComputedProperty = __dependency2__.ComputedProperty;
|
13514
|
-
var
|
13515
|
-
var
|
13516
|
-
var
|
13517
|
-
var
|
13518
|
-
var EmberError = __dependency6__["default"];
|
13266
|
+
var AliasedProperty = __dependency3__.AliasedProperty;
|
13267
|
+
var Descriptor = __dependency4__.Descriptor;
|
13268
|
+
var create = __dependency5__.create;
|
13269
|
+
var meta = __dependency6__.meta;
|
13519
13270
|
|
13520
13271
|
/**
|
13521
13272
|
Read-only property that returns the result of a container lookup.
|
@@ -13533,7 +13284,7 @@ enifed("ember-metal/injected_property",
|
|
13533
13284
|
this.name = name;
|
13534
13285
|
|
13535
13286
|
this._super$Constructor(injectedPropertyGet);
|
13536
|
-
|
13287
|
+
AliasedPropertyPrototype.oneWay.call(this);
|
13537
13288
|
}
|
13538
13289
|
|
13539
13290
|
function injectedPropertyGet(keyName) {
|
@@ -13546,22 +13297,17 @@ enifed("ember-metal/injected_property",
|
|
13546
13297
|
return this.container.lookup(desc.type + ':' + (desc.name || keyName));
|
13547
13298
|
}
|
13548
13299
|
|
13549
|
-
function injectedPropertySet(obj, keyName) {
|
13550
|
-
throw new EmberError("Cannot set injected property '" + keyName + "' on object: " + inspect(obj));
|
13551
|
-
}
|
13552
|
-
|
13553
13300
|
InjectedProperty.prototype = create(Descriptor.prototype);
|
13554
13301
|
|
13555
13302
|
var InjectedPropertyPrototype = InjectedProperty.prototype;
|
13556
13303
|
var ComputedPropertyPrototype = ComputedProperty.prototype;
|
13304
|
+
var AliasedPropertyPrototype = AliasedProperty.prototype;
|
13557
13305
|
|
13558
13306
|
InjectedPropertyPrototype._super$Constructor = ComputedProperty;
|
13559
13307
|
|
13560
13308
|
InjectedPropertyPrototype.get = ComputedPropertyPrototype.get;
|
13561
13309
|
InjectedPropertyPrototype.readOnly = ComputedPropertyPrototype.readOnly;
|
13562
13310
|
|
13563
|
-
InjectedPropertyPrototype.set = injectedPropertySet;
|
13564
|
-
|
13565
13311
|
InjectedPropertyPrototype.teardown = ComputedPropertyPrototype.teardown;
|
13566
13312
|
|
13567
13313
|
__exports__["default"] = InjectedProperty;
|
@@ -13656,6 +13402,11 @@ enifed("ember-metal/instrumentation",
|
|
13656
13402
|
@param {Object} binding Context that instrument function is called with.
|
13657
13403
|
*/
|
13658
13404
|
function instrument(name, _payload, callback, binding) {
|
13405
|
+
if (arguments.length <= 3 && typeof _payload === 'function') {
|
13406
|
+
binding = callback;
|
13407
|
+
callback = _payload;
|
13408
|
+
_payload = undefined;
|
13409
|
+
}
|
13659
13410
|
if (subscribers.length === 0) {
|
13660
13411
|
return callback.call(binding);
|
13661
13412
|
}
|
@@ -14800,8 +14551,8 @@ enifed("ember-metal/merge",
|
|
14800
14551
|
}
|
14801
14552
|
});
|
14802
14553
|
enifed("ember-metal/mixin",
|
14803
|
-
["ember-metal/core","ember-metal/merge","ember-metal/array","ember-metal/platform","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/expand_properties","ember-metal/properties","ember-metal/computed","ember-metal/binding","ember-metal/observer","ember-metal/events","exports"],
|
14804
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __exports__) {
|
14554
|
+
["ember-metal/core","ember-metal/merge","ember-metal/array","ember-metal/platform","ember-metal/property_get","ember-metal/property_set","ember-metal/utils","ember-metal/expand_properties","ember-metal/properties","ember-metal/computed","ember-metal/binding","ember-metal/observer","ember-metal/events","ember-metal/streams/utils","exports"],
|
14555
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __exports__) {
|
14805
14556
|
// Remove "use strict"; from transpiled module until
|
14806
14557
|
// https://bugs.webkit.org/show_bug.cgi?id=138038 is fixed
|
14807
14558
|
//
|
@@ -14838,6 +14589,7 @@ enifed("ember-metal/mixin",
|
|
14838
14589
|
var _suspendObserver = __dependency12__._suspendObserver;
|
14839
14590
|
var addListener = __dependency13__.addListener;
|
14840
14591
|
var removeListener = __dependency13__.removeListener;
|
14592
|
+
var isStream = __dependency14__.isStream;
|
14841
14593
|
|
14842
14594
|
var REQUIRED;
|
14843
14595
|
var a_slice = [].slice;
|
@@ -15150,7 +14902,7 @@ enifed("ember-metal/mixin",
|
|
15150
14902
|
binding = bindings[key];
|
15151
14903
|
if (binding) {
|
15152
14904
|
to = key.slice(0, -7); // strip Binding off end
|
15153
|
-
if (binding
|
14905
|
+
if (isStream(binding)) {
|
15154
14906
|
connectStreamBinding(obj, to, binding);
|
15155
14907
|
continue;
|
15156
14908
|
} else if (binding instanceof Binding) {
|
@@ -15926,7 +15678,7 @@ enifed("ember-metal/path_cache",
|
|
15926
15678
|
|
15927
15679
|
var isGlobalCache = new Cache(1000, function(key) { return IS_GLOBAL.test(key); });
|
15928
15680
|
var isGlobalPathCache = new Cache(1000, function(key) { return IS_GLOBAL_PATH.test(key); });
|
15929
|
-
var hasThisCache = new Cache(1000, function(key) { return key.
|
15681
|
+
var hasThisCache = new Cache(1000, function(key) { return key.lastIndexOf(HAS_THIS, 0) === 0; });
|
15930
15682
|
var firstDotIndexCache = new Cache(1000, function(key) { return key.indexOf('.'); });
|
15931
15683
|
|
15932
15684
|
var firstKeyCache = new Cache(1000, function(path) {
|
@@ -16200,6 +15952,13 @@ enifed("ember-metal/platform/define_property",
|
|
16200
15952
|
// Object.defineProperty once accessors have already been set.
|
16201
15953
|
if (obj.a !== true) return;
|
16202
15954
|
|
15955
|
+
// Detects a bug in Android <3 where redefining a property without a value changes the value
|
15956
|
+
// Object.defineProperty once accessors have already been set.
|
15957
|
+
defineProperty(obj, 'a', {
|
15958
|
+
enumerable: false
|
15959
|
+
});
|
15960
|
+
if (obj.a !== true) return;
|
15961
|
+
|
16203
15962
|
// defineProperty is compliant
|
16204
15963
|
return defineProperty;
|
16205
15964
|
} catch (e) {
|
@@ -16960,13 +16719,15 @@ enifed("ember-metal/property_set",
|
|
16960
16719
|
if (isUnknown && 'function' === typeof obj.setUnknownProperty) {
|
16961
16720
|
obj.setUnknownProperty(keyName, value);
|
16962
16721
|
} else if (meta && meta.watching[keyName] > 0) {
|
16963
|
-
|
16964
|
-
|
16965
|
-
|
16966
|
-
|
16967
|
-
|
16968
|
-
|
16969
|
-
|
16722
|
+
if (meta.proto !== obj) {
|
16723
|
+
|
16724
|
+
if (hasPropertyAccessors) {
|
16725
|
+
currentValue = meta.values[keyName];
|
16726
|
+
} else {
|
16727
|
+
currentValue = obj[keyName];
|
16728
|
+
}
|
16729
|
+
}
|
16730
|
+
// only trigger a change if the value has changed
|
16970
16731
|
if (value !== currentValue) {
|
16971
16732
|
propertyWillChange(obj, keyName);
|
16972
16733
|
|
@@ -17088,7 +16849,7 @@ enifed("ember-metal/run_loop",
|
|
17088
16849
|
|
17089
16850
|
```javascript
|
17090
16851
|
run(function() {
|
17091
|
-
// code to be
|
16852
|
+
// code to be executed within a RunLoop
|
17092
16853
|
});
|
17093
16854
|
```
|
17094
16855
|
|
@@ -17214,7 +16975,7 @@ enifed("ember-metal/run_loop",
|
|
17214
16975
|
|
17215
16976
|
```javascript
|
17216
16977
|
run.begin();
|
17217
|
-
// code to be
|
16978
|
+
// code to be executed within a RunLoop
|
17218
16979
|
run.end();
|
17219
16980
|
```
|
17220
16981
|
|
@@ -17232,7 +16993,7 @@ enifed("ember-metal/run_loop",
|
|
17232
16993
|
|
17233
16994
|
```javascript
|
17234
16995
|
run.begin();
|
17235
|
-
// code to be
|
16996
|
+
// code to be executed within a RunLoop
|
17236
16997
|
run.end();
|
17237
16998
|
```
|
17238
16999
|
|
@@ -17722,12 +17483,13 @@ enifed("ember-metal/streams/simple",
|
|
17722
17483
|
var Stream = __dependency2__["default"];
|
17723
17484
|
var create = __dependency3__.create;
|
17724
17485
|
var read = __dependency4__.read;
|
17486
|
+
var isStream = __dependency4__.isStream;
|
17725
17487
|
|
17726
17488
|
function SimpleStream(source) {
|
17727
17489
|
this.init();
|
17728
17490
|
this.source = source;
|
17729
17491
|
|
17730
|
-
if (source
|
17492
|
+
if (isStream(source)) {
|
17731
17493
|
source.subscribe(this._didChange, this);
|
17732
17494
|
}
|
17733
17495
|
}
|
@@ -17742,7 +17504,7 @@ enifed("ember-metal/streams/simple",
|
|
17742
17504
|
setValue: function(value) {
|
17743
17505
|
var source = this.source;
|
17744
17506
|
|
17745
|
-
if (source
|
17507
|
+
if (isStream(source)) {
|
17746
17508
|
source.setValue(value);
|
17747
17509
|
}
|
17748
17510
|
},
|
@@ -17750,11 +17512,11 @@ enifed("ember-metal/streams/simple",
|
|
17750
17512
|
setSource: function(nextSource) {
|
17751
17513
|
var prevSource = this.source;
|
17752
17514
|
if (nextSource !== prevSource) {
|
17753
|
-
if (prevSource
|
17515
|
+
if (isStream(prevSource)) {
|
17754
17516
|
prevSource.unsubscribe(this._didChange, this);
|
17755
17517
|
}
|
17756
17518
|
|
17757
|
-
if (nextSource
|
17519
|
+
if (isStream(nextSource)) {
|
17758
17520
|
nextSource.subscribe(this._didChange, this);
|
17759
17521
|
}
|
17760
17522
|
|
@@ -17771,7 +17533,7 @@ enifed("ember-metal/streams/simple",
|
|
17771
17533
|
|
17772
17534
|
destroy: function() {
|
17773
17535
|
if (this._super$destroy()) {
|
17774
|
-
if (this.source
|
17536
|
+
if (isStream(this.source)) {
|
17775
17537
|
this.source.unsubscribe(this._didChange, this);
|
17776
17538
|
}
|
17777
17539
|
this.source = undefined;
|
@@ -17911,7 +17673,7 @@ enifed("ember-metal/streams/stream",
|
|
17911
17673
|
children[key].destroy();
|
17912
17674
|
}
|
17913
17675
|
|
17914
|
-
return true;
|
17676
|
+
return true;
|
17915
17677
|
}
|
17916
17678
|
},
|
17917
17679
|
|
@@ -18011,9 +17773,11 @@ enifed("ember-metal/streams/stream_binding",
|
|
18011
17773
|
__exports__["default"] = StreamBinding;
|
18012
17774
|
});
|
18013
17775
|
enifed("ember-metal/streams/utils",
|
18014
|
-
["exports"],
|
18015
|
-
function(__exports__) {
|
17776
|
+
["./stream","exports"],
|
17777
|
+
function(__dependency1__, __exports__) {
|
18016
17778
|
"use strict";
|
17779
|
+
var Stream = __dependency1__["default"];
|
17780
|
+
|
18017
17781
|
function isStream(object) {
|
18018
17782
|
return object && object.isStream;
|
18019
17783
|
}
|
@@ -18055,7 +17819,74 @@ enifed("ember-metal/streams/utils",
|
|
18055
17819
|
return ret;
|
18056
17820
|
}
|
18057
17821
|
|
18058
|
-
__exports__.readHash = readHash
|
17822
|
+
__exports__.readHash = readHash;/**
|
17823
|
+
* @function scanArray
|
17824
|
+
* @param array Array array given to a handlebars helper
|
17825
|
+
* @return Boolean whether the array contains a stream/bound value
|
17826
|
+
*/
|
17827
|
+
function scanArray(array) {
|
17828
|
+
var length = array.length;
|
17829
|
+
var containsStream = false;
|
17830
|
+
|
17831
|
+
for (var i = 0; i < length; i++){
|
17832
|
+
if (isStream(array[i])) {
|
17833
|
+
containsStream = true;
|
17834
|
+
break;
|
17835
|
+
}
|
17836
|
+
}
|
17837
|
+
|
17838
|
+
return containsStream;
|
17839
|
+
}
|
17840
|
+
|
17841
|
+
__exports__.scanArray = scanArray;/**
|
17842
|
+
* @function scanHash
|
17843
|
+
* @param Object hash "hash" argument given to a handlebars helper
|
17844
|
+
* @return Boolean whether the object contains a stream/bound value
|
17845
|
+
*/
|
17846
|
+
function scanHash(hash) {
|
17847
|
+
var containsStream = false;
|
17848
|
+
|
17849
|
+
for (var prop in hash) {
|
17850
|
+
if (isStream(hash[prop])) {
|
17851
|
+
containsStream = true;
|
17852
|
+
break;
|
17853
|
+
}
|
17854
|
+
}
|
17855
|
+
|
17856
|
+
return containsStream;
|
17857
|
+
}
|
17858
|
+
|
17859
|
+
__exports__.scanHash = scanHash;// TODO: Create subclass ConcatStream < Stream. Defer
|
17860
|
+
// subscribing to streams until the value() is called.
|
17861
|
+
function concat(array, key) {
|
17862
|
+
var hasStream = scanArray(array);
|
17863
|
+
if (hasStream) {
|
17864
|
+
var i, l;
|
17865
|
+
var stream = new Stream(function() {
|
17866
|
+
return readArray(array).join(key);
|
17867
|
+
});
|
17868
|
+
|
17869
|
+
for (i = 0, l=array.length; i < l; i++) {
|
17870
|
+
subscribe(array[i], stream.notify, stream);
|
17871
|
+
}
|
17872
|
+
|
17873
|
+
return stream;
|
17874
|
+
} else {
|
17875
|
+
return array.join(key);
|
17876
|
+
}
|
17877
|
+
}
|
17878
|
+
|
17879
|
+
__exports__.concat = concat;function chainStream(value, fn) {
|
17880
|
+
if (isStream(value)) {
|
17881
|
+
var stream = new Stream(fn);
|
17882
|
+
subscribe(value, stream.notify, stream);
|
17883
|
+
return stream;
|
17884
|
+
} else {
|
17885
|
+
return fn();
|
17886
|
+
}
|
17887
|
+
}
|
17888
|
+
|
17889
|
+
__exports__.chainStream = chainStream;
|
18059
17890
|
});
|
18060
17891
|
enifed("ember-metal/utils",
|
18061
17892
|
["ember-metal/core","ember-metal/platform","ember-metal/array","exports"],
|
@@ -19235,8 +19066,8 @@ enifed("ember-routing-htmlbars",
|
|
19235
19066
|
__exports__["default"] = Ember;
|
19236
19067
|
});
|
19237
19068
|
enifed("ember-routing-htmlbars/helpers/action",
|
19238
|
-
["ember-metal/core","ember-metal/utils","ember-metal/run_loop","ember-views/streams/utils","ember-views/system/utils","ember-views/system/action_manager","ember-metal/array","exports"],
|
19239
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
19069
|
+
["ember-metal/core","ember-metal/utils","ember-metal/run_loop","ember-views/streams/utils","ember-views/system/utils","ember-views/system/action_manager","ember-metal/array","ember-metal/streams/utils","exports"],
|
19070
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __exports__) {
|
19240
19071
|
"use strict";
|
19241
19072
|
/**
|
19242
19073
|
@module ember
|
@@ -19251,6 +19082,7 @@ enifed("ember-routing-htmlbars/helpers/action",
|
|
19251
19082
|
var isSimpleClick = __dependency5__.isSimpleClick;
|
19252
19083
|
var ActionManager = __dependency6__["default"];
|
19253
19084
|
var indexOf = __dependency7__.indexOf;
|
19085
|
+
var isStream = __dependency8__.isStream;
|
19254
19086
|
|
19255
19087
|
function actionArgs(parameters, actionName) {
|
19256
19088
|
var ret, i, l;
|
@@ -19336,7 +19168,7 @@ enifed("ember-routing-htmlbars/helpers/action",
|
|
19336
19168
|
|
19337
19169
|
var actionName;
|
19338
19170
|
|
19339
|
-
if (actionNameOrStream
|
19171
|
+
if (isStream(actionNameOrStream)) {
|
19340
19172
|
actionName = actionNameOrStream.value();
|
19341
19173
|
|
19342
19174
|
Ember.assert("You specified a quoteless path to the {{action}} helper " +
|
@@ -19533,7 +19365,7 @@ enifed("ember-routing-htmlbars/helpers/action",
|
|
19533
19365
|
var target;
|
19534
19366
|
if (!hash.target) {
|
19535
19367
|
target = this.getStream('controller');
|
19536
|
-
} else if (hash.target
|
19368
|
+
} else if (isStream(hash.target)) {
|
19537
19369
|
target = hash.target;
|
19538
19370
|
} else {
|
19539
19371
|
target = this.getStream(hash.target);
|
@@ -20358,6 +20190,22 @@ enifed("ember-routing-views/views/link",
|
|
20358
20190
|
**/
|
20359
20191
|
rel: null,
|
20360
20192
|
|
20193
|
+
/**
|
20194
|
+
Sets the `tabindex` attribute of the `LinkView`'s HTML element.
|
20195
|
+
|
20196
|
+
@property tabindex
|
20197
|
+
@default null
|
20198
|
+
**/
|
20199
|
+
tabindex: null,
|
20200
|
+
|
20201
|
+
/**
|
20202
|
+
Sets the `target` attribute of the `LinkView`'s HTML element.
|
20203
|
+
|
20204
|
+
@property target
|
20205
|
+
@default null
|
20206
|
+
**/
|
20207
|
+
target: null,
|
20208
|
+
|
20361
20209
|
/**
|
20362
20210
|
The CSS class to apply to `LinkView`'s element when its `active`
|
20363
20211
|
property is `true`.
|
@@ -20406,7 +20254,7 @@ enifed("ember-routing-views/views/link",
|
|
20406
20254
|
|
20407
20255
|
@property attributeBindings
|
20408
20256
|
@type Array | String
|
20409
|
-
@default ['href', 'title', 'rel']
|
20257
|
+
@default ['href', 'title', 'rel', 'tabindex', 'target']
|
20410
20258
|
**/
|
20411
20259
|
attributeBindings: ['href', 'title', 'rel', 'tabindex'],
|
20412
20260
|
|
@@ -21159,13 +21007,28 @@ enifed("ember-routing/ext/controller",
|
|
21159
21007
|
```javascript
|
21160
21008
|
aController.transitionToRoute('/');
|
21161
21009
|
aController.transitionToRoute('/blog/post/1/comment/13');
|
21010
|
+
aController.transitionToRoute('/blog/posts?sort=title');
|
21011
|
+
```
|
21012
|
+
|
21013
|
+
An options hash with a `queryParams` property may be provided as
|
21014
|
+
the final argument to add query parameters to the destination URL.
|
21015
|
+
|
21016
|
+
```javascript
|
21017
|
+
aController.transitionToRoute('blogPost', 1, {
|
21018
|
+
queryParams: {showComments: 'true'}
|
21019
|
+
});
|
21020
|
+
|
21021
|
+
// if you just want to transition the query parameters without changing the route
|
21022
|
+
aController.transitionToRoute({queryParams: {sort: 'date'}});
|
21162
21023
|
```
|
21163
21024
|
|
21164
21025
|
See also [replaceRoute](/api/classes/Ember.ControllerMixin.html#method_replaceRoute).
|
21165
21026
|
|
21166
21027
|
@param {String} name the name of the route or a URL
|
21167
21028
|
@param {...Object} models the model(s) or identifier(s) to be used
|
21168
|
-
|
21029
|
+
while transitioning to the route.
|
21030
|
+
@param {Object} [options] optional hash with a queryParams property
|
21031
|
+
containing a mapping of query parameters
|
21169
21032
|
@for Ember.ControllerMixin
|
21170
21033
|
@method transitionToRoute
|
21171
21034
|
*/
|
@@ -23451,7 +23314,7 @@ enifed("ember-routing/system/route",
|
|
23451
23314
|
_actions: {
|
23452
23315
|
|
23453
23316
|
queryParamsDidChange: function(changed, totalPresent, removed) {
|
23454
|
-
var qpMap =
|
23317
|
+
var qpMap = get(this, '_qp').map;
|
23455
23318
|
|
23456
23319
|
var totalChanged = keys(changed).concat(keys(removed));
|
23457
23320
|
for (var i = 0, len = totalChanged.length; i < len; ++i) {
|
@@ -23618,6 +23481,19 @@ enifed("ember-routing/system/route",
|
|
23618
23481
|
```javascript
|
23619
23482
|
this.transitionTo('/');
|
23620
23483
|
this.transitionTo('/blog/post/1/comment/13');
|
23484
|
+
this.transitionTo('/blog/posts?sort=title');
|
23485
|
+
```
|
23486
|
+
|
23487
|
+
An options hash with a `queryParams` property may be provided as
|
23488
|
+
the final argument to add query parameters to the destination URL.
|
23489
|
+
|
23490
|
+
```javascript
|
23491
|
+
this.transitionTo('blogPost', 1, {
|
23492
|
+
queryParams: {showComments: 'true'}
|
23493
|
+
});
|
23494
|
+
|
23495
|
+
// if you just want to transition the query parameters without changing the route
|
23496
|
+
this.transitionTo({queryParams: {sort: 'date'}});
|
23621
23497
|
```
|
23622
23498
|
|
23623
23499
|
See also 'replaceWith'.
|
@@ -23685,10 +23561,30 @@ enifed("ember-routing/system/route",
|
|
23685
23561
|
});
|
23686
23562
|
```
|
23687
23563
|
|
23564
|
+
Nested Route with Query String Example
|
23565
|
+
|
23566
|
+
```javascript
|
23567
|
+
App.Router.map(function() {
|
23568
|
+
this.resource('fruits', function() {
|
23569
|
+
this.route('apples');
|
23570
|
+
});
|
23571
|
+
});
|
23572
|
+
|
23573
|
+
App.IndexRoute = Ember.Route.extend({
|
23574
|
+
actions: {
|
23575
|
+
transitionToApples: function() {
|
23576
|
+
this.transitionTo('fruits.apples', {queryParams: {color: 'red'}});
|
23577
|
+
}
|
23578
|
+
}
|
23579
|
+
});
|
23580
|
+
```
|
23581
|
+
|
23688
23582
|
@method transitionTo
|
23689
23583
|
@param {String} name the name of the route or a URL
|
23690
23584
|
@param {...Object} models the model(s) or identifier(s) to be used while
|
23691
23585
|
transitioning to the route.
|
23586
|
+
@param {Object} [options] optional hash with a queryParams property
|
23587
|
+
containing a mapping of query parameters
|
23692
23588
|
@return {Transition} the transition object associated with this
|
23693
23589
|
attempted transition
|
23694
23590
|
*/
|
@@ -23931,7 +23827,7 @@ enifed("ember-routing/system/route",
|
|
23931
23827
|
// convert the reject into a resolve and the
|
23932
23828
|
// transition would continue. To propagate the
|
23933
23829
|
// error so that it'd be handled by the `error`
|
23934
|
-
// hook, you would have to
|
23830
|
+
// hook, you would have to
|
23935
23831
|
return Ember.RSVP.reject(e);
|
23936
23832
|
});
|
23937
23833
|
}
|
@@ -23941,7 +23837,6 @@ enifed("ember-routing/system/route",
|
|
23941
23837
|
|
23942
23838
|
@method beforeModel
|
23943
23839
|
@param {Transition} transition
|
23944
|
-
@param {Object} queryParams the active query params for this route
|
23945
23840
|
@return {Promise} if the value returned from this hook is
|
23946
23841
|
a promise, the transition will pause until the transition
|
23947
23842
|
resolves. Otherwise, non-promise return values are not
|
@@ -23975,7 +23870,6 @@ enifed("ember-routing/system/route",
|
|
23975
23870
|
@param {Object} resolvedModel the value returned from `model`,
|
23976
23871
|
or its resolved value if it was a promise
|
23977
23872
|
@param {Transition} transition
|
23978
|
-
@param {Object} queryParams the active query params for this handler
|
23979
23873
|
@return {Promise} if the value returned from this hook is
|
23980
23874
|
a promise, the transition will pause until the transition
|
23981
23875
|
resolves. Otherwise, non-promise return values are not
|
@@ -24080,7 +23974,6 @@ enifed("ember-routing/system/route",
|
|
24080
23974
|
@method model
|
24081
23975
|
@param {Object} params the parameters extracted from the URL
|
24082
23976
|
@param {Transition} transition
|
24083
|
-
@param {Object} queryParams the query params for this route
|
24084
23977
|
@return {Object|Promise} the model for this route. If
|
24085
23978
|
a promise is returned, the transition will pause until
|
24086
23979
|
the promise resolves, and the resolved value of the promise
|
@@ -24568,19 +24461,19 @@ enifed("ember-routing/system/route",
|
|
24568
24461
|
@param {String} [options.model] the model object to set on `options.controller`
|
24569
24462
|
Defaults to the return value of the Route's model hook
|
24570
24463
|
*/
|
24571
|
-
render: function(
|
24464
|
+
render: function(_name, options) {
|
24572
24465
|
Ember.assert("The name in the given arguments is undefined", arguments.length > 0 ? !isNone(arguments[0]) : true);
|
24573
24466
|
|
24574
|
-
var namePassed = typeof
|
24467
|
+
var namePassed = typeof _name === 'string' && !!_name;
|
24468
|
+
var name;
|
24575
24469
|
|
24576
|
-
if (typeof
|
24577
|
-
options = name;
|
24470
|
+
if (typeof _name === 'object' && !options) {
|
24578
24471
|
name = this.routeName;
|
24472
|
+
options = _name;
|
24473
|
+
} else {
|
24474
|
+
name = _name;
|
24579
24475
|
}
|
24580
24476
|
|
24581
|
-
options = options || {};
|
24582
|
-
options.namePassed = namePassed;
|
24583
|
-
|
24584
24477
|
var templateName;
|
24585
24478
|
|
24586
24479
|
if (name) {
|
@@ -24591,30 +24484,43 @@ enifed("ember-routing/system/route",
|
|
24591
24484
|
templateName = this.templateName || name;
|
24592
24485
|
}
|
24593
24486
|
|
24594
|
-
var
|
24487
|
+
var renderOptions = buildRenderOptions(this, namePassed, name, options);
|
24595
24488
|
|
24596
|
-
var
|
24597
|
-
var
|
24598
|
-
var
|
24599
|
-
|
24600
|
-
if (!template) {
|
24601
|
-
template = container.lookup('template:' + templateName);
|
24602
|
-
}
|
24489
|
+
var LOG_VIEW_LOOKUPS = get(this.router, 'namespace.LOG_VIEW_LOOKUPS');
|
24490
|
+
var viewName = options && options.view || namePassed && name || this.viewName || name;
|
24491
|
+
var view, template;
|
24603
24492
|
|
24604
|
-
|
24605
|
-
|
24606
|
-
|
24607
|
-
|
24493
|
+
var ViewClass = this.container.lookupFactory('view:' + viewName);
|
24494
|
+
if (ViewClass) {
|
24495
|
+
view = setupView(ViewClass, renderOptions);
|
24496
|
+
if (!get(view, 'template')) {
|
24497
|
+
view.set('template', this.container.lookup('template:' + templateName));
|
24498
|
+
}
|
24499
|
+
if (LOG_VIEW_LOOKUPS) {
|
24500
|
+
Ember.Logger.info("Rendering " + renderOptions.name + " with " + view, { fullName: 'view:' + renderOptions.name });
|
24501
|
+
}
|
24502
|
+
} else {
|
24503
|
+
template = this.container.lookup('template:' + templateName);
|
24504
|
+
if (!template) {
|
24505
|
+
Ember.assert("Could not find \"" + name + "\" template or view.", arguments.length === 0 || Ember.isEmpty(arguments[0]));
|
24506
|
+
if (LOG_VIEW_LOOKUPS) {
|
24507
|
+
Ember.Logger.info("Could not find \"" + name + "\" template or view. Nothing will be rendered", { fullName: 'template:' + name });
|
24508
|
+
}
|
24509
|
+
return;
|
24510
|
+
}
|
24511
|
+
var defaultView = renderOptions.into ? 'view:default' : 'view:toplevel';
|
24512
|
+
ViewClass = this.container.lookupFactory(defaultView);
|
24513
|
+
view = setupView(ViewClass, renderOptions);
|
24514
|
+
if (!get(view, 'template')) {
|
24515
|
+
view.set('template', template);
|
24516
|
+
}
|
24517
|
+
if (LOG_VIEW_LOOKUPS) {
|
24518
|
+
Ember.Logger.info("Rendering " + renderOptions.name + " with default view " + view, { fullName: 'view:' + renderOptions.name });
|
24608
24519
|
}
|
24609
|
-
return;
|
24610
24520
|
}
|
24611
24521
|
|
24612
|
-
|
24613
|
-
|
24614
|
-
|
24615
|
-
if (options.outlet === 'main') { this.lastRenderedTemplate = name; }
|
24616
|
-
|
24617
|
-
appendView(this, view, options);
|
24522
|
+
if (renderOptions.outlet === 'main') { this.lastRenderedTemplate = name; }
|
24523
|
+
appendView(this, view, renderOptions);
|
24618
24524
|
},
|
24619
24525
|
|
24620
24526
|
/**
|
@@ -24737,25 +24643,15 @@ enifed("ember-routing/system/route",
|
|
24737
24643
|
}
|
24738
24644
|
}
|
24739
24645
|
|
24740
|
-
function
|
24741
|
-
|
24742
|
-
options.into = options.into ? options.into.replace(/\//g, '.') : parentTemplate(route);
|
24743
|
-
options.outlet = options.outlet || 'main';
|
24744
|
-
options.name = name;
|
24745
|
-
options.template = template;
|
24746
|
-
options.LOG_VIEW_LOOKUPS = get(route.router, 'namespace.LOG_VIEW_LOOKUPS');
|
24747
|
-
|
24748
|
-
Ember.assert("An outlet ("+options.outlet+") was specified but was not found.", options.outlet === 'main' || options.into);
|
24646
|
+
function buildRenderOptions(route, namePassed, name, options) {
|
24647
|
+
var controller = options && options.controller;
|
24749
24648
|
|
24750
|
-
|
24751
|
-
|
24752
|
-
|
24753
|
-
|
24754
|
-
|
24755
|
-
|
24756
|
-
controller = route.container.lookup('controller:' + name) || route.controllerName || route.routeName;
|
24757
|
-
} else {
|
24758
|
-
controller = route.controllerName || route.container.lookup('controller:' + name);
|
24649
|
+
if (!controller) {
|
24650
|
+
if (namePassed) {
|
24651
|
+
controller = route.container.lookup('controller:' + name) || route.controllerName || route.routeName;
|
24652
|
+
} else {
|
24653
|
+
controller = route.controllerName || route.container.lookup('controller:' + name);
|
24654
|
+
}
|
24759
24655
|
}
|
24760
24656
|
|
24761
24657
|
if (typeof controller === 'string') {
|
@@ -24766,38 +24662,28 @@ enifed("ember-routing/system/route",
|
|
24766
24662
|
}
|
24767
24663
|
}
|
24768
24664
|
|
24769
|
-
if (model) {
|
24770
|
-
controller.set('model', model);
|
24771
|
-
}
|
24772
|
-
|
24773
|
-
options.controller = controller;
|
24774
|
-
|
24775
|
-
return options;
|
24776
|
-
}
|
24777
|
-
|
24778
|
-
function setupView(view, container, options) {
|
24779
|
-
if (view) {
|
24780
|
-
if (options.LOG_VIEW_LOOKUPS) {
|
24781
|
-
Ember.Logger.info("Rendering " + options.name + " with " + view, { fullName: 'view:' + options.name });
|
24782
|
-
}
|
24783
|
-
} else {
|
24784
|
-
var defaultView = options.into ? 'view:default' : 'view:toplevel';
|
24785
|
-
view = container.lookup(defaultView);
|
24786
|
-
if (options.LOG_VIEW_LOOKUPS) {
|
24787
|
-
Ember.Logger.info("Rendering " + options.name + " with default view " + view, { fullName: 'view:' + options.name });
|
24788
|
-
}
|
24665
|
+
if (options && options.model) {
|
24666
|
+
controller.set('model', options.model);
|
24789
24667
|
}
|
24790
24668
|
|
24791
|
-
|
24792
|
-
|
24669
|
+
var renderOptions = {
|
24670
|
+
into: options && options.into ? options.into.replace(/\//g, '.') : parentTemplate(route),
|
24671
|
+
outlet: (options && options.outlet) || 'main',
|
24672
|
+
name: name,
|
24673
|
+
controller: controller
|
24674
|
+
};
|
24793
24675
|
|
24794
|
-
|
24795
|
-
}
|
24676
|
+
Ember.assert("An outlet ("+renderOptions.outlet+") was specified but was not found.", renderOptions.outlet === 'main' || renderOptions.into);
|
24796
24677
|
|
24797
|
-
|
24798
|
-
|
24678
|
+
return renderOptions;
|
24679
|
+
}
|
24799
24680
|
|
24800
|
-
|
24681
|
+
function setupView(ViewClass, options) {
|
24682
|
+
return ViewClass.create({
|
24683
|
+
_debugTemplateName: options.name,
|
24684
|
+
renderedName: options.name,
|
24685
|
+
controller: options.controller
|
24686
|
+
});
|
24801
24687
|
}
|
24802
24688
|
|
24803
24689
|
function appendView(route, view, options) {
|
@@ -24808,7 +24694,7 @@ enifed("ember-routing/system/route",
|
|
24808
24694
|
replace(route.teardownOutletViews, 0, 0, [teardownOutletView]);
|
24809
24695
|
parentView.connectOutlet(options.outlet, view);
|
24810
24696
|
} else {
|
24811
|
-
var rootElement = get(route, '
|
24697
|
+
var rootElement = get(route.router, 'namespace.rootElement');
|
24812
24698
|
// tear down view if one is already rendered
|
24813
24699
|
if (route.teardownTopLevelView) {
|
24814
24700
|
route.teardownTopLevelView();
|
@@ -24921,6 +24807,7 @@ enifed("ember-routing/system/router",
|
|
24921
24807
|
@class Router
|
24922
24808
|
@namespace Ember
|
24923
24809
|
@extends Ember.Object
|
24810
|
+
@uses Ember.Evented
|
24924
24811
|
*/
|
24925
24812
|
var EmberRouter = EmberObject.extend(Evented, {
|
24926
24813
|
/**
|
@@ -28812,7 +28699,6 @@ enifed("ember-runtime/ext/rsvp",
|
|
28812
28699
|
Ember.onerror(error);
|
28813
28700
|
} else {
|
28814
28701
|
Logger.error(error.stack);
|
28815
|
-
Ember.assert(error, false);
|
28816
28702
|
}
|
28817
28703
|
}
|
28818
28704
|
};
|
@@ -36759,6 +36645,301 @@ enifed("ember-runtime/system/tracked_array",
|
|
36759
36645
|
this.rangeStart = rangeStart;
|
36760
36646
|
}
|
36761
36647
|
});
|
36648
|
+
enifed("ember-template-compiler",
|
36649
|
+
["ember-metal/core","ember-template-compiler/system/precompile","ember-template-compiler/system/compile","ember-template-compiler/system/template","ember-template-compiler/plugins","ember-template-compiler/plugins/transform-each-in-to-hash","ember-template-compiler/plugins/transform-with-as-to-hash","exports"],
|
36650
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
36651
|
+
"use strict";
|
36652
|
+
var _Ember = __dependency1__["default"];
|
36653
|
+
var precompile = __dependency2__["default"];
|
36654
|
+
var compile = __dependency3__["default"];
|
36655
|
+
var template = __dependency4__["default"];
|
36656
|
+
var registerPlugin = __dependency5__.registerPlugin;
|
36657
|
+
|
36658
|
+
var TransformEachInToHash = __dependency6__["default"];
|
36659
|
+
var TransformWithAsToHash = __dependency7__["default"];
|
36660
|
+
|
36661
|
+
registerPlugin('ast', TransformWithAsToHash);
|
36662
|
+
registerPlugin('ast', TransformEachInToHash);
|
36663
|
+
|
36664
|
+
__exports__._Ember = _Ember;
|
36665
|
+
__exports__.precompile = precompile;
|
36666
|
+
__exports__.compile = compile;
|
36667
|
+
__exports__.template = template;
|
36668
|
+
__exports__.registerPlugin = registerPlugin;
|
36669
|
+
});
|
36670
|
+
enifed("ember-template-compiler/plugins",
|
36671
|
+
["exports"],
|
36672
|
+
function(__exports__) {
|
36673
|
+
"use strict";
|
36674
|
+
/**
|
36675
|
+
@module ember
|
36676
|
+
@submodule ember-template-compiler
|
36677
|
+
*/
|
36678
|
+
|
36679
|
+
/**
|
36680
|
+
@private
|
36681
|
+
@property helpers
|
36682
|
+
*/
|
36683
|
+
var plugins = {
|
36684
|
+
ast: [ ]
|
36685
|
+
};
|
36686
|
+
|
36687
|
+
/**
|
36688
|
+
Adds an AST plugin to be used by Ember.HTMLBars.compile.
|
36689
|
+
|
36690
|
+
@private
|
36691
|
+
@method registerASTPlugin
|
36692
|
+
*/
|
36693
|
+
function registerPlugin(type, Plugin) {
|
36694
|
+
if (!plugins[type]) {
|
36695
|
+
throw new Error('Attempting to register "' + Plugin + '" as "' + type + '" which is not a valid HTMLBars plugin type.');
|
36696
|
+
}
|
36697
|
+
|
36698
|
+
plugins[type].push(Plugin);
|
36699
|
+
}
|
36700
|
+
|
36701
|
+
__exports__.registerPlugin = registerPlugin;__exports__["default"] = plugins;
|
36702
|
+
});
|
36703
|
+
enifed("ember-template-compiler/plugins/transform-each-in-to-hash",
|
36704
|
+
["exports"],
|
36705
|
+
function(__exports__) {
|
36706
|
+
"use strict";
|
36707
|
+
/**
|
36708
|
+
@module ember
|
36709
|
+
@submodule ember-htmlbars
|
36710
|
+
*/
|
36711
|
+
|
36712
|
+
|
36713
|
+
/**
|
36714
|
+
An HTMLBars AST transformation that replaces all instances of
|
36715
|
+
|
36716
|
+
```handlebars
|
36717
|
+
{{#each item in items}}
|
36718
|
+
{{/each}}
|
36719
|
+
```
|
36720
|
+
|
36721
|
+
with
|
36722
|
+
|
36723
|
+
```handlebars
|
36724
|
+
{{#each items keyword="item"}}
|
36725
|
+
{{/each}}
|
36726
|
+
```
|
36727
|
+
|
36728
|
+
@class TransformEachInToHash
|
36729
|
+
@private
|
36730
|
+
*/
|
36731
|
+
function TransformEachInToHash() {
|
36732
|
+
// set later within HTMLBars to the syntax package
|
36733
|
+
this.syntax = null;
|
36734
|
+
}
|
36735
|
+
|
36736
|
+
/**
|
36737
|
+
@private
|
36738
|
+
@method transform
|
36739
|
+
@param {AST} The AST to be transformed.
|
36740
|
+
*/
|
36741
|
+
TransformEachInToHash.prototype.transform = function TransformEachInToHash_transform(ast) {
|
36742
|
+
var pluginContext = this;
|
36743
|
+
var walker = new pluginContext.syntax.Walker();
|
36744
|
+
var b = pluginContext.syntax.builders;
|
36745
|
+
|
36746
|
+
walker.visit(ast, function(node) {
|
36747
|
+
if (pluginContext.validate(node)) {
|
36748
|
+
var removedParams = node.sexpr.params.splice(0, 2);
|
36749
|
+
var keyword = removedParams[0].original;
|
36750
|
+
|
36751
|
+
// TODO: This may not be necessary.
|
36752
|
+
if (!node.sexpr.hash) {
|
36753
|
+
node.sexpr.hash = b.hash();
|
36754
|
+
}
|
36755
|
+
|
36756
|
+
node.sexpr.hash.pairs.push(b.pair(
|
36757
|
+
'keyword',
|
36758
|
+
b.string(keyword)
|
36759
|
+
));
|
36760
|
+
}
|
36761
|
+
});
|
36762
|
+
|
36763
|
+
return ast;
|
36764
|
+
};
|
36765
|
+
|
36766
|
+
TransformEachInToHash.prototype.validate = function TransformEachInToHash_validate(node) {
|
36767
|
+
return (node.type === 'BlockStatement' || node.type === 'MustacheStatement') &&
|
36768
|
+
node.sexpr.path.original === 'each' &&
|
36769
|
+
node.sexpr.params.length === 3 &&
|
36770
|
+
node.sexpr.params[1].type === 'PathExpression' &&
|
36771
|
+
node.sexpr.params[1].original === 'in';
|
36772
|
+
};
|
36773
|
+
|
36774
|
+
__exports__["default"] = TransformEachInToHash;
|
36775
|
+
});
|
36776
|
+
enifed("ember-template-compiler/plugins/transform-with-as-to-hash",
|
36777
|
+
["exports"],
|
36778
|
+
function(__exports__) {
|
36779
|
+
"use strict";
|
36780
|
+
/**
|
36781
|
+
@module ember
|
36782
|
+
@submodule ember-htmlbars
|
36783
|
+
*/
|
36784
|
+
|
36785
|
+
/**
|
36786
|
+
An HTMLBars AST transformation that replaces all instances of
|
36787
|
+
|
36788
|
+
```handlebars
|
36789
|
+
{{#with foo.bar as bar}}
|
36790
|
+
{{/with}}
|
36791
|
+
```
|
36792
|
+
|
36793
|
+
with
|
36794
|
+
|
36795
|
+
```handlebars
|
36796
|
+
{{#with foo.bar as |bar|}}
|
36797
|
+
{{/with}}
|
36798
|
+
```
|
36799
|
+
|
36800
|
+
@private
|
36801
|
+
@class TransformWithAsToHash
|
36802
|
+
*/
|
36803
|
+
function TransformWithAsToHash() {
|
36804
|
+
// set later within HTMLBars to the syntax package
|
36805
|
+
this.syntax = null;
|
36806
|
+
}
|
36807
|
+
|
36808
|
+
/**
|
36809
|
+
@private
|
36810
|
+
@method transform
|
36811
|
+
@param {AST} The AST to be transformed.
|
36812
|
+
*/
|
36813
|
+
TransformWithAsToHash.prototype.transform = function TransformWithAsToHash_transform(ast) {
|
36814
|
+
var pluginContext = this;
|
36815
|
+
var walker = new pluginContext.syntax.Walker();
|
36816
|
+
|
36817
|
+
walker.visit(ast, function(node) {
|
36818
|
+
if (pluginContext.validate(node)) {
|
36819
|
+
var removedParams = node.sexpr.params.splice(1, 2);
|
36820
|
+
var keyword = removedParams[1].original;
|
36821
|
+
node.program.blockParams = [ keyword ];
|
36822
|
+
}
|
36823
|
+
});
|
36824
|
+
|
36825
|
+
return ast;
|
36826
|
+
};
|
36827
|
+
|
36828
|
+
TransformWithAsToHash.prototype.validate = function TransformWithAsToHash_validate(node) {
|
36829
|
+
return node.type === 'BlockStatement' &&
|
36830
|
+
node.sexpr.path.original === 'with' &&
|
36831
|
+
node.sexpr.params.length === 3 &&
|
36832
|
+
node.sexpr.params[1].type === 'PathExpression' &&
|
36833
|
+
node.sexpr.params[1].original === 'as';
|
36834
|
+
};
|
36835
|
+
|
36836
|
+
__exports__["default"] = TransformWithAsToHash;
|
36837
|
+
});
|
36838
|
+
enifed("ember-template-compiler/system/compile",
|
36839
|
+
["htmlbars-compiler/compiler","ember-template-compiler/system/compile_options","ember-template-compiler/system/template","exports"],
|
36840
|
+
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
36841
|
+
"use strict";
|
36842
|
+
/**
|
36843
|
+
@module ember
|
36844
|
+
@submodule ember-template-compiler
|
36845
|
+
*/
|
36846
|
+
|
36847
|
+
var compile = __dependency1__.compile;
|
36848
|
+
var compileOptions = __dependency2__["default"];
|
36849
|
+
var template = __dependency3__["default"];
|
36850
|
+
|
36851
|
+
/**
|
36852
|
+
Uses HTMLBars `compile` function to process a string into a compiled template.
|
36853
|
+
|
36854
|
+
This is not present in production builds.
|
36855
|
+
|
36856
|
+
@private
|
36857
|
+
@method compile
|
36858
|
+
@param {String} templateString This is the string to be compiled by HTMLBars.
|
36859
|
+
*/
|
36860
|
+
__exports__["default"] = function(templateString) {
|
36861
|
+
var templateSpec = compile(templateString, compileOptions());
|
36862
|
+
|
36863
|
+
return template(templateSpec);
|
36864
|
+
}
|
36865
|
+
});
|
36866
|
+
enifed("ember-template-compiler/system/compile_options",
|
36867
|
+
["ember-metal/core","ember-template-compiler/plugins","exports"],
|
36868
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
36869
|
+
"use strict";
|
36870
|
+
/**
|
36871
|
+
@module ember
|
36872
|
+
@submodule ember-template-compiler
|
36873
|
+
*/
|
36874
|
+
|
36875
|
+
var Ember = __dependency1__["default"];
|
36876
|
+
var plugins = __dependency2__["default"];
|
36877
|
+
|
36878
|
+
/**
|
36879
|
+
@private
|
36880
|
+
@property compileOptions
|
36881
|
+
*/
|
36882
|
+
__exports__["default"] = function() {
|
36883
|
+
var disableComponentGeneration = true;
|
36884
|
+
|
36885
|
+
return {
|
36886
|
+
disableComponentGeneration: disableComponentGeneration,
|
36887
|
+
|
36888
|
+
plugins: plugins
|
36889
|
+
};
|
36890
|
+
}
|
36891
|
+
});
|
36892
|
+
enifed("ember-template-compiler/system/precompile",
|
36893
|
+
["htmlbars-compiler/compiler","ember-template-compiler/system/compile_options","exports"],
|
36894
|
+
function(__dependency1__, __dependency2__, __exports__) {
|
36895
|
+
"use strict";
|
36896
|
+
/**
|
36897
|
+
@module ember
|
36898
|
+
@submodule ember-template-compiler
|
36899
|
+
*/
|
36900
|
+
|
36901
|
+
var compileSpec = __dependency1__.compileSpec;
|
36902
|
+
var compileOptions = __dependency2__["default"];
|
36903
|
+
|
36904
|
+
/**
|
36905
|
+
Uses HTMLBars `compile` function to process a string into a compiled template string.
|
36906
|
+
The returned string must be passed through `Ember.HTMLBars.template`.
|
36907
|
+
|
36908
|
+
This is not present in production builds.
|
36909
|
+
|
36910
|
+
@private
|
36911
|
+
@method precompile
|
36912
|
+
@param {String} templateString This is the string to be compiled by HTMLBars.
|
36913
|
+
*/
|
36914
|
+
__exports__["default"] = function(templateString) {
|
36915
|
+
return compileSpec(templateString, compileOptions());
|
36916
|
+
}
|
36917
|
+
});
|
36918
|
+
enifed("ember-template-compiler/system/template",
|
36919
|
+
["exports"],
|
36920
|
+
function(__exports__) {
|
36921
|
+
"use strict";
|
36922
|
+
/**
|
36923
|
+
@module ember
|
36924
|
+
@submodule ember-template-compiler
|
36925
|
+
*/
|
36926
|
+
|
36927
|
+
/**
|
36928
|
+
Augments the detault precompiled output of an HTMLBars template with
|
36929
|
+
additional information needed by Ember.
|
36930
|
+
|
36931
|
+
@private
|
36932
|
+
@method template
|
36933
|
+
@param {Function} templateSpec This is the compiled HTMLBars template spec.
|
36934
|
+
*/
|
36935
|
+
|
36936
|
+
__exports__["default"] = function(templateSpec) {
|
36937
|
+
templateSpec.isTop = true;
|
36938
|
+
templateSpec.isMethod = false;
|
36939
|
+
|
36940
|
+
return templateSpec;
|
36941
|
+
}
|
36942
|
+
});
|
36762
36943
|
enifed("ember-testing",
|
36763
36944
|
["ember-metal/core","ember-testing/initializers","ember-testing/support","ember-testing/setup_for_testing","ember-testing/test","ember-testing/adapters/adapter","ember-testing/adapters/qunit","ember-testing/helpers"],
|
36764
36945
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__) {
|
@@ -38585,6 +38766,151 @@ enifed("ember-views/mixins/view_target_action_support",
|
|
38585
38766
|
actionContext: alias('context')
|
38586
38767
|
});
|
38587
38768
|
});
|
38769
|
+
enifed("ember-views/streams/class_name_binding",
|
38770
|
+
["ember-metal/streams/utils","ember-metal/property_get","ember-runtime/system/string","ember-metal/utils","exports"],
|
38771
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
38772
|
+
"use strict";
|
38773
|
+
var chainStream = __dependency1__.chainStream;
|
38774
|
+
var read = __dependency1__.read;
|
38775
|
+
var get = __dependency2__.get;
|
38776
|
+
var dasherize = __dependency3__.dasherize;
|
38777
|
+
var isArray = __dependency4__.isArray;
|
38778
|
+
|
38779
|
+
/**
|
38780
|
+
Parse a path and return an object which holds the parsed properties.
|
38781
|
+
|
38782
|
+
For example a path like "content.isEnabled:enabled:disabled" will return the
|
38783
|
+
following object:
|
38784
|
+
|
38785
|
+
```javascript
|
38786
|
+
{
|
38787
|
+
path: "content.isEnabled",
|
38788
|
+
className: "enabled",
|
38789
|
+
falsyClassName: "disabled",
|
38790
|
+
classNames: ":enabled:disabled"
|
38791
|
+
}
|
38792
|
+
```
|
38793
|
+
|
38794
|
+
@method parsePropertyPath
|
38795
|
+
@static
|
38796
|
+
@private
|
38797
|
+
*/
|
38798
|
+
function parsePropertyPath(path) {
|
38799
|
+
var split = path.split(':');
|
38800
|
+
var propertyPath = split[0];
|
38801
|
+
var classNames = "";
|
38802
|
+
var className, falsyClassName;
|
38803
|
+
|
38804
|
+
// check if the property is defined as prop:class or prop:trueClass:falseClass
|
38805
|
+
if (split.length > 1) {
|
38806
|
+
className = split[1];
|
38807
|
+
if (split.length === 3) {
|
38808
|
+
falsyClassName = split[2];
|
38809
|
+
}
|
38810
|
+
|
38811
|
+
classNames = ':' + className;
|
38812
|
+
if (falsyClassName) {
|
38813
|
+
classNames += ":" + falsyClassName;
|
38814
|
+
}
|
38815
|
+
}
|
38816
|
+
|
38817
|
+
return {
|
38818
|
+
path: propertyPath,
|
38819
|
+
classNames: classNames,
|
38820
|
+
className: (className === '') ? undefined : className,
|
38821
|
+
falsyClassName: falsyClassName
|
38822
|
+
};
|
38823
|
+
}
|
38824
|
+
|
38825
|
+
__exports__.parsePropertyPath = parsePropertyPath;/**
|
38826
|
+
Get the class name for a given value, based on the path, optional
|
38827
|
+
`className` and optional `falsyClassName`.
|
38828
|
+
|
38829
|
+
- if a `className` or `falsyClassName` has been specified:
|
38830
|
+
- if the value is truthy and `className` has been specified,
|
38831
|
+
`className` is returned
|
38832
|
+
- if the value is falsy and `falsyClassName` has been specified,
|
38833
|
+
`falsyClassName` is returned
|
38834
|
+
- otherwise `null` is returned
|
38835
|
+
- if the value is `true`, the dasherized last part of the supplied path
|
38836
|
+
is returned
|
38837
|
+
- if the value is not `false`, `undefined` or `null`, the `value`
|
38838
|
+
is returned
|
38839
|
+
- if none of the above rules apply, `null` is returned
|
38840
|
+
|
38841
|
+
@method classStringForValue
|
38842
|
+
@param path
|
38843
|
+
@param val
|
38844
|
+
@param className
|
38845
|
+
@param falsyClassName
|
38846
|
+
@static
|
38847
|
+
@private
|
38848
|
+
*/
|
38849
|
+
function classStringForValue(path, val, className, falsyClassName) {
|
38850
|
+
if(isArray(val)) {
|
38851
|
+
val = get(val, 'length') !== 0;
|
38852
|
+
}
|
38853
|
+
|
38854
|
+
// When using the colon syntax, evaluate the truthiness or falsiness
|
38855
|
+
// of the value to determine which className to return
|
38856
|
+
if (className || falsyClassName) {
|
38857
|
+
if (className && !!val) {
|
38858
|
+
return className;
|
38859
|
+
|
38860
|
+
} else if (falsyClassName && !val) {
|
38861
|
+
return falsyClassName;
|
38862
|
+
|
38863
|
+
} else {
|
38864
|
+
return null;
|
38865
|
+
}
|
38866
|
+
|
38867
|
+
// If value is a Boolean and true, return the dasherized property
|
38868
|
+
// name.
|
38869
|
+
} else if (val === true) {
|
38870
|
+
// Normalize property path to be suitable for use
|
38871
|
+
// as a class name. For exaple, content.foo.barBaz
|
38872
|
+
// becomes bar-baz.
|
38873
|
+
var parts = path.split('.');
|
38874
|
+
return dasherize(parts[parts.length-1]);
|
38875
|
+
|
38876
|
+
// If the value is not false, undefined, or null, return the current
|
38877
|
+
// value of the property.
|
38878
|
+
} else if (val !== false && val != null) {
|
38879
|
+
return val;
|
38880
|
+
|
38881
|
+
// Nothing to display. Return null so that the old class is removed
|
38882
|
+
// but no new class is added.
|
38883
|
+
} else {
|
38884
|
+
return null;
|
38885
|
+
}
|
38886
|
+
}
|
38887
|
+
|
38888
|
+
__exports__.classStringForValue = classStringForValue;function streamifyClassNameBinding(view, classNameBinding, prefix){
|
38889
|
+
prefix = prefix || '';
|
38890
|
+
Ember.assert("classNameBindings must not have spaces in them. Multiple class name bindings can be provided as elements of an array, e.g. ['foo', ':bar']", classNameBinding.indexOf(' ') === -1);
|
38891
|
+
var parsedPath = parsePropertyPath(classNameBinding);
|
38892
|
+
if (parsedPath.path === '') {
|
38893
|
+
return classStringForValue(
|
38894
|
+
parsedPath.path,
|
38895
|
+
true,
|
38896
|
+
parsedPath.className,
|
38897
|
+
parsedPath.falsyClassName
|
38898
|
+
);
|
38899
|
+
} else {
|
38900
|
+
var pathValue = view.getStream(prefix+parsedPath.path);
|
38901
|
+
return chainStream(pathValue, function(){
|
38902
|
+
return classStringForValue(
|
38903
|
+
parsedPath.path,
|
38904
|
+
read(pathValue),
|
38905
|
+
parsedPath.className,
|
38906
|
+
parsedPath.falsyClassName
|
38907
|
+
);
|
38908
|
+
});
|
38909
|
+
}
|
38910
|
+
}
|
38911
|
+
|
38912
|
+
__exports__.streamifyClassNameBinding = streamifyClassNameBinding;
|
38913
|
+
});
|
38588
38914
|
enifed("ember-views/streams/conditional_stream",
|
38589
38915
|
["ember-metal/streams/stream","ember-metal/streams/utils","ember-metal/platform","exports"],
|
38590
38916
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
@@ -38695,6 +39021,7 @@ enifed("ember-views/streams/key_stream",
|
|
38695
39021
|
var removeObserver = __dependency6__.removeObserver;
|
38696
39022
|
var Stream = __dependency7__["default"];
|
38697
39023
|
var read = __dependency8__.read;
|
39024
|
+
var isStream = __dependency8__.isStream;
|
38698
39025
|
|
38699
39026
|
function KeyStream(source, key) {
|
38700
39027
|
Ember.assert("KeyStream error: key must be a non-empty string", typeof key === 'string' && key.length > 0);
|
@@ -38705,7 +39032,7 @@ enifed("ember-views/streams/key_stream",
|
|
38705
39032
|
this.obj = undefined;
|
38706
39033
|
this.key = key;
|
38707
39034
|
|
38708
|
-
if (source
|
39035
|
+
if (isStream(source)) {
|
38709
39036
|
source.subscribe(this._didChange, this);
|
38710
39037
|
}
|
38711
39038
|
}
|
@@ -38746,11 +39073,11 @@ enifed("ember-views/streams/key_stream",
|
|
38746
39073
|
var prevSource = this.source;
|
38747
39074
|
|
38748
39075
|
if (nextSource !== prevSource) {
|
38749
|
-
if (prevSource
|
39076
|
+
if (isStream(prevSource)) {
|
38750
39077
|
prevSource.unsubscribe(this._didChange, this);
|
38751
39078
|
}
|
38752
39079
|
|
38753
|
-
if (nextSource
|
39080
|
+
if (isStream(nextSource)) {
|
38754
39081
|
nextSource.subscribe(this._didChange, this);
|
38755
39082
|
}
|
38756
39083
|
|
@@ -38767,7 +39094,7 @@ enifed("ember-views/streams/key_stream",
|
|
38767
39094
|
|
38768
39095
|
destroy: function() {
|
38769
39096
|
if (this._super$destroy()) {
|
38770
|
-
if (this.source
|
39097
|
+
if (isStream(this.source)) {
|
38771
39098
|
this.source.unsubscribe(this._didChange, this);
|
38772
39099
|
}
|
38773
39100
|
|
@@ -38800,6 +39127,7 @@ enifed("ember-views/streams/utils",
|
|
38800
39127
|
var isGlobal = __dependency3__.isGlobal;
|
38801
39128
|
var fmt = __dependency4__.fmt;
|
38802
39129
|
var read = __dependency5__.read;
|
39130
|
+
var isStream = __dependency5__.isStream;
|
38803
39131
|
var View = __dependency6__["default"];
|
38804
39132
|
var ControllerMixin = __dependency7__["default"];
|
38805
39133
|
|
@@ -38819,13 +39147,13 @@ enifed("ember-views/streams/utils",
|
|
38819
39147
|
viewClass = value;
|
38820
39148
|
}
|
38821
39149
|
|
38822
|
-
Ember.assert(fmt(value+" must be a subclass of Ember.View, not %@", [viewClass]), View.detect(viewClass));
|
39150
|
+
Ember.assert(fmt(value+" must be a subclass or an instance of Ember.View, not %@", [viewClass]), View.detect(viewClass) || View.detectInstance(viewClass));
|
38823
39151
|
|
38824
39152
|
return viewClass;
|
38825
39153
|
}
|
38826
39154
|
|
38827
39155
|
__exports__.readViewFactory = readViewFactory;function readUnwrappedModel(object) {
|
38828
|
-
if (object
|
39156
|
+
if (isStream(object)) {
|
38829
39157
|
var result = object.value();
|
38830
39158
|
|
38831
39159
|
// If the path is exactly `controller` then we don't unwrap it.
|
@@ -39498,15 +39826,15 @@ enifed("ember-views/system/render_buffer",
|
|
39498
39826
|
@chainable
|
39499
39827
|
*/
|
39500
39828
|
push: function(content) {
|
39501
|
-
if (content
|
39502
|
-
Ember.assert("A fragment cannot be pushed into a buffer that contains content", !this.buffer);
|
39503
|
-
this.buffer = content;
|
39504
|
-
} else {
|
39829
|
+
if (typeof content === 'string') {
|
39505
39830
|
if (this.buffer === null) {
|
39506
39831
|
this.buffer = '';
|
39507
39832
|
}
|
39508
39833
|
Ember.assert("A string cannot be pushed into the buffer after a fragment", !this.buffer.nodeType);
|
39509
39834
|
this.buffer += content;
|
39835
|
+
} else {
|
39836
|
+
Ember.assert("A fragment cannot be pushed into a buffer that contains content", !this.buffer);
|
39837
|
+
this.buffer = content;
|
39510
39838
|
}
|
39511
39839
|
return this;
|
39512
39840
|
},
|
@@ -39654,7 +39982,6 @@ enifed("ember-views/system/render_buffer",
|
|
39654
39982
|
}
|
39655
39983
|
|
39656
39984
|
var element = this.dom.createElement(tagString, this.outerContextualElement());
|
39657
|
-
var $element = jQuery(element);
|
39658
39985
|
|
39659
39986
|
if (id) {
|
39660
39987
|
this.dom.setAttribute(element, 'id', id);
|
@@ -39668,9 +39995,7 @@ enifed("ember-views/system/render_buffer",
|
|
39668
39995
|
|
39669
39996
|
if (style) {
|
39670
39997
|
for (prop in style) {
|
39671
|
-
|
39672
|
-
styleBuffer += (prop + ':' + style[prop] + ';');
|
39673
|
-
}
|
39998
|
+
styleBuffer += (prop + ':' + style[prop] + ';');
|
39674
39999
|
}
|
39675
40000
|
|
39676
40001
|
this.dom.setAttribute(element, 'style', styleBuffer);
|
@@ -39680,9 +40005,7 @@ enifed("ember-views/system/render_buffer",
|
|
39680
40005
|
|
39681
40006
|
if (attrs) {
|
39682
40007
|
for (attr in attrs) {
|
39683
|
-
|
39684
|
-
this.dom.setAttribute(element, attr, attrs[attr]);
|
39685
|
-
}
|
40008
|
+
this.dom.setAttribute(element, attr, attrs[attr]);
|
39686
40009
|
}
|
39687
40010
|
|
39688
40011
|
this.elementAttributes = null;
|
@@ -39690,9 +40013,7 @@ enifed("ember-views/system/render_buffer",
|
|
39690
40013
|
|
39691
40014
|
if (props) {
|
39692
40015
|
for (prop in props) {
|
39693
|
-
|
39694
|
-
$element.prop(prop, props[prop]);
|
39695
|
-
}
|
40016
|
+
this.dom.setProperty(element, prop, props[prop]);
|
39696
40017
|
}
|
39697
40018
|
|
39698
40019
|
this.elementProperties = null;
|
@@ -39730,7 +40051,10 @@ enifed("ember-views/system/render_buffer",
|
|
39730
40051
|
this._element.appendChild(nodes[0]);
|
39731
40052
|
}
|
39732
40053
|
}
|
39733
|
-
|
40054
|
+
// This should only happen with legacy string buffers
|
40055
|
+
if (this.childViews.length > 0) {
|
40056
|
+
this.hydrateMorphs(contextualElement);
|
40057
|
+
}
|
39734
40058
|
|
39735
40059
|
return this._element;
|
39736
40060
|
},
|
@@ -39793,8 +40117,8 @@ enifed("ember-views/system/render_buffer",
|
|
39793
40117
|
};
|
39794
40118
|
});
|
39795
40119
|
enifed("ember-views/system/renderer",
|
39796
|
-
["ember-metal/core","ember-metal-views/renderer","ember-metal/platform","ember-views/system/render_buffer","ember-metal/run_loop","ember-metal/property_set","ember-metal/instrumentation","exports"],
|
39797
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
40120
|
+
["ember-metal/core","ember-metal-views/renderer","ember-metal/platform","ember-views/system/render_buffer","ember-metal/run_loop","ember-metal/property_set","ember-metal/property_get","ember-metal/instrumentation","exports"],
|
40121
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __exports__) {
|
39798
40122
|
"use strict";
|
39799
40123
|
var Ember = __dependency1__["default"];
|
39800
40124
|
var Renderer = __dependency2__["default"];
|
@@ -39802,8 +40126,9 @@ enifed("ember-views/system/renderer",
|
|
39802
40126
|
var renderBuffer = __dependency4__["default"];
|
39803
40127
|
var run = __dependency5__["default"];
|
39804
40128
|
var set = __dependency6__.set;
|
39805
|
-
var
|
39806
|
-
var
|
40129
|
+
var get = __dependency7__.get;
|
40130
|
+
var _instrumentStart = __dependency8__._instrumentStart;
|
40131
|
+
var subscribers = __dependency8__.subscribers;
|
39807
40132
|
|
39808
40133
|
function EmberRenderer() {
|
39809
40134
|
this.buffer = renderBuffer();
|
@@ -39831,8 +40156,12 @@ enifed("ember-views/system/renderer",
|
|
39831
40156
|
// provided buffer operation (for example, `insertAfter` will
|
39832
40157
|
// insert a new buffer after the "parent buffer").
|
39833
40158
|
var tagName = view.tagName;
|
40159
|
+
if (tagName === undefined) {
|
40160
|
+
tagName = get(view, 'tagName');
|
40161
|
+
Ember.deprecate('In the future using a computed property to define tagName will not be permitted. That value will be respected, but changing it will not update the element.', !tagName);
|
40162
|
+
}
|
39834
40163
|
var classNameBindings = view.classNameBindings;
|
39835
|
-
var taglessViewWithClassBindings = tagName === '' && classNameBindings.length > 0;
|
40164
|
+
var taglessViewWithClassBindings = tagName === '' && (classNameBindings && classNameBindings.length > 0);
|
39836
40165
|
|
39837
40166
|
if (tagName === null || tagName === undefined) {
|
39838
40167
|
tagName = 'div';
|
@@ -39866,9 +40195,7 @@ enifed("ember-views/system/renderer",
|
|
39866
40195
|
|
39867
40196
|
view.buffer = null;
|
39868
40197
|
if (element && element.nodeType === 1) {
|
39869
|
-
|
39870
|
-
// consider just doing view.element = element
|
39871
|
-
set(view, 'element', element);
|
40198
|
+
view.element = element;
|
39872
40199
|
}
|
39873
40200
|
return element;
|
39874
40201
|
};
|
@@ -39928,6 +40255,60 @@ enifed("ember-views/system/renderer",
|
|
39928
40255
|
|
39929
40256
|
__exports__["default"] = EmberRenderer;
|
39930
40257
|
});
|
40258
|
+
enifed("ember-views/system/sanitize_attribute_value",
|
40259
|
+
["exports"],
|
40260
|
+
function(__exports__) {
|
40261
|
+
"use strict";
|
40262
|
+
/* jshint scripturl:true */
|
40263
|
+
|
40264
|
+
var parsingNode;
|
40265
|
+
var badProtocols = {
|
40266
|
+
'javascript:': true,
|
40267
|
+
'vbscript:': true
|
40268
|
+
};
|
40269
|
+
|
40270
|
+
var badTags = {
|
40271
|
+
'A': true,
|
40272
|
+
'BODY': true,
|
40273
|
+
'LINK': true,
|
40274
|
+
'IMG': true,
|
40275
|
+
'IFRAME': true
|
40276
|
+
};
|
40277
|
+
|
40278
|
+
var badAttributes = {
|
40279
|
+
'href': true,
|
40280
|
+
'src': true,
|
40281
|
+
'background': true
|
40282
|
+
};
|
40283
|
+
__exports__.badAttributes = badAttributes;
|
40284
|
+
__exports__["default"] = function sanitizeAttributeValue(element, attribute, value) {
|
40285
|
+
var tagName;
|
40286
|
+
|
40287
|
+
if (!parsingNode) {
|
40288
|
+
parsingNode = document.createElement('a');
|
40289
|
+
}
|
40290
|
+
|
40291
|
+
if (!element) {
|
40292
|
+
tagName = null;
|
40293
|
+
} else {
|
40294
|
+
tagName = element.tagName;
|
40295
|
+
}
|
40296
|
+
|
40297
|
+
if (value && value.toHTML) {
|
40298
|
+
return value.toHTML();
|
40299
|
+
}
|
40300
|
+
|
40301
|
+
if ((tagName === null || badTags[tagName]) && badAttributes[attribute]) {
|
40302
|
+
parsingNode.href = value;
|
40303
|
+
|
40304
|
+
if (badProtocols[parsingNode.protocol] === true) {
|
40305
|
+
return 'unsafe:' + value;
|
40306
|
+
}
|
40307
|
+
}
|
40308
|
+
|
40309
|
+
return value;
|
40310
|
+
}
|
40311
|
+
});
|
39931
40312
|
enifed("ember-views/system/utils",
|
39932
40313
|
["exports"],
|
39933
40314
|
function(__exports__) {
|
@@ -40709,8 +41090,8 @@ enifed("ember-views/views/collection_view",
|
|
40709
41090
|
__exports__["default"] = CollectionView;
|
40710
41091
|
});
|
40711
41092
|
enifed("ember-views/views/component",
|
40712
|
-
["ember-metal/core","ember-views/mixins/component_template_deprecation","ember-runtime/mixins/target_action_support","ember-views/views/view","ember-metal/property_get","ember-metal/property_set","ember-metal/is_none","ember-metal/computed","exports"],
|
40713
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __exports__) {
|
41093
|
+
["ember-metal/core","ember-views/mixins/component_template_deprecation","ember-runtime/mixins/target_action_support","ember-views/views/view","ember-metal/property_get","ember-metal/property_set","ember-metal/is_none","ember-metal/computed","ember-htmlbars/templates/component","exports"],
|
41094
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __exports__) {
|
40714
41095
|
"use strict";
|
40715
41096
|
var Ember = __dependency1__["default"];
|
40716
41097
|
// Ember.assert, Ember.Handlebars
|
@@ -40724,6 +41105,7 @@ enifed("ember-views/views/component",
|
|
40724
41105
|
var isNone = __dependency7__["default"];
|
40725
41106
|
|
40726
41107
|
var computed = __dependency8__.computed;
|
41108
|
+
var defaultComponentLayout = __dependency9__["default"];
|
40727
41109
|
|
40728
41110
|
var a_slice = Array.prototype.slice;
|
40729
41111
|
|
@@ -40831,12 +41213,7 @@ enifed("ember-views/views/component",
|
|
40831
41213
|
set(this, 'controller', this);
|
40832
41214
|
},
|
40833
41215
|
|
40834
|
-
defaultLayout:
|
40835
|
-
|
40836
|
-
// ES6TODO: must use global here, to prevent circular require issue
|
40837
|
-
// remove and replace with standard import once we have lazy binding
|
40838
|
-
Ember.HTMLBars.helpers.yield.helperFunction.call(context, [], {}, options, { data: { view: context }});
|
40839
|
-
},
|
41216
|
+
defaultLayout: defaultComponentLayout,
|
40840
41217
|
|
40841
41218
|
/**
|
40842
41219
|
A components template property is set by passing a block
|
@@ -41501,7 +41878,8 @@ enifed("ember-views/views/core_view",
|
|
41501
41878
|
|
41502
41879
|
init: function() {
|
41503
41880
|
this._super();
|
41504
|
-
this.
|
41881
|
+
this._state = 'preRender';
|
41882
|
+
this.currentState = this._states.preRender;
|
41505
41883
|
this._isVisible = get(this, 'isVisible');
|
41506
41884
|
},
|
41507
41885
|
|
@@ -42460,6 +42838,7 @@ enifed("ember-views/views/simple_bound_view",
|
|
42460
42838
|
SimpleBoundView.prototype = {
|
42461
42839
|
isVirtual: true,
|
42462
42840
|
isView: true,
|
42841
|
+
tagName: '',
|
42463
42842
|
|
42464
42843
|
destroy: function () {
|
42465
42844
|
if (this.updateId) {
|
@@ -42818,8 +43197,10 @@ enifed("ember-views/views/states/in_dom",
|
|
42818
43197
|
View.views[view.elementId] = view;
|
42819
43198
|
}
|
42820
43199
|
|
42821
|
-
|
42822
|
-
|
43200
|
+
Ember.runInDebug(function() {
|
43201
|
+
addBeforeObserver(view, 'elementId', function() {
|
43202
|
+
throw new EmberError("Changing a view's elementId after creation is not allowed");
|
43203
|
+
});
|
42823
43204
|
});
|
42824
43205
|
},
|
42825
43206
|
|
@@ -43031,8 +43412,8 @@ enifed("ember-views/views/text_field",
|
|
43031
43412
|
});
|
43032
43413
|
});
|
43033
43414
|
enifed("ember-views/views/view",
|
43034
|
-
["ember-metal/core","ember-metal/platform","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/streams/simple","ember-views/streams/key_stream","ember-metal/streams/stream_binding","ember-views/streams/context_stream","ember-metal/is_none","ember-metal/deprecate_property","ember-runtime/system/native_array","ember-
|
43035
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __exports__) {
|
43415
|
+
["ember-metal/core","ember-metal/platform","ember-runtime/mixins/evented","ember-runtime/system/object","ember-metal/error","ember-metal/property_get","ember-metal/property_set","ember-metal/set_properties","ember-metal/run_loop","ember-metal/observer","ember-metal/properties","ember-metal/utils","ember-metal/computed","ember-metal/mixin","ember-metal/streams/simple","ember-views/streams/key_stream","ember-metal/streams/stream_binding","ember-views/streams/context_stream","ember-metal/is_none","ember-metal/deprecate_property","ember-runtime/system/native_array","ember-views/streams/class_name_binding","ember-metal/enumerable_utils","ember-metal/property_events","ember-views/system/jquery","ember-views/system/ext","ember-views/views/core_view","ember-metal/streams/utils","ember-views/system/sanitize_attribute_value","exports"],
|
43416
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __dependency23__, __dependency24__, __dependency25__, __dependency26__, __dependency27__, __dependency28__, __dependency29__, __exports__) {
|
43036
43417
|
"use strict";
|
43037
43418
|
// Ember.assert, Ember.deprecate, Ember.warn, Ember.TEMPLATES,
|
43038
43419
|
// jQuery, Ember.lookup,
|
@@ -43060,13 +43441,12 @@ enifed("ember-views/views/view",
|
|
43060
43441
|
var ContextStream = __dependency18__["default"];
|
43061
43442
|
|
43062
43443
|
var typeOf = __dependency12__.typeOf;
|
43063
|
-
var isArray = __dependency12__.isArray;
|
43064
43444
|
var isNone = __dependency19__["default"];
|
43065
43445
|
var Mixin = __dependency14__.Mixin;
|
43066
43446
|
var deprecateProperty = __dependency20__.deprecateProperty;
|
43067
43447
|
var emberA = __dependency21__.A;
|
43068
43448
|
|
43069
|
-
var
|
43449
|
+
var streamifyClassNameBinding = __dependency22__.streamifyClassNameBinding;
|
43070
43450
|
|
43071
43451
|
// ES6TODO: functions on EnumerableUtils should get their own export
|
43072
43452
|
var forEach = __dependency23__.forEach;
|
@@ -43082,6 +43462,10 @@ enifed("ember-views/views/view",
|
|
43082
43462
|
// for the side effect of extending Ember.run.queues
|
43083
43463
|
|
43084
43464
|
var CoreView = __dependency27__["default"];
|
43465
|
+
var subscribe = __dependency28__.subscribe;
|
43466
|
+
var read = __dependency28__.read;
|
43467
|
+
var isStream = __dependency28__.isStream;
|
43468
|
+
var sanitizeAttributeValue = __dependency29__["default"];
|
43085
43469
|
|
43086
43470
|
function K() { return this; }
|
43087
43471
|
|
@@ -43796,6 +44180,8 @@ enifed("ember-views/views/view",
|
|
43796
44180
|
return template || get(this, 'defaultTemplate');
|
43797
44181
|
}),
|
43798
44182
|
|
44183
|
+
_controller: null,
|
44184
|
+
|
43799
44185
|
/**
|
43800
44186
|
The controller managing this view. If this property is set, it will be
|
43801
44187
|
made available for use by the template.
|
@@ -43803,7 +44189,16 @@ enifed("ember-views/views/view",
|
|
43803
44189
|
@property controller
|
43804
44190
|
@type Object
|
43805
44191
|
*/
|
43806
|
-
controller: computed(
|
44192
|
+
controller: computed(function(key, value) {
|
44193
|
+
if (arguments.length === 2) {
|
44194
|
+
this._controller = value;
|
44195
|
+
return value;
|
44196
|
+
}
|
44197
|
+
|
44198
|
+
if (this._controller) {
|
44199
|
+
return this._controller;
|
44200
|
+
}
|
44201
|
+
|
43807
44202
|
var parentView = get(this, '_parentView');
|
43808
44203
|
return parentView ? get(parentView, 'controller') : null;
|
43809
44204
|
}),
|
@@ -43902,7 +44297,11 @@ enifed("ember-views/views/view",
|
|
43902
44297
|
@property _context
|
43903
44298
|
@private
|
43904
44299
|
*/
|
43905
|
-
_context: computed(function(key) {
|
44300
|
+
_context: computed(function(key, value) {
|
44301
|
+
if (arguments.length === 2) {
|
44302
|
+
return value;
|
44303
|
+
}
|
44304
|
+
|
43906
44305
|
var parentView, controller;
|
43907
44306
|
|
43908
44307
|
if (controller = get(this, 'controller')) {
|
@@ -44180,18 +44579,11 @@ enifed("ember-views/views/view",
|
|
44180
44579
|
// ('content.isUrgent')
|
44181
44580
|
forEach(classBindings, function(binding) {
|
44182
44581
|
|
44183
|
-
var
|
44184
|
-
|
44185
|
-
|
44186
|
-
Ember.assert("classNameBindings must not have spaces in them. Multiple class name bindings can be provided as elements of an array, e.g. ['foo', ':bar']", binding.indexOf(' ') === -1);
|
44187
|
-
parsedPath = View._parsePropertyPath(binding);
|
44188
|
-
if (parsedPath.path === '') {
|
44189
|
-
parsedPath.stream = new SimpleStream(true);
|
44190
|
-
} else {
|
44191
|
-
parsedPath.stream = this.getStream('_view.' + parsedPath.path);
|
44192
|
-
}
|
44582
|
+
var boundBinding;
|
44583
|
+
if (isStream(binding)) {
|
44584
|
+
boundBinding = binding;
|
44193
44585
|
} else {
|
44194
|
-
|
44586
|
+
boundBinding = streamifyClassNameBinding(this, binding, '_view.');
|
44195
44587
|
}
|
44196
44588
|
|
44197
44589
|
// Variable in which the old class value is saved. The observer function
|
@@ -44203,8 +44595,8 @@ enifed("ember-views/views/view",
|
|
44203
44595
|
// class name.
|
44204
44596
|
var observer = this._wrapAsScheduled(function() {
|
44205
44597
|
// Get the current value of the property
|
44206
|
-
newClass = this._classStringForProperty(parsedPath);
|
44207
44598
|
elem = this.$();
|
44599
|
+
newClass = read(boundBinding);
|
44208
44600
|
|
44209
44601
|
// If we had previously added a class to the element, remove it.
|
44210
44602
|
if (oldClass) {
|
@@ -44225,7 +44617,7 @@ enifed("ember-views/views/view",
|
|
44225
44617
|
});
|
44226
44618
|
|
44227
44619
|
// Get the class name for the property at its current value
|
44228
|
-
dasherizedClass =
|
44620
|
+
dasherizedClass = read(boundBinding);
|
44229
44621
|
|
44230
44622
|
if (dasherizedClass) {
|
44231
44623
|
// Ensure that it gets into the classNames array
|
@@ -44238,7 +44630,7 @@ enifed("ember-views/views/view",
|
|
44238
44630
|
oldClass = dasherizedClass;
|
44239
44631
|
}
|
44240
44632
|
|
44241
|
-
|
44633
|
+
subscribe(boundBinding, observer, this);
|
44242
44634
|
// Remove className so when the view is rerendered,
|
44243
44635
|
// the className is added based on binding reevaluation
|
44244
44636
|
this.one('willClearRender', function() {
|
@@ -44433,7 +44825,7 @@ enifed("ember-views/views/view",
|
|
44433
44825
|
/**
|
44434
44826
|
Replaces the content of the specified parent element with this view's
|
44435
44827
|
element. If the view does not have an HTML representation yet,
|
44436
|
-
|
44828
|
+
the element will be generated automatically.
|
44437
44829
|
|
44438
44830
|
Note that this method just schedules the view to be appended; the DOM
|
44439
44831
|
element will not be appended to the given element until all bindings have
|
@@ -44456,8 +44848,8 @@ enifed("ember-views/views/view",
|
|
44456
44848
|
|
44457
44849
|
/**
|
44458
44850
|
Appends the view's element to the document body. If the view does
|
44459
|
-
not have an HTML representation yet
|
44460
|
-
automatically.
|
44851
|
+
not have an HTML representation yet
|
44852
|
+
the element will be generated automatically.
|
44461
44853
|
|
44462
44854
|
If your application uses the `rootElement` property, you must append
|
44463
44855
|
the view within that element. Rendering views outside of the `rootElement`
|
@@ -44489,6 +44881,22 @@ enifed("ember-views/views/view",
|
|
44489
44881
|
if (!this.removedFromDOM) { this.destroyElement(); }
|
44490
44882
|
},
|
44491
44883
|
|
44884
|
+
/**
|
44885
|
+
The HTML `id` of the view's element in the DOM. You can provide this
|
44886
|
+
value yourself but it must be unique (just as in HTML):
|
44887
|
+
|
44888
|
+
```handlebars
|
44889
|
+
{{my-component elementId="a-really-cool-id"}}
|
44890
|
+
```
|
44891
|
+
|
44892
|
+
If not manually set a default value will be provided by the framework.
|
44893
|
+
|
44894
|
+
Once rendered an element's `elementId` is considered immutable and you
|
44895
|
+
should never change it.
|
44896
|
+
|
44897
|
+
@property elementId
|
44898
|
+
@type String
|
44899
|
+
*/
|
44492
44900
|
elementId: null,
|
44493
44901
|
|
44494
44902
|
/**
|
@@ -44609,7 +45017,7 @@ enifed("ember-views/views/view",
|
|
44609
45017
|
applyAttributesToBuffer: function(buffer) {
|
44610
45018
|
// Creates observers for all registered class name and attribute bindings,
|
44611
45019
|
// then adds them to the element.
|
44612
|
-
var classNameBindings =
|
45020
|
+
var classNameBindings = this.classNameBindings;
|
44613
45021
|
if (classNameBindings.length) {
|
44614
45022
|
this._applyClassNameBindings(classNameBindings);
|
44615
45023
|
}
|
@@ -44617,7 +45025,7 @@ enifed("ember-views/views/view",
|
|
44617
45025
|
// Pass the render buffer so the method can apply attributes directly.
|
44618
45026
|
// This isn't needed for class name bindings because they use the
|
44619
45027
|
// existing classNames infrastructure.
|
44620
|
-
var attributeBindings =
|
45028
|
+
var attributeBindings = this.attributeBindings;
|
44621
45029
|
if (attributeBindings.length) {
|
44622
45030
|
this._applyAttributeBindings(buffer, attributeBindings);
|
44623
45031
|
}
|
@@ -45078,7 +45486,7 @@ enifed("ember-views/views/view",
|
|
45078
45486
|
}
|
45079
45487
|
|
45080
45488
|
var path = pathOrStream;
|
45081
|
-
if (pathOrStream
|
45489
|
+
if (isStream(pathOrStream)) {
|
45082
45490
|
path = pathOrStream._label;
|
45083
45491
|
|
45084
45492
|
if (!path) {
|
@@ -45165,115 +45573,6 @@ enifed("ember-views/views/view",
|
|
45165
45573
|
// once the view has been inserted into the DOM, legal manipulations
|
45166
45574
|
// are done on the DOM element.
|
45167
45575
|
|
45168
|
-
View.reopenClass({
|
45169
|
-
|
45170
|
-
/**
|
45171
|
-
Parse a path and return an object which holds the parsed properties.
|
45172
|
-
|
45173
|
-
For example a path like "content.isEnabled:enabled:disabled" will return the
|
45174
|
-
following object:
|
45175
|
-
|
45176
|
-
```javascript
|
45177
|
-
{
|
45178
|
-
path: "content.isEnabled",
|
45179
|
-
className: "enabled",
|
45180
|
-
falsyClassName: "disabled",
|
45181
|
-
classNames: ":enabled:disabled"
|
45182
|
-
}
|
45183
|
-
```
|
45184
|
-
|
45185
|
-
@method _parsePropertyPath
|
45186
|
-
@static
|
45187
|
-
@private
|
45188
|
-
*/
|
45189
|
-
_parsePropertyPath: function(path) {
|
45190
|
-
var split = path.split(':');
|
45191
|
-
var propertyPath = split[0];
|
45192
|
-
var classNames = "";
|
45193
|
-
var className, falsyClassName;
|
45194
|
-
|
45195
|
-
// check if the property is defined as prop:class or prop:trueClass:falseClass
|
45196
|
-
if (split.length > 1) {
|
45197
|
-
className = split[1];
|
45198
|
-
if (split.length === 3) { falsyClassName = split[2]; }
|
45199
|
-
|
45200
|
-
classNames = ':' + className;
|
45201
|
-
if (falsyClassName) { classNames += ":" + falsyClassName; }
|
45202
|
-
}
|
45203
|
-
|
45204
|
-
return {
|
45205
|
-
stream: undefined,
|
45206
|
-
path: propertyPath,
|
45207
|
-
classNames: classNames,
|
45208
|
-
className: (className === '') ? undefined : className,
|
45209
|
-
falsyClassName: falsyClassName
|
45210
|
-
};
|
45211
|
-
},
|
45212
|
-
|
45213
|
-
/**
|
45214
|
-
Get the class name for a given value, based on the path, optional
|
45215
|
-
`className` and optional `falsyClassName`.
|
45216
|
-
|
45217
|
-
- if a `className` or `falsyClassName` has been specified:
|
45218
|
-
- if the value is truthy and `className` has been specified,
|
45219
|
-
`className` is returned
|
45220
|
-
- if the value is falsy and `falsyClassName` has been specified,
|
45221
|
-
`falsyClassName` is returned
|
45222
|
-
- otherwise `null` is returned
|
45223
|
-
- if the value is `true`, the dasherized last part of the supplied path
|
45224
|
-
is returned
|
45225
|
-
- if the value is not `false`, `undefined` or `null`, the `value`
|
45226
|
-
is returned
|
45227
|
-
- if none of the above rules apply, `null` is returned
|
45228
|
-
|
45229
|
-
@method _classStringForValue
|
45230
|
-
@param path
|
45231
|
-
@param val
|
45232
|
-
@param className
|
45233
|
-
@param falsyClassName
|
45234
|
-
@static
|
45235
|
-
@private
|
45236
|
-
*/
|
45237
|
-
_classStringForValue: function(path, val, className, falsyClassName) {
|
45238
|
-
if(isArray(val)) {
|
45239
|
-
val = get(val, 'length') !== 0;
|
45240
|
-
}
|
45241
|
-
|
45242
|
-
// When using the colon syntax, evaluate the truthiness or falsiness
|
45243
|
-
// of the value to determine which className to return
|
45244
|
-
if (className || falsyClassName) {
|
45245
|
-
if (className && !!val) {
|
45246
|
-
return className;
|
45247
|
-
|
45248
|
-
} else if (falsyClassName && !val) {
|
45249
|
-
return falsyClassName;
|
45250
|
-
|
45251
|
-
} else {
|
45252
|
-
return null;
|
45253
|
-
}
|
45254
|
-
|
45255
|
-
// If value is a Boolean and true, return the dasherized property
|
45256
|
-
// name.
|
45257
|
-
} else if (val === true) {
|
45258
|
-
// Normalize property path to be suitable for use
|
45259
|
-
// as a class name. For exaple, content.foo.barBaz
|
45260
|
-
// becomes bar-baz.
|
45261
|
-
var parts = path.split('.');
|
45262
|
-
return dasherize(parts[parts.length-1]);
|
45263
|
-
|
45264
|
-
// If the value is not false, undefined, or null, return the current
|
45265
|
-
// value of the property.
|
45266
|
-
} else if (val !== false && val != null) {
|
45267
|
-
return val;
|
45268
|
-
|
45269
|
-
// Nothing to display. Return null so that the old class is removed
|
45270
|
-
// but no new class is added.
|
45271
|
-
} else {
|
45272
|
-
return null;
|
45273
|
-
}
|
45274
|
-
}
|
45275
|
-
});
|
45276
|
-
|
45277
45576
|
var mutation = EmberObject.extend(Evented).create();
|
45278
45577
|
// TODO MOVE TO RENDERER HOOKS
|
45279
45578
|
View.addMutationListener = function(callback) {
|
@@ -45305,7 +45604,8 @@ enifed("ember-views/views/view",
|
|
45305
45604
|
View.childViewsProperty = childViewsProperty;
|
45306
45605
|
|
45307
45606
|
// Used by Handlebars helpers, view element attributes
|
45308
|
-
View.applyAttributeBindings = function(elem, name,
|
45607
|
+
View.applyAttributeBindings = function(elem, name, initialValue) {
|
45608
|
+
var value = sanitizeAttributeValue(elem[0], name, initialValue);
|
45309
45609
|
var type = typeOf(value);
|
45310
45610
|
|
45311
45611
|
// if this changes, also change the logic in ember-handlebars/lib/helpers/binding.js
|
@@ -45352,11 +45652,8 @@ enifed("ember-views/views/with_view",
|
|
45352
45652
|
init: function() {
|
45353
45653
|
apply(this, this._super, arguments);
|
45354
45654
|
|
45355
|
-
var keywordName = this.templateHash.keywordName;
|
45356
45655
|
var controllerName = this.templateHash.controller;
|
45357
45656
|
|
45358
|
-
this._blockArguments = [this.lazyValue];
|
45359
|
-
|
45360
45657
|
if (controllerName) {
|
45361
45658
|
var previousContext = this.previousContext;
|
45362
45659
|
var controller = this.container.lookupFactory('controller:'+controllerName).create({
|
@@ -45367,7 +45664,7 @@ enifed("ember-views/views/with_view",
|
|
45367
45664
|
this._generatedController = controller;
|
45368
45665
|
|
45369
45666
|
if (this.preserveContext) {
|
45370
|
-
this.
|
45667
|
+
this._blockArguments = [ controller ];
|
45371
45668
|
this.lazyValue.subscribe(function(modelStream) {
|
45372
45669
|
set(controller, 'model', modelStream.value());
|
45373
45670
|
});
|
@@ -45382,7 +45679,7 @@ enifed("ember-views/views/with_view",
|
|
45382
45679
|
set(controller, 'model', this.lazyValue.value());
|
45383
45680
|
} else {
|
45384
45681
|
if (this.preserveContext) {
|
45385
|
-
this.
|
45682
|
+
this._blockArguments = [ this.lazyValue ];
|
45386
45683
|
}
|
45387
45684
|
}
|
45388
45685
|
},
|
@@ -48227,8 +48524,8 @@ enifed("htmlbars-syntax/node-handlers",
|
|
48227
48524
|
__exports__["default"] = nodeHandlers;
|
48228
48525
|
});
|
48229
48526
|
enifed("htmlbars-syntax/parser",
|
48230
|
-
["./handlebars/compiler/base","../simple-html-tokenizer","../simple-html-tokenizer/entity-parser","../simple-html-tokenizer/char-refs/full","./node-handlers","./token-handlers","exports"],
|
48231
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __exports__) {
|
48527
|
+
["./handlebars/compiler/base","../simple-html-tokenizer","../simple-html-tokenizer/entity-parser","../simple-html-tokenizer/char-refs/full","./node-handlers","./token-handlers","../htmlbars-syntax","exports"],
|
48528
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __exports__) {
|
48232
48529
|
"use strict";
|
48233
48530
|
var parse = __dependency1__.parse;
|
48234
48531
|
var Tokenizer = __dependency2__.Tokenizer;
|
@@ -48237,13 +48534,23 @@ enifed("htmlbars-syntax/parser",
|
|
48237
48534
|
var nodeHandlers = __dependency5__["default"];
|
48238
48535
|
var tokenHandlers = __dependency6__["default"];
|
48239
48536
|
|
48537
|
+
// this should be:
|
48538
|
+
// `import * from "../htmlbars-syntax";
|
48539
|
+
//
|
48540
|
+
// But this version of the transpiler does not support it properly
|
48541
|
+
var syntax = __dependency7__;
|
48542
|
+
|
48240
48543
|
function preprocess(html, options) {
|
48241
48544
|
var ast = (typeof html === 'object') ? html : parse(html);
|
48242
48545
|
var combined = new HTMLProcessor(html, options).acceptNode(ast);
|
48243
48546
|
|
48244
48547
|
if (options && options.plugins && options.plugins.ast) {
|
48245
48548
|
for (var i = 0, l = options.plugins.ast.length; i < l; i++) {
|
48246
|
-
|
48549
|
+
var plugin = new options.plugins.ast[i]();
|
48550
|
+
|
48551
|
+
plugin.syntax = syntax;
|
48552
|
+
|
48553
|
+
combined = plugin.transform(combined);
|
48247
48554
|
}
|
48248
48555
|
}
|
48249
48556
|
|
@@ -48399,19 +48706,39 @@ enifed("htmlbars-syntax/token-handlers",
|
|
48399
48706
|
var token = this.tokenizer.token;
|
48400
48707
|
|
48401
48708
|
switch(state) {
|
48709
|
+
// Tag helpers
|
48710
|
+
case "tagName":
|
48711
|
+
token.addTagHelper(mustache.sexpr);
|
48712
|
+
this.tokenizer.state = "beforeAttributeName";
|
48713
|
+
return;
|
48714
|
+
case "beforeAttributeName":
|
48715
|
+
token.addTagHelper(mustache.sexpr);
|
48716
|
+
return;
|
48717
|
+
case "attributeName":
|
48718
|
+
case "afterAttributeName":
|
48719
|
+
this.tokenizer.finalizeAttributeValue();
|
48720
|
+
token.addTagHelper(mustache.sexpr);
|
48721
|
+
this.tokenizer.state = "beforeAttributeName";
|
48722
|
+
return;
|
48723
|
+
case "afterAttributeValueQuoted":
|
48724
|
+
token.addTagHelper(mustache.sexpr);
|
48725
|
+
this.tokenizer.state = "beforeAttributeName";
|
48726
|
+
return;
|
48727
|
+
|
48728
|
+
// Attribute values
|
48402
48729
|
case "beforeAttributeValue":
|
48403
|
-
this.tokenizer.state = 'attributeValueUnquoted';
|
48404
48730
|
token.markAttributeQuoted(false);
|
48405
48731
|
token.addToAttributeValue(mustache);
|
48732
|
+
this.tokenizer.state = 'attributeValueUnquoted';
|
48406
48733
|
return;
|
48407
48734
|
case "attributeValueDoubleQuoted":
|
48408
48735
|
case "attributeValueSingleQuoted":
|
48409
48736
|
case "attributeValueUnquoted":
|
48410
48737
|
token.addToAttributeValue(mustache);
|
48411
48738
|
return;
|
48412
|
-
|
48413
|
-
|
48414
|
-
|
48739
|
+
|
48740
|
+
// TODO: Only append child when the tokenizer state makes
|
48741
|
+
// sense to do so, otherwise throw an error.
|
48415
48742
|
default:
|
48416
48743
|
appendChild(this.currentElement(), mustache);
|
48417
48744
|
}
|
@@ -49091,6 +49418,10 @@ enifed("morph/dom-helper",
|
|
49091
49418
|
var prototype = DOMHelper.prototype;
|
49092
49419
|
prototype.constructor = DOMHelper;
|
49093
49420
|
|
49421
|
+
prototype.getElementById = function(id) {
|
49422
|
+
return this.document.getElementById(id);
|
49423
|
+
};
|
49424
|
+
|
49094
49425
|
prototype.insertBefore = function(element, childElement, referenceChild) {
|
49095
49426
|
return element.insertBefore(childElement, referenceChild);
|
49096
49427
|
};
|