dist/ember.js in ember-source-2.2.0.beta.1 vs dist/ember.js in ember-source-2.2.0
- old
+ new
@@ -4,11 +4,11 @@
* @copyright Copyright 2011-2015 Tilde Inc. and contributors
* Portions Copyright 2006-2011 Strobe Inc.
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
* @license Licensed under MIT license
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
- * @version 2.2.0-beta.1
+ * @version 2.2.0
*/
var enifed, requireModule, require, requirejs, Ember;
var mainContext = this;
@@ -4469,10 +4469,15 @@
initializer.initialize(App);
}
});
},
+ /**
+ @private
+ @since 1.12.0
+ @method runInstanceInitializers
+ */
runInstanceInitializers: function (instance) {
this._runInitializer('instanceInitializers', function (name, initializer) {
_emberMetalDebug.assert('No instance initializer named \'' + name + '\'', !!initializer);
initializer.initialize(instance);
});
@@ -5693,10 +5698,15 @@
exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
var missingOptionsUntilDeprecation = 'When calling `Ember.deprecate` you must provide `until` in options.';
exports.missingOptionsUntilDeprecation = missingOptionsUntilDeprecation;
/**
+ @module ember
+ @submodule ember-debug
+ */
+
+ /**
Display a deprecation warning with the provided message and a stack trace
(Chrome and Firefox only). Ember build tools will remove any calls to
`Ember.deprecate()` when doing a production build.
@method deprecate
@@ -5706,10 +5716,11 @@
@param {Object} options An object that can be used to pass
in a `url` to the transition guide on the emberjs.com website, and a unique
`id` for this deprecation. The `id` can be used by Ember debugging tools
to change the behavior (raise, log or silence) for that specific deprecation.
The `id` should be namespaced by dots, e.g. "view.helper.select".
+ @for Ember
@public
*/
function deprecate(message, test, options) {
if (!options || !options.id && !options.until) {
@@ -5818,17 +5829,27 @@
exports.missingOptionsDeprecation = missingOptionsDeprecation;
var missingOptionsIdDeprecation = 'When calling `Ember.warn` you must provide `id` in options.';
exports.missingOptionsIdDeprecation = missingOptionsIdDeprecation;
/**
+ @module ember
+ @submodule ember-debug
+ */
+
+ /**
Display a warning with the provided message. Ember build tools will
remove any calls to `Ember.warn()` when doing a production build.
@method warn
@param {String} message A warning to display.
@param {Boolean} test An optional boolean. If falsy, the warning
will be displayed.
+ @param {Object} options An ojbect that can be used to pass a unique
+ `id` for this warning. The `id` can be used by Ember debugging tools
+ to change the behavior (raise, log, or silence) for that specific warning.
+ The `id` should be namespaced by dots, e.g. "ember-debug.feature-flag-with-features-stripped"
+ @for Ember
@public
*/
function warn(message, test, options) {
if (!options) {
@@ -6010,11 +6031,13 @@
_emberMetalDebug.setDebugFunction('debugSeal', function debugSeal(obj) {
Object.seal(obj);
});
_emberMetalDebug.setDebugFunction('deprecate', _emberDebugDeprecate.default);
+
_emberMetalDebug.setDebugFunction('warn', _emberDebugWarn.default);
+
/**
Will call `Ember.warn()` if ENABLE_ALL_FEATURES, ENABLE_OPTIONAL_FEATURES, or
any specific FEATURES flag is truthy.
This method is called automatically in debug canary builds.
@@ -6098,10 +6121,11 @@
</ul>
@public
@static
@method registerDeprecationHandler
@param handler {Function} a function to handle deprecation calls
+ @since 2.1.0
*/
_emberMetalCore.default.Debug.registerDeprecationHandler = _emberDebugDeprecate.registerHandler;
/**
Allows for runtime registration of handler functions that override the default warning behavior.
Warnings are invoked by calls made to [Ember.warn](http://emberjs.com/api/classes/Ember.html#method_warn).
@@ -6122,10 +6146,11 @@
</ul>
@public
@static
@method registerWarnHandler
@param handler {Function} a function to handle warnings
+ @since 2.1.0
*/
_emberMetalCore.default.Debug.registerWarnHandler = _emberDebugWarn.registerHandler;
/*
We are transitioning away from `ember.js` to `ember.debug.js` to make
@@ -6894,10 +6919,11 @@
Additionally, class helpers can call `recompute` to force a new computation.
@class Ember.Helper
@public
+ @since 1.13.0
*/
var Helper = _emberRuntimeSystemObject.default.extend({
isHelperInstance: true,
/**
@@ -6917,10 +6943,11 @@
}
});
```
@method recompute
@public
+ @since 1.13.0
*/
recompute: function () {
this._stream.notify();
}
@@ -6928,10 +6955,11 @@
Override this function when writing a class-based helper.
@method compute
@param {Array} params The positional arguments to the helper
@param {Object} hash The named arguments to the helper
@public
+ @since 1.13.0
*/
});
Helper.reopenClass({
isHelperFactory: true
@@ -6953,10 +6981,11 @@
@static
@param {Function} helper The helper function
@method helper
@public
+ @since 1.13.0
*/
function helper(helperFn) {
return {
isHelperInstance: true,
@@ -6984,10 +7013,11 @@
```
@public
@method concat
@for Ember.Templates.helpers
+ @since 1.13.0
*/
'use strict';
exports.default = concat;
@@ -7106,13 +7136,13 @@
}
function bindKeyword(self, keyword, item) {
var _ref;
- return (_ref = {
+ return _ref = {
self: self
- }, _ref[keyword] = item, _ref);
+ }, _ref[keyword] = item, _ref;
}
var deprecation = 'Using the context switching form of {{each}} is deprecated. Please use the keyword form (`{{#each items as |item|}}`) instead.';
exports.deprecation = deprecation;
});
@@ -7205,10 +7235,11 @@
Outputting their name and age.
@method each-in
@for Ember.Templates.helpers
@public
+ @since 2.1.0
*/
var eachInHelper = function (_ref, hash, blocks) {
var object = _ref[0];
var objKeys, prop, i;
@@ -8331,11 +8362,11 @@
if (self) {
return self.getKey(key);
}
var attrs = scope.getAttrs();
- if (key in attrs) {
+ if (attrs && key in attrs) {
// TODO: attrs
// deprecate("You accessed the `" + key + "` attribute directly. Please use `attrs." + key + "` instead.");
return attrs[key];
}
}
@@ -8734,22 +8765,22 @@
var positionalParams = componentCell[COMPONENT_POSITIONAL_PARAMS];
// This needs to be done in each nesting level to avoid raising assertions
_emberHtmlbarsUtilsExtractPositionalParams.processPositionalParams(null, positionalParams, params, hash);
- return (_ref = {}, _ref[COMPONENT_PATH] = componentCell[COMPONENT_PATH], _ref[COMPONENT_HASH] = mergeHash(componentCell[COMPONENT_HASH], hash), _ref[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref[COMPONENT_CELL] = true, _ref);
+ return _ref = {}, _ref[COMPONENT_PATH] = componentCell[COMPONENT_PATH], _ref[COMPONENT_HASH] = mergeHash(componentCell[COMPONENT_HASH], hash), _ref[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref[COMPONENT_CELL] = true, _ref;
}
function createNewClosureComponentCell(env, componentPath, params, hash) {
var _ref2;
var positionalParams = getPositionalParams(env.container, componentPath);
// This needs to be done in each nesting level to avoid raising assertions
_emberHtmlbarsUtilsExtractPositionalParams.processPositionalParams(null, positionalParams, params, hash);
- return (_ref2 = {}, _ref2[COMPONENT_PATH] = componentPath, _ref2[COMPONENT_HASH] = hash, _ref2[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref2[COMPONENT_CELL] = true, _ref2);
+ return _ref2 = {}, _ref2[COMPONENT_PATH] = componentPath, _ref2[COMPONENT_HASH] = hash, _ref2[COMPONENT_POSITIONAL_PARAMS] = positionalParams, _ref2[COMPONENT_CELL] = true, _ref2;
}
/*
Returns the positional parameters for component `componentPath`.
If it has no positional parameters, it returns the empty array.
@@ -9334,10 +9365,11 @@
that fact via a two-way mutable binding.
@public
@method get
@for Ember.Templates.helpers
+ @since 2.1.0
*/
function getKeyword(morph, env, scope, params, hash, template, inverse, visitor) {
if (morph === null) {
return buildStream(params);
} else {
@@ -9704,11 +9736,11 @@
@submodule ember-templates
*/
'use strict';
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0-beta.1';
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0';
/**
The `{{outlet}}` helper lets you specify where a child routes will render in
your template. An important use of the `{{outlet}}` helper is in your
application's `application.hbs` file:
@@ -11572,12 +11604,12 @@
'use strict';
exports.buildHelperStream = buildHelperStream;
function buildHelperStream(helper, params, hash, templates, env, scope, label) {
- _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(helper.isHelperInstance && !helper.isHelperFactory) || (!templates || !templates.template || !templates.template.meta));
- _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(helper.isHelperInstance && !helper.isHelperFactory) || (!templates || !templates.element));
+ _emberMetalDebug.assert('Helpers may not be used in the block form, for example {{#my-helper}}{{/my-helper}}. Please use a component, or alternatively use the helper in combination with a built-in Ember helper, for example {{#if (my-helper)}}{{/if}}.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.template || !templates.template.meta);
+ _emberMetalDebug.assert('Helpers may not be used in the element form, for example <div {{my-helper}}>.', !(helper.isHelperInstance && !helper.isHelperFactory) || !templates || !templates.element);
if (helper.isHelperFactory) {
return new _emberHtmlbarsStreamsHelperFactory.default(helper, params, hash, label);
} else if (helper.isHelperInstance) {
return new _emberHtmlbarsStreamsHelperInstance.default(helper, params, hash, label);
} else {
@@ -12674,12 +12706,19 @@
attrs[positionalParams[i]] = param;
}
}
function processRestPositionalParameters(renderNode, positionalParamsName, params, attrs) {
+ var nameInAttrs = (positionalParamsName in attrs);
+
+ // when no params are used, do not override the specified `attrs.stringParamName` value
+ if (params.length === 0 && nameInAttrs) {
+ return;
+ }
+
// If there is already an attribute for that variable, do nothing
- _emberMetalDebug.assert('You cannot specify positional parameters and the hash argument `' + positionalParamsName + '`.', !(positionalParamsName in attrs));
+ _emberMetalDebug.assert('You cannot specify positional parameters and the hash argument `' + positionalParamsName + '`.', !nameInAttrs);
var paramsStream = new _emberMetalStreamsStream.Stream(function () {
return _emberMetalStreamsUtils.readArray(params.slice(0));
}, 'params');
@@ -12780,14 +12819,12 @@
@return {Handlebars.SafeString} a string that will not be html escaped by Handlebars
@public
*/
function htmlSafe(str) {
if (str === null || str === undefined) {
- return '';
- }
-
- if (typeof str !== 'string') {
+ str = '';
+ } else if (typeof str !== 'string') {
str = '' + str;
}
return new _htmlbarsUtil.SafeString(str);
}
@@ -14887,11 +14924,11 @@
}
/**
A computed property which matches the original value for the
dependent property against a given RegExp, returning `true`
- if they values matches the RegExp and `false` if it does not.
+ if the value matches the RegExp and `false` if it does not.
Example
```javascript
var User = Ember.Object.extend({
@@ -15388,11 +15425,11 @@
cross-platform libraries such as jQuery. For more details, see
[Ember-Runtime](http://emberjs.com/api/modules/ember-runtime.html).
@class Ember
@static
- @version 2.2.0-beta.1
+ @version 2.2.0
@public
*/
'use strict';
@@ -15432,15 +15469,15 @@
/**
The semantic version.
@property VERSION
@type String
- @default '2.2.0-beta.1'
+ @default '2.2.0'
@static
@public
*/
- Ember.VERSION = '2.2.0-beta.1';
+ Ember.VERSION = '2.2.0';
/**
The hash of environment variables used to control various configuration
settings. To specify your own or override default settings, add the
desired properties to a global hash named `EmberENV` (or `ENV` for
@@ -15779,20 +15816,22 @@
if (hasDOM) {
environment = {
hasDOM: true,
isChrome: !!window.chrome && !window.opera,
isFirefox: typeof InstallTrigger !== 'undefined',
+ isPhantom: !!window.callPhantom,
location: window.location,
history: window.history,
userAgent: window.navigator.userAgent,
global: window
};
} else {
environment = {
hasDOM: false,
isChrome: false,
isFirefox: false,
+ isPhantom: false,
location: null,
history: null,
userAgent: 'Lynx (textmode)',
global: null
};
@@ -16750,11 +16789,11 @@
Ember.isNone(); // true
Ember.isNone(null); // true
Ember.isNone(undefined); // true
Ember.isNone(''); // false
Ember.isNone([]); // false
- Ember.isNone(function() {}); // false
+ Ember.isNone(function() {}); // false
```
@method isNone
@for Ember
@param {Object} obj Value to test
@@ -16779,16 +16818,16 @@
```javascript
Ember.isPresent(); // false
Ember.isPresent(null); // false
Ember.isPresent(undefined); // false
- Ember.isPresent(false); // false
Ember.isPresent(''); // false
Ember.isPresent([]); // false
Ember.isPresent('\n\t'); // false
Ember.isPresent(' '); // false
Ember.isPresent({}); // true
+ Ember.isPresent(false); // true
Ember.isPresent('\n\t Hello'); // true
Ember.isPresent('Hello world'); // true
Ember.isPresent([1,2,3]); // true
```
@@ -16802,63 +16841,10 @@
function isPresent(obj) {
return !_emberMetalIs_blank.default(obj);
}
});
-enifed('ember-metal/keys', ['exports'], function (exports) {
- /**
- Returns all of the keys defined on an object or hash. This is useful
- when inspecting objects for debugging. On browsers that support it, this
- uses the native `Object.keys` implementation.
-
- @method keys
- @for Ember
- @param {Object} obj
- @return {Array} Array containing keys of obj
- @private
- */
- 'use strict';
-
- var keys = Object.keys;
-
- if (!keys) {
- // modified from
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
- keys = (function () {
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');
- var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];
- var dontEnumsLength = dontEnums.length;
-
- return function keys(obj) {
- if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
- throw new TypeError('Object.keys called on non-object');
- }
-
- var result = [];
- var prop, i;
-
- for (prop in obj) {
- if (prop !== '_super' && prop.lastIndexOf('__', 0) !== 0 && hasOwnProperty.call(obj, prop)) {
- result.push(prop);
- }
- }
-
- if (hasDontEnumBug) {
- for (i = 0; i < dontEnumsLength; i++) {
- if (hasOwnProperty.call(obj, dontEnums[i])) {
- result.push(dontEnums[i]);
- }
- }
- }
- return result;
- };
- })();
- }
-
- exports.default = keys;
-});
enifed('ember-metal/libraries', ['exports', 'ember-metal/debug', 'ember-metal/features'], function (exports, _emberMetalDebug, _emberMetalFeatures) {
'use strict';
/**
Helper class that allows you to register your library with Ember.
@@ -22009,11 +21995,11 @@
var HAS_SUPER_PATTERN = /\.(_super|call\(this|apply\(this)/;
var checkHasSuper = (function () {
var sourceAvailable = (function () {
return this;
- }).toString().indexOf('return this;') > -1;
+ }).toString().indexOf('return this') > -1;
if (sourceAvailable) {
return function checkHasSuper(func) {
return HAS_SUPER_PATTERN.test(func.toString());
};
@@ -22022,10 +22008,11 @@
return function checkHasSuper() {
return true;
};
})();
+ exports.checkHasSuper = checkHasSuper;
function ROOT() {}
ROOT.__hasSuper = false;
function hasSuper(func) {
if (func.__hasSuper === undefined) {
@@ -27762,13 +27749,15 @@
/**
@module ember
@submodule ember-routing
*/
-enifed('ember-routing/system/router_state', ['exports', 'ember-metal/is_empty', 'ember-metal/keys', 'ember-runtime/system/object', 'ember-metal/assign'], function (exports, _emberMetalIs_empty, _emberMetalKeys, _emberRuntimeSystemObject, _emberMetalAssign) {
+enifed('ember-routing/system/router_state', ['exports', 'ember-metal/is_empty', 'ember-runtime/system/object', 'ember-metal/assign'], function (exports, _emberMetalIs_empty, _emberRuntimeSystemObject, _emberMetalAssign) {
'use strict';
+ var keys = Object.keys;
+
var RouterState = _emberRuntimeSystemObject.default.extend({
emberRouter: null,
routerJs: null,
routerJsState: null,
@@ -27776,11 +27765,11 @@
var state = this.routerJsState;
if (!this.routerJs.isActiveIntent(routeName, models, null, state)) {
return false;
}
- var emptyQueryParams = _emberMetalIs_empty.default(_emberMetalKeys.default(queryParams));
+ var emptyQueryParams = _emberMetalIs_empty.default(keys(queryParams));
if (queryParamsMustMatch && !emptyQueryParams) {
var visibleQueryParams = {};
_emberMetalAssign.default(visibleQueryParams, queryParams);
@@ -28079,11 +28068,11 @@
Here is an example action handler on a component:
```js
export default Ember.Component.extend({
actions: {
- save(/* event *\/) {
+ save() {
this.get('model').save();
}
}
});
```
@@ -28268,11 +28257,11 @@
}
return _emberRoutingHtmlbarsKeywordsClosureAction.default(morph, env, scope, params, hash, template, inverse, visitor);
};
});
-enifed('ember-routing-htmlbars/keywords/closure-action', ['exports', 'ember-metal/streams/stream', 'ember-metal/streams/utils', 'ember-metal/utils', 'ember-metal/property_get', 'ember-htmlbars/hooks/subexpr', 'ember-metal/error'], function (exports, _emberMetalStreamsStream, _emberMetalStreamsUtils, _emberMetalUtils, _emberMetalProperty_get, _emberHtmlbarsHooksSubexpr, _emberMetalError) {
+enifed('ember-routing-htmlbars/keywords/closure-action', ['exports', 'ember-metal/streams/stream', 'ember-metal/streams/utils', 'ember-metal/utils', 'ember-metal/property_get', 'ember-htmlbars/hooks/subexpr', 'ember-metal/error', 'ember-metal/run_loop'], function (exports, _emberMetalStreamsStream, _emberMetalStreamsUtils, _emberMetalUtils, _emberMetalProperty_get, _emberHtmlbarsHooksSubexpr, _emberMetalError, _emberMetalRun_loop) {
'use strict';
exports.default = closureAction;
var INVOKE = _emberMetalUtils.symbol('INVOKE');
exports.INVOKE = INVOKE;
@@ -28341,27 +28330,35 @@
var closureAction;
if (actionArguments.length > 0) {
closureAction = function () {
var args = actionArguments;
- if (arguments.length > 0) {
- var passedArguments = Array.prototype.slice.apply(arguments);
+
+ for (var _len = arguments.length, passedArguments = Array(_len), _key = 0; _key < _len; _key++) {
+ passedArguments[_key] = arguments[_key];
+ }
+
+ if (passedArguments.length > 0) {
args = actionArguments.concat(passedArguments);
}
if (valuePath && args.length > 0) {
args[0] = _emberMetalProperty_get.get(args[0], valuePath);
}
- return action.apply(target, args);
+
+ return _emberMetalRun_loop.default.join.apply(_emberMetalRun_loop.default, [target, action].concat(args));
};
} else {
closureAction = function () {
- var args = arguments;
+ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
if (valuePath && args.length > 0) {
- args = Array.prototype.slice.apply(args);
args[0] = _emberMetalProperty_get.get(args[0], valuePath);
}
- return action.apply(target, args);
+
+ return _emberMetalRun_loop.default.join.apply(_emberMetalRun_loop.default, [target, action].concat(args));
};
}
closureAction[ACTION] = true;
@@ -29126,11 +29123,11 @@
@submodule ember-routing-views
*/
'use strict';
- _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.2.0-beta.1';
+ _emberHtmlbarsTemplatesLinkTo.default.meta.revision = 'Ember@2.2.0';
/**
`Ember.LinkComponent` renders an element whose `click` event triggers a
transition of the application's instance of `Ember.Router` to
a supplied route by name.
@@ -29414,18 +29411,20 @@
_invoke: function (event) {
if (!_emberViewsSystemUtils.isSimpleClick(event)) {
return true;
}
- if (this.attrs.preventDefault !== false) {
- var targetAttribute = this.attrs.target;
+ var preventDefault = _emberMetalProperty_get.get(this, 'preventDefault');
+ var targetAttribute = _emberMetalProperty_get.get(this, 'target');
+
+ if (preventDefault !== false) {
if (!targetAttribute || targetAttribute === '_self') {
event.preventDefault();
}
}
- if (this.attrs.bubbles === false) {
+ if (_emberMetalProperty_get.get(this, 'bubbles') === false) {
event.stopPropagation();
}
if (_emberMetalProperty_get.get(this, '_isDisabled')) {
return false;
@@ -29434,28 +29433,27 @@
if (_emberMetalProperty_get.get(this, 'loading')) {
_emberMetalLogger.default.warn('This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid.');
return false;
}
- var targetAttribute2 = this.attrs.target;
- if (targetAttribute2 && targetAttribute2 !== '_self') {
+ if (targetAttribute && targetAttribute !== '_self') {
return false;
}
var routing = _emberMetalProperty_get.get(this, '_routing');
var qualifiedRouteName = _emberMetalProperty_get.get(this, 'qualifiedRouteName');
var models = _emberMetalProperty_get.get(this, 'models');
var queryParamValues = _emberMetalProperty_get.get(this, 'queryParams.values');
- var shouldReplace = _emberMetalProperty_get.get(this, 'attrs.replace');
+ var shouldReplace = _emberMetalProperty_get.get(this, 'replace');
routing.transitionTo(qualifiedRouteName, models, queryParamValues, shouldReplace);
},
queryParams: null,
qualifiedRouteName: _emberMetalComputed.computed('targetRouteName', '_routing.currentState', function computeLinkToComponentQualifiedRouteName() {
- var params = this.attrs.params.slice();
+ var params = _emberMetalProperty_get.get(this, 'params').slice();
var lastParam = params[params.length - 1];
if (lastParam && lastParam.isQueryParams) {
params.pop();
}
var onlyQueryParamsSupplied = this[_emberHtmlbarsNodeManagersComponentNodeManager.HAS_BLOCK] ? params.length === 0 : params.length === 1;
@@ -29527,10 +29525,28 @@
}
return true;
}),
+ _getModels: function (params) {
+ var modelCount = params.length - 1;
+ var models = new Array(modelCount);
+
+ for (var i = 0; i < modelCount; i++) {
+ var value = params[i + 1];
+
+ while (_emberRuntimeMixinsController.default.detect(value)) {
+ _emberMetalDebug.deprecate('Providing `{{link-to}}` with a param that is wrapped in a controller is deprecated. ' + (this.parentView ? 'Please update `' + this.parentView + '` to use `{{link-to "post" someController.model}}` instead.' : ''), false, { id: 'ember-routing-views.controller-wrapped-param', until: '3.0.0' });
+ value = value.get('model');
+ }
+
+ models[i] = value;
+ }
+
+ return models;
+ },
+
/**
The default href value to use while a link-to is loading.
Only applies when tagName is 'a'
@property loadingHref
@type String
@@ -29540,19 +29556,18 @@
loadingHref: '#',
willRender: function () {
var queryParams = undefined;
- var attrs = this.attrs;
-
// Do not mutate params in place
- var params = attrs.params.slice();
+ var params = _emberMetalProperty_get.get(this, 'params').slice();
_emberMetalDebug.assert('You must provide one or more parameters to the link-to component.', params.length);
- if (attrs.disabledWhen) {
- this.set('disabled', attrs.disabledWhen);
+ var disabledWhen = _emberMetalProperty_get.get(this, 'disabledWhen');
+ if (disabledWhen) {
+ this.set('disabled', disabledWhen);
}
// Process the positional arguments, in order.
// 1. Inline link title comes first, if present.
if (!this[_emberHtmlbarsNodeManagersComponentNodeManager.HAS_BLOCK]) {
@@ -29571,24 +29586,15 @@
queryParams = {};
}
this.set('queryParams', queryParams);
// 4. Any remaining indices (excepting `targetRouteName` at 0) are `models`.
- var models = [];
-
- for (var i = 1; i < params.length; i++) {
- var value = params[i];
-
- while (_emberRuntimeMixinsController.default.detect(value)) {
- _emberMetalDebug.deprecate('Providing `{{link-to}}` with a param that is wrapped in a controller is deprecated. ' + (this.parentView ? 'Please update `' + this.parentView + '` to use `{{link-to "post" someController.model}}` instead.' : ''), false, { id: 'ember-routing-views.controller-wrapped-param', until: '3.0.0' });
- value = value.get('model');
- }
-
- models.push(value);
+ if (params.length > 1) {
+ this.set('models', this._getModels(params));
+ } else {
+ this.set('models', []);
}
-
- this.set('models', models);
}
});
LinkComponent.toString = function () {
return 'LinkComponent';
@@ -29607,11 +29613,11 @@
@submodule ember-routing-views
*/
'use strict';
- _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0-beta.1';
+ _emberHtmlbarsTemplatesTopLevelView.default.meta.revision = 'Ember@2.2.0';
var CoreOutletView = _emberViewsViewsView.default.extend({
defaultTemplate: _emberHtmlbarsTemplatesTopLevelView.default,
init: function () {
@@ -29731,11 +29737,11 @@
@method compare
@for Ember
@param {Object} v First value to compare
@param {Object} w Second value to compare
@return {Number} -1 if v < w, 0 if v = w and 1 if v > w.
- @private
+ @public
*/
function compare(v, w) {
if (v === w) {
return 0;
@@ -38442,11 +38448,11 @@
options.plugins = plugins;
options.buildMeta = function buildMeta(program) {
return {
fragmentReason: fragmentReason(program),
- revision: 'Ember@2.2.0-beta.1',
+ revision: 'Ember@2.2.0',
loc: program.loc,
moduleName: options.moduleName
};
};
@@ -40115,10 +40121,12 @@
return '{{' + this._debugContainerKey.split(':')[1] + '}}';
}
}),
init: function () {
+ var _this = this;
+
this._super.apply(this, arguments);
_emberMetalProperty_set.set(this, 'controller', this);
_emberMetalProperty_set.set(this, 'context', this);
if (!this.layout && this.layoutName && this.container) {
@@ -40133,10 +40141,24 @@
if (this.defaultLayout && !this.layout) {
_emberMetalDebug.deprecate('Specifying `defaultLayout` to ' + this + ' is deprecated. Please use `layout` instead.', false, { id: 'ember-views.component.defaultLayout', until: '3.0.0' });
this.layout = this.defaultLayout;
}
+
+ // If in a tagless component, assert that no event handlers are defined
+ _emberMetalDebug.assert('You can not define a function that handles DOM events in the `' + this + '` tagless component since it doesn\'t have any DOM element.', this.tagName !== '' || !(function () {
+ var eventDispatcher = _this.container.lookup('event_dispatcher:main');
+ var events = eventDispatcher && eventDispatcher._finalEvents || {};
+
+ for (var key in events) {
+ var methodName = events[key];
+
+ if (typeof _this[methodName] === 'function') {
+ return true; // indicate that the assertion should be triggered
+ }
+ }
+ })());
},
template: null,
layoutName: null,
layout: null,
@@ -40327,10 +40349,11 @@
```
@public
@property hasBlock
@param {String} [blockName="default"] The name of the block to check presence of.
@returns Boolean
+ @since 1.13.0
*/
/**
Returns true when the component was invoked with a block parameter
supplied.
@@ -40359,10 +40382,11 @@
{{/if}}
```
@public
@property hasBlockParams
@returns Boolean
+ @since 1.13.0
*/
/**
Enables components to take a list of parameters as arguments
For example a component that takes two parameters with the names
@@ -40398,10 +40422,11 @@
{{#each attrs.names as |name|}}{{name}}{{/each}}
```
@static
@public
@property positionalParams
+ @since 1.13.0
*/
});
Component.reopenClass({
isComponentFactory: true
@@ -42949,11 +42974,11 @@
@method setup
@param addedEvents {Object}
*/
setup: function (addedEvents, rootElement) {
var event;
- var events = _emberMetalAssign.default({}, _emberMetalProperty_get.get(this, 'events'), addedEvents);
+ var events = this._finalEvents = _emberMetalAssign.default({}, _emberMetalProperty_get.get(this, 'events'), addedEvents);
if (!_emberMetalIs_none.default(rootElement)) {
_emberMetalProperty_set.set(this, 'rootElement', rootElement);
}
@@ -43753,10 +43778,10 @@
exports.DeprecatedCollectionView = DeprecatedCollectionView;
});
enifed('ember-views/views/container_view', ['exports', 'ember-metal/core', 'ember-metal/debug', 'ember-runtime/mixins/mutable_array', 'ember-runtime/system/native_array', 'ember-views/views/view', 'ember-metal/property_get', 'ember-metal/property_set', 'ember-metal/mixin', 'ember-metal/events', 'ember-htmlbars/templates/container-view'], function (exports, _emberMetalCore, _emberMetalDebug, _emberRuntimeMixinsMutable_array, _emberRuntimeSystemNative_array, _emberViewsViewsView, _emberMetalProperty_get, _emberMetalProperty_set, _emberMetalMixin, _emberMetalEvents, _emberHtmlbarsTemplatesContainerView) {
'use strict';
- _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.2.0-beta.1';
+ _emberHtmlbarsTemplatesContainerView.default.meta.revision = 'Ember@2.2.0';
/**
@module ember
@submodule ember-views
*/