ember-source 3.28.5 → 4.0.0-beta.10
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 +113 -10
- 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/blueprints/initializer/files/__root__/initializers/__name__.js +0 -1
- package/blueprints/instance-initializer/files/__root__/instance-initializers/__name__.js +0 -1
- package/build-metadata.json +3 -3
- package/dist/dependencies/@glimmer/manager.js +19 -98
- package/dist/dependencies/@glimmer/opcode-compiler.js +9 -146
- package/dist/dependencies/@glimmer/runtime.js +1 -55
- package/dist/dependencies/@glimmer/validator.js +19 -51
- package/dist/ember-template-compiler.js +3692 -5667
- package/dist/ember-template-compiler.map +1 -1
- package/dist/ember-testing.js +12 -560
- package/dist/ember-testing.map +1 -1
- package/dist/ember.debug.js +4357 -12470
- package/dist/ember.debug.map +1 -1
- package/dist/header/license.js +1 -1
- package/dist/packages/@ember/-internals/bootstrap/index.js +2 -55
- package/dist/packages/@ember/-internals/container/index.js +35 -206
- package/dist/packages/@ember/-internals/environment/index.js +3 -46
- package/dist/packages/@ember/-internals/extension-support/lib/container_debug_adapter.js +7 -0
- package/dist/packages/@ember/-internals/extension-support/lib/data_adapter.js +1 -2
- package/dist/packages/@ember/-internals/glimmer/index.js +4774 -7035
- package/dist/packages/@ember/-internals/meta/lib/meta.js +2 -50
- package/dist/packages/@ember/-internals/metal/index.js +785 -1109
- package/dist/packages/@ember/-internals/overrides/index.js +1 -3
- package/dist/packages/@ember/-internals/owner/index.js +1 -19
- package/dist/packages/@ember/-internals/routing/lib/location/auto_location.js +1 -51
- package/dist/packages/@ember/-internals/routing/lib/location/hash_location.js +1 -0
- package/dist/packages/@ember/-internals/routing/lib/location/history_location.js +3 -1
- package/dist/packages/@ember/-internals/routing/lib/location/none_location.js +0 -7
- package/dist/packages/@ember/-internals/routing/lib/services/router.js +34 -2
- package/dist/packages/@ember/-internals/routing/lib/services/routing.js +2 -3
- package/dist/packages/@ember/-internals/routing/lib/system/dsl.js +5 -6
- package/dist/packages/@ember/-internals/routing/lib/system/route.js +192 -652
- package/dist/packages/@ember/-internals/routing/lib/system/router.js +119 -248
- package/dist/packages/@ember/-internals/routing/lib/system/router_state.js +1 -2
- package/dist/packages/@ember/-internals/routing/lib/utils.js +1 -2
- package/dist/packages/@ember/-internals/runtime/index.js +1 -4
- package/dist/packages/@ember/-internals/runtime/lib/mixins/array.js +4 -175
- package/dist/packages/@ember/-internals/runtime/lib/mixins/observable.js +1 -18
- package/dist/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -43
- package/dist/packages/@ember/-internals/runtime/lib/system/array_proxy.js +8 -15
- package/dist/packages/@ember/-internals/runtime/lib/system/core_object.js +10 -141
- package/dist/packages/@ember/-internals/utils/index.js +3 -59
- package/dist/packages/@ember/-internals/views/index.js +0 -2
- package/dist/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -121
- package/dist/packages/@ember/-internals/views/lib/mixins/view_support.js +4 -40
- package/dist/packages/@ember/-internals/views/lib/system/event_dispatcher.js +115 -190
- package/dist/packages/@ember/-internals/views/lib/views/states/destroying.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states/has_element.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states/in_dom.js +1 -2
- package/dist/packages/@ember/-internals/views/lib/views/states/pre_render.js +1 -2
- package/dist/packages/@ember/application/instance.js +3 -25
- package/dist/packages/@ember/application/lib/application.js +14 -32
- package/dist/packages/@ember/canary-features/index.js +5 -6
- package/dist/packages/@ember/component/index.js +1 -1
- package/dist/packages/@ember/component/template-only.js +2 -0
- package/dist/packages/@ember/debug/lib/deprecate.js +7 -41
- package/dist/packages/@ember/deprecated-features/index.js +1 -14
- package/dist/packages/@ember/engine/index.js +3 -17
- package/dist/packages/@ember/engine/instance.js +0 -4
- package/dist/packages/@ember/helper/index.js +12 -4
- package/dist/packages/@ember/object/index.js +3 -101
- package/dist/packages/@ember/object/internals.js +0 -1
- package/dist/packages/@ember/object/lib/computed/computed_macros.js +12 -384
- package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +9 -360
- package/dist/packages/@ember/polyfills/index.js +1 -6
- package/dist/packages/@ember/polyfills/lib/assign.js +12 -28
- package/dist/packages/@ember/routing/index.js +1 -1
- package/dist/packages/@ember/runloop/index.js +1 -83
- package/dist/packages/@ember/string/index.js +1 -206
- package/dist/packages/@ember/utils/index.js +0 -1
- package/dist/packages/ember/index.js +17 -180
- package/dist/packages/ember/version.js +1 -1
- package/dist/packages/ember-testing/index.js +0 -2
- package/dist/packages/ember-testing/lib/helpers.js +0 -12
- package/dist/packages/ember-testing/lib/setup_for_testing.js +0 -10
- package/docs/data.json +1637 -3659
- package/lib/index.js +14 -59
- package/lib/overrides.js +0 -61
- package/lib/transforms/inject-babel-helpers.js +1 -3
- package/package.json +27 -23
- package/dist/packages/@ember/-internals/console/index.js +0 -190
- package/dist/packages/@ember/-internals/runtime/lib/copy.js +0 -119
- package/dist/packages/@ember/-internals/runtime/lib/ext/function.js +0 -155
- package/dist/packages/@ember/-internals/runtime/lib/mixins/copyable.js +0 -31
- package/dist/packages/@ember/-internals/views/lib/mixins/text_support.js +0 -357
- package/dist/packages/@ember/-internals/views/lib/system/jquery.js +0 -26
- package/dist/packages/@ember/-internals/views/lib/system/jquery_event_deprecation.js +0 -60
- package/dist/packages/@ember/application/deprecations.js +0 -25
- package/dist/packages/@ember/application/globals-resolver.js +0 -434
- package/dist/packages/@ember/application/resolver.js +0 -1
- package/dist/packages/@ember/component/checkbox.js +0 -17
- package/dist/packages/@ember/component/text-area.js +0 -17
- package/dist/packages/@ember/component/text-field.js +0 -17
- package/dist/packages/@ember/polyfills/lib/merge.js +0 -50
- package/dist/packages/@ember/routing/link-component.js +0 -17
- package/dist/packages/ember-testing/lib/events.js +0 -102
- package/dist/packages/ember-testing/lib/helpers/-is-form-control.js +0 -19
- package/dist/packages/ember-testing/lib/helpers/click.js +0 -32
- package/dist/packages/ember-testing/lib/helpers/fill_in.js +0 -47
- package/dist/packages/ember-testing/lib/helpers/find.js +0 -40
- package/dist/packages/ember-testing/lib/helpers/find_with_assert.js +0 -37
- package/dist/packages/ember-testing/lib/helpers/key_event.js +0 -37
- package/dist/packages/ember-testing/lib/helpers/trigger_event.js +0 -61
- package/dist/packages/ember-testing/lib/support.js +0 -57
- package/dist/packages/jquery/index.js +0 -2
|
@@ -13,7 +13,7 @@ function expandPropertiesToArray(predicateName, properties) {
|
|
|
13
13
|
|
|
14
14
|
for (let i = 0; i < properties.length; i++) {
|
|
15
15
|
let property = properties[i];
|
|
16
|
-
assert(`Dependent keys passed to
|
|
16
|
+
assert(`Dependent keys passed to \`${predicateName}\` computed macro can't have spaces.`, property.indexOf(' ') < 0);
|
|
17
17
|
expandProperties(property, extractProperty);
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -67,25 +67,6 @@ function generateComputedWithPredicate(name, predicate) {
|
|
|
67
67
|
todoList.isDone; // true
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Classic Class Example:
|
|
71
|
-
|
|
72
|
-
```javascript
|
|
73
|
-
import EmberObject, { set } from '@ember/object';
|
|
74
|
-
import { empty } from '@ember/object/computed';
|
|
75
|
-
|
|
76
|
-
let ToDoList = EmberObject.extend({
|
|
77
|
-
isDone: empty('todos')
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
let todoList = ToDoList.create({
|
|
81
|
-
todos: ['Unit Test', 'Documentation', 'Release']
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
todoList.isDone; // false
|
|
85
|
-
set(todoList, 'todos', []);
|
|
86
|
-
todoList.isDone; // true
|
|
87
|
-
```
|
|
88
|
-
|
|
89
70
|
@since 1.6.0
|
|
90
71
|
@method empty
|
|
91
72
|
@static
|
|
@@ -132,25 +113,6 @@ export function empty(dependentKey) {
|
|
|
132
113
|
hamster.hasStuff; // false
|
|
133
114
|
```
|
|
134
115
|
|
|
135
|
-
Classic Class Example:
|
|
136
|
-
|
|
137
|
-
```javascript
|
|
138
|
-
import EmberObject, { set } from '@ember/object';
|
|
139
|
-
import { notEmpty } from '@ember/object/computed';
|
|
140
|
-
|
|
141
|
-
let Hamster = EmberObject.extend({
|
|
142
|
-
hasStuff: notEmpty('backpack')
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
let hamster = Hamster.create({
|
|
146
|
-
backpack: ['Food', 'Sleeping Bag', 'Tent']
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
hamster.hasStuff; // true
|
|
150
|
-
set(hamster, 'backpack', []);
|
|
151
|
-
hamster.hasStuff; // false
|
|
152
|
-
```
|
|
153
|
-
|
|
154
116
|
@method notEmpty
|
|
155
117
|
@static
|
|
156
118
|
@for @ember/object/computed
|
|
@@ -190,27 +152,6 @@ export function notEmpty(dependentKey) {
|
|
|
190
152
|
hamster.isHungry; // true
|
|
191
153
|
```
|
|
192
154
|
|
|
193
|
-
Classic Class Example:
|
|
194
|
-
|
|
195
|
-
```javascript
|
|
196
|
-
import EmberObject, { set } from '@ember/object';
|
|
197
|
-
import { none } from '@ember/object/computed';
|
|
198
|
-
|
|
199
|
-
let Hamster = EmberObject.extend({
|
|
200
|
-
isHungry: none('food')
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
let hamster = Hamster.create();
|
|
204
|
-
|
|
205
|
-
hamster.isHungry; // true
|
|
206
|
-
|
|
207
|
-
set(hamster, 'food', 'Banana');
|
|
208
|
-
hamster.isHungry; // false
|
|
209
|
-
|
|
210
|
-
set(hamster, 'food', null);
|
|
211
|
-
hamster.isHungry; // true
|
|
212
|
-
```
|
|
213
|
-
|
|
214
155
|
@method none
|
|
215
156
|
@static
|
|
216
157
|
@for @ember/object/computed
|
|
@@ -249,25 +190,6 @@ export function none(dependentKey) {
|
|
|
249
190
|
user.isAnonymous; // false
|
|
250
191
|
```
|
|
251
192
|
|
|
252
|
-
Classic Class Example:
|
|
253
|
-
|
|
254
|
-
```javascript
|
|
255
|
-
import EmberObject, { set } from '@ember/object';
|
|
256
|
-
import { not } from '@ember/object/computed';
|
|
257
|
-
|
|
258
|
-
let User = EmberObject.extend({
|
|
259
|
-
loggedIn: false,
|
|
260
|
-
|
|
261
|
-
isAnonymous: not('loggedIn')
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
let user = User.create();
|
|
265
|
-
|
|
266
|
-
user.isAnonymous; // true
|
|
267
|
-
set(user, 'loggedIn', true);
|
|
268
|
-
user.isAnonymous; // false
|
|
269
|
-
```
|
|
270
|
-
|
|
271
193
|
@method not
|
|
272
194
|
@static
|
|
273
195
|
@for @ember/object/computed
|
|
@@ -312,31 +234,6 @@ export function not(dependentKey) {
|
|
|
312
234
|
hamster.hasBananas; // false
|
|
313
235
|
```
|
|
314
236
|
|
|
315
|
-
Classic Class Example:
|
|
316
|
-
|
|
317
|
-
```javascript
|
|
318
|
-
import EmberObject, { set } from '@ember/object';
|
|
319
|
-
import { bool } from '@ember/object/computed';
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
let Hamster = EmberObject.extend({
|
|
323
|
-
hasBananas: bool('numBananas')
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
let hamster = Hamster.create();
|
|
327
|
-
|
|
328
|
-
hamster.hasBananas; // false
|
|
329
|
-
|
|
330
|
-
set(hamster, 'numBananas', 0);
|
|
331
|
-
hamster.hasBananas; // false
|
|
332
|
-
|
|
333
|
-
set(hamster, 'numBananas', 1);
|
|
334
|
-
hamster.hasBananas; // true
|
|
335
|
-
|
|
336
|
-
set(hamster, 'numBananas', null);
|
|
337
|
-
hamster.hasBananas; // false
|
|
338
|
-
```
|
|
339
|
-
|
|
340
237
|
@method bool
|
|
341
238
|
@static
|
|
342
239
|
@for @ember/object/computed
|
|
@@ -378,27 +275,6 @@ export function bool(dependentKey) {
|
|
|
378
275
|
user.hasValidEmail; // true
|
|
379
276
|
```
|
|
380
277
|
|
|
381
|
-
Classic Class Example:
|
|
382
|
-
|
|
383
|
-
```javascript
|
|
384
|
-
import EmberObject, { set } from '@ember/object';
|
|
385
|
-
import { match } from '@ember/object/computed';
|
|
386
|
-
|
|
387
|
-
let User = EmberObject.extend({
|
|
388
|
-
hasValidEmail: match('email', /^.+@.+\..+$/)
|
|
389
|
-
});
|
|
390
|
-
|
|
391
|
-
let user = User.create();
|
|
392
|
-
|
|
393
|
-
user.hasValidEmail; // false
|
|
394
|
-
|
|
395
|
-
set(user, 'email', '');
|
|
396
|
-
user.hasValidEmail; // false
|
|
397
|
-
|
|
398
|
-
set(user, 'email', 'ember_hamster@example.com');
|
|
399
|
-
user.hasValidEmail; // true
|
|
400
|
-
```
|
|
401
|
-
|
|
402
278
|
@method match
|
|
403
279
|
@static
|
|
404
280
|
@for @ember/object/computed
|
|
@@ -441,27 +317,6 @@ export function match(dependentKey, regexp) {
|
|
|
441
317
|
hamster.satisfied; // false
|
|
442
318
|
```
|
|
443
319
|
|
|
444
|
-
Classic Class Example:
|
|
445
|
-
|
|
446
|
-
```javascript
|
|
447
|
-
import EmberObject, { set } from '@ember/object';
|
|
448
|
-
import { equal } from '@ember/object/computed';
|
|
449
|
-
|
|
450
|
-
let Hamster = EmberObject.extend({
|
|
451
|
-
satisfied: equal('percentCarrotsEaten', 100)
|
|
452
|
-
});
|
|
453
|
-
|
|
454
|
-
let hamster = Hamster.create();
|
|
455
|
-
|
|
456
|
-
hamster.satisfied; // false
|
|
457
|
-
|
|
458
|
-
set(hamster, 'percentCarrotsEaten', 100);
|
|
459
|
-
hamster.satisfied; // true
|
|
460
|
-
|
|
461
|
-
set(hamster, 'percentCarrotsEaten', 50);
|
|
462
|
-
hamster.satisfied; // false
|
|
463
|
-
```
|
|
464
|
-
|
|
465
320
|
@method equal
|
|
466
321
|
@static
|
|
467
322
|
@for @ember/object/computed
|
|
@@ -503,27 +358,6 @@ export function equal(dependentKey, value) {
|
|
|
503
358
|
hamster.hasTooManyBananas; // true
|
|
504
359
|
```
|
|
505
360
|
|
|
506
|
-
Classic Class Example:
|
|
507
|
-
|
|
508
|
-
```javascript
|
|
509
|
-
import EmberObject, { set } from '@ember/object';
|
|
510
|
-
import { gt } from '@ember/object/computed';
|
|
511
|
-
|
|
512
|
-
let Hamster = EmberObject.extend({
|
|
513
|
-
hasTooManyBananas: gt('numBananas', 10)
|
|
514
|
-
});
|
|
515
|
-
|
|
516
|
-
let hamster = Hamster.create();
|
|
517
|
-
|
|
518
|
-
hamster.hasTooManyBananas; // false
|
|
519
|
-
|
|
520
|
-
set(hamster, 'numBananas', 3);
|
|
521
|
-
hamster.hasTooManyBananas; // false
|
|
522
|
-
|
|
523
|
-
set(hamster, 'numBananas', 11);
|
|
524
|
-
hamster.hasTooManyBananas; // true
|
|
525
|
-
```
|
|
526
|
-
|
|
527
361
|
@method gt
|
|
528
362
|
@static
|
|
529
363
|
@for @ember/object/computed
|
|
@@ -565,27 +399,6 @@ export function gt(dependentKey, value) {
|
|
|
565
399
|
hamster.hasTooManyBananas; // true
|
|
566
400
|
```
|
|
567
401
|
|
|
568
|
-
Classic Class Example:
|
|
569
|
-
|
|
570
|
-
```javascript
|
|
571
|
-
import EmberObject, { set } from '@ember/object';
|
|
572
|
-
import { gte } from '@ember/object/computed';
|
|
573
|
-
|
|
574
|
-
let Hamster = EmberObject.extend({
|
|
575
|
-
hasTooManyBananas: gte('numBananas', 10)
|
|
576
|
-
});
|
|
577
|
-
|
|
578
|
-
let hamster = Hamster.create();
|
|
579
|
-
|
|
580
|
-
hamster.hasTooManyBananas; // false
|
|
581
|
-
|
|
582
|
-
set(hamster, 'numBananas', 3);
|
|
583
|
-
hamster.hasTooManyBananas; // false
|
|
584
|
-
|
|
585
|
-
set(hamster, 'numBananas', 10);
|
|
586
|
-
hamster.hasTooManyBananas; // true
|
|
587
|
-
```
|
|
588
|
-
|
|
589
402
|
@method gte
|
|
590
403
|
@static
|
|
591
404
|
@for @ember/object/computed
|
|
@@ -627,27 +440,6 @@ export function gte(dependentKey, value) {
|
|
|
627
440
|
hamster.needsMoreBananas; // true
|
|
628
441
|
```
|
|
629
442
|
|
|
630
|
-
Classic Class Example:
|
|
631
|
-
|
|
632
|
-
```javascript
|
|
633
|
-
import EmberObject, { set } from '@ember/object';
|
|
634
|
-
import { lt } from '@ember/object/computed';
|
|
635
|
-
|
|
636
|
-
let Hamster = EmberObject.extend({
|
|
637
|
-
needsMoreBananas: lt('numBananas', 3)
|
|
638
|
-
});
|
|
639
|
-
|
|
640
|
-
let hamster = Hamster.create();
|
|
641
|
-
|
|
642
|
-
hamster.needsMoreBananas; // true
|
|
643
|
-
|
|
644
|
-
set(hamster, 'numBananas', 3);
|
|
645
|
-
hamster.needsMoreBananas; // false
|
|
646
|
-
|
|
647
|
-
set(hamster, 'numBananas', 2);
|
|
648
|
-
hamster.needsMoreBananas; // true
|
|
649
|
-
```
|
|
650
|
-
|
|
651
443
|
@method lt
|
|
652
444
|
@static
|
|
653
445
|
@for @ember/object/computed
|
|
@@ -689,27 +481,6 @@ export function lt(dependentKey, value) {
|
|
|
689
481
|
hamster.needsMoreBananas; // true
|
|
690
482
|
```
|
|
691
483
|
|
|
692
|
-
Classic Class Example:
|
|
693
|
-
|
|
694
|
-
```javascript
|
|
695
|
-
import EmberObject, { set } from '@ember/object';
|
|
696
|
-
import { lte } from '@ember/object/computed';
|
|
697
|
-
|
|
698
|
-
let Hamster = EmberObject.extend({
|
|
699
|
-
needsMoreBananas: lte('numBananas', 3)
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
let hamster = Hamster.create();
|
|
703
|
-
|
|
704
|
-
hamster.needsMoreBananas; // true
|
|
705
|
-
|
|
706
|
-
set(hamster, 'numBananas', 5);
|
|
707
|
-
hamster.needsMoreBananas; // false
|
|
708
|
-
|
|
709
|
-
set(hamster, 'numBananas', 3);
|
|
710
|
-
hamster.needsMoreBananas; // true
|
|
711
|
-
```
|
|
712
|
-
|
|
713
484
|
@method lte
|
|
714
485
|
@static
|
|
715
486
|
@for @ember/object/computed
|
|
@@ -762,34 +533,6 @@ export function lte(dependentKey, value) {
|
|
|
762
533
|
tomster.readyForHike; // null
|
|
763
534
|
```
|
|
764
535
|
|
|
765
|
-
Classic Class Example:
|
|
766
|
-
|
|
767
|
-
```javascript
|
|
768
|
-
import EmberObject, { set } from '@ember/object';
|
|
769
|
-
import { and } from '@ember/object/computed';
|
|
770
|
-
|
|
771
|
-
let Hamster = EmberObject.extend({
|
|
772
|
-
readyForCamp: and('hasTent', 'hasBackpack'),
|
|
773
|
-
readyForHike: and('hasWalkingStick', 'hasBackpack')
|
|
774
|
-
});
|
|
775
|
-
|
|
776
|
-
let tomster = Hamster.create();
|
|
777
|
-
|
|
778
|
-
tomster.readyForCamp; // false
|
|
779
|
-
|
|
780
|
-
set(tomster, 'hasTent', true);
|
|
781
|
-
tomster.readyForCamp; // false
|
|
782
|
-
|
|
783
|
-
set(tomster, 'hasBackpack', true);
|
|
784
|
-
tomster.readyForCamp; // true
|
|
785
|
-
|
|
786
|
-
set(tomster, 'hasBackpack', 'Yes');
|
|
787
|
-
tomster.readyForCamp; // 'Yes'
|
|
788
|
-
|
|
789
|
-
set(tomster, 'hasWalkingStick', null);
|
|
790
|
-
tomster.readyForHike; // null
|
|
791
|
-
```
|
|
792
|
-
|
|
793
536
|
@method and
|
|
794
537
|
@static
|
|
795
538
|
@for @ember/object/computed
|
|
@@ -833,31 +576,6 @@ export const and = generateComputedWithPredicate('and', value => value);
|
|
|
833
576
|
tomster.readyForBeach; // 'Check'
|
|
834
577
|
```
|
|
835
578
|
|
|
836
|
-
Classic Class Example:
|
|
837
|
-
|
|
838
|
-
```javascript
|
|
839
|
-
import EmberObject, { set } from '@ember/object';
|
|
840
|
-
import { or } from '@ember/object/computed';
|
|
841
|
-
|
|
842
|
-
let Hamster = EmberObject.extend({
|
|
843
|
-
readyForRain: or('hasJacket', 'hasUmbrella'),
|
|
844
|
-
readyForBeach: or('hasSunscreen', 'hasUmbrella')
|
|
845
|
-
});
|
|
846
|
-
|
|
847
|
-
let tomster = Hamster.create();
|
|
848
|
-
|
|
849
|
-
tomster.readyForRain; // undefined
|
|
850
|
-
|
|
851
|
-
set(tomster, 'hasUmbrella', true);
|
|
852
|
-
tomster.readyForRain; // true
|
|
853
|
-
|
|
854
|
-
set(tomster, 'hasJacket', 'Yes');
|
|
855
|
-
tomster.readyForRain; // 'Yes'
|
|
856
|
-
|
|
857
|
-
set(tomster, 'hasSunscreen', 'Check');
|
|
858
|
-
tomster.readyForBeach; // 'Check'
|
|
859
|
-
```
|
|
860
|
-
|
|
861
579
|
@method or
|
|
862
580
|
@static
|
|
863
581
|
@for @ember/object/computed
|
|
@@ -894,27 +612,6 @@ export const or = generateComputedWithPredicate('or', value => !value);
|
|
|
894
612
|
alex.name; // '@machty'
|
|
895
613
|
```
|
|
896
614
|
|
|
897
|
-
Classic Class Example:
|
|
898
|
-
|
|
899
|
-
```javascript
|
|
900
|
-
import EmberObject, { set } from '@ember/object';
|
|
901
|
-
import { alias } from '@ember/object/computed';
|
|
902
|
-
|
|
903
|
-
let Person = EmberObject.extend({
|
|
904
|
-
name: 'Alex Matchneer',
|
|
905
|
-
|
|
906
|
-
nomen: alias('name')
|
|
907
|
-
});
|
|
908
|
-
|
|
909
|
-
let alex = Person.create();
|
|
910
|
-
|
|
911
|
-
alex.nomen; // 'Alex Matchneer'
|
|
912
|
-
alex.name; // 'Alex Matchneer'
|
|
913
|
-
|
|
914
|
-
set(alex, 'nomen', '@machty');
|
|
915
|
-
alex.name; // '@machty'
|
|
916
|
-
```
|
|
917
|
-
|
|
918
615
|
@method alias
|
|
919
616
|
@static
|
|
920
617
|
@for @ember/object/computed
|
|
@@ -925,11 +622,11 @@ export const or = generateComputedWithPredicate('or', value => !value);
|
|
|
925
622
|
*/
|
|
926
623
|
|
|
927
624
|
/**
|
|
928
|
-
Where `
|
|
929
|
-
data flow, `
|
|
930
|
-
not mutate the upstream property, rather causes the
|
|
931
|
-
the value set. This causes the downstream property
|
|
932
|
-
the upstream property.
|
|
625
|
+
Where the `alias` computed macro aliases `get` and `set`, and allows for
|
|
626
|
+
bidirectional data flow, the `oneWay` computed macro only provides an aliased
|
|
627
|
+
`get`. The `set` will not mutate the upstream property, rather causes the
|
|
628
|
+
current property to become the value set. This causes the downstream property
|
|
629
|
+
to permanently diverge from the upstream property.
|
|
933
630
|
|
|
934
631
|
Example:
|
|
935
632
|
|
|
@@ -955,31 +652,6 @@ export const or = generateComputedWithPredicate('or', value => !value);
|
|
|
955
652
|
teddy.nickName; // 'TeddyBear'
|
|
956
653
|
```
|
|
957
654
|
|
|
958
|
-
Classic Class Example:
|
|
959
|
-
|
|
960
|
-
```javascript
|
|
961
|
-
import EmberObject, { set } from '@ember/object';
|
|
962
|
-
import { oneWay } from '@ember/object/computed';
|
|
963
|
-
|
|
964
|
-
let User = EmberObject.extend({
|
|
965
|
-
firstName: null,
|
|
966
|
-
lastName: null,
|
|
967
|
-
|
|
968
|
-
nickName: oneWay('firstName')
|
|
969
|
-
});
|
|
970
|
-
|
|
971
|
-
let teddy = User.create({
|
|
972
|
-
firstName: 'Teddy',
|
|
973
|
-
lastName: 'Zeenny'
|
|
974
|
-
});
|
|
975
|
-
|
|
976
|
-
teddy.nickName; // 'Teddy'
|
|
977
|
-
|
|
978
|
-
set(teddy, 'nickName', 'TeddyBear'); // 'TeddyBear'
|
|
979
|
-
teddy.firstName; // 'Teddy'
|
|
980
|
-
teddy.nickName; // 'TeddyBear'
|
|
981
|
-
```
|
|
982
|
-
|
|
983
655
|
@method oneWay
|
|
984
656
|
@static
|
|
985
657
|
@for @ember/object/computed
|
|
@@ -994,8 +666,8 @@ export function oneWay(dependentKey) {
|
|
|
994
666
|
return alias(dependentKey).oneWay();
|
|
995
667
|
}
|
|
996
668
|
/**
|
|
997
|
-
This is a more semantically meaningful alias of `
|
|
998
|
-
is somewhat ambiguous as to which direction the data flows.
|
|
669
|
+
This is a more semantically meaningful alias of the `oneWay` computed macro,
|
|
670
|
+
whose name is somewhat ambiguous as to which direction the data flows.
|
|
999
671
|
|
|
1000
672
|
@method reads
|
|
1001
673
|
@static
|
|
@@ -1007,9 +679,10 @@ export function oneWay(dependentKey) {
|
|
|
1007
679
|
*/
|
|
1008
680
|
|
|
1009
681
|
/**
|
|
1010
|
-
Where `
|
|
1011
|
-
a readOnly one way binding. Very often when using
|
|
1012
|
-
not also want changes to propagate back up, as
|
|
682
|
+
Where `oneWay` computed macro provides oneWay bindings, the `readOnly`
|
|
683
|
+
computed macro provides a readOnly one way binding. Very often when using
|
|
684
|
+
the `oneWay` macro one does not also want changes to propagate back up, as
|
|
685
|
+
they will replace the value.
|
|
1013
686
|
|
|
1014
687
|
This prevents the reverse flow, and also throws an exception when it occurs.
|
|
1015
688
|
|
|
@@ -1038,32 +711,6 @@ export function oneWay(dependentKey) {
|
|
|
1038
711
|
teddy.firstName; // 'Teddy'
|
|
1039
712
|
```
|
|
1040
713
|
|
|
1041
|
-
Classic Class Example:
|
|
1042
|
-
|
|
1043
|
-
```javascript
|
|
1044
|
-
import EmberObject, { set } from '@ember/object';
|
|
1045
|
-
import { readOnly } from '@ember/object/computed';
|
|
1046
|
-
|
|
1047
|
-
let User = EmberObject.extend({
|
|
1048
|
-
firstName: null,
|
|
1049
|
-
lastName: null,
|
|
1050
|
-
|
|
1051
|
-
nickName: readOnly('firstName')
|
|
1052
|
-
});
|
|
1053
|
-
|
|
1054
|
-
let teddy = User.create({
|
|
1055
|
-
firstName: 'Teddy',
|
|
1056
|
-
lastName: 'Zeenny'
|
|
1057
|
-
});
|
|
1058
|
-
|
|
1059
|
-
teddy.nickName; // 'Teddy'
|
|
1060
|
-
|
|
1061
|
-
set(teddy, 'nickName', 'TeddyBear'); // throws Exception
|
|
1062
|
-
// throw new EmberError('Cannot Set: nickName on: <User:ember27288>' );`
|
|
1063
|
-
|
|
1064
|
-
teddy.firstName; // 'Teddy'
|
|
1065
|
-
```
|
|
1066
|
-
|
|
1067
714
|
@method readOnly
|
|
1068
715
|
@static
|
|
1069
716
|
@for @ember/object/computed
|
|
@@ -1103,25 +750,6 @@ export function readOnly(dependentKey) {
|
|
|
1103
750
|
hamster.cavendishCount; // 5
|
|
1104
751
|
```
|
|
1105
752
|
|
|
1106
|
-
Classic Class Example:
|
|
1107
|
-
|
|
1108
|
-
```javascript
|
|
1109
|
-
import EmberObject, { set } from '@ember/object';
|
|
1110
|
-
import { deprecatingAlias } from '@ember/object/computed';
|
|
1111
|
-
|
|
1112
|
-
let Hamster = EmberObject.extend({
|
|
1113
|
-
bananaCount: deprecatingAlias('cavendishCount', {
|
|
1114
|
-
id: 'hamster.deprecate-banana',
|
|
1115
|
-
until: '3.0.0'
|
|
1116
|
-
})
|
|
1117
|
-
});
|
|
1118
|
-
|
|
1119
|
-
let hamster = Hamster.create();
|
|
1120
|
-
|
|
1121
|
-
set(hamster, 'bananaCount', 5); // Prints a deprecation warning.
|
|
1122
|
-
hamster.cavendishCount; // 5
|
|
1123
|
-
```
|
|
1124
|
-
|
|
1125
753
|
@method deprecatingAlias
|
|
1126
754
|
@static
|
|
1127
755
|
@for @ember/object/computed
|