ember-source 4.0.0-beta.4 → 4.0.0-beta.8
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 +32 -1
- package/blueprints/acceptance-test/qunit-files/tests/acceptance/__name__-test.js +1 -1
- package/blueprints/acceptance-test/qunit-rfc-232-files/tests/acceptance/__name__-test.js +1 -1
- package/blueprints/component-test/qunit-files/__root__/__testType__/__path__/__test__.js +3 -3
- package/blueprints/helper-test/index.js +4 -22
- package/blueprints/helper-test/mocha-0.12-files/__root__/__testType__/__collection__/__name__-test.js +1 -13
- package/blueprints/helper-test/mocha-files/__root__/__testType__/__collection__/__name__-test.js +0 -13
- package/blueprints/helper-test/mocha-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +2 -12
- package/blueprints/helper-test/qunit-files/__root__/__testType__/__collection__/__name__-test.js +2 -13
- package/blueprints/helper-test/qunit-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +2 -14
- package/build-metadata.json +3 -3
- package/dist/ember-template-compiler.js +87 -421
- 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 +32 -770
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/container/index.js +1 -1
- package/dist/packages/@ember/-internals/glimmer/index.js +11 -3
- package/dist/packages/@ember/-internals/utils/index.js +0 -3
- package/dist/packages/@ember/-internals/views/lib/mixins/view_support.js +4 -4
- package/dist/packages/@ember/application/lib/application.js +7 -8
- package/dist/packages/@ember/engine/index.js +1 -2
- 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/index.js +7 -13
- package/dist/packages/ember/version.js +1 -1
- package/docs/data.json +114 -138
- 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.8
|
|
10
10
|
*/
|
|
11
11
|
/* eslint-disable no-var */
|
|
12
12
|
|
|
@@ -554,7 +554,7 @@ define("@ember/-internals/container/index", ["exports", "@ember/-internals/owner
|
|
|
554
554
|
this.injections = undefined;
|
|
555
555
|
setFactoryFor(this, this);
|
|
556
556
|
|
|
557
|
-
if (
|
|
557
|
+
if (isInstantiatable(container, fullName)) {
|
|
558
558
|
setFactoryFor(factory, this);
|
|
559
559
|
}
|
|
560
560
|
}
|
|
@@ -4223,7 +4223,10 @@ 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: {
|
|
4226
|
+
since: {
|
|
4227
|
+
enabled: '3.27.0'
|
|
4228
|
+
},
|
|
4229
|
+
url: 'https://deprecations.emberjs.com/v3.x#toc_ember-component-reopen',
|
|
4227
4230
|
until: '4.0.0'
|
|
4228
4231
|
}));
|
|
4229
4232
|
Component._wasReopened = true;
|
|
@@ -4241,7 +4244,10 @@ 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
|
-
|
|
4247
|
+
url: 'https://deprecations.emberjs.com/v3.x#toc_ember-component-reopen',
|
|
4248
|
+
since: {
|
|
4249
|
+
enabled: '3.27.0'
|
|
4250
|
+
},
|
|
4245
4251
|
until: '4.0.0'
|
|
4246
4252
|
}));
|
|
4247
4253
|
Component._wasReopened = true;
|
|
@@ -4272,7 +4278,7 @@ define("@ember/-internals/glimmer/index", ["exports", "@glimmer/opcode-compiler"
|
|
|
4272
4278
|
The `checked` attribute of an `Checkbox` object should always be set
|
|
4273
4279
|
through the Ember object or by interacting with its rendered element
|
|
4274
4280
|
representation via the mouse, keyboard, or touch. Updating the value of the
|
|
4275
|
-
checkbox
|
|
4281
|
+
checkbox programmatically will result in the checked value of the object and its
|
|
4276
4282
|
element losing synchronization.
|
|
4277
4283
|
|
|
4278
4284
|
## Layout and LayoutName properties
|
|
@@ -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
|
}));
|
|
@@ -27780,9 +27788,6 @@ define("@ember/-internals/utils/index", ["exports", "@glimmer/util", "@ember/deb
|
|
|
27780
27788
|
*/
|
|
27781
27789
|
|
|
27782
27790
|
/**
|
|
27783
|
-
Previously we used `Ember.$.uuid`, however `$.uuid` has been removed from
|
|
27784
|
-
jQuery master. We'll just bootstrap our own uuid now.
|
|
27785
|
-
|
|
27786
27791
|
@private
|
|
27787
27792
|
@return {Number} the uuid
|
|
27788
27793
|
*/
|
|
@@ -29485,7 +29490,7 @@ define("@ember/-internals/views/lib/mixins/view_support", ["exports", "@ember/-i
|
|
|
29485
29490
|
the target element you are providing is associated with an `Application`
|
|
29486
29491
|
and does not have an ancestor element that is associated with an Ember view.
|
|
29487
29492
|
@method appendTo
|
|
29488
|
-
@param {String|DOMElement
|
|
29493
|
+
@param {String|DOMElement} A selector, element, HTML string
|
|
29489
29494
|
@return {Ember.View} receiver
|
|
29490
29495
|
@private
|
|
29491
29496
|
*/
|
|
@@ -29523,8 +29528,8 @@ define("@ember/-internals/views/lib/mixins/view_support", ["exports", "@ember/-i
|
|
|
29523
29528
|
})()));
|
|
29524
29529
|
} else {
|
|
29525
29530
|
target = selector;
|
|
29526
|
-
(true && !(typeof target !== 'string') && (0, _debug.assert)(`You tried to append to a selector string (${selector}) in an environment without
|
|
29527
|
-
(true && !(typeof selector.appendChild === 'function') && (0, _debug.assert)(`You tried to append to a non-Element (${selector}) in an environment without
|
|
29531
|
+
(true && !(typeof target !== 'string') && (0, _debug.assert)(`You tried to append to a selector string (${selector}) in an environment without a DOM`, typeof target !== 'string'));
|
|
29532
|
+
(true && !(typeof selector.appendChild === 'function') && (0, _debug.assert)(`You tried to append to a non-Element (${selector}) in an environment without a DOM`, typeof selector.appendChild === 'function'));
|
|
29528
29533
|
}
|
|
29529
29534
|
|
|
29530
29535
|
this.renderer.appendTo(this, target);
|
|
@@ -29654,7 +29659,7 @@ define("@ember/-internals/views/lib/mixins/view_support", ["exports", "@ember/-i
|
|
|
29654
29659
|
Component properties that depend on the presence of an outer element, such
|
|
29655
29660
|
as `classNameBindings` and `attributeBindings`, do not work with tagless
|
|
29656
29661
|
components. Tagless components cannot implement methods to handle events,
|
|
29657
|
-
and
|
|
29662
|
+
and their `element` property has a `null` value.
|
|
29658
29663
|
@property tagName
|
|
29659
29664
|
@type String
|
|
29660
29665
|
@default null
|
|
@@ -31189,7 +31194,7 @@ define("@ember/application/lib/application", ["exports", "@ember/-internals/util
|
|
|
31189
31194
|
});
|
|
31190
31195
|
```
|
|
31191
31196
|
|
|
31192
|
-
The `rootElement` can be either a DOM element or a
|
|
31197
|
+
The `rootElement` can be either a DOM element or a CSS selector
|
|
31193
31198
|
string. Note that *views appended to the DOM outside the root element will
|
|
31194
31199
|
not receive events.* If you specify a custom root element, make sure you only
|
|
31195
31200
|
append views inside it!
|
|
@@ -31252,8 +31257,7 @@ define("@ember/application/lib/application", ["exports", "@ember/-internals/util
|
|
|
31252
31257
|
var Application = _engine.default.extend({
|
|
31253
31258
|
/**
|
|
31254
31259
|
The root DOM element of the Application. This can be specified as an
|
|
31255
|
-
element or a
|
|
31256
|
-
[jQuery-compatible selector string](http://api.jquery.com/category/selectors/).
|
|
31260
|
+
element or a [selector string](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors#reference_table_of_selectors).
|
|
31257
31261
|
This is the element that will be passed to the Application's,
|
|
31258
31262
|
`eventDispatcher`, which sets up the listeners for event delegation. Every
|
|
31259
31263
|
view in your application should be a child of the element you specify here.
|
|
@@ -31562,10 +31566,10 @@ define("@ember/application/lib/application", ["exports", "@ember/-internals/util
|
|
|
31562
31566
|
import Application from '@ember/application';
|
|
31563
31567
|
let App = Application.create();
|
|
31564
31568
|
App.deferReadiness();
|
|
31565
|
-
|
|
31566
|
-
|
|
31567
|
-
|
|
31568
|
-
App.token = token;
|
|
31569
|
+
fetch('/auth-token')
|
|
31570
|
+
.then(response => response.json())
|
|
31571
|
+
.then(data => {
|
|
31572
|
+
App.token = data.token;
|
|
31569
31573
|
App.advanceReadiness();
|
|
31570
31574
|
});
|
|
31571
31575
|
```
|
|
@@ -31913,7 +31917,7 @@ define("@ember/application/lib/application", ["exports", "@ember/-internals/util
|
|
|
31913
31917
|
in the non-browser environment, the stand-in `document` object only needs to
|
|
31914
31918
|
implement a limited subset of the full DOM API. The `SimpleDOM` library is known
|
|
31915
31919
|
to work.
|
|
31916
|
-
Since there is no access
|
|
31920
|
+
Since there is no DOM access in the non-browser environment, you must also
|
|
31917
31921
|
specify a DOM `Element` object in the same `document` for the `rootElement` option
|
|
31918
31922
|
(as opposed to a selector string like `"body"`).
|
|
31919
31923
|
See the documentation on the `isBrowser`, `document` and `rootElement` properties
|
|
@@ -33921,7 +33925,6 @@ define("@ember/engine/index", ["exports", "@ember/engine/lib/engine-parent", "@e
|
|
|
33921
33925
|
and after.
|
|
33922
33926
|
Example instanceInitializer to preload data into the store.
|
|
33923
33927
|
```app/initializer/preload-data.js
|
|
33924
|
-
import $ from 'jquery';
|
|
33925
33928
|
export function initialize(application) {
|
|
33926
33929
|
var userConfig, userConfigEncoded, store;
|
|
33927
33930
|
// We have a HTML escaped JSON representation of the user's basic
|
|
@@ -33932,7 +33935,7 @@ define("@ember/engine/index", ["exports", "@ember/engine/lib/engine-parent", "@e
|
|
|
33932
33935
|
// like all local models and data can be manipulated by the user, so it
|
|
33933
33936
|
// should not be relied upon for security or authorization.
|
|
33934
33937
|
// Grab the encoded data from the meta tag
|
|
33935
|
-
userConfigEncoded =
|
|
33938
|
+
userConfigEncoded = document.querySelector('head meta[name=app-user-config]').attr('content');
|
|
33936
33939
|
// Unescape the text, then parse the resulting JSON into a real object
|
|
33937
33940
|
userConfig = JSON.parse(unescape(userConfigEncoded));
|
|
33938
33941
|
// Lookup the store
|
|
@@ -35352,25 +35355,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35352
35355
|
todoList.isDone; // true
|
|
35353
35356
|
```
|
|
35354
35357
|
|
|
35355
|
-
Classic Class Example:
|
|
35356
|
-
|
|
35357
|
-
```javascript
|
|
35358
|
-
import EmberObject, { set } from '@ember/object';
|
|
35359
|
-
import { empty } from '@ember/object/computed';
|
|
35360
|
-
|
|
35361
|
-
let ToDoList = EmberObject.extend({
|
|
35362
|
-
isDone: empty('todos')
|
|
35363
|
-
});
|
|
35364
|
-
|
|
35365
|
-
let todoList = ToDoList.create({
|
|
35366
|
-
todos: ['Unit Test', 'Documentation', 'Release']
|
|
35367
|
-
});
|
|
35368
|
-
|
|
35369
|
-
todoList.isDone; // false
|
|
35370
|
-
set(todoList, 'todos', []);
|
|
35371
|
-
todoList.isDone; // true
|
|
35372
|
-
```
|
|
35373
|
-
|
|
35374
35358
|
@since 1.6.0
|
|
35375
35359
|
@method empty
|
|
35376
35360
|
@static
|
|
@@ -35417,25 +35401,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35417
35401
|
hamster.hasStuff; // false
|
|
35418
35402
|
```
|
|
35419
35403
|
|
|
35420
|
-
Classic Class Example:
|
|
35421
|
-
|
|
35422
|
-
```javascript
|
|
35423
|
-
import EmberObject, { set } from '@ember/object';
|
|
35424
|
-
import { notEmpty } from '@ember/object/computed';
|
|
35425
|
-
|
|
35426
|
-
let Hamster = EmberObject.extend({
|
|
35427
|
-
hasStuff: notEmpty('backpack')
|
|
35428
|
-
});
|
|
35429
|
-
|
|
35430
|
-
let hamster = Hamster.create({
|
|
35431
|
-
backpack: ['Food', 'Sleeping Bag', 'Tent']
|
|
35432
|
-
});
|
|
35433
|
-
|
|
35434
|
-
hamster.hasStuff; // true
|
|
35435
|
-
set(hamster, 'backpack', []);
|
|
35436
|
-
hamster.hasStuff; // false
|
|
35437
|
-
```
|
|
35438
|
-
|
|
35439
35404
|
@method notEmpty
|
|
35440
35405
|
@static
|
|
35441
35406
|
@for @ember/object/computed
|
|
@@ -35476,27 +35441,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35476
35441
|
hamster.isHungry; // true
|
|
35477
35442
|
```
|
|
35478
35443
|
|
|
35479
|
-
Classic Class Example:
|
|
35480
|
-
|
|
35481
|
-
```javascript
|
|
35482
|
-
import EmberObject, { set } from '@ember/object';
|
|
35483
|
-
import { none } from '@ember/object/computed';
|
|
35484
|
-
|
|
35485
|
-
let Hamster = EmberObject.extend({
|
|
35486
|
-
isHungry: none('food')
|
|
35487
|
-
});
|
|
35488
|
-
|
|
35489
|
-
let hamster = Hamster.create();
|
|
35490
|
-
|
|
35491
|
-
hamster.isHungry; // true
|
|
35492
|
-
|
|
35493
|
-
set(hamster, 'food', 'Banana');
|
|
35494
|
-
hamster.isHungry; // false
|
|
35495
|
-
|
|
35496
|
-
set(hamster, 'food', null);
|
|
35497
|
-
hamster.isHungry; // true
|
|
35498
|
-
```
|
|
35499
|
-
|
|
35500
35444
|
@method none
|
|
35501
35445
|
@static
|
|
35502
35446
|
@for @ember/object/computed
|
|
@@ -35536,25 +35480,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35536
35480
|
user.isAnonymous; // false
|
|
35537
35481
|
```
|
|
35538
35482
|
|
|
35539
|
-
Classic Class Example:
|
|
35540
|
-
|
|
35541
|
-
```javascript
|
|
35542
|
-
import EmberObject, { set } from '@ember/object';
|
|
35543
|
-
import { not } from '@ember/object/computed';
|
|
35544
|
-
|
|
35545
|
-
let User = EmberObject.extend({
|
|
35546
|
-
loggedIn: false,
|
|
35547
|
-
|
|
35548
|
-
isAnonymous: not('loggedIn')
|
|
35549
|
-
});
|
|
35550
|
-
|
|
35551
|
-
let user = User.create();
|
|
35552
|
-
|
|
35553
|
-
user.isAnonymous; // true
|
|
35554
|
-
set(user, 'loggedIn', true);
|
|
35555
|
-
user.isAnonymous; // false
|
|
35556
|
-
```
|
|
35557
|
-
|
|
35558
35483
|
@method not
|
|
35559
35484
|
@static
|
|
35560
35485
|
@for @ember/object/computed
|
|
@@ -35600,31 +35525,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35600
35525
|
hamster.hasBananas; // false
|
|
35601
35526
|
```
|
|
35602
35527
|
|
|
35603
|
-
Classic Class Example:
|
|
35604
|
-
|
|
35605
|
-
```javascript
|
|
35606
|
-
import EmberObject, { set } from '@ember/object';
|
|
35607
|
-
import { bool } from '@ember/object/computed';
|
|
35608
|
-
|
|
35609
|
-
|
|
35610
|
-
let Hamster = EmberObject.extend({
|
|
35611
|
-
hasBananas: bool('numBananas')
|
|
35612
|
-
});
|
|
35613
|
-
|
|
35614
|
-
let hamster = Hamster.create();
|
|
35615
|
-
|
|
35616
|
-
hamster.hasBananas; // false
|
|
35617
|
-
|
|
35618
|
-
set(hamster, 'numBananas', 0);
|
|
35619
|
-
hamster.hasBananas; // false
|
|
35620
|
-
|
|
35621
|
-
set(hamster, 'numBananas', 1);
|
|
35622
|
-
hamster.hasBananas; // true
|
|
35623
|
-
|
|
35624
|
-
set(hamster, 'numBananas', null);
|
|
35625
|
-
hamster.hasBananas; // false
|
|
35626
|
-
```
|
|
35627
|
-
|
|
35628
35528
|
@method bool
|
|
35629
35529
|
@static
|
|
35630
35530
|
@for @ember/object/computed
|
|
@@ -35667,27 +35567,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35667
35567
|
user.hasValidEmail; // true
|
|
35668
35568
|
```
|
|
35669
35569
|
|
|
35670
|
-
Classic Class Example:
|
|
35671
|
-
|
|
35672
|
-
```javascript
|
|
35673
|
-
import EmberObject, { set } from '@ember/object';
|
|
35674
|
-
import { match } from '@ember/object/computed';
|
|
35675
|
-
|
|
35676
|
-
let User = EmberObject.extend({
|
|
35677
|
-
hasValidEmail: match('email', /^.+@.+\..+$/)
|
|
35678
|
-
});
|
|
35679
|
-
|
|
35680
|
-
let user = User.create();
|
|
35681
|
-
|
|
35682
|
-
user.hasValidEmail; // false
|
|
35683
|
-
|
|
35684
|
-
set(user, 'email', '');
|
|
35685
|
-
user.hasValidEmail; // false
|
|
35686
|
-
|
|
35687
|
-
set(user, 'email', 'ember_hamster@example.com');
|
|
35688
|
-
user.hasValidEmail; // true
|
|
35689
|
-
```
|
|
35690
|
-
|
|
35691
35570
|
@method match
|
|
35692
35571
|
@static
|
|
35693
35572
|
@for @ember/object/computed
|
|
@@ -35731,27 +35610,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35731
35610
|
hamster.satisfied; // false
|
|
35732
35611
|
```
|
|
35733
35612
|
|
|
35734
|
-
Classic Class Example:
|
|
35735
|
-
|
|
35736
|
-
```javascript
|
|
35737
|
-
import EmberObject, { set } from '@ember/object';
|
|
35738
|
-
import { equal } from '@ember/object/computed';
|
|
35739
|
-
|
|
35740
|
-
let Hamster = EmberObject.extend({
|
|
35741
|
-
satisfied: equal('percentCarrotsEaten', 100)
|
|
35742
|
-
});
|
|
35743
|
-
|
|
35744
|
-
let hamster = Hamster.create();
|
|
35745
|
-
|
|
35746
|
-
hamster.satisfied; // false
|
|
35747
|
-
|
|
35748
|
-
set(hamster, 'percentCarrotsEaten', 100);
|
|
35749
|
-
hamster.satisfied; // true
|
|
35750
|
-
|
|
35751
|
-
set(hamster, 'percentCarrotsEaten', 50);
|
|
35752
|
-
hamster.satisfied; // false
|
|
35753
|
-
```
|
|
35754
|
-
|
|
35755
35613
|
@method equal
|
|
35756
35614
|
@static
|
|
35757
35615
|
@for @ember/object/computed
|
|
@@ -35794,27 +35652,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35794
35652
|
hamster.hasTooManyBananas; // true
|
|
35795
35653
|
```
|
|
35796
35654
|
|
|
35797
|
-
Classic Class Example:
|
|
35798
|
-
|
|
35799
|
-
```javascript
|
|
35800
|
-
import EmberObject, { set } from '@ember/object';
|
|
35801
|
-
import { gt } from '@ember/object/computed';
|
|
35802
|
-
|
|
35803
|
-
let Hamster = EmberObject.extend({
|
|
35804
|
-
hasTooManyBananas: gt('numBananas', 10)
|
|
35805
|
-
});
|
|
35806
|
-
|
|
35807
|
-
let hamster = Hamster.create();
|
|
35808
|
-
|
|
35809
|
-
hamster.hasTooManyBananas; // false
|
|
35810
|
-
|
|
35811
|
-
set(hamster, 'numBananas', 3);
|
|
35812
|
-
hamster.hasTooManyBananas; // false
|
|
35813
|
-
|
|
35814
|
-
set(hamster, 'numBananas', 11);
|
|
35815
|
-
hamster.hasTooManyBananas; // true
|
|
35816
|
-
```
|
|
35817
|
-
|
|
35818
35655
|
@method gt
|
|
35819
35656
|
@static
|
|
35820
35657
|
@for @ember/object/computed
|
|
@@ -35857,27 +35694,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35857
35694
|
hamster.hasTooManyBananas; // true
|
|
35858
35695
|
```
|
|
35859
35696
|
|
|
35860
|
-
Classic Class Example:
|
|
35861
|
-
|
|
35862
|
-
```javascript
|
|
35863
|
-
import EmberObject, { set } from '@ember/object';
|
|
35864
|
-
import { gte } from '@ember/object/computed';
|
|
35865
|
-
|
|
35866
|
-
let Hamster = EmberObject.extend({
|
|
35867
|
-
hasTooManyBananas: gte('numBananas', 10)
|
|
35868
|
-
});
|
|
35869
|
-
|
|
35870
|
-
let hamster = Hamster.create();
|
|
35871
|
-
|
|
35872
|
-
hamster.hasTooManyBananas; // false
|
|
35873
|
-
|
|
35874
|
-
set(hamster, 'numBananas', 3);
|
|
35875
|
-
hamster.hasTooManyBananas; // false
|
|
35876
|
-
|
|
35877
|
-
set(hamster, 'numBananas', 10);
|
|
35878
|
-
hamster.hasTooManyBananas; // true
|
|
35879
|
-
```
|
|
35880
|
-
|
|
35881
35697
|
@method gte
|
|
35882
35698
|
@static
|
|
35883
35699
|
@for @ember/object/computed
|
|
@@ -35920,27 +35736,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35920
35736
|
hamster.needsMoreBananas; // true
|
|
35921
35737
|
```
|
|
35922
35738
|
|
|
35923
|
-
Classic Class Example:
|
|
35924
|
-
|
|
35925
|
-
```javascript
|
|
35926
|
-
import EmberObject, { set } from '@ember/object';
|
|
35927
|
-
import { lt } from '@ember/object/computed';
|
|
35928
|
-
|
|
35929
|
-
let Hamster = EmberObject.extend({
|
|
35930
|
-
needsMoreBananas: lt('numBananas', 3)
|
|
35931
|
-
});
|
|
35932
|
-
|
|
35933
|
-
let hamster = Hamster.create();
|
|
35934
|
-
|
|
35935
|
-
hamster.needsMoreBananas; // true
|
|
35936
|
-
|
|
35937
|
-
set(hamster, 'numBananas', 3);
|
|
35938
|
-
hamster.needsMoreBananas; // false
|
|
35939
|
-
|
|
35940
|
-
set(hamster, 'numBananas', 2);
|
|
35941
|
-
hamster.needsMoreBananas; // true
|
|
35942
|
-
```
|
|
35943
|
-
|
|
35944
35739
|
@method lt
|
|
35945
35740
|
@static
|
|
35946
35741
|
@for @ember/object/computed
|
|
@@ -35983,27 +35778,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
35983
35778
|
hamster.needsMoreBananas; // true
|
|
35984
35779
|
```
|
|
35985
35780
|
|
|
35986
|
-
Classic Class Example:
|
|
35987
|
-
|
|
35988
|
-
```javascript
|
|
35989
|
-
import EmberObject, { set } from '@ember/object';
|
|
35990
|
-
import { lte } from '@ember/object/computed';
|
|
35991
|
-
|
|
35992
|
-
let Hamster = EmberObject.extend({
|
|
35993
|
-
needsMoreBananas: lte('numBananas', 3)
|
|
35994
|
-
});
|
|
35995
|
-
|
|
35996
|
-
let hamster = Hamster.create();
|
|
35997
|
-
|
|
35998
|
-
hamster.needsMoreBananas; // true
|
|
35999
|
-
|
|
36000
|
-
set(hamster, 'numBananas', 5);
|
|
36001
|
-
hamster.needsMoreBananas; // false
|
|
36002
|
-
|
|
36003
|
-
set(hamster, 'numBananas', 3);
|
|
36004
|
-
hamster.needsMoreBananas; // true
|
|
36005
|
-
```
|
|
36006
|
-
|
|
36007
35781
|
@method lte
|
|
36008
35782
|
@static
|
|
36009
35783
|
@for @ember/object/computed
|
|
@@ -36057,34 +35831,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36057
35831
|
tomster.readyForHike; // null
|
|
36058
35832
|
```
|
|
36059
35833
|
|
|
36060
|
-
Classic Class Example:
|
|
36061
|
-
|
|
36062
|
-
```javascript
|
|
36063
|
-
import EmberObject, { set } from '@ember/object';
|
|
36064
|
-
import { and } from '@ember/object/computed';
|
|
36065
|
-
|
|
36066
|
-
let Hamster = EmberObject.extend({
|
|
36067
|
-
readyForCamp: and('hasTent', 'hasBackpack'),
|
|
36068
|
-
readyForHike: and('hasWalkingStick', 'hasBackpack')
|
|
36069
|
-
});
|
|
36070
|
-
|
|
36071
|
-
let tomster = Hamster.create();
|
|
36072
|
-
|
|
36073
|
-
tomster.readyForCamp; // false
|
|
36074
|
-
|
|
36075
|
-
set(tomster, 'hasTent', true);
|
|
36076
|
-
tomster.readyForCamp; // false
|
|
36077
|
-
|
|
36078
|
-
set(tomster, 'hasBackpack', true);
|
|
36079
|
-
tomster.readyForCamp; // true
|
|
36080
|
-
|
|
36081
|
-
set(tomster, 'hasBackpack', 'Yes');
|
|
36082
|
-
tomster.readyForCamp; // 'Yes'
|
|
36083
|
-
|
|
36084
|
-
set(tomster, 'hasWalkingStick', null);
|
|
36085
|
-
tomster.readyForHike; // null
|
|
36086
|
-
```
|
|
36087
|
-
|
|
36088
35834
|
@method and
|
|
36089
35835
|
@static
|
|
36090
35836
|
@for @ember/object/computed
|
|
@@ -36129,31 +35875,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36129
35875
|
tomster.readyForBeach; // 'Check'
|
|
36130
35876
|
```
|
|
36131
35877
|
|
|
36132
|
-
Classic Class Example:
|
|
36133
|
-
|
|
36134
|
-
```javascript
|
|
36135
|
-
import EmberObject, { set } from '@ember/object';
|
|
36136
|
-
import { or } from '@ember/object/computed';
|
|
36137
|
-
|
|
36138
|
-
let Hamster = EmberObject.extend({
|
|
36139
|
-
readyForRain: or('hasJacket', 'hasUmbrella'),
|
|
36140
|
-
readyForBeach: or('hasSunscreen', 'hasUmbrella')
|
|
36141
|
-
});
|
|
36142
|
-
|
|
36143
|
-
let tomster = Hamster.create();
|
|
36144
|
-
|
|
36145
|
-
tomster.readyForRain; // undefined
|
|
36146
|
-
|
|
36147
|
-
set(tomster, 'hasUmbrella', true);
|
|
36148
|
-
tomster.readyForRain; // true
|
|
36149
|
-
|
|
36150
|
-
set(tomster, 'hasJacket', 'Yes');
|
|
36151
|
-
tomster.readyForRain; // 'Yes'
|
|
36152
|
-
|
|
36153
|
-
set(tomster, 'hasSunscreen', 'Check');
|
|
36154
|
-
tomster.readyForBeach; // 'Check'
|
|
36155
|
-
```
|
|
36156
|
-
|
|
36157
35878
|
@method or
|
|
36158
35879
|
@static
|
|
36159
35880
|
@for @ember/object/computed
|
|
@@ -36191,27 +35912,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36191
35912
|
alex.name; // '@machty'
|
|
36192
35913
|
```
|
|
36193
35914
|
|
|
36194
|
-
Classic Class Example:
|
|
36195
|
-
|
|
36196
|
-
```javascript
|
|
36197
|
-
import EmberObject, { set } from '@ember/object';
|
|
36198
|
-
import { alias } from '@ember/object/computed';
|
|
36199
|
-
|
|
36200
|
-
let Person = EmberObject.extend({
|
|
36201
|
-
name: 'Alex Matchneer',
|
|
36202
|
-
|
|
36203
|
-
nomen: alias('name')
|
|
36204
|
-
});
|
|
36205
|
-
|
|
36206
|
-
let alex = Person.create();
|
|
36207
|
-
|
|
36208
|
-
alex.nomen; // 'Alex Matchneer'
|
|
36209
|
-
alex.name; // 'Alex Matchneer'
|
|
36210
|
-
|
|
36211
|
-
set(alex, 'nomen', '@machty');
|
|
36212
|
-
alex.name; // '@machty'
|
|
36213
|
-
```
|
|
36214
|
-
|
|
36215
35915
|
@method alias
|
|
36216
35916
|
@static
|
|
36217
35917
|
@for @ember/object/computed
|
|
@@ -36252,31 +35952,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36252
35952
|
teddy.nickName; // 'TeddyBear'
|
|
36253
35953
|
```
|
|
36254
35954
|
|
|
36255
|
-
Classic Class Example:
|
|
36256
|
-
|
|
36257
|
-
```javascript
|
|
36258
|
-
import EmberObject, { set } from '@ember/object';
|
|
36259
|
-
import { oneWay } from '@ember/object/computed';
|
|
36260
|
-
|
|
36261
|
-
let User = EmberObject.extend({
|
|
36262
|
-
firstName: null,
|
|
36263
|
-
lastName: null,
|
|
36264
|
-
|
|
36265
|
-
nickName: oneWay('firstName')
|
|
36266
|
-
});
|
|
36267
|
-
|
|
36268
|
-
let teddy = User.create({
|
|
36269
|
-
firstName: 'Teddy',
|
|
36270
|
-
lastName: 'Zeenny'
|
|
36271
|
-
});
|
|
36272
|
-
|
|
36273
|
-
teddy.nickName; // 'Teddy'
|
|
36274
|
-
|
|
36275
|
-
set(teddy, 'nickName', 'TeddyBear'); // 'TeddyBear'
|
|
36276
|
-
teddy.firstName; // 'Teddy'
|
|
36277
|
-
teddy.nickName; // 'TeddyBear'
|
|
36278
|
-
```
|
|
36279
|
-
|
|
36280
35955
|
@method oneWay
|
|
36281
35956
|
@static
|
|
36282
35957
|
@for @ember/object/computed
|
|
@@ -36338,32 +36013,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36338
36013
|
teddy.firstName; // 'Teddy'
|
|
36339
36014
|
```
|
|
36340
36015
|
|
|
36341
|
-
Classic Class Example:
|
|
36342
|
-
|
|
36343
|
-
```javascript
|
|
36344
|
-
import EmberObject, { set } from '@ember/object';
|
|
36345
|
-
import { readOnly } from '@ember/object/computed';
|
|
36346
|
-
|
|
36347
|
-
let User = EmberObject.extend({
|
|
36348
|
-
firstName: null,
|
|
36349
|
-
lastName: null,
|
|
36350
|
-
|
|
36351
|
-
nickName: readOnly('firstName')
|
|
36352
|
-
});
|
|
36353
|
-
|
|
36354
|
-
let teddy = User.create({
|
|
36355
|
-
firstName: 'Teddy',
|
|
36356
|
-
lastName: 'Zeenny'
|
|
36357
|
-
});
|
|
36358
|
-
|
|
36359
|
-
teddy.nickName; // 'Teddy'
|
|
36360
|
-
|
|
36361
|
-
set(teddy, 'nickName', 'TeddyBear'); // throws Exception
|
|
36362
|
-
// throw new EmberError('Cannot Set: nickName on: <User:ember27288>' );`
|
|
36363
|
-
|
|
36364
|
-
teddy.firstName; // 'Teddy'
|
|
36365
|
-
```
|
|
36366
|
-
|
|
36367
36016
|
@method readOnly
|
|
36368
36017
|
@static
|
|
36369
36018
|
@for @ember/object/computed
|
|
@@ -36404,25 +36053,6 @@ define("@ember/object/lib/computed/computed_macros", ["exports", "@ember/-intern
|
|
|
36404
36053
|
hamster.cavendishCount; // 5
|
|
36405
36054
|
```
|
|
36406
36055
|
|
|
36407
|
-
Classic Class Example:
|
|
36408
|
-
|
|
36409
|
-
```javascript
|
|
36410
|
-
import EmberObject, { set } from '@ember/object';
|
|
36411
|
-
import { deprecatingAlias } from '@ember/object/computed';
|
|
36412
|
-
|
|
36413
|
-
let Hamster = EmberObject.extend({
|
|
36414
|
-
bananaCount: deprecatingAlias('cavendishCount', {
|
|
36415
|
-
id: 'hamster.deprecate-banana',
|
|
36416
|
-
until: '3.0.0'
|
|
36417
|
-
})
|
|
36418
|
-
});
|
|
36419
|
-
|
|
36420
|
-
let hamster = Hamster.create();
|
|
36421
|
-
|
|
36422
|
-
set(hamster, 'bananaCount', 5); // Prints a deprecation warning.
|
|
36423
|
-
hamster.cavendishCount; // 5
|
|
36424
|
-
```
|
|
36425
|
-
|
|
36426
36056
|
@method deprecatingAlias
|
|
36427
36057
|
@static
|
|
36428
36058
|
@for @ember/object/computed
|
|
@@ -36539,23 +36169,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36539
36169
|
invoice.total; // 13.49
|
|
36540
36170
|
```
|
|
36541
36171
|
|
|
36542
|
-
Classic Class Example:
|
|
36543
|
-
|
|
36544
|
-
```javascript
|
|
36545
|
-
import EmberObject from '@ember/object';
|
|
36546
|
-
import { sum } from '@ember/object/computed';
|
|
36547
|
-
|
|
36548
|
-
let Invoice = EmberObject.extend({
|
|
36549
|
-
lineItems: [1.00, 2.50, 9.99],
|
|
36550
|
-
|
|
36551
|
-
total: sum('lineItems')
|
|
36552
|
-
})
|
|
36553
|
-
|
|
36554
|
-
let invoice = Invoice.create();
|
|
36555
|
-
|
|
36556
|
-
invoice.total; // 13.49
|
|
36557
|
-
```
|
|
36558
|
-
|
|
36559
36172
|
@method sum
|
|
36560
36173
|
@for @ember/object/computed
|
|
36561
36174
|
@static
|
|
@@ -36613,42 +36226,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36613
36226
|
lordByron.maxChildAge; // 8
|
|
36614
36227
|
```
|
|
36615
36228
|
|
|
36616
|
-
Classic Class Example:
|
|
36617
|
-
|
|
36618
|
-
```javascript
|
|
36619
|
-
import EmberObject, { set } from '@ember/object';
|
|
36620
|
-
import { mapBy, max } from '@ember/object/computed';
|
|
36621
|
-
|
|
36622
|
-
let Person = EmberObject.extend({
|
|
36623
|
-
childAges: mapBy('children', 'age'),
|
|
36624
|
-
maxChildAge: max('childAges')
|
|
36625
|
-
});
|
|
36626
|
-
|
|
36627
|
-
let lordByron = Person.create({ children: [] });
|
|
36628
|
-
|
|
36629
|
-
lordByron.maxChildAge; // -Infinity
|
|
36630
|
-
|
|
36631
|
-
set(lordByron, 'children', [
|
|
36632
|
-
{
|
|
36633
|
-
name: 'Augusta Ada Byron',
|
|
36634
|
-
age: 7
|
|
36635
|
-
}
|
|
36636
|
-
]);
|
|
36637
|
-
lordByron.maxChildAge; // 7
|
|
36638
|
-
|
|
36639
|
-
set(lordByron, 'children', [
|
|
36640
|
-
...lordByron.children,
|
|
36641
|
-
{
|
|
36642
|
-
name: 'Allegra Byron',
|
|
36643
|
-
age: 5
|
|
36644
|
-
}, {
|
|
36645
|
-
name: 'Elizabeth Medora Leigh',
|
|
36646
|
-
age: 8
|
|
36647
|
-
}
|
|
36648
|
-
]);
|
|
36649
|
-
lordByron.maxChildAge; // 8
|
|
36650
|
-
```
|
|
36651
|
-
|
|
36652
36229
|
If the types of the arguments are not numbers, they will be converted to
|
|
36653
36230
|
numbers and the type of the return value will always be `Number`. For example,
|
|
36654
36231
|
the max of a list of Date objects will be the highest timestamp as a `Number`.
|
|
@@ -36710,42 +36287,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36710
36287
|
lordByron.minChildAge; // 5
|
|
36711
36288
|
```
|
|
36712
36289
|
|
|
36713
|
-
Classic Class Example:
|
|
36714
|
-
|
|
36715
|
-
```javascript
|
|
36716
|
-
import EmberObject, { set } from '@ember/object';
|
|
36717
|
-
import { mapBy, min } from '@ember/object/computed';
|
|
36718
|
-
|
|
36719
|
-
let Person = EmberObject.extend({
|
|
36720
|
-
childAges: mapBy('children', 'age'),
|
|
36721
|
-
minChildAge: min('childAges')
|
|
36722
|
-
});
|
|
36723
|
-
|
|
36724
|
-
let lordByron = Person.create({ children: [] });
|
|
36725
|
-
|
|
36726
|
-
lordByron.minChildAge; // Infinity
|
|
36727
|
-
|
|
36728
|
-
set(lordByron, 'children', [
|
|
36729
|
-
{
|
|
36730
|
-
name: 'Augusta Ada Byron',
|
|
36731
|
-
age: 7
|
|
36732
|
-
}
|
|
36733
|
-
]);
|
|
36734
|
-
lordByron.minChildAge; // 7
|
|
36735
|
-
|
|
36736
|
-
set(lordByron, 'children', [
|
|
36737
|
-
...lordByron.children,
|
|
36738
|
-
{
|
|
36739
|
-
name: 'Allegra Byron',
|
|
36740
|
-
age: 5
|
|
36741
|
-
}, {
|
|
36742
|
-
name: 'Elizabeth Medora Leigh',
|
|
36743
|
-
age: 8
|
|
36744
|
-
}
|
|
36745
|
-
]);
|
|
36746
|
-
lordByron.minChildAge; // 5
|
|
36747
|
-
```
|
|
36748
|
-
|
|
36749
36290
|
If the types of the arguments are not numbers, they will be converted to
|
|
36750
36291
|
numbers and the type of the return value will always be `Number`. For example,
|
|
36751
36292
|
the min of a list of Date objects will be the lowest timestamp as a `Number`.
|
|
@@ -36797,25 +36338,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36797
36338
|
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
36798
36339
|
```
|
|
36799
36340
|
|
|
36800
|
-
Classic Class Example:
|
|
36801
|
-
|
|
36802
|
-
```javascript
|
|
36803
|
-
import EmberObject from '@ember/object';
|
|
36804
|
-
import { map } from '@ember/object/computed';
|
|
36805
|
-
|
|
36806
|
-
let Hamster = EmberObject.extend({
|
|
36807
|
-
excitingChores: map('chores', function(chore, index) {
|
|
36808
|
-
return `${chore.toUpperCase()}!`;
|
|
36809
|
-
})
|
|
36810
|
-
});
|
|
36811
|
-
|
|
36812
|
-
let hamster = Hamster.create({
|
|
36813
|
-
chores: ['clean', 'write more unit tests']
|
|
36814
|
-
});
|
|
36815
|
-
|
|
36816
|
-
hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
|
|
36817
|
-
```
|
|
36818
|
-
|
|
36819
36341
|
You can optionally pass an array of additional dependent keys as the second
|
|
36820
36342
|
parameter to the macro, if your map function relies on any external values:
|
|
36821
36343
|
|
|
@@ -36914,41 +36436,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
36914
36436
|
lordByron.childAges; // [7, 5, 8]
|
|
36915
36437
|
```
|
|
36916
36438
|
|
|
36917
|
-
Classic Class Example:
|
|
36918
|
-
|
|
36919
|
-
```javascript
|
|
36920
|
-
import EmberObject, { set } from '@ember/object';
|
|
36921
|
-
import { mapBy } from '@ember/object/computed';
|
|
36922
|
-
|
|
36923
|
-
let Person = EmberObject.extend({
|
|
36924
|
-
childAges: mapBy('children', 'age')
|
|
36925
|
-
});
|
|
36926
|
-
|
|
36927
|
-
let lordByron = Person.create({ children: [] });
|
|
36928
|
-
|
|
36929
|
-
lordByron.childAges; // []
|
|
36930
|
-
|
|
36931
|
-
set(lordByron, 'children', [
|
|
36932
|
-
{
|
|
36933
|
-
name: 'Augusta Ada Byron',
|
|
36934
|
-
age: 7
|
|
36935
|
-
}
|
|
36936
|
-
]);
|
|
36937
|
-
lordByron.childAges; // [7]
|
|
36938
|
-
|
|
36939
|
-
set(lordByron, 'children', [
|
|
36940
|
-
...lordByron.children,
|
|
36941
|
-
{
|
|
36942
|
-
name: 'Allegra Byron',
|
|
36943
|
-
age: 5
|
|
36944
|
-
}, {
|
|
36945
|
-
name: 'Elizabeth Medora Leigh',
|
|
36946
|
-
age: 8
|
|
36947
|
-
}
|
|
36948
|
-
]);
|
|
36949
|
-
lordByron.childAges; // [7, 5, 8]
|
|
36950
|
-
```
|
|
36951
|
-
|
|
36952
36439
|
@method mapBy
|
|
36953
36440
|
@for @ember/object/computed
|
|
36954
36441
|
@static
|
|
@@ -37003,29 +36490,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37003
36490
|
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
37004
36491
|
```
|
|
37005
36492
|
|
|
37006
|
-
Classic Class Example:
|
|
37007
|
-
|
|
37008
|
-
```javascript
|
|
37009
|
-
import EmberObject from '@ember/object';
|
|
37010
|
-
import { filter } from '@ember/object/computed';
|
|
37011
|
-
|
|
37012
|
-
let Hamster = EmberObject.extend({
|
|
37013
|
-
remainingChores: filter('chores', function(chore, index, array) {
|
|
37014
|
-
return !chore.done;
|
|
37015
|
-
})
|
|
37016
|
-
});
|
|
37017
|
-
|
|
37018
|
-
let hamster = Hamster.create({
|
|
37019
|
-
chores: [
|
|
37020
|
-
{ name: 'cook', done: true },
|
|
37021
|
-
{ name: 'clean', done: true },
|
|
37022
|
-
{ name: 'write more unit tests', done: false }
|
|
37023
|
-
]
|
|
37024
|
-
});
|
|
37025
|
-
|
|
37026
|
-
hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
|
|
37027
|
-
```
|
|
37028
|
-
|
|
37029
36493
|
You can also use `@each.property` in your dependent key, the callback will
|
|
37030
36494
|
still use the underlying array:
|
|
37031
36495
|
|
|
@@ -37135,27 +36599,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37135
36599
|
hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
|
|
37136
36600
|
```
|
|
37137
36601
|
|
|
37138
|
-
Classic Class Example:
|
|
37139
|
-
|
|
37140
|
-
```javascript
|
|
37141
|
-
import EmberObject from '@ember/object';
|
|
37142
|
-
import { filterBy } from '@ember/object/computed';
|
|
37143
|
-
|
|
37144
|
-
let Hamster = EmberObject.extend({
|
|
37145
|
-
remainingChores: filterBy('chores', 'done', false)
|
|
37146
|
-
});
|
|
37147
|
-
|
|
37148
|
-
let hamster = Hamster.create({
|
|
37149
|
-
chores: [
|
|
37150
|
-
{ name: 'cook', done: true },
|
|
37151
|
-
{ name: 'clean', done: true },
|
|
37152
|
-
{ name: 'write more unit tests', done: false }
|
|
37153
|
-
]
|
|
37154
|
-
});
|
|
37155
|
-
|
|
37156
|
-
hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
|
|
37157
|
-
```
|
|
37158
|
-
|
|
37159
36602
|
@method filterBy
|
|
37160
36603
|
@for @ember/object/computed
|
|
37161
36604
|
@static
|
|
@@ -37208,28 +36651,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37208
36651
|
hamster.uniqueFruits; // ['banana', 'grape', 'kale']
|
|
37209
36652
|
```
|
|
37210
36653
|
|
|
37211
|
-
Classic Class Example:
|
|
37212
|
-
|
|
37213
|
-
```javascript
|
|
37214
|
-
import EmberObject from '@ember/object';
|
|
37215
|
-
import { uniq } from '@ember/object/computed';
|
|
37216
|
-
|
|
37217
|
-
let Hamster = EmberObject.extend({
|
|
37218
|
-
uniqueFruits: uniq('fruits')
|
|
37219
|
-
});
|
|
37220
|
-
|
|
37221
|
-
let hamster = Hamster.create({
|
|
37222
|
-
fruits: [
|
|
37223
|
-
'banana',
|
|
37224
|
-
'grape',
|
|
37225
|
-
'kale',
|
|
37226
|
-
'banana'
|
|
37227
|
-
]
|
|
37228
|
-
});
|
|
37229
|
-
|
|
37230
|
-
hamster.uniqueFruits; // ['banana', 'grape', 'kale']
|
|
37231
|
-
```
|
|
37232
|
-
|
|
37233
36654
|
@method uniq
|
|
37234
36655
|
@for @ember/object/computed
|
|
37235
36656
|
@static
|
|
@@ -37288,28 +36709,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37288
36709
|
hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
|
37289
36710
|
```
|
|
37290
36711
|
|
|
37291
|
-
Classic Class Example:
|
|
37292
|
-
|
|
37293
|
-
```javascript
|
|
37294
|
-
import EmberObject from '@ember/object';
|
|
37295
|
-
import { uniqBy } from '@ember/object/computed';
|
|
37296
|
-
|
|
37297
|
-
let Hamster = EmberObject.extend({
|
|
37298
|
-
uniqueFruits: uniqBy('fruits', 'id')
|
|
37299
|
-
});
|
|
37300
|
-
|
|
37301
|
-
let hamster = Hamster.create({
|
|
37302
|
-
fruits: [
|
|
37303
|
-
{ id: 1, 'banana' },
|
|
37304
|
-
{ id: 2, 'grape' },
|
|
37305
|
-
{ id: 3, 'peach' },
|
|
37306
|
-
{ id: 1, 'banana' }
|
|
37307
|
-
]
|
|
37308
|
-
});
|
|
37309
|
-
|
|
37310
|
-
hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
|
|
37311
|
-
```
|
|
37312
|
-
|
|
37313
36712
|
@method uniqBy
|
|
37314
36713
|
@for @ember/object/computed
|
|
37315
36714
|
@static
|
|
@@ -37366,34 +36765,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37366
36765
|
hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
|
|
37367
36766
|
```
|
|
37368
36767
|
|
|
37369
|
-
Classic Class Example:
|
|
37370
|
-
|
|
37371
|
-
```javascript
|
|
37372
|
-
import EmberObject from '@ember/object';
|
|
37373
|
-
import { union } from '@ember/object/computed';
|
|
37374
|
-
|
|
37375
|
-
let Hamster = EmberObject.extend({
|
|
37376
|
-
uniqueFruits: union('fruits', 'vegetables')
|
|
37377
|
-
});
|
|
37378
|
-
|
|
37379
|
-
let hamster = Hamster.create({
|
|
37380
|
-
fruits: [
|
|
37381
|
-
'banana',
|
|
37382
|
-
'grape',
|
|
37383
|
-
'kale',
|
|
37384
|
-
'banana',
|
|
37385
|
-
'tomato'
|
|
37386
|
-
],
|
|
37387
|
-
vegetables: [
|
|
37388
|
-
'tomato',
|
|
37389
|
-
'carrot',
|
|
37390
|
-
'lettuce'
|
|
37391
|
-
]
|
|
37392
|
-
});
|
|
37393
|
-
|
|
37394
|
-
hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
|
|
37395
|
-
```
|
|
37396
|
-
|
|
37397
36768
|
@method union
|
|
37398
36769
|
@for @ember/object/computed
|
|
37399
36770
|
@static
|
|
@@ -37432,24 +36803,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37432
36803
|
groups.friendsInCommon; // ['William King', 'Mary Somerville']
|
|
37433
36804
|
```
|
|
37434
36805
|
|
|
37435
|
-
Classic Class Example:
|
|
37436
|
-
|
|
37437
|
-
```javascript
|
|
37438
|
-
import EmberObject from '@ember/object';
|
|
37439
|
-
import { intersect } from '@ember/object/computed';
|
|
37440
|
-
|
|
37441
|
-
let FriendGroups = EmberObject.extend({
|
|
37442
|
-
friendsInCommon: intersect('adaFriends', 'charlesFriends')
|
|
37443
|
-
});
|
|
37444
|
-
|
|
37445
|
-
let groups = FriendGroups.create({
|
|
37446
|
-
adaFriends: ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
|
|
37447
|
-
charlesFriends: ['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']
|
|
37448
|
-
});
|
|
37449
|
-
|
|
37450
|
-
groups.friendsInCommon; // ['William King', 'Mary Somerville']
|
|
37451
|
-
```
|
|
37452
|
-
|
|
37453
36806
|
@method intersect
|
|
37454
36807
|
@for @ember/object/computed
|
|
37455
36808
|
@static
|
|
@@ -37524,31 +36877,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37524
36877
|
hamster.wants; // ['banana']
|
|
37525
36878
|
```
|
|
37526
36879
|
|
|
37527
|
-
Classic Class Example:
|
|
37528
|
-
|
|
37529
|
-
```javascript
|
|
37530
|
-
import EmberObject from '@ember/object';
|
|
37531
|
-
import { setDiff } from '@ember/object/computed';
|
|
37532
|
-
|
|
37533
|
-
let Hamster = EmberObject.extend({
|
|
37534
|
-
wants: setDiff('likes', 'fruits')
|
|
37535
|
-
});
|
|
37536
|
-
|
|
37537
|
-
let hamster = Hamster.create({
|
|
37538
|
-
likes: [
|
|
37539
|
-
'banana',
|
|
37540
|
-
'grape',
|
|
37541
|
-
'kale'
|
|
37542
|
-
],
|
|
37543
|
-
fruits: [
|
|
37544
|
-
'grape',
|
|
37545
|
-
'kale',
|
|
37546
|
-
]
|
|
37547
|
-
});
|
|
37548
|
-
|
|
37549
|
-
hamster.wants; // ['banana']
|
|
37550
|
-
```
|
|
37551
|
-
|
|
37552
36880
|
@method setDiff
|
|
37553
36881
|
@for @ember/object/computed
|
|
37554
36882
|
@static
|
|
@@ -37602,25 +36930,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37602
36930
|
hamster.clothes; // ['Camp Hat', 'Camp Shirt']
|
|
37603
36931
|
```
|
|
37604
36932
|
|
|
37605
|
-
Classic Class Example:
|
|
37606
|
-
|
|
37607
|
-
```javascript
|
|
37608
|
-
import EmberObject, { set } from '@ember/object';
|
|
37609
|
-
import { collect } from '@ember/object/computed';
|
|
37610
|
-
|
|
37611
|
-
let Hamster = EmberObject.extend({
|
|
37612
|
-
clothes: collect('hat', 'shirt')
|
|
37613
|
-
});
|
|
37614
|
-
|
|
37615
|
-
let hamster = Hamster.create();
|
|
37616
|
-
|
|
37617
|
-
hamster.clothes; // [null, null]
|
|
37618
|
-
|
|
37619
|
-
set(hamster, 'hat', 'Camp Hat');
|
|
37620
|
-
set(hamster, 'shirt', 'Camp Shirt');
|
|
37621
|
-
hamster.clothes; // ['Camp Hat', 'Camp Shirt']
|
|
37622
|
-
```
|
|
37623
|
-
|
|
37624
36933
|
@method collect
|
|
37625
36934
|
@for @ember/object/computed
|
|
37626
36935
|
@static
|
|
@@ -37701,36 +37010,6 @@ define("@ember/object/lib/computed/reduce_computed_macros", ["exports", "@ember/
|
|
|
37701
37010
|
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
37702
37011
|
```
|
|
37703
37012
|
|
|
37704
|
-
Classic Class Example:
|
|
37705
|
-
|
|
37706
|
-
```javascript
|
|
37707
|
-
import EmberObject from '@ember/object';
|
|
37708
|
-
import { sort } from '@ember/object/computed';
|
|
37709
|
-
|
|
37710
|
-
let ToDoList = EmberObject.extend({
|
|
37711
|
-
// using a custom sort function
|
|
37712
|
-
priorityTodos: sort('todos', function(a, b){
|
|
37713
|
-
if (a.priority > b.priority) {
|
|
37714
|
-
return 1;
|
|
37715
|
-
} else if (a.priority < b.priority) {
|
|
37716
|
-
return -1;
|
|
37717
|
-
}
|
|
37718
|
-
|
|
37719
|
-
return 0;
|
|
37720
|
-
})
|
|
37721
|
-
});
|
|
37722
|
-
|
|
37723
|
-
let todoList = ToDoList.create({
|
|
37724
|
-
todos: [
|
|
37725
|
-
{ name: 'Unit Test', priority: 2 },
|
|
37726
|
-
{ name: 'Documentation', priority: 3 },
|
|
37727
|
-
{ name: 'Release', priority: 1 }
|
|
37728
|
-
]
|
|
37729
|
-
});
|
|
37730
|
-
|
|
37731
|
-
todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
|
|
37732
|
-
```
|
|
37733
|
-
|
|
37734
37013
|
You can also optionally pass an array of additional dependent keys as the
|
|
37735
37014
|
second parameter, if your sort function is dependent on additional values that
|
|
37736
37015
|
could changes:
|
|
@@ -58519,12 +57798,16 @@ define("ember/index", ["exports", "require", "@ember/-internals/environment", "@
|
|
|
58519
57798
|
and reporting code.
|
|
58520
57799
|
|
|
58521
57800
|
```javascript
|
|
58522
|
-
import $ from 'jquery';
|
|
58523
57801
|
|
|
58524
57802
|
Ember.onerror = function(error) {
|
|
58525
|
-
|
|
57803
|
+
const payload = {
|
|
58526
57804
|
stack: error.stack,
|
|
58527
57805
|
otherInformation: 'whatever app state you want to provide'
|
|
57806
|
+
};
|
|
57807
|
+
|
|
57808
|
+
fetch('/report-error', {
|
|
57809
|
+
method: 'POST',
|
|
57810
|
+
body: JSON.stringify(payload)
|
|
58528
57811
|
});
|
|
58529
57812
|
};
|
|
58530
57813
|
```
|
|
@@ -58907,17 +58190,6 @@ define("ember/index", ["exports", "require", "@ember/-internals/environment", "@
|
|
|
58907
58190
|
registry: typeof requirejs !== 'undefined' ? requirejs.entries : _require.default.entries
|
|
58908
58191
|
};
|
|
58909
58192
|
var _default = Ember;
|
|
58910
|
-
/**
|
|
58911
|
-
@module jquery
|
|
58912
|
-
@public
|
|
58913
|
-
*/
|
|
58914
|
-
|
|
58915
|
-
/**
|
|
58916
|
-
@class jquery
|
|
58917
|
-
@public
|
|
58918
|
-
@static
|
|
58919
|
-
*/
|
|
58920
|
-
|
|
58921
58193
|
_exports.default = _default;
|
|
58922
58194
|
});
|
|
58923
58195
|
define("ember/version", ["exports"], function (_exports) {
|
|
@@ -58927,17 +58199,7 @@ define("ember/version", ["exports"], function (_exports) {
|
|
|
58927
58199
|
value: true
|
|
58928
58200
|
});
|
|
58929
58201
|
_exports.default = void 0;
|
|
58930
|
-
var _default = "4.0.0-beta.
|
|
58931
|
-
_exports.default = _default;
|
|
58932
|
-
});
|
|
58933
|
-
define("jquery/index", ["exports", "@ember/-internals/views"], function (_exports, _views) {
|
|
58934
|
-
"use strict";
|
|
58935
|
-
|
|
58936
|
-
Object.defineProperty(_exports, "__esModule", {
|
|
58937
|
-
value: true
|
|
58938
|
-
});
|
|
58939
|
-
_exports.default = void 0;
|
|
58940
|
-
var _default = _views.jQuery;
|
|
58202
|
+
var _default = "4.0.0-beta.8";
|
|
58941
58203
|
_exports.default = _default;
|
|
58942
58204
|
});
|
|
58943
58205
|
define("route-recognizer", ["exports"], function (_exports) {
|