ember-source 4.0.0-beta.3 → 4.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +87 -418
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +1 -1
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +22 -740
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +12 -4
- package/dist/packages/@ember/-internals/routing/lib/services/router.js +8 -0
- package/dist/packages/@ember/object/lib/computed/computed_macros.js +0 -373
- package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +0 -351
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +75 -75
- package/lib/index.js +11 -48
- package/package.json +17 -17
- package/dist/packages/jquery/index.js +0 -2
package/dist/ember.debug.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 4.0.0-beta.
|
|
9
|
+
* @version 4.0.0-beta.7
|
|
10
10
|
*/
|
|
11
11
|
/* eslint-disable no-var */
|
|
12
12
|
|
|
@@ -4223,8 +4223,11 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
4223
4223
|
(true && !(false) && (0, _debug.deprecate)('Reopening the Ember.Component super class itself is deprecated. ' + 'Consider alternatives such as installing event listeners on ' + 'the document or add the customizations to specific subclasses.', false, {
|
|
4224
4224
|
id: 'ember.component.reopen',
|
|
4225
4225
|
for: 'ember-source',
|
|
4226
|
-
since: {
|
|
4227
|
-
|
|
4226
|
+
since: {
|
|
4227
|
+
enabled: '4.0.0'
|
|
4228
|
+
},
|
|
4229
|
+
url: 'https://deprecations.emberjs.com/v4.x#toc_ember-component-reopen',
|
|
4230
|
+
until: '5.0.0'
|
|
4228
4231
|
}));
|
|
4229
4232
|
Component._wasReopened = true;
|
|
4230
4233
|
}
|
|
@@ -4241,8 +4244,11 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
4241
4244
|
(true && !(false) && (0, _debug.deprecate)('Reopening the Ember.Component super class itself is deprecated. ' + 'Consider alternatives such as installing event listeners on ' + 'the document or add the customizations to specific subclasses.', false, {
|
|
4242
4245
|
id: 'ember.component.reopen',
|
|
4243
4246
|
for: 'ember-source',
|
|
4244
|
-
|
|
4245
|
-
|
|
4247
|
+
url: 'https://deprecations.emberjs.com/v4.x#toc_ember-component-reopen',
|
|
4248
|
+
since: {
|
|
4249
|
+
enabled: '4.0.0'
|
|
4250
|
+
},
|
|
4251
|
+
until: '5.0.0'
|
|
4246
4252
|
}));
|
|
4247
4253
|
Component._wasReopened = true;
|
|
4248
4254
|
}
|
|
@@ -10271,6 +10277,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
10271
10277
|
(true && !(false) && (0, _debug.deprecate)('Passing the `@disabledWhen` argument to <LinkTo> is deprecated. ' + 'Use the `@disabled` argument instead.', false, {
|
|
10272
10278
|
id: 'ember.link-to.disabled-when',
|
|
10273
10279
|
for: 'ember-source',
|
|
10280
|
+
url: 'https://deprecations.emberjs.com/v4.x#toc_ember-link-to-disabled-when',
|
|
10274
10281
|
since: {},
|
|
10275
10282
|
until: '4.0.0'
|
|
10276
10283
|
}));
|
|
@@ -10292,6 +10299,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
10292
10299
|
(true && !(false) && (0, _debug.deprecate)('Passing the `@disabledWhen` argument to <LinkTo> is deprecated. ' + 'Use the `@disabled` argument instead.', false, {
|
|
10293
10300
|
id: 'ember.link-to.disabled-when',
|
|
10294
10301
|
for: 'ember-source',
|
|
10302
|
+
url: 'https://deprecations.emberjs.com/v4.x#toc_ember-link-to-disabled-when',
|
|
10295
10303
|
since: {},
|
|
10296
10304
|
until: '4.0.0'
|
|
10297
10305
|
}));
|
|
@@ -16843,6 +16851,8 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int
|
|
|
16843
16851
|
|
|
16844
16852
|
|
|
16845
16853
|
urlFor(routeName, ...args) {
|
|
16854
|
+
this._router.setupRouter();
|
|
16855
|
+
|
|
16846
16856
|
return this._router.generate(routeName, ...args);
|
|
16847
16857
|
}
|
|
16848
16858
|
/**
|
|
@@ -16962,6 +16972,9 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int
|
|
|
16962
16972
|
|
|
16963
16973
|
recognize(url) {
|
|
16964
16974
|
(true && !(url.indexOf(this.rootURL) === 0) && (0, _debug.assert)(`You must pass a url that begins with the application's rootURL "${this.rootURL}"`, url.indexOf(this.rootURL) === 0));
|
|
16975
|
+
|
|
16976
|
+
this._router.setupRouter();
|
|
16977
|
+
|
|
16965
16978
|
var internalURL = cleanURL(url, this.rootURL);
|
|
16966
16979
|
return this._router._routerMicrolib.recognize(internalURL);
|
|
16967
16980
|
}
|
|
@@ -16979,6 +16992,9 @@ define("@ember/-internals/routing/lib/services/router", ["exports", "@ember/-int
|
|
|
16979
16992
|
|
|
16980
16993
|
recognizeAndLoad(url) {
|
|
16981
16994
|
(true && !(url.indexOf(this.rootURL) === 0) && (0, _debug.assert)(`You must pass a url that begins with the application's rootURL "${this.rootURL}"`, url.indexOf(this.rootURL) === 0));
|
|
16995
|
+
|
|
16996
|
+
this._router.setupRouter();
|
|
16997
|
+
|
|
16982
16998
|
var internalURL = cleanURL(url, this.rootURL);
|
|
16983
16999
|
return this._router._routerMicrolib.recognizeAndLoad(internalURL);
|
|
16984
17000
|
}
|
|
@@ -35344,25 +35360,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35344
35360
|
todoList.isDone; // true
|
|
35345
35361
|
```
|
|
35346
35362
|
|
|
35347
|
-
Classic Class Example:
|
|
35348
|
-
|
|
35349
|
-
```javascript
|
|
35350
|
-
import EmberObject, { set } from '@ember/object';
|
|
35351
|
-
import { empty } from '@ember/object/computed';
|
|
35352
|
-
|
|
35353
|
-
let ToDoList = EmberObject.extend({
|
|
35354
|
-
isDone: empty('todos')
|
|
35355
|
-
});
|
|
35356
|
-
|
|
35357
|
-
let todoList = ToDoList.create({
|
|
35358
|
-
todos: ['Unit Test', 'Documentation', 'Release']
|
|
35359
|
-
});
|
|
35360
|
-
|
|
35361
|
-
todoList.isDone; // false
|
|
35362
|
-
set(todoList, 'todos', []);
|
|
35363
|
-
todoList.isDone; // true
|
|
35364
|
-
```
|
|
35365
|
-
|
|
35366
35363
|
@since 1.6.0
|
|
35367
35364
|
@method empty
|
|
35368
35365
|
@static
|
|
@@ -35409,25 +35406,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35409
35406
|
hamster.hasStuff; // false
|
|
35410
35407
|
```
|
|
35411
35408
|
|
|
35412
|
-
Classic Class Example:
|
|
35413
|
-
|
|
35414
|
-
```javascript
|
|
35415
|
-
import EmberObject, { set } from '@ember/object';
|
|
35416
|
-
import { notEmpty } from '@ember/object/computed';
|
|
35417
|
-
|
|
35418
|
-
let Hamster = EmberObject.extend({
|
|
35419
|
-
hasStuff: notEmpty('backpack')
|
|
35420
|
-
});
|
|
35421
|
-
|
|
35422
|
-
let hamster = Hamster.create({
|
|
35423
|
-
backpack: ['Food', 'Sleeping Bag', 'Tent']
|
|
35424
|
-
});
|
|
35425
|
-
|
|
35426
|
-
hamster.hasStuff; // true
|
|
35427
|
-
set(hamster, 'backpack', []);
|
|
35428
|
-
hamster.hasStuff; // false
|
|
35429
|
-
```
|
|
35430
|
-
|
|
35431
35409
|
@method notEmpty
|
|
35432
35410
|
@static
|
|
35433
35411
|
@for @ember/object/computed
|
|
@@ -35468,27 +35446,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35468
35446
|
hamster.isHungry; // true
|
|
35469
35447
|
```
|
|
35470
35448
|
|
|
35471
|
-
Classic Class Example:
|
|
35472
|
-
|
|
35473
|
-
```javascript
|
|
35474
|
-
import EmberObject, { set } from '@ember/object';
|
|
35475
|
-
import { none } from '@ember/object/computed';
|
|
35476
|
-
|
|
35477
|
-
let Hamster = EmberObject.extend({
|
|
35478
|
-
isHungry: none('food')
|
|
35479
|
-
});
|
|
35480
|
-
|
|
35481
|
-
let hamster = Hamster.create();
|
|
35482
|
-
|
|
35483
|
-
hamster.isHungry; // true
|
|
35484
|
-
|
|
35485
|
-
set(hamster, 'food', 'Banana');
|
|
35486
|
-
hamster.isHungry; // false
|
|
35487
|
-
|
|
35488
|
-
set(hamster, 'food', null);
|
|
35489
|
-
hamster.isHungry; // true
|
|
35490
|
-
```
|
|
35491
|
-
|
|
35492
35449
|
@method none
|
|
35493
35450
|
@static
|
|
35494
35451
|
@for @ember/object/computed
|
|
@@ -35528,25 +35485,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35528
35485
|
user.isAnonymous; // false
|
|
35529
35486
|
```
|
|
35530
35487
|
|
|
35531
|
-
Classic Class Example:
|
|
35532
|
-
|
|
35533
|
-
```javascript
|
|
35534
|
-
import EmberObject, { set } from '@ember/object';
|
|
35535
|
-
import { not } from '@ember/object/computed';
|
|
35536
|
-
|
|
35537
|
-
let User = EmberObject.extend({
|
|
35538
|
-
loggedIn: false,
|
|
35539
|
-
|
|
35540
|
-
isAnonymous: not('loggedIn')
|
|
35541
|
-
});
|
|
35542
|
-
|
|
35543
|
-
let user = User.create();
|
|
35544
|
-
|
|
35545
|
-
user.isAnonymous; // true
|
|
35546
|
-
set(user, 'loggedIn', true);
|
|
35547
|
-
user.isAnonymous; // false
|
|
35548
|
-
```
|
|
35549
|
-
|
|
35550
35488
|
@method not
|
|
35551
35489
|
@static
|
|
35552
35490
|
@for @ember/object/computed
|
|
@@ -35592,31 +35530,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35592
35530
|
hamster.hasBananas; // false
|
|
35593
35531
|
```
|
|
35594
35532
|
|
|
35595
|
-
Classic Class Example:
|
|
35596
|
-
|
|
35597
|
-
```javascript
|
|
35598
|
-
import EmberObject, { set } from '@ember/object';
|
|
35599
|
-
import { bool } from '@ember/object/computed';
|
|
35600
|
-
|
|
35601
|
-
|
|
35602
|
-
let Hamster = EmberObject.extend({
|
|
35603
|
-
hasBananas: bool('numBananas')
|
|
35604
|
-
});
|
|
35605
|
-
|
|
35606
|
-
let hamster = Hamster.create();
|
|
35607
|
-
|
|
35608
|
-
hamster.hasBananas; // false
|
|
35609
|
-
|
|
35610
|
-
set(hamster, 'numBananas', 0);
|
|
35611
|
-
hamster.hasBananas; // false
|
|
35612
|
-
|
|
35613
|
-
set(hamster, 'numBananas', 1);
|
|
35614
|
-
hamster.hasBananas; // true
|
|
35615
|
-
|
|
35616
|
-
set(hamster, 'numBananas', null);
|
|
35617
|
-
hamster.hasBananas; // false
|
|
35618
|
-
```
|
|
35619
|
-
|
|
35620
35533
|
@method bool
|
|
35621
35534
|
@static
|
|
35622
35535
|
@for @ember/object/computed
|
|
@@ -35659,27 +35572,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35659
35572
|
user.hasValidEmail; // true
|
|
35660
35573
|
```
|
|
35661
35574
|
|
|
35662
|
-
Classic Class Example:
|
|
35663
|
-
|
|
35664
|
-
```javascript
|
|
35665
|
-
import EmberObject, { set } from '@ember/object';
|
|
35666
|
-
import { match } from '@ember/object/computed';
|
|
35667
|
-
|
|
35668
|
-
let User = EmberObject.extend({
|
|
35669
|
-
hasValidEmail: match('email', /^.+@.+\..+$/)
|
|
35670
|
-
});
|
|
35671
|
-
|
|
35672
|
-
let user = User.create();
|
|
35673
|
-
|
|
35674
|
-
user.hasValidEmail; // false
|
|
35675
|
-
|
|
35676
|
-
set(user, 'email', '');
|
|
35677
|
-
user.hasValidEmail; // false
|
|
35678
|
-
|
|
35679
|
-
set(user, 'email', 'ember_hamster@example.com');
|
|
35680
|
-
user.hasValidEmail; // true
|
|
35681
|
-
```
|
|
35682
|
-
|
|
35683
35575
|
@method match
|
|
35684
35576
|
@static
|
|
35685
35577
|
@for @ember/object/computed
|
|
@@ -35723,27 +35615,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35723
35615
|
hamster.satisfied; // false
|
|
35724
35616
|
```
|
|
35725
35617
|
|
|
35726
|
-
Classic Class Example:
|
|
35727
|
-
|
|
35728
|
-
```javascript
|
|
35729
|
-
import EmberObject, { set } from '@ember/object';
|
|
35730
|
-
import { equal } from '@ember/object/computed';
|
|
35731
|
-
|
|
35732
|
-
let Hamster = EmberObject.extend({
|
|
35733
|
-
satisfied: equal('percentCarrotsEaten', 100)
|
|
35734
|
-
});
|
|
35735
|
-
|
|
35736
|
-
let hamster = Hamster.create();
|
|
35737
|
-
|
|
35738
|
-
hamster.satisfied; // false
|
|
35739
|
-
|
|
35740
|
-
set(hamster, 'percentCarrotsEaten', 100);
|
|
35741
|
-
hamster.satisfied; // true
|
|
35742
|
-
|
|
35743
|
-
set(hamster, 'percentCarrotsEaten', 50);
|
|
35744
|
-
hamster.satisfied; // false
|
|
35745
|
-
```
|
|
35746
|
-
|
|
35747
35618
|
@method equal
|
|
35748
35619
|
@static
|
|
35749
35620
|
@for @ember/object/computed
|
|
@@ -35786,27 +35657,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35786
35657
|
hamster.hasTooManyBananas; // true
|
|
35787
35658
|
```
|
|
35788
35659
|
|
|
35789
|
-
Classic Class Example:
|
|
35790
|
-
|
|
35791
|
-
```javascript
|
|
35792
|
-
import EmberObject, { set } from '@ember/object';
|
|
35793
|
-
import { gt } from '@ember/object/computed';
|
|
35794
|
-
|
|
35795
|
-
let Hamster = EmberObject.extend({
|
|
35796
|
-
hasTooManyBananas: gt('numBananas', 10)
|
|
35797
|
-
});
|
|
35798
|
-
|
|
35799
|
-
let hamster = Hamster.create();
|
|
35800
|
-
|
|
35801
|
-
hamster.hasTooManyBananas; // false
|
|
35802
|
-
|
|
35803
|
-
set(hamster, 'numBananas', 3);
|
|
35804
|
-
hamster.hasTooManyBananas; // false
|
|
35805
|
-
|
|
35806
|
-
set(hamster, 'numBananas', 11);
|
|
35807
|
-
hamster.hasTooManyBananas; // true
|
|
35808
|
-
```
|
|
35809
|
-
|
|
35810
35660
|
@method gt
|
|
35811
35661
|
@static
|
|
35812
35662
|
@for @ember/object/computed
|
|
@@ -35849,27 +35699,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35849
35699
|
hamster.hasTooManyBananas; // true
|
|
35850
35700
|
```
|
|
35851
35701
|
|
|
35852
|
-
Classic Class Example:
|
|
35853
|
-
|
|
35854
|
-
```javascript
|
|
35855
|
-
import EmberObject, { set } from '@ember/object';
|
|
35856
|
-
import { gte } from '@ember/object/computed';
|
|
35857
|
-
|
|
35858
|
-
let Hamster = EmberObject.extend({
|
|
35859
|
-
hasTooManyBananas: gte('numBananas', 10)
|
|
35860
|
-
});
|
|
35861
|
-
|
|
35862
|
-
let hamster = Hamster.create();
|
|
35863
|
-
|
|
35864
|
-
hamster.hasTooManyBananas; // false
|
|
35865
|
-
|
|
35866
|
-
set(hamster, 'numBananas', 3);
|
|
35867
|
-
hamster.hasTooManyBananas; // false
|
|
35868
|
-
|
|
35869
|
-
set(hamster, 'numBananas', 10);
|
|
35870
|
-
hamster.hasTooManyBananas; // true
|
|
35871
|
-
```
|
|
35872
|
-
|
|
35873
35702
|
@method gte
|
|
35874
35703
|
@static
|
|
35875
35704
|
@for @ember/object/computed
|
|
@@ -35912,27 +35741,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35912
35741
|
hamster.needsMoreBananas; // true
|
|
35913
35742
|
```
|
|
35914
35743
|
|
|
35915
|
-
Classic Class Example:
|
|
35916
|
-
|
|
35917
|
-
```javascript
|
|
35918
|
-
import EmberObject, { set } from '@ember/object';
|
|
35919
|
-
import { lt } from '@ember/object/computed';
|
|
35920
|
-
|
|
35921
|
-
let Hamster = EmberObject.extend({
|
|
35922
|
-
needsMoreBananas: lt('numBananas', 3)
|
|
35923
|
-
});
|
|
35924
|
-
|
|
35925
|
-
let hamster = Hamster.create();
|
|
35926
|
-
|
|
35927
|
-
hamster.needsMoreBananas; // true
|
|
35928
|
-
|
|
35929
|
-
set(hamster, 'numBananas', 3);
|
|
35930
|
-
hamster.needsMoreBananas; // false
|
|
35931
|
-
|
|
35932
|
-
set(hamster, 'numBananas', 2);
|
|
35933
|
-
hamster.needsMoreBananas; // true
|
|
35934
|
-
```
|
|
35935
|
-
|
|
35936
35744
|
@method lt
|
|
35937
35745
|
@static
|
|
35938
35746
|
@for @ember/object/computed
|
|
@@ -35975,27 +35783,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35975
35783
|
hamster.needsMoreBananas; // true
|
|
35976
35784
|
```
|
|
35977
35785
|
|
|
35978
|
-
Classic Class Example:
|
|
35979
|
-
|
|
35980
|
-
```javascript
|
|
35981
|
-
import EmberObject, { set } from '@ember/object';
|
|
35982
|
-
import { lte } from '@ember/object/computed';
|
|
35983
|
-
|
|
35984
|
-
let Hamster = EmberObject.extend({
|
|
35985
|
-
needsMoreBananas: lte('numBananas', 3)
|
|
35986
|
-
});
|
|
35987
|
-
|
|
35988
|
-
let hamster = Hamster.create();
|
|
35989
|
-
|
|
35990
|
-
hamster.needsMoreBananas; // true
|
|
35991
|
-
|
|
35992
|
-
set(hamster, 'numBananas', 5);
|
|
35993
|
-
hamster.needsMoreBananas; // false
|
|
35994
|
-
|
|
35995
|
-
set(hamster, 'numBananas', 3);
|
|
35996
|
-
hamster.needsMoreBananas; // true
|
|
35997
|
-
```
|
|
35998
|
-
|
|
35999
35786
|
@method lte
|
|
36000
35787
|
@static
|
|
36001
35788
|
@for @ember/object/computed
|
|
@@ -36049,34 +35836,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36049
35836
|
tomster.readyForHike; // null
|
|
36050
35837
|
```
|
|
36051
35838
|
|
|
36052
|
-
Classic Class Example:
|
|
36053
|
-
|
|
36054
|
-
```javascript
|
|
36055
|
-
import EmberObject, { set } from '@ember/object';
|
|
36056
|
-
import { and } from '@ember/object/computed';
|
|
36057
|
-
|
|
36058
|
-
let Hamster = EmberObject.extend({
|
|
36059
|
-
readyForCamp: and('hasTent', 'hasBackpack'),
|
|
36060
|
-
readyForHike: and('hasWalkingStick', 'hasBackpack')
|
|
36061
|
-
});
|
|
36062
|
-
|
|
36063
|
-
let tomster = Hamster.create();
|
|
36064
|
-
|
|
36065
|
-
tomster.readyForCamp; // false
|
|
36066
|
-
|
|
36067
|
-
set(tomster, 'hasTent', true);
|
|
36068
|
-
tomster.readyForCamp; // false
|
|
36069
|
-
|
|
36070
|
-
set(tomster, 'hasBackpack', true);
|
|
36071
|
-
tomster.readyForCamp; // true
|
|
36072
|
-
|
|
36073
|
-
set(tomster, 'hasBackpack', 'Yes');
|
|
36074
|
-
tomster.readyForCamp; // 'Yes'
|
|
36075
|
-
|
|
36076
|
-
set(tomster, 'hasWalkingStick', null);
|
|
36077
|
-
tomster.readyForHike; // null
|
|
36078
|
-
```
|
|
36079
|
-
|
|
36080
35839
|
@method and
|
|
36081
35840
|
@static
|
|
36082
35841
|
@for @ember/object/computed
|
|
@@ -36121,31 +35880,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36121
35880
|
tomster.readyForBeach; // 'Check'
|
|
36122
35881
|
```
|
|
36123
35882
|
|
|
36124
|
-
Classic Class Example:
|
|
36125
|
-
|
|
36126
|
-
```javascript
|
|
36127
|
-
import EmberObject, { set } from '@ember/object';
|
|
36128
|
-
import { or } from '@ember/object/computed';
|
|
36129
|
-
|
|
36130
|
-
let Hamster = EmberObject.extend({
|
|
36131
|
-
readyForRain: or('hasJacket', 'hasUmbrella'),
|
|
36132
|
-
readyForBeach: or('hasSunscreen', 'hasUmbrella')
|
|
36133
|
-
});
|
|
36134
|
-
|
|
36135
|
-
let tomster = Hamster.create();
|
|
36136
|
-
|
|
36137
|
-
tomster.readyForRain; // undefined
|
|
36138
|
-
|
|
36139
|
-
set(tomster, 'hasUmbrella', true);
|
|
36140
|
-
tomster.readyForRain; // true
|
|
36141
|
-
|
|
36142
|
-
set(tomster, 'hasJacket', 'Yes');
|
|
36143
|
-
tomster.readyForRain; // 'Yes'
|
|
36144
|
-
|
|
36145
|
-
set(tomster, 'hasSunscreen', 'Check');
|
|
36146
|
-
tomster.readyForBeach; // 'Check'
|
|
36147
|
-
```
|
|
36148
|
-
|
|
36149
35883
|
@method or
|
|
36150
35884
|
@static
|
|
36151
35885
|
@for @ember/object/computed
|
|
@@ -36183,27 +35917,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36183
35917
|
alex.name; // '@machty'
|
|
36184
35918
|
```
|
|
36185
35919
|
|
|
36186
|
-
Classic Class Example:
|
|
36187
|
-
|
|
36188
|
-
```javascript
|
|
36189
|
-
import EmberObject, { set } from '@ember/object';
|
|
36190
|
-
import { alias } from '@ember/object/computed';
|
|
36191
|
-
|
|
36192
|
-
let Person = EmberObject.extend({
|
|
36193
|
-
name: 'Alex Matchneer',
|
|
36194
|
-
|
|
36195
|
-
nomen: alias('name')
|
|
36196
|
-
});
|
|
36197
|
-
|
|
36198
|
-
let alex = Person.create();
|
|
36199
|
-
|
|
36200
|
-
alex.nomen; // 'Alex Matchneer'
|
|
36201
|
-
alex.name; // 'Alex Matchneer'
|
|
36202
|
-
|
|
36203
|
-
set(alex, 'nomen', '@machty');
|
|
36204
|
-
alex.name; // '@machty'
|
|
36205
|
-
```
|
|
36206
|
-
|
|
36207
35920
|
@method alias
|
|
36208
35921
|
@static
|
|
36209
35922
|
@for @ember/object/computed
|
|
@@ -36244,31 +35957,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36244
35957
|
teddy.nickName; // 'TeddyBear'
|
|
36245
35958
|
```
|
|
36246
35959
|
|
|
36247
|
-
Classic Class Example:
|
|
36248
|
-
|
|
36249
|
-
```javascript
|
|
36250
|
-
import EmberObject, { set } from '@ember/object';
|
|
36251
|
-
import { oneWay } from '@ember/object/computed';
|
|
36252
|
-
|
|
36253
|
-
let User = EmberObject.extend({
|
|
36254
|
-
firstName: null,
|
|
36255
|
-
lastName: null,
|
|
36256
|
-
|
|
36257
|
-
nickName: oneWay('firstName')
|
|
36258
|
-
});
|
|
36259
|
-
|
|
36260
|
-
let teddy = User.create({
|
|
36261
|
-
firstName: 'Teddy',
|
|
36262
|
-
lastName: 'Zeenny'
|
|
36263
|
-
});
|
|
36264
|
-
|
|
36265
|
-
teddy.nickName; // 'Teddy'
|
|
36266
|
-
|
|
36267
|
-
set(teddy, 'nickName', 'TeddyBear'); // 'TeddyBear'
|
|
36268
|
-
teddy.firstName; // 'Teddy'
|
|
36269
|
-
teddy.nickName; // 'TeddyBear'
|
|
36270
|
-
```
|
|
36271
|
-
|
|
36272
35960
|
@method oneWay
|
|
36273
35961
|
@static
|
|
36274
35962
|
@for @ember/object/computed
|
|
@@ -36330,32 +36018,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36330
36018
|
teddy.firstName; // 'Teddy'
|
|
36331
36019
|
```
|
|
36332
36020
|
|
|
36333
|
-
Classic Class Example:
|
|
36334
|
-
|
|
36335
|
-
```javascript
|
|
36336
|
-
import EmberObject, { set } from '@ember/object';
|
|
36337
|
-
import { readOnly } from '@ember/object/computed';
|
|
36338
|
-
|
|
36339
|
-
let User = EmberObject.extend({
|
|
36340
|
-
firstName: null,
|
|
36341
|
-
lastName: null,
|
|
36342
|
-
|
|
36343
|
-
nickName: readOnly('firstName')
|
|
36344
|
-
});
|
|
36345
|
-
|
|
36346
|
-
let teddy = User.create({
|
|
36347
|
-
firstName: 'Teddy',
|
|
36348
|
-
lastName: 'Zeenny'
|
|
36349
|
-
});
|
|
36350
|
-
|
|
36351
|
-
teddy.nickName; // 'Teddy'
|
|
36352
|
-
|
|
36353
|
-
set(teddy, 'nickName', 'TeddyBear'); // throws Exception
|
|
36354
|
-
// throw new EmberError('Cannot Set: nickName on: <User:ember27288>' );`
|
|
36355
|
-
|
|
36356
|
-
teddy.firstName; // 'Teddy'
|
|
36357
|
-
```
|
|
36358
|
-
|
|
36359
36021
|
@method readOnly
|
|
36360
36022
|
@static
|
|
36361
36023
|
@for @ember/object/computed
|
|
@@ -36396,25 +36058,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36396
36058
|
hamster.cavendishCount; // 5
|
|
36397
36059
|
```
|
|
36398
36060
|
|
|
36399
|
-
Classic Class Example:
|
|
36400
|
-
|
|
36401
|
-
```javascript
|
|
36402
|
-
import EmberObject, { set } from '@ember/object';
|
|
36403
|
-
import { deprecatingAlias } from '@ember/object/computed';
|
|
36404
|
-
|
|
36405
|
-
let Hamster = EmberObject.extend({
|
|
36406
|
-
bananaCount: deprecatingAlias('cavendishCount', {
|
|
36407
|
-
id: 'hamster.deprecate-banana',
|
|
36408
|
-
until: '3.0.0'
|
|
36409
|
-
})
|
|
36410
|
-
});
|
|
36411
|
-
|
|
36412
|
-
let hamster = Hamster.create();
|
|
36413
|
-
|
|
36414
|
-
set(hamster, 'bananaCount', 5); // Prints a deprecation warning.
|
|
36415
|
-
hamster.cavendishCount; // 5
|
|
36416
|
-
```
|
|
36417
|
-
|
|
36418
36061
|
@method deprecatingAlias
|
|
36419
36062
|
@static
|
|
36420
36063
|
@for @ember/object/computed
|
|
@@ -36531,23 +36174,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36531
36174
|
invoice.total; // 13.49
|
|
36532
36175
|
```
|
|
36533
36176
|
|
|
36534
|
-
Classic Class Example:
|
|
36535
|
-
|
|
36536
|
-
```javascript
|
|
36537
|
-
import EmberObject from '@ember/object';
|
|
36538
|
-
import { sum } from '@ember/object/computed';
|
|
36539
|
-
|
|
36540
|
-
let Invoice = EmberObject.extend({
|
|
36541
|
-
lineItems: [1.00, 2.50, 9.99],
|
|
36542
|
-
|
|
36543
|
-
total: sum('lineItems')
|
|
36544
|
-
})
|
|
36545
|
-
|
|
36546
|
-
let invoice = Invoice.create();
|
|
36547
|
-
|
|
36548
|
-
invoice.total; // 13.49
|
|
36549
|
-
```
|
|
36550
|
-
|
|
36551
36177
|
@method sum
|
|
36552
36178
|
@for @ember/object/computed
|
|
36553
36179
|
@static
|
|
@@ -36605,42 +36231,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36605
36231
|
lordByron.maxChildAge; // 8
|
|
36606
36232
|
```
|
|
36607
36233
|
|
|
36608
|
-
Classic Class Example:
|
|
36609
|
-
|
|
36610
|
-
```javascript
|
|
36611
|
-
import EmberObject, { set } from '@ember/object';
|
|
36612
|
-
import { mapBy, max } from '@ember/object/computed';
|
|
36613
|
-
|
|
36614
|
-
let Person = EmberObject.extend({
|
|
36615
|
-
childAges: mapBy('children', 'age'),
|
|
36616
|
-
maxChildAge: max('childAges')
|
|
36617
|
-
});
|
|
36618
|
-
|
|
36619
|
-
let lordByron = Person.create({ children: [] });
|
|
36620
|
-
|
|
36621
|
-
lordByron.maxChildAge; // -Infinity
|
|
36622
|
-
|
|
36623
|
-
set(lordByron, 'children', [
|
|
36624
|
-
{
|
|
36625
|
-
name: 'Augusta Ada Byron',
|
|
36626
|
-
age: 7
|
|
36627
|
-
}
|
|
36628
|
-
]);
|
|
36629
|
-
lordByron.maxChildAge; // 7
|
|
36630
|
-
|
|
36631
|
-
set(lordByron, 'children', [
|
|
36632
|
-
...lordByron.children,
|
|
36633
|
-
{
|
|
36634
|
-
name: 'Allegra Byron',
|
|
36635
|
-
age: 5
|
|
36636
|
-
}, {
|
|
36637
|
-
name: 'Elizabeth Medora Leigh',
|
|
36638
|
-
age: 8
|
|
36639
|
-
}
|
|
36640
|
-
]);
|
|
36641
|
-
lordByron.maxChildAge; // 8
|
|
36642
|
-
```
|
|
36643
|
-
|
|
36644
36234
|
If the types of the arguments are not numbers, they will be converted to
|
|
36645
36235
|
numbers and the type of the return value will always be `Number`. For example,
|
|
36646
36236
|
the max of a list of Date objects will be the highest timestamp as a `Number`.
|
|
@@ -36702,42 +36292,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36702
36292
|
lordByron.minChildAge; // 5
|
|
36703
36293
|
```
|
|
36704
36294
|
|
|
36705
|
-
Classic Class Example:
|
|
36706
|
-
|
|
36707
|
-
```javascript
|
|
36708
|
-
import EmberObject, { set } from '@ember/object';
|
|
36709
|
-
import { mapBy, min } from '@ember/object/computed';
|
|
36710
|
-
|
|
36711
|
-
let Person = EmberObject.extend({
|
|
36712
|
-
childAges: mapBy('children', 'age'),
|
|
36713
|
-
minChildAge: min('childAges')
|
|
36714
|
-
});
|
|
36715
|
-
|
|
36716
|
-
let lordByron = Person.create({ children: [] });
|
|
36717
|
-
|
|
36718
|
-
lordByron.minChildAge; // Infinity
|
|
36719
|
-
|
|
36720
|
-
set(lordByron, 'children', [
|
|
36721
|
-
{
|
|
36722
|
-
name: 'Augusta Ada Byron',
|
|
36723
|
-
age: 7
|
|
36724
|
-
}
|
|
36725
|
-
]);
|
|
36726
|
-
lordByron.minChildAge; // 7
|
|
36727
|
-
|
|
36728
|
-
set(lordByron, 'children', [
|
|
36729
|
-
...lordByron.children,
|
|
36730
|
-
{
|
|
36731
|
-
name: 'Allegra Byron',
|
|
36732
|
-
age: 5
|
|
36733
|
-
}, {
|
|
36734
|
-
name: 'Elizabeth Medora Leigh',
|
|
36735
|
-
age: 8
|
|
36736
|
-
}
|
|
36737
|
-
]);
|
|
36738
|
-
lordByron.minChildAge; // 5
|
|
36739
|
-
```
|
|
36740
|
-
|
|
36741
36295
|
If the types of the arguments are not numbers, they will be converted to
|
|
36742
36296
|
numbers and the type of the return value will always be `Number`. For example,
|
|
36743
36297
|
the min of a list of Date objects will be the lowest timestamp as a `Number`.
|
|
@@ -36789,25 +36343,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36789
36343
|
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
36790
36344
|
```
|
|
36791
36345
|
|
|
36792
|
-
Classic Class Example:
|
|
36793
|
-
|
|
36794
|
-
```javascript
|
|
36795
|
-
import EmberObject from '@ember/object';
|
|
36796
|
-
import { map } from '@ember/object/computed';
|
|
36797
|
-
|
|
36798
|
-
let Hamster = EmberObject.extend({
|
|
36799
|
-
excitingChores: map('chores', function(chore, index) {
|
|
36800
|
-
return `${chore.toUpperCase()}!`;
|
|
36801
|
-
})
|
|
36802
|
-
});
|
|
36803
|
-
|
|
36804
|
-
let hamster = Hamster.create({
|
|
36805
|
-
chores: ['clean', 'write more unit tests']
|
|
36806
|
-
});
|
|
36807
|
-
|
|
36808
|
-
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
36809
|
-
```
|
|
36810
|
-
|
|
36811
36346
|
You can optionally pass an array of additional dependent keys as the second
|
|
36812
36347
|
parameter to the macro, if your map function relies on any external values:
|
|
36813
36348
|
|
|
@@ -36906,41 +36441,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36906
36441
|
lordByron.childAges; // [7, 5, 8]
|
|
36907
36442
|
```
|
|
36908
36443
|
|
|
36909
|
-
Classic Class Example:
|
|
36910
|
-
|
|
36911
|
-
```javascript
|
|
36912
|
-
import EmberObject, { set } from '@ember/object';
|
|
36913
|
-
import { mapBy } from '@ember/object/computed';
|
|
36914
|
-
|
|
36915
|
-
let Person = EmberObject.extend({
|
|
36916
|
-
childAges: mapBy('children', 'age')
|
|
36917
|
-
});
|
|
36918
|
-
|
|
36919
|
-
let lordByron = Person.create({ children: [] });
|
|
36920
|
-
|
|
36921
|
-
lordByron.childAges; // []
|
|
36922
|
-
|
|
36923
|
-
set(lordByron, 'children', [
|
|
36924
|
-
{
|
|
36925
|
-
name: 'Augusta Ada Byron',
|
|
36926
|
-
age: 7
|
|
36927
|
-
}
|
|
36928
|
-
]);
|
|
36929
|
-
lordByron.childAges; // [7]
|
|
36930
|
-
|
|
36931
|
-
set(lordByron, 'children', [
|
|
36932
|
-
...lordByron.children,
|
|
36933
|
-
{
|
|
36934
|
-
name: 'Allegra Byron',
|
|
36935
|
-
age: 5
|
|
36936
|
-
}, {
|
|
36937
|
-
name: 'Elizabeth Medora Leigh',
|
|
36938
|
-
age: 8
|
|
36939
|
-
}
|
|
36940
|
-
]);
|
|
36941
|
-
lordByron.childAges; // [7, 5, 8]
|
|
36942
|
-
```
|
|
36943
|
-
|
|
36944
36444
|
@method mapBy
|
|
36945
36445
|
@for @ember/object/computed
|
|
36946
36446
|
@static
|
|
@@ -36995,29 +36495,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36995
36495
|
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
36996
36496
|
```
|
|
36997
36497
|
|
|
36998
|
-
Classic Class Example:
|
|
36999
|
-
|
|
37000
|
-
```javascript
|
|
37001
|
-
import EmberObject from '@ember/object';
|
|
37002
|
-
import { filter } from '@ember/object/computed';
|
|
37003
|
-
|
|
37004
|
-
let Hamster = EmberObject.extend({
|
|
37005
|
-
remainingChores: filter('chores', function(chore, index, array) {
|
|
37006
|
-
return !chore.done;
|
|
37007
|
-
})
|
|
37008
|
-
});
|
|
37009
|
-
|
|
37010
|
-
let hamster = Hamster.create({
|
|
37011
|
-
chores: [
|
|
37012
|
-
{ name: 'cook', done: true },
|
|
37013
|
-
{ name: 'clean', done: true },
|
|
37014
|
-
{ name: 'write more unit tests', done: false }
|
|
37015
|
-
]
|
|
37016
|
-
});
|
|
37017
|
-
|
|
37018
|
-
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
37019
|
-
```
|
|
37020
|
-
|
|
37021
36498
|
You can also use `@each.property` in your dependent key, the callback will
|
|
37022
36499
|
still use the underlying array:
|
|
37023
36500
|
|
|
@@ -37127,27 +36604,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37127
36604
|
hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
|
|
37128
36605
|
```
|
|
37129
36606
|
|
|
37130
|
-
Classic Class Example:
|
|
37131
|
-
|
|
37132
|
-
```javascript
|
|
37133
|
-
import EmberObject from '@ember/object';
|
|
37134
|
-
import { filterBy } from '@ember/object/computed';
|
|
37135
|
-
|
|
37136
|
-
let Hamster = EmberObject.extend({
|
|
37137
|
-
remainingChores: filterBy('chores', 'done', false)
|
|
37138
|
-
});
|
|
37139
|
-
|
|
37140
|
-
let hamster = Hamster.create({
|
|
37141
|
-
chores: [
|
|
37142
|
-
{ name: 'cook', done: true },
|
|
37143
|
-
{ name: 'clean', done: true },
|
|
37144
|
-
{ name: 'write more unit tests', done: false }
|
|
37145
|
-
]
|
|
37146
|
-
});
|
|
37147
|
-
|
|
37148
|
-
hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
|
|
37149
|
-
```
|
|
37150
|
-
|
|
37151
36607
|
@method filterBy
|
|
37152
36608
|
@for @ember/object/computed
|
|
37153
36609
|
@static
|
|
@@ -37200,28 +36656,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37200
36656
|
hamster.uniqueFruits; // ['banana', 'grape', 'kale']
|
|
37201
36657
|
```
|
|
37202
36658
|
|
|
37203
|
-
Classic Class Example:
|
|
37204
|
-
|
|
37205
|
-
```javascript
|
|
37206
|
-
import EmberObject from '@ember/object';
|
|
37207
|
-
import { uniq } from '@ember/object/computed';
|
|
37208
|
-
|
|
37209
|
-
let Hamster = EmberObject.extend({
|
|
37210
|
-
uniqueFruits: uniq('fruits')
|
|
37211
|
-
});
|
|
37212
|
-
|
|
37213
|
-
let hamster = Hamster.create({
|
|
37214
|
-
fruits: [
|
|
37215
|
-
'banana',
|
|
37216
|
-
'grape',
|
|
37217
|
-
'kale',
|
|
37218
|
-
'banana'
|
|
37219
|
-
]
|
|
37220
|
-
});
|
|
37221
|
-
|
|
37222
|
-
hamster.uniqueFruits; // ['banana', 'grape', 'kale']
|
|
37223
|
-
```
|
|
37224
|
-
|
|
37225
36659
|
@method uniq
|
|
37226
36660
|
@for @ember/object/computed
|
|
37227
36661
|
@static
|
|
@@ -37280,28 +36714,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37280
36714
|
hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
|
37281
36715
|
```
|
|
37282
36716
|
|
|
37283
|
-
Classic Class Example:
|
|
37284
|
-
|
|
37285
|
-
```javascript
|
|
37286
|
-
import EmberObject from '@ember/object';
|
|
37287
|
-
import { uniqBy } from '@ember/object/computed';
|
|
37288
|
-
|
|
37289
|
-
let Hamster = EmberObject.extend({
|
|
37290
|
-
uniqueFruits: uniqBy('fruits', 'id')
|
|
37291
|
-
});
|
|
37292
|
-
|
|
37293
|
-
let hamster = Hamster.create({
|
|
37294
|
-
fruits: [
|
|
37295
|
-
{ id: 1, 'banana' },
|
|
37296
|
-
{ id: 2, 'grape' },
|
|
37297
|
-
{ id: 3, 'peach' },
|
|
37298
|
-
{ id: 1, 'banana' }
|
|
37299
|
-
]
|
|
37300
|
-
});
|
|
37301
|
-
|
|
37302
|
-
hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
|
37303
|
-
```
|
|
37304
|
-
|
|
37305
36717
|
@method uniqBy
|
|
37306
36718
|
@for @ember/object/computed
|
|
37307
36719
|
@static
|
|
@@ -37358,34 +36770,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37358
36770
|
hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
|
|
37359
36771
|
```
|
|
37360
36772
|
|
|
37361
|
-
Classic Class Example:
|
|
37362
|
-
|
|
37363
|
-
```javascript
|
|
37364
|
-
import EmberObject from '@ember/object';
|
|
37365
|
-
import { union } from '@ember/object/computed';
|
|
37366
|
-
|
|
37367
|
-
let Hamster = EmberObject.extend({
|
|
37368
|
-
uniqueFruits: union('fruits', 'vegetables')
|
|
37369
|
-
});
|
|
37370
|
-
|
|
37371
|
-
let hamster = Hamster.create({
|
|
37372
|
-
fruits: [
|
|
37373
|
-
'banana',
|
|
37374
|
-
'grape',
|
|
37375
|
-
'kale',
|
|
37376
|
-
'banana',
|
|
37377
|
-
'tomato'
|
|
37378
|
-
],
|
|
37379
|
-
vegetables: [
|
|
37380
|
-
'tomato',
|
|
37381
|
-
'carrot',
|
|
37382
|
-
'lettuce'
|
|
37383
|
-
]
|
|
37384
|
-
});
|
|
37385
|
-
|
|
37386
|
-
hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
|
|
37387
|
-
```
|
|
37388
|
-
|
|
37389
36773
|
@method union
|
|
37390
36774
|
@for @ember/object/computed
|
|
37391
36775
|
@static
|
|
@@ -37424,24 +36808,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37424
36808
|
groups.friendsInCommon; // ['William King', 'Mary Somerville']
|
|
37425
36809
|
```
|
|
37426
36810
|
|
|
37427
|
-
Classic Class Example:
|
|
37428
|
-
|
|
37429
|
-
```javascript
|
|
37430
|
-
import EmberObject from '@ember/object';
|
|
37431
|
-
import { intersect } from '@ember/object/computed';
|
|
37432
|
-
|
|
37433
|
-
let FriendGroups = EmberObject.extend({
|
|
37434
|
-
friendsInCommon: intersect('adaFriends', 'charlesFriends')
|
|
37435
|
-
});
|
|
37436
|
-
|
|
37437
|
-
let groups = FriendGroups.create({
|
|
37438
|
-
adaFriends: ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
|
|
37439
|
-
charlesFriends: ['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']
|
|
37440
|
-
});
|
|
37441
|
-
|
|
37442
|
-
groups.friendsInCommon; // ['William King', 'Mary Somerville']
|
|
37443
|
-
```
|
|
37444
|
-
|
|
37445
36811
|
@method intersect
|
|
37446
36812
|
@for @ember/object/computed
|
|
37447
36813
|
@static
|
|
@@ -37516,31 +36882,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37516
36882
|
hamster.wants; // ['banana']
|
|
37517
36883
|
```
|
|
37518
36884
|
|
|
37519
|
-
Classic Class Example:
|
|
37520
|
-
|
|
37521
|
-
```javascript
|
|
37522
|
-
import EmberObject from '@ember/object';
|
|
37523
|
-
import { setDiff } from '@ember/object/computed';
|
|
37524
|
-
|
|
37525
|
-
let Hamster = EmberObject.extend({
|
|
37526
|
-
wants: setDiff('likes', 'fruits')
|
|
37527
|
-
});
|
|
37528
|
-
|
|
37529
|
-
let hamster = Hamster.create({
|
|
37530
|
-
likes: [
|
|
37531
|
-
'banana',
|
|
37532
|
-
'grape',
|
|
37533
|
-
'kale'
|
|
37534
|
-
],
|
|
37535
|
-
fruits: [
|
|
37536
|
-
'grape',
|
|
37537
|
-
'kale',
|
|
37538
|
-
]
|
|
37539
|
-
});
|
|
37540
|
-
|
|
37541
|
-
hamster.wants; // ['banana']
|
|
37542
|
-
```
|
|
37543
|
-
|
|
37544
36885
|
@method setDiff
|
|
37545
36886
|
@for @ember/object/computed
|
|
37546
36887
|
@static
|
|
@@ -37594,25 +36935,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37594
36935
|
hamster.clothes; // ['Camp Hat', 'Camp Shirt']
|
|
37595
36936
|
```
|
|
37596
36937
|
|
|
37597
|
-
Classic Class Example:
|
|
37598
|
-
|
|
37599
|
-
```javascript
|
|
37600
|
-
import EmberObject, { set } from '@ember/object';
|
|
37601
|
-
import { collect } from '@ember/object/computed';
|
|
37602
|
-
|
|
37603
|
-
let Hamster = EmberObject.extend({
|
|
37604
|
-
clothes: collect('hat', 'shirt')
|
|
37605
|
-
});
|
|
37606
|
-
|
|
37607
|
-
let hamster = Hamster.create();
|
|
37608
|
-
|
|
37609
|
-
hamster.clothes; // [null, null]
|
|
37610
|
-
|
|
37611
|
-
set(hamster, 'hat', 'Camp Hat');
|
|
37612
|
-
set(hamster, 'shirt', 'Camp Shirt');
|
|
37613
|
-
hamster.clothes; // ['Camp Hat', 'Camp Shirt']
|
|
37614
|
-
```
|
|
37615
|
-
|
|
37616
36938
|
@method collect
|
|
37617
36939
|
@for @ember/object/computed
|
|
37618
36940
|
@static
|
|
@@ -37693,36 +37015,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37693
37015
|
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
37694
37016
|
```
|
|
37695
37017
|
|
|
37696
|
-
Classic Class Example:
|
|
37697
|
-
|
|
37698
|
-
```javascript
|
|
37699
|
-
import EmberObject from '@ember/object';
|
|
37700
|
-
import { sort } from '@ember/object/computed';
|
|
37701
|
-
|
|
37702
|
-
let ToDoList = EmberObject.extend({
|
|
37703
|
-
// using a custom sort function
|
|
37704
|
-
priorityTodos: sort('todos', function(a, b){
|
|
37705
|
-
if (a.priority > b.priority) {
|
|
37706
|
-
return 1;
|
|
37707
|
-
} else if (a.priority < b.priority) {
|
|
37708
|
-
return -1;
|
|
37709
|
-
}
|
|
37710
|
-
|
|
37711
|
-
return 0;
|
|
37712
|
-
})
|
|
37713
|
-
});
|
|
37714
|
-
|
|
37715
|
-
let todoList = ToDoList.create({
|
|
37716
|
-
todos: [
|
|
37717
|
-
{ name: 'Unit Test', priority: 2 },
|
|
37718
|
-
{ name: 'Documentation', priority: 3 },
|
|
37719
|
-
{ name: 'Release', priority: 1 }
|
|
37720
|
-
]
|
|
37721
|
-
});
|
|
37722
|
-
|
|
37723
|
-
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
37724
|
-
```
|
|
37725
|
-
|
|
37726
37018
|
You can also optionally pass an array of additional dependent keys as the
|
|
37727
37019
|
second parameter, if your sort function is dependent on additional values that
|
|
37728
37020
|
could changes:
|
|
@@ -58919,17 +58211,7 @@ define("ember/version", ["exports"], function (_exports) {
|
|
|
58919
58211
|
value: true
|
|
58920
58212
|
});
|
|
58921
58213
|
_exports.default = void 0;
|
|
58922
|
-
var _default = "4.0.0-beta.
|
|
58923
|
-
_exports.default = _default;
|
|
58924
|
-
});
|
|
58925
|
-
define("jquery/index", ["exports", "@ember/-internals/views"], function (_exports, _views) {
|
|
58926
|
-
"use strict";
|
|
58927
|
-
|
|
58928
|
-
Object.defineProperty(_exports, "__esModule", {
|
|
58929
|
-
value: true
|
|
58930
|
-
});
|
|
58931
|
-
_exports.default = void 0;
|
|
58932
|
-
var _default = _views.jQuery;
|
|
58214
|
+
var _default = "4.0.0-beta.7";
|
|
58933
58215
|
_exports.default = _default;
|
|
58934
58216
|
});
|
|
58935
58217
|
define("route-recognizer", ["exports"], function (_exports) {
|