ember-source 2.9.0.beta.4 → 2.9.0.beta.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/dist/ember-runtime.js +329 -341
- data/dist/ember-template-compiler.js +38 -45
- data/dist/ember-testing.js +1 -1
- data/dist/ember.debug.js +449 -453
- data/dist/ember.js +449 -453
- data/dist/ember.min.js +15 -15
- data/dist/ember.prod.js +425 -442
- metadata +3 -4
- data/dist/test-template.js +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24f7b5a3cd0a7ea7794bd2e33e276df9f9baf29d
|
4
|
+
data.tar.gz: 2e26ab524a5016db5414e7a46d407697c59d0229
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef8e91d6d976a4f7b44563892d61afdaf0bd86611a06cc6ff2da443c0ce0c9efb31d7e34c5da7e648af2323f355a03c525a6c14ec9ea2d03d10a9b548e3bc95e
|
7
|
+
data.tar.gz: 3502263b7b8e722ed879f152adcb1bbfda1aac7f0f8f19fa342b175e683cfb000f7971e4898b3a57f486e96a6ae576697f719659deb059c7515204cf553b8bad
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.9.0-beta.
|
1
|
+
2.9.0-beta.5
|
data/dist/ember-runtime.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
* Portions Copyright 2008-2011 Apple Inc. All rights reserved.
|
7
7
|
* @license Licensed under MIT license
|
8
8
|
* See https://raw.github.com/emberjs/ember.js/master/LICENSE
|
9
|
-
* @version 2.9.0-beta.
|
9
|
+
* @version 2.9.0-beta.5
|
10
10
|
*/
|
11
11
|
|
12
12
|
var enifed, requireModule, require, Ember;
|
@@ -9726,19 +9726,12 @@ enifed('ember-metal/set_properties', ['exports', 'ember-metal/property_events',
|
|
9726
9726
|
return properties;
|
9727
9727
|
}
|
9728
9728
|
});
|
9729
|
-
enifed('ember-metal/tags', ['exports', 'ember-metal/meta', 'require'], function (exports, _emberMetalMeta,
|
9729
|
+
enifed('ember-metal/tags', ['exports', 'glimmer-reference', 'ember-metal/meta', 'require'], function (exports, _glimmerReference, _emberMetalMeta, _require) {
|
9730
9730
|
'use strict';
|
9731
9731
|
|
9732
9732
|
exports.setHasViews = setHasViews;
|
9733
9733
|
exports.tagFor = tagFor;
|
9734
|
-
|
9735
|
-
var hasGlimmer = _require2.has('glimmer-reference');
|
9736
|
-
|
9737
|
-
var CONSTANT_TAG = undefined,
|
9738
|
-
CURRENT_TAG = undefined,
|
9739
|
-
DirtyableTag = undefined,
|
9740
|
-
makeTag = undefined,
|
9741
|
-
run = undefined;
|
9734
|
+
exports.markObjectAsDirty = markObjectAsDirty;
|
9742
9735
|
|
9743
9736
|
var hasViews = function () {
|
9744
9737
|
return false;
|
@@ -9748,56 +9741,41 @@ enifed('ember-metal/tags', ['exports', 'ember-metal/meta', 'require'], function
|
|
9748
9741
|
hasViews = fn;
|
9749
9742
|
}
|
9750
9743
|
|
9751
|
-
|
9752
|
-
|
9753
|
-
|
9744
|
+
function makeTag() {
|
9745
|
+
return new _glimmerReference.DirtyableTag();
|
9746
|
+
}
|
9754
9747
|
|
9755
9748
|
function tagFor(object, _meta) {
|
9756
|
-
if (!hasGlimmer) {
|
9757
|
-
throw new Error('Cannot call tagFor without Glimmer');
|
9758
|
-
}
|
9759
|
-
|
9760
9749
|
if (typeof object === 'object' && object) {
|
9761
9750
|
var meta = _meta || _emberMetalMeta.meta(object);
|
9762
9751
|
return meta.writableTag(makeTag);
|
9763
9752
|
} else {
|
9764
|
-
return CONSTANT_TAG;
|
9753
|
+
return _glimmerReference.CONSTANT_TAG;
|
9765
9754
|
}
|
9766
9755
|
}
|
9767
9756
|
|
9757
|
+
function markObjectAsDirty(meta) {
|
9758
|
+
var tag = meta && meta.readableTag();
|
9759
|
+
|
9760
|
+
if (tag) {
|
9761
|
+
ensureRunloop();
|
9762
|
+
tag.dirty();
|
9763
|
+
}
|
9764
|
+
}
|
9765
|
+
|
9766
|
+
var run = undefined;
|
9767
|
+
|
9768
9768
|
function K() {}
|
9769
|
+
|
9769
9770
|
function ensureRunloop() {
|
9770
9771
|
if (!run) {
|
9771
|
-
run =
|
9772
|
+
run = _require.default('ember-metal/run_loop').default;
|
9772
9773
|
}
|
9773
9774
|
|
9774
9775
|
if (hasViews() && !run.backburner.currentInstance) {
|
9775
9776
|
run.schedule('actions', K);
|
9776
9777
|
}
|
9777
9778
|
}
|
9778
|
-
|
9779
|
-
if (hasGlimmer) {
|
9780
|
-
var _require = _require2.default('glimmer-reference');
|
9781
|
-
|
9782
|
-
DirtyableTag = _require.DirtyableTag;
|
9783
|
-
CONSTANT_TAG = _require.CONSTANT_TAG;
|
9784
|
-
CURRENT_TAG = _require.CURRENT_TAG;
|
9785
|
-
|
9786
|
-
makeTag = function () {
|
9787
|
-
return new DirtyableTag();
|
9788
|
-
};
|
9789
|
-
|
9790
|
-
exports.markObjectAsDirty = markObjectAsDirty = function (meta) {
|
9791
|
-
var tag = meta && meta.readableTag();
|
9792
|
-
|
9793
|
-
if (tag) {
|
9794
|
-
ensureRunloop();
|
9795
|
-
tag.dirty();
|
9796
|
-
}
|
9797
|
-
};
|
9798
|
-
} else {
|
9799
|
-
exports.markObjectAsDirty = markObjectAsDirty = function () {};
|
9800
|
-
}
|
9801
9779
|
});
|
9802
9780
|
enifed("ember-metal/testing", ["exports"], function (exports) {
|
9803
9781
|
"use strict";
|
@@ -9887,7 +9865,7 @@ enifed('ember-metal/transaction', ['exports', 'ember-metal/meta', 'ember-metal/d
|
|
9887
9865
|
label = 'the same value';
|
9888
9866
|
}
|
9889
9867
|
|
9890
|
-
return 'You modified ' + parts.join('.') + ' twice in a single render. This was unreliable and slow in Ember 1.x and ' + implication;
|
9868
|
+
return 'You modified ' + parts.join('.') + ' twice on ' + object + ' in a single render. This was unreliable and slow in Ember 1.x and ' + implication;
|
9891
9869
|
})(), false);
|
9892
9870
|
|
9893
9871
|
shouldReflush = true;
|
@@ -12457,6 +12435,7 @@ enifed('ember-runtime/index', ['exports', 'ember-runtime/ext/string', 'ember-run
|
|
12457
12435
|
'use strict';
|
12458
12436
|
|
12459
12437
|
exports.Object = _emberRuntimeSystemObject.default;
|
12438
|
+
exports.FrameworkObject = _emberRuntimeSystemObject.FrameworkObject;
|
12460
12439
|
exports.String = _emberRuntimeSystemString.default;
|
12461
12440
|
exports.RegistryProxyMixin = _emberRuntimeMixinsRegistry_proxy.default;
|
12462
12441
|
exports.buildFakeRegistryWithDeprecations = _emberRuntimeMixinsRegistry_proxy.buildFakeRegistryWithDeprecations;
|
@@ -12477,7 +12456,6 @@ enifed('ember-runtime/index', ['exports', 'ember-runtime/ext/string', 'ember-run
|
|
12477
12456
|
exports.ArrayProxy = _emberRuntimeSystemArray_proxy.default;
|
12478
12457
|
exports.ObjectProxy = _emberRuntimeSystemObject_proxy.default;
|
12479
12458
|
exports.CoreObject = _emberRuntimeSystemCore_object.default;
|
12480
|
-
exports.POST_INIT = _emberRuntimeSystemCore_object.POST_INIT;
|
12481
12459
|
exports.NativeArray = _emberRuntimeSystemNative_array.default;
|
12482
12460
|
exports.A = _emberRuntimeSystemNative_array.A;
|
12483
12461
|
exports.ActionHandler = _emberRuntimeMixinsAction_handler.default;
|
@@ -12675,7 +12653,7 @@ enifed('ember-runtime/is-equal', ['exports'], function (exports) {
|
|
12675
12653
|
return a === b;
|
12676
12654
|
}
|
12677
12655
|
});
|
12678
|
-
enifed('ember-runtime/mixins/-proxy', ['exports', '
|
12656
|
+
enifed('ember-runtime/mixins/-proxy', ['exports', 'glimmer-reference', 'ember-utils', 'ember-metal', 'ember-runtime/computed/computed_macros'], function (exports, _glimmerReference, _emberUtils, _emberMetal, _emberRuntimeComputedComputed_macros) {
|
12679
12657
|
/**
|
12680
12658
|
@module ember
|
12681
12659
|
@submodule ember-runtime
|
@@ -12683,12 +12661,10 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12683
12661
|
|
12684
12662
|
'use strict';
|
12685
12663
|
|
12686
|
-
var
|
12664
|
+
var _Mixin$create;
|
12687
12665
|
|
12688
12666
|
exports.isProxy = isProxy;
|
12689
12667
|
|
12690
|
-
var hasGlimmer = _require2.has('glimmer-reference');
|
12691
|
-
|
12692
12668
|
var IS_PROXY = _emberUtils.symbol('IS_PROXY');
|
12693
12669
|
|
12694
12670
|
function isProxy(value) {
|
@@ -12711,31 +12687,64 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12711
12687
|
_emberMetal.propertyDidChange(this, key);
|
12712
12688
|
}
|
12713
12689
|
|
12714
|
-
|
12715
|
-
|
12716
|
-
|
12717
|
-
|
12718
|
-
|
12719
|
-
|
12720
|
-
|
12721
|
-
|
12722
|
-
|
12690
|
+
var ProxyTag = (function (_CachedTag) {
|
12691
|
+
babelHelpers.inherits(ProxyTag, _CachedTag);
|
12692
|
+
|
12693
|
+
function ProxyTag(proxy) {
|
12694
|
+
_CachedTag.call(this);
|
12695
|
+
|
12696
|
+
var content = _emberMetal.get(proxy, 'content');
|
12697
|
+
|
12698
|
+
this.proxy = proxy;
|
12699
|
+
this.proxyWrapperTag = new _glimmerReference.DirtyableTag();
|
12700
|
+
this.proxyContentTag = new _glimmerReference.UpdatableTag(_emberMetal.tagFor(content));
|
12701
|
+
}
|
12702
|
+
|
12703
|
+
/**
|
12704
|
+
`Ember.ProxyMixin` forwards all properties not defined by the proxy itself
|
12705
|
+
to a proxied `content` object. See Ember.ObjectProxy for more details.
|
12706
|
+
|
12707
|
+
@class ProxyMixin
|
12708
|
+
@namespace Ember
|
12709
|
+
@private
|
12710
|
+
*/
|
12711
|
+
|
12712
|
+
ProxyTag.prototype.compute = function compute() {
|
12713
|
+
return Math.max(this.proxyWrapperTag.value(), this.proxyContentTag.value());
|
12714
|
+
};
|
12715
|
+
|
12716
|
+
ProxyTag.prototype.dirty = function dirty() {
|
12717
|
+
this.proxyWrapperTag.dirty();
|
12718
|
+
};
|
12719
|
+
|
12720
|
+
ProxyTag.prototype.contentDidChange = function contentDidChange() {
|
12721
|
+
var content = _emberMetal.get(this.proxy, 'content');
|
12722
|
+
this.proxyContentTag.update(_emberMetal.tagFor(content));
|
12723
|
+
};
|
12724
|
+
|
12725
|
+
return ProxyTag;
|
12726
|
+
})(_glimmerReference.CachedTag);
|
12727
|
+
|
12728
|
+
exports.default = _emberMetal.Mixin.create((_Mixin$create = {}, _Mixin$create[IS_PROXY] = true, _Mixin$create.content = null, _Mixin$create._initializeTag = _emberMetal.on('init', function () {
|
12729
|
+
_emberMetal.meta(this)._tag = new ProxyTag(this);
|
12730
|
+
}), _Mixin$create._contentDidChange = _emberMetal.observer('content', function () {
|
12723
12731
|
_emberMetal.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
|
12724
|
-
|
12732
|
+
_emberMetal.tagFor(this).contentDidChange();
|
12733
|
+
}), _Mixin$create.isTruthy = _emberRuntimeComputedComputed_macros.bool('content'), _Mixin$create._debugContainerKey = null, _Mixin$create.willWatchProperty = function (key) {
|
12725
12734
|
var contentKey = 'content.' + key;
|
12726
12735
|
_emberMetal._addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
|
12727
12736
|
_emberMetal.addObserver(this, contentKey, null, contentPropertyDidChange);
|
12728
|
-
},
|
12737
|
+
}, _Mixin$create.didUnwatchProperty = function (key) {
|
12729
12738
|
var contentKey = 'content.' + key;
|
12730
12739
|
_emberMetal._removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
|
12731
12740
|
_emberMetal.removeObserver(this, contentKey, null, contentPropertyDidChange);
|
12732
|
-
},
|
12741
|
+
}, _Mixin$create.unknownProperty = function (key) {
|
12733
12742
|
var content = _emberMetal.get(this, 'content');
|
12734
12743
|
if (content) {
|
12735
12744
|
_emberMetal.deprecate('You attempted to access `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
|
12736
12745
|
return _emberMetal.get(content, key);
|
12737
12746
|
}
|
12738
|
-
},
|
12747
|
+
}, _Mixin$create.setUnknownProperty = function (key, value) {
|
12739
12748
|
var m = _emberMetal.meta(this);
|
12740
12749
|
if (m.proto === this) {
|
12741
12750
|
// if marked as prototype then just defineProperty
|
@@ -12749,53 +12758,7 @@ enifed('ember-runtime/mixins/-proxy', ['exports', 'ember-utils', 'ember-metal',
|
|
12749
12758
|
|
12750
12759
|
_emberMetal.deprecate('You attempted to set `' + key + '` from `' + this + '`, but object proxying is deprecated. Please use `model.' + key + '` instead.', !this.isController, { id: 'ember-runtime.controller-proxy', until: '3.0.0' });
|
12751
12760
|
return _emberMetal.set(content, key, value);
|
12752
|
-
},
|
12753
|
-
|
12754
|
-
if (hasGlimmer) {
|
12755
|
-
(function () {
|
12756
|
-
var _require = _require2.default('glimmer-reference');
|
12757
|
-
|
12758
|
-
var CachedTag = _require.CachedTag;
|
12759
|
-
var DirtyableTag = _require.DirtyableTag;
|
12760
|
-
var UpdatableTag = _require.UpdatableTag;
|
12761
|
-
|
12762
|
-
var ProxyTag = (function (_CachedTag) {
|
12763
|
-
babelHelpers.inherits(ProxyTag, _CachedTag);
|
12764
|
-
|
12765
|
-
function ProxyTag(proxy, content) {
|
12766
|
-
_CachedTag.call(this);
|
12767
|
-
this.proxyWrapperTag = new DirtyableTag();
|
12768
|
-
this.proxyContentTag = new UpdatableTag(_emberMetal.tagFor(content));
|
12769
|
-
}
|
12770
|
-
|
12771
|
-
ProxyTag.prototype.compute = function compute() {
|
12772
|
-
return Math.max(this.proxyWrapperTag.value(), this.proxyContentTag.value());
|
12773
|
-
};
|
12774
|
-
|
12775
|
-
ProxyTag.prototype.dirty = function dirty() {
|
12776
|
-
this.proxyWrapperTag.dirty();
|
12777
|
-
};
|
12778
|
-
|
12779
|
-
ProxyTag.prototype.contentDidChange = function contentDidChange(content) {
|
12780
|
-
this.proxyContentTag.update(_emberMetal.tagFor(content));
|
12781
|
-
};
|
12782
|
-
|
12783
|
-
return ProxyTag;
|
12784
|
-
})(CachedTag);
|
12785
|
-
|
12786
|
-
PROXY_MIXIN_PROPS[_emberRuntimeSystemCore_object.POST_INIT] = function postInit() {
|
12787
|
-
this._super();
|
12788
|
-
_emberMetal.meta(this)._tag = new ProxyTag(this, _emberMetal.get(this, 'content'));
|
12789
|
-
};
|
12790
|
-
|
12791
|
-
PROXY_MIXIN_PROPS._contentDidChange = _emberMetal.observer('content', function () {
|
12792
|
-
_emberMetal.assert('Can\'t set Proxy\'s content to itself', _emberMetal.get(this, 'content') !== this);
|
12793
|
-
_emberMetal.meta(this)._tag.contentDidChange(_emberMetal.get(this, 'content'));
|
12794
|
-
});
|
12795
|
-
})();
|
12796
|
-
}
|
12797
|
-
|
12798
|
-
exports.default = _emberMetal.Mixin.create(PROXY_MIXIN_PROPS);
|
12761
|
+
}, _Mixin$create));
|
12799
12762
|
});
|
12800
12763
|
|
12801
12764
|
/**
|
@@ -17124,10 +17087,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17124
17087
|
// using ember-metal/lib/main here to ensure that ember-debug is setup
|
17125
17088
|
// if present
|
17126
17089
|
|
17127
|
-
var _Mixin$create;
|
17128
|
-
|
17129
|
-
var POST_INIT = _emberUtils.symbol('POST_INIT');
|
17130
|
-
exports.POST_INIT = POST_INIT;
|
17131
17090
|
var schedule = _emberMetal.run.schedule;
|
17132
17091
|
var applyMixin = _emberMetal.Mixin._apply;
|
17133
17092
|
var finishPartial = _emberMetal.Mixin.finishPartial;
|
@@ -17234,8 +17193,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17234
17193
|
|
17235
17194
|
this.init.apply(this, arguments);
|
17236
17195
|
|
17237
|
-
this[POST_INIT]();
|
17238
|
-
|
17239
17196
|
m.proto = proto;
|
17240
17197
|
_emberMetal.finishChains(this);
|
17241
17198
|
_emberMetal.sendEvent(this, 'init');
|
@@ -17280,7 +17237,7 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17280
17237
|
CoreObject.toString = function () {
|
17281
17238
|
return 'Ember.CoreObject';
|
17282
17239
|
};
|
17283
|
-
CoreObject.PrototypeMixin = _emberMetal.Mixin.create(
|
17240
|
+
CoreObject.PrototypeMixin = _emberMetal.Mixin.create({
|
17284
17241
|
reopen: function () {
|
17285
17242
|
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
17286
17243
|
args[_key] = arguments[_key];
|
@@ -17313,39 +17270,244 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17313
17270
|
@method init
|
17314
17271
|
@public
|
17315
17272
|
*/
|
17316
|
-
init: function () {}
|
17273
|
+
init: function () {},
|
17317
17274
|
|
17318
|
-
|
17319
|
-
|
17320
|
-
|
17321
|
-
|
17322
|
-
if (this.isDestroying) {
|
17323
|
-
return;
|
17324
|
-
}
|
17325
|
-
this.isDestroying = true;
|
17275
|
+
__defineNonEnumerable: function (property) {
|
17276
|
+
Object.defineProperty(this, property.name, property.descriptor);
|
17277
|
+
//this[property.name] = property.descriptor.value;
|
17278
|
+
},
|
17326
17279
|
|
17327
|
-
|
17328
|
-
|
17329
|
-
|
17330
|
-
|
17331
|
-
|
17332
|
-
|
17333
|
-
|
17334
|
-
|
17335
|
-
|
17336
|
-
|
17337
|
-
|
17338
|
-
|
17339
|
-
|
17340
|
-
|
17341
|
-
|
17342
|
-
|
17343
|
-
|
17344
|
-
|
17345
|
-
|
17280
|
+
/**
|
17281
|
+
Defines the properties that will be concatenated from the superclass
|
17282
|
+
(instead of overridden).
|
17283
|
+
By default, when you extend an Ember class a property defined in
|
17284
|
+
the subclass overrides a property with the same name that is defined
|
17285
|
+
in the superclass. However, there are some cases where it is preferable
|
17286
|
+
to build up a property's value by combining the superclass' property
|
17287
|
+
value with the subclass' value. An example of this in use within Ember
|
17288
|
+
is the `classNames` property of `Ember.View`.
|
17289
|
+
Here is some sample code showing the difference between a concatenated
|
17290
|
+
property and a normal one:
|
17291
|
+
```javascript
|
17292
|
+
const Bar = Ember.Object.extend({
|
17293
|
+
// Configure which properties to concatenate
|
17294
|
+
concatenatedProperties: ['concatenatedProperty'],
|
17295
|
+
someNonConcatenatedProperty: ['bar'],
|
17296
|
+
concatenatedProperty: ['bar']
|
17297
|
+
});
|
17298
|
+
const FooBar = Bar.extend({
|
17299
|
+
someNonConcatenatedProperty: ['foo'],
|
17300
|
+
concatenatedProperty: ['foo']
|
17301
|
+
});
|
17302
|
+
let fooBar = FooBar.create();
|
17303
|
+
fooBar.get('someNonConcatenatedProperty'); // ['foo']
|
17304
|
+
fooBar.get('concatenatedProperty'); // ['bar', 'foo']
|
17305
|
+
```
|
17306
|
+
This behavior extends to object creation as well. Continuing the
|
17307
|
+
above example:
|
17308
|
+
```javascript
|
17309
|
+
let fooBar = FooBar.create({
|
17310
|
+
someNonConcatenatedProperty: ['baz'],
|
17311
|
+
concatenatedProperty: ['baz']
|
17312
|
+
})
|
17313
|
+
fooBar.get('someNonConcatenatedProperty'); // ['baz']
|
17314
|
+
fooBar.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17315
|
+
```
|
17316
|
+
Adding a single property that is not an array will just add it in the array:
|
17317
|
+
```javascript
|
17318
|
+
let fooBar = FooBar.create({
|
17319
|
+
concatenatedProperty: 'baz'
|
17320
|
+
})
|
17321
|
+
view.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17322
|
+
```
|
17323
|
+
Using the `concatenatedProperties` property, we can tell Ember to mix the
|
17324
|
+
content of the properties.
|
17325
|
+
In `Ember.Component` the `classNames`, `classNameBindings` and
|
17326
|
+
`attributeBindings` properties are concatenated.
|
17327
|
+
This feature is available for you to use throughout the Ember object model,
|
17328
|
+
although typical app developers are likely to use it infrequently. Since
|
17329
|
+
it changes expectations about behavior of properties, you should properly
|
17330
|
+
document its usage in each individual concatenated property (to not
|
17331
|
+
mislead your users to think they can override the property in a subclass).
|
17332
|
+
@property concatenatedProperties
|
17333
|
+
@type Array
|
17334
|
+
@default null
|
17335
|
+
@public
|
17336
|
+
*/
|
17337
|
+
concatenatedProperties: null,
|
17346
17338
|
|
17347
|
-
|
17348
|
-
|
17339
|
+
/**
|
17340
|
+
Defines the properties that will be merged from the superclass
|
17341
|
+
(instead of overridden).
|
17342
|
+
By default, when you extend an Ember class a property defined in
|
17343
|
+
the subclass overrides a property with the same name that is defined
|
17344
|
+
in the superclass. However, there are some cases where it is preferable
|
17345
|
+
to build up a property's value by merging the superclass property value
|
17346
|
+
with the subclass property's value. An example of this in use within Ember
|
17347
|
+
is the `queryParams` property of routes.
|
17348
|
+
Here is some sample code showing the difference between a merged
|
17349
|
+
property and a normal one:
|
17350
|
+
```javascript
|
17351
|
+
const Bar = Ember.Object.extend({
|
17352
|
+
// Configure which properties are to be merged
|
17353
|
+
mergedProperties: ['mergedProperty'],
|
17354
|
+
someNonMergedProperty: {
|
17355
|
+
nonMerged: 'superclass value of nonMerged'
|
17356
|
+
},
|
17357
|
+
mergedProperty: {
|
17358
|
+
page: {replace: false},
|
17359
|
+
limit: {replace: true}
|
17360
|
+
}
|
17361
|
+
});
|
17362
|
+
const FooBar = Bar.extend({
|
17363
|
+
someNonMergedProperty: {
|
17364
|
+
completelyNonMerged: 'subclass value of nonMerged'
|
17365
|
+
},
|
17366
|
+
mergedProperty: {
|
17367
|
+
limit: {replace: false}
|
17368
|
+
}
|
17369
|
+
});
|
17370
|
+
let fooBar = FooBar.create();
|
17371
|
+
fooBar.get('someNonMergedProperty');
|
17372
|
+
// => { completelyNonMerged: 'subclass value of nonMerged' }
|
17373
|
+
//
|
17374
|
+
// Note the entire object, including the nonMerged property of
|
17375
|
+
// the superclass object, has been replaced
|
17376
|
+
fooBar.get('mergedProperty');
|
17377
|
+
// => {
|
17378
|
+
// page: {replace: false},
|
17379
|
+
// limit: {replace: false}
|
17380
|
+
// }
|
17381
|
+
//
|
17382
|
+
// Note the page remains from the superclass, and the
|
17383
|
+
// `limit` property's value of `false` has been merged from
|
17384
|
+
// the subclass.
|
17385
|
+
```
|
17386
|
+
This behavior is not available during object `create` calls. It is only
|
17387
|
+
available at `extend` time.
|
17388
|
+
In `Ember.Route` the `queryParams` property is merged.
|
17389
|
+
This feature is available for you to use throughout the Ember object model,
|
17390
|
+
although typical app developers are likely to use it infrequently. Since
|
17391
|
+
it changes expectations about behavior of properties, you should properly
|
17392
|
+
document its usage in each individual merged property (to not
|
17393
|
+
mislead your users to think they can override the property in a subclass).
|
17394
|
+
@property mergedProperties
|
17395
|
+
@type Array
|
17396
|
+
@default null
|
17397
|
+
@public
|
17398
|
+
*/
|
17399
|
+
mergedProperties: null,
|
17400
|
+
|
17401
|
+
/**
|
17402
|
+
Destroyed object property flag.
|
17403
|
+
if this property is `true` the observers and bindings were already
|
17404
|
+
removed by the effect of calling the `destroy()` method.
|
17405
|
+
@property isDestroyed
|
17406
|
+
@default false
|
17407
|
+
@public
|
17408
|
+
*/
|
17409
|
+
isDestroyed: false,
|
17410
|
+
|
17411
|
+
/**
|
17412
|
+
Destruction scheduled flag. The `destroy()` method has been called.
|
17413
|
+
The object stays intact until the end of the run loop at which point
|
17414
|
+
the `isDestroyed` flag is set.
|
17415
|
+
@property isDestroying
|
17416
|
+
@default false
|
17417
|
+
@public
|
17418
|
+
*/
|
17419
|
+
isDestroying: false,
|
17420
|
+
|
17421
|
+
/**
|
17422
|
+
Destroys an object by setting the `isDestroyed` flag and removing its
|
17423
|
+
metadata, which effectively destroys observers and bindings.
|
17424
|
+
If you try to set a property on a destroyed object, an exception will be
|
17425
|
+
raised.
|
17426
|
+
Note that destruction is scheduled for the end of the run loop and does not
|
17427
|
+
happen immediately. It will set an isDestroying flag immediately.
|
17428
|
+
@method destroy
|
17429
|
+
@return {Ember.Object} receiver
|
17430
|
+
@public
|
17431
|
+
*/
|
17432
|
+
destroy: function () {
|
17433
|
+
if (this.isDestroying) {
|
17434
|
+
return;
|
17435
|
+
}
|
17436
|
+
this.isDestroying = true;
|
17437
|
+
|
17438
|
+
schedule('actions', this, this.willDestroy);
|
17439
|
+
schedule('destroy', this, this._scheduledDestroy);
|
17440
|
+
return this;
|
17441
|
+
},
|
17442
|
+
|
17443
|
+
/**
|
17444
|
+
Override to implement teardown.
|
17445
|
+
@method willDestroy
|
17446
|
+
@public
|
17447
|
+
*/
|
17448
|
+
willDestroy: function () {},
|
17449
|
+
|
17450
|
+
/**
|
17451
|
+
Invoked by the run loop to actually destroy the object. This is
|
17452
|
+
scheduled for execution by the `destroy` method.
|
17453
|
+
@private
|
17454
|
+
@method _scheduledDestroy
|
17455
|
+
*/
|
17456
|
+
_scheduledDestroy: function () {
|
17457
|
+
if (this.isDestroyed) {
|
17458
|
+
return;
|
17459
|
+
}
|
17460
|
+
_emberMetal.destroy(this);
|
17461
|
+
this.isDestroyed = true;
|
17462
|
+
},
|
17463
|
+
|
17464
|
+
bind: function (to, from) {
|
17465
|
+
if (!(from instanceof _emberMetal.Binding)) {
|
17466
|
+
from = _emberMetal.Binding.from(from);
|
17467
|
+
}
|
17468
|
+
from.to(to).connect(this);
|
17469
|
+
return from;
|
17470
|
+
},
|
17471
|
+
|
17472
|
+
/**
|
17473
|
+
Returns a string representation which attempts to provide more information
|
17474
|
+
than Javascript's `toString` typically does, in a generic way for all Ember
|
17475
|
+
objects.
|
17476
|
+
```javascript
|
17477
|
+
const Person = Ember.Object.extend()
|
17478
|
+
person = Person.create()
|
17479
|
+
person.toString() //=> "<Person:ember1024>"
|
17480
|
+
```
|
17481
|
+
If the object's class is not defined on an Ember namespace, it will
|
17482
|
+
indicate it is a subclass of the registered superclass:
|
17483
|
+
```javascript
|
17484
|
+
const Student = Person.extend()
|
17485
|
+
let student = Student.create()
|
17486
|
+
student.toString() //=> "<(subclass of Person):ember1025>"
|
17487
|
+
```
|
17488
|
+
If the method `toStringExtension` is defined, its return value will be
|
17489
|
+
included in the output.
|
17490
|
+
```javascript
|
17491
|
+
const Teacher = Person.extend({
|
17492
|
+
toStringExtension() {
|
17493
|
+
return this.get('fullName');
|
17494
|
+
}
|
17495
|
+
});
|
17496
|
+
teacher = Teacher.create()
|
17497
|
+
teacher.toString(); //=> "<Teacher:ember1026:Tom Dale>"
|
17498
|
+
```
|
17499
|
+
@method toString
|
17500
|
+
@return {String} string representation
|
17501
|
+
@public
|
17502
|
+
*/
|
17503
|
+
toString: function () {
|
17504
|
+
var hasToStringExtension = typeof this.toStringExtension === 'function';
|
17505
|
+
var extension = hasToStringExtension ? ':' + this.toStringExtension() : '';
|
17506
|
+
var ret = '<' + this.constructor.toString() + ':' + _emberUtils.guidFor(this) + extension + '>';
|
17507
|
+
|
17508
|
+
return ret;
|
17509
|
+
}
|
17510
|
+
});
|
17349
17511
|
|
17350
17512
|
CoreObject.PrototypeMixin.ownerConstructor = CoreObject;
|
17351
17513
|
|
@@ -17726,200 +17888,6 @@ enifed('ember-runtime/system/core_object', ['exports', 'ember-utils', 'ember-met
|
|
17726
17888
|
|
17727
17889
|
exports.default = CoreObject;
|
17728
17890
|
});
|
17729
|
-
|
17730
|
-
/**
|
17731
|
-
Defines the properties that will be concatenated from the superclass
|
17732
|
-
(instead of overridden).
|
17733
|
-
By default, when you extend an Ember class a property defined in
|
17734
|
-
the subclass overrides a property with the same name that is defined
|
17735
|
-
in the superclass. However, there are some cases where it is preferable
|
17736
|
-
to build up a property's value by combining the superclass' property
|
17737
|
-
value with the subclass' value. An example of this in use within Ember
|
17738
|
-
is the `classNames` property of `Ember.View`.
|
17739
|
-
Here is some sample code showing the difference between a concatenated
|
17740
|
-
property and a normal one:
|
17741
|
-
```javascript
|
17742
|
-
const Bar = Ember.Object.extend({
|
17743
|
-
// Configure which properties to concatenate
|
17744
|
-
concatenatedProperties: ['concatenatedProperty'],
|
17745
|
-
someNonConcatenatedProperty: ['bar'],
|
17746
|
-
concatenatedProperty: ['bar']
|
17747
|
-
});
|
17748
|
-
const FooBar = Bar.extend({
|
17749
|
-
someNonConcatenatedProperty: ['foo'],
|
17750
|
-
concatenatedProperty: ['foo']
|
17751
|
-
});
|
17752
|
-
let fooBar = FooBar.create();
|
17753
|
-
fooBar.get('someNonConcatenatedProperty'); // ['foo']
|
17754
|
-
fooBar.get('concatenatedProperty'); // ['bar', 'foo']
|
17755
|
-
```
|
17756
|
-
This behavior extends to object creation as well. Continuing the
|
17757
|
-
above example:
|
17758
|
-
```javascript
|
17759
|
-
let fooBar = FooBar.create({
|
17760
|
-
someNonConcatenatedProperty: ['baz'],
|
17761
|
-
concatenatedProperty: ['baz']
|
17762
|
-
})
|
17763
|
-
fooBar.get('someNonConcatenatedProperty'); // ['baz']
|
17764
|
-
fooBar.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17765
|
-
```
|
17766
|
-
Adding a single property that is not an array will just add it in the array:
|
17767
|
-
```javascript
|
17768
|
-
let fooBar = FooBar.create({
|
17769
|
-
concatenatedProperty: 'baz'
|
17770
|
-
})
|
17771
|
-
view.get('concatenatedProperty'); // ['bar', 'foo', 'baz']
|
17772
|
-
```
|
17773
|
-
Using the `concatenatedProperties` property, we can tell Ember to mix the
|
17774
|
-
content of the properties.
|
17775
|
-
In `Ember.Component` the `classNames`, `classNameBindings` and
|
17776
|
-
`attributeBindings` properties are concatenated.
|
17777
|
-
This feature is available for you to use throughout the Ember object model,
|
17778
|
-
although typical app developers are likely to use it infrequently. Since
|
17779
|
-
it changes expectations about behavior of properties, you should properly
|
17780
|
-
document its usage in each individual concatenated property (to not
|
17781
|
-
mislead your users to think they can override the property in a subclass).
|
17782
|
-
@property concatenatedProperties
|
17783
|
-
@type Array
|
17784
|
-
@default null
|
17785
|
-
@public
|
17786
|
-
*/
|
17787
|
-
|
17788
|
-
/**
|
17789
|
-
Defines the properties that will be merged from the superclass
|
17790
|
-
(instead of overridden).
|
17791
|
-
By default, when you extend an Ember class a property defined in
|
17792
|
-
the subclass overrides a property with the same name that is defined
|
17793
|
-
in the superclass. However, there are some cases where it is preferable
|
17794
|
-
to build up a property's value by merging the superclass property value
|
17795
|
-
with the subclass property's value. An example of this in use within Ember
|
17796
|
-
is the `queryParams` property of routes.
|
17797
|
-
Here is some sample code showing the difference between a merged
|
17798
|
-
property and a normal one:
|
17799
|
-
```javascript
|
17800
|
-
const Bar = Ember.Object.extend({
|
17801
|
-
// Configure which properties are to be merged
|
17802
|
-
mergedProperties: ['mergedProperty'],
|
17803
|
-
someNonMergedProperty: {
|
17804
|
-
nonMerged: 'superclass value of nonMerged'
|
17805
|
-
},
|
17806
|
-
mergedProperty: {
|
17807
|
-
page: {replace: false},
|
17808
|
-
limit: {replace: true}
|
17809
|
-
}
|
17810
|
-
});
|
17811
|
-
const FooBar = Bar.extend({
|
17812
|
-
someNonMergedProperty: {
|
17813
|
-
completelyNonMerged: 'subclass value of nonMerged'
|
17814
|
-
},
|
17815
|
-
mergedProperty: {
|
17816
|
-
limit: {replace: false}
|
17817
|
-
}
|
17818
|
-
});
|
17819
|
-
let fooBar = FooBar.create();
|
17820
|
-
fooBar.get('someNonMergedProperty');
|
17821
|
-
// => { completelyNonMerged: 'subclass value of nonMerged' }
|
17822
|
-
//
|
17823
|
-
// Note the entire object, including the nonMerged property of
|
17824
|
-
// the superclass object, has been replaced
|
17825
|
-
fooBar.get('mergedProperty');
|
17826
|
-
// => {
|
17827
|
-
// page: {replace: false},
|
17828
|
-
// limit: {replace: false}
|
17829
|
-
// }
|
17830
|
-
//
|
17831
|
-
// Note the page remains from the superclass, and the
|
17832
|
-
// `limit` property's value of `false` has been merged from
|
17833
|
-
// the subclass.
|
17834
|
-
```
|
17835
|
-
This behavior is not available during object `create` calls. It is only
|
17836
|
-
available at `extend` time.
|
17837
|
-
In `Ember.Route` the `queryParams` property is merged.
|
17838
|
-
This feature is available for you to use throughout the Ember object model,
|
17839
|
-
although typical app developers are likely to use it infrequently. Since
|
17840
|
-
it changes expectations about behavior of properties, you should properly
|
17841
|
-
document its usage in each individual merged property (to not
|
17842
|
-
mislead your users to think they can override the property in a subclass).
|
17843
|
-
@property mergedProperties
|
17844
|
-
@type Array
|
17845
|
-
@default null
|
17846
|
-
@public
|
17847
|
-
*/
|
17848
|
-
|
17849
|
-
/**
|
17850
|
-
Destroyed object property flag.
|
17851
|
-
if this property is `true` the observers and bindings were already
|
17852
|
-
removed by the effect of calling the `destroy()` method.
|
17853
|
-
@property isDestroyed
|
17854
|
-
@default false
|
17855
|
-
@public
|
17856
|
-
*/
|
17857
|
-
|
17858
|
-
/**
|
17859
|
-
Destruction scheduled flag. The `destroy()` method has been called.
|
17860
|
-
The object stays intact until the end of the run loop at which point
|
17861
|
-
the `isDestroyed` flag is set.
|
17862
|
-
@property isDestroying
|
17863
|
-
@default false
|
17864
|
-
@public
|
17865
|
-
*/
|
17866
|
-
|
17867
|
-
/**
|
17868
|
-
Destroys an object by setting the `isDestroyed` flag and removing its
|
17869
|
-
metadata, which effectively destroys observers and bindings.
|
17870
|
-
If you try to set a property on a destroyed object, an exception will be
|
17871
|
-
raised.
|
17872
|
-
Note that destruction is scheduled for the end of the run loop and does not
|
17873
|
-
happen immediately. It will set an isDestroying flag immediately.
|
17874
|
-
@method destroy
|
17875
|
-
@return {Ember.Object} receiver
|
17876
|
-
@public
|
17877
|
-
*/
|
17878
|
-
|
17879
|
-
/**
|
17880
|
-
Override to implement teardown.
|
17881
|
-
@method willDestroy
|
17882
|
-
@public
|
17883
|
-
*/
|
17884
|
-
|
17885
|
-
/**
|
17886
|
-
Invoked by the run loop to actually destroy the object. This is
|
17887
|
-
scheduled for execution by the `destroy` method.
|
17888
|
-
@private
|
17889
|
-
@method _scheduledDestroy
|
17890
|
-
*/
|
17891
|
-
|
17892
|
-
/**
|
17893
|
-
Returns a string representation which attempts to provide more information
|
17894
|
-
than Javascript's `toString` typically does, in a generic way for all Ember
|
17895
|
-
objects.
|
17896
|
-
```javascript
|
17897
|
-
const Person = Ember.Object.extend()
|
17898
|
-
person = Person.create()
|
17899
|
-
person.toString() //=> "<Person:ember1024>"
|
17900
|
-
```
|
17901
|
-
If the object's class is not defined on an Ember namespace, it will
|
17902
|
-
indicate it is a subclass of the registered superclass:
|
17903
|
-
```javascript
|
17904
|
-
const Student = Person.extend()
|
17905
|
-
let student = Student.create()
|
17906
|
-
student.toString() //=> "<(subclass of Person):ember1025>"
|
17907
|
-
```
|
17908
|
-
If the method `toStringExtension` is defined, its return value will be
|
17909
|
-
included in the output.
|
17910
|
-
```javascript
|
17911
|
-
const Teacher = Person.extend({
|
17912
|
-
toStringExtension() {
|
17913
|
-
return this.get('fullName');
|
17914
|
-
}
|
17915
|
-
});
|
17916
|
-
teacher = Teacher.create()
|
17917
|
-
teacher.toString(); //=> "<Teacher:ember1026:Tom Dale>"
|
17918
|
-
```
|
17919
|
-
@method toString
|
17920
|
-
@return {String} string representation
|
17921
|
-
@public
|
17922
|
-
*/
|
17923
17891
|
enifed('ember-runtime/system/each_proxy', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/mixins/array'], function (exports, _emberUtils, _emberMetal, _emberRuntimeMixinsArray) {
|
17924
17892
|
'use strict';
|
17925
17893
|
|
@@ -18503,7 +18471,7 @@ enifed('ember-runtime/system/native_array', ['exports', 'ember-metal', 'ember-en
|
|
18503
18471
|
exports.default = NativeArray;
|
18504
18472
|
});
|
18505
18473
|
// Ember.A circular
|
18506
|
-
enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable) {
|
18474
|
+
enifed('ember-runtime/system/object', ['exports', 'ember-utils', 'ember-metal', 'ember-runtime/system/core_object', 'ember-runtime/mixins/observable'], function (exports, _emberUtils, _emberMetal, _emberRuntimeSystemCore_object, _emberRuntimeMixinsObservable) {
|
18507
18475
|
/**
|
18508
18476
|
@module ember
|
18509
18477
|
@submodule ember-runtime
|
@@ -18527,6 +18495,26 @@ enifed('ember-runtime/system/object', ['exports', 'ember-runtime/system/core_obj
|
|
18527
18495
|
return 'Ember.Object';
|
18528
18496
|
};
|
18529
18497
|
|
18498
|
+
var FrameworkObject = EmberObject;
|
18499
|
+
|
18500
|
+
exports.FrameworkObject = FrameworkObject;
|
18501
|
+
_emberMetal.runInDebug(function () {
|
18502
|
+
var _EmberObject$extend;
|
18503
|
+
|
18504
|
+
var INIT_WAS_CALLED = _emberUtils.symbol('INIT_WAS_CALLED');
|
18505
|
+
var ASSERT_INIT_WAS_CALLED = _emberUtils.symbol('ASSERT_INIT_WAS_CALLED');
|
18506
|
+
|
18507
|
+
exports.FrameworkObject = FrameworkObject = EmberObject.extend((_EmberObject$extend = {
|
18508
|
+
init: function () {
|
18509
|
+
this._super.apply(this, arguments);
|
18510
|
+
this[INIT_WAS_CALLED] = true;
|
18511
|
+
}
|
18512
|
+
|
18513
|
+
}, _EmberObject$extend[ASSERT_INIT_WAS_CALLED] = _emberMetal.on('init', function () {
|
18514
|
+
_emberMetal.assert('You must call `this._super(...arguments);` when overriding `init` on a framework object. Please update ' + this + ' to call `this._super(...arguments);` from `init`.', this[INIT_WAS_CALLED]);
|
18515
|
+
}), _EmberObject$extend));
|
18516
|
+
});
|
18517
|
+
|
18530
18518
|
exports.default = EmberObject;
|
18531
18519
|
});
|
18532
18520
|
enifed('ember-runtime/system/object_proxy', ['exports', 'ember-runtime/system/object', 'ember-runtime/mixins/-proxy'], function (exports, _emberRuntimeSystemObject, _emberRuntimeMixinsProxy) {
|
@@ -19116,7 +19104,7 @@ enifed("ember/features", ["exports"], function (exports) {
|
|
19116
19104
|
enifed("ember/version", ["exports"], function (exports) {
|
19117
19105
|
"use strict";
|
19118
19106
|
|
19119
|
-
exports.default = "2.9.0-beta.
|
19107
|
+
exports.default = "2.9.0-beta.5";
|
19120
19108
|
});
|
19121
19109
|
/*!
|
19122
19110
|
* @overview RSVP - a tiny implementation of Promises/A+.
|