ember-source 4.3.0-alpha.3 → 4.3.0-beta.2

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.
Files changed (31) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/build-metadata.json +3 -3
  3. package/dist/dependencies/router_js.js +66 -31
  4. package/dist/ember-template-compiler.js +1163 -773
  5. package/dist/ember-template-compiler.map +1 -1
  6. package/dist/ember-testing.js +74 -43
  7. package/dist/ember-testing.map +1 -1
  8. package/dist/ember.debug.js +3078 -2562
  9. package/dist/ember.debug.map +1 -1
  10. package/dist/header/license.js +1 -1
  11. package/dist/packages/@ember/-internals/container/index.js +15 -10
  12. package/dist/packages/@ember/-internals/glimmer/index.js +113 -45
  13. package/dist/packages/@ember/-internals/meta/lib/meta.js +8 -9
  14. package/dist/packages/@ember/-internals/metal/index.js +44 -45
  15. package/dist/packages/@ember/-internals/routing/lib/ext/controller.js +10 -8
  16. package/dist/packages/@ember/-internals/routing/lib/services/router.js +165 -197
  17. package/dist/packages/@ember/-internals/routing/lib/system/route-info.js +2 -2
  18. package/dist/packages/@ember/-internals/routing/lib/system/route.js +96 -375
  19. package/dist/packages/@ember/-internals/routing/lib/system/router.js +62 -35
  20. package/dist/packages/@ember/-internals/routing/lib/utils.js +31 -20
  21. package/dist/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +32 -32
  22. package/dist/packages/@ember/-internals/utils/index.js +2 -0
  23. package/dist/packages/@ember/-internals/views/lib/system/utils.js +1 -0
  24. package/dist/packages/@ember/canary-features/index.js +2 -2
  25. package/dist/packages/@ember/controller/index.js +3 -54
  26. package/dist/packages/@ember/instrumentation/index.js +9 -13
  27. package/dist/packages/@ember/routing/router-service.js +1 -0
  28. package/dist/packages/@ember/service/index.js +6 -73
  29. package/dist/packages/ember/version.js +1 -1
  30. package/docs/data.json +420 -352
  31. package/package.json +14 -14
package/docs/data.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "The Ember API",
4
4
  "description": "The Ember API: a framework for building ambitious web applications",
5
5
  "url": "https://emberjs.com/",
6
- "version": "4.3.0-alpha.3"
6
+ "version": "4.3.0-beta.2"
7
7
  },
8
8
  "files": {
9
9
  "node_modules/rsvp/lib/rsvp/promise/all.js": {
@@ -1339,6 +1339,13 @@
1339
1339
  },
1340
1340
  "namespaces": {}
1341
1341
  },
1342
+ "packages/@ember/controller/lib/controller_mixin.d.ts": {
1343
+ "name": "packages/@ember/controller/lib/controller_mixin.d.ts",
1344
+ "modules": {},
1345
+ "classes": {},
1346
+ "fors": {},
1347
+ "namespaces": {}
1348
+ },
1342
1349
  "packages/@ember/controller/lib/controller_mixin.js": {
1343
1350
  "name": "packages/@ember/controller/lib/controller_mixin.js",
1344
1351
  "modules": {},
@@ -1350,8 +1357,8 @@
1350
1357
  "Ember": 1
1351
1358
  }
1352
1359
  },
1353
- "packages/@ember/controller/index.js": {
1354
- "name": "packages/@ember/controller/index.js",
1360
+ "packages/@ember/controller/index.ts": {
1361
+ "name": "packages/@ember/controller/index.ts",
1355
1362
  "modules": {
1356
1363
  "@ember/controller": 1
1357
1364
  },
@@ -1552,8 +1559,8 @@
1552
1559
  },
1553
1560
  "namespaces": {}
1554
1561
  },
1555
- "packages/@ember/service/index.js": {
1556
- "name": "packages/@ember/service/index.js",
1562
+ "packages/@ember/service/index.ts": {
1563
+ "name": "packages/@ember/service/index.ts",
1557
1564
  "modules": {
1558
1565
  "@ember/service": 1
1559
1566
  },
@@ -2076,8 +2083,8 @@
2076
2083
  },
2077
2084
  "namespaces": {},
2078
2085
  "tag": "module",
2079
- "file": "packages/@ember/controller/index.js",
2080
- "line": 9
2086
+ "file": "packages/@ember/controller/index.ts",
2087
+ "line": 11
2081
2088
  },
2082
2089
  "@ember/destroyable": {
2083
2090
  "name": "@ember/destroyable",
@@ -2158,7 +2165,7 @@
2158
2165
  "namespaces": {},
2159
2166
  "tag": "module",
2160
2167
  "file": "packages/@ember/instrumentation/index.ts",
2161
- "line": 39,
2168
+ "line": 40,
2162
2169
  "access": "private",
2163
2170
  "tagname": ""
2164
2171
  },
@@ -2205,8 +2212,8 @@
2205
2212
  },
2206
2213
  "namespaces": {},
2207
2214
  "tag": "module",
2208
- "file": "packages/@ember/service/index.js",
2209
- "line": 74,
2215
+ "file": "packages/@ember/service/index.ts",
2216
+ "line": 90,
2210
2217
  "access": "public",
2211
2218
  "tagname": ""
2212
2219
  },
@@ -2221,7 +2228,7 @@
2221
2228
  "namespaces": {},
2222
2229
  "tag": "module",
2223
2230
  "file": "packages/@ember/string/index.ts",
2224
- "line": 73
2231
+ "line": 74
2225
2232
  },
2226
2233
  "@ember/test": {
2227
2234
  "name": "@ember/test",
@@ -2310,7 +2317,7 @@
2310
2317
  "module": "rsvp",
2311
2318
  "namespace": "",
2312
2319
  "file": "packages/@ember/-internals/container/lib/container.ts",
2313
- "line": 58,
2320
+ "line": 55,
2314
2321
  "description": "A container used to instantiate and cache objects.\n\nEvery `Container` must be associated with a `Registry`, which is referenced\nto determine the factory and options that should be used to instantiate\nobjects.\n\nThe public API for `Container` is still in flux and should not be considered\nstable.",
2315
2322
  "access": "private",
2316
2323
  "tagname": ""
@@ -2594,7 +2601,7 @@
2594
2601
  "module": "@ember/object",
2595
2602
  "namespace": "",
2596
2603
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
2597
- "line": 48,
2604
+ "line": 49,
2598
2605
  "description": "Objects of this type can implement an interface to respond to requests to\nget and set. The default implementation handles simple properties.",
2599
2606
  "access": "private",
2600
2607
  "tagname": ""
@@ -2700,7 +2707,7 @@
2700
2707
  "module": "@ember/object",
2701
2708
  "namespace": "",
2702
2709
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
2703
- "line": 445,
2710
+ "line": 440,
2704
2711
  "description": "The `Mixin` class allows you to create mixins, whose properties can be\nadded to other classes. For instance,\n\n```javascript\nimport Mixin from '@ember/object/mixin';\n\nconst EditableMixin = Mixin.create({\n edit() {\n console.log('starting to edit');\n this.set('isEditing', true);\n },\n isEditing: false\n});\n```\n\n```javascript\nimport EmberObject from '@ember/object';\nimport EditableMixin from '../mixins/editable';\n\n// Mix mixins into classes by passing them as the first arguments to\n// `.extend.`\nconst Comment = EmberObject.extend(EditableMixin, {\n post: null\n});\n\nlet comment = Comment.create({\n post: somePost\n});\n\ncomment.edit(); // outputs 'starting to edit'\n```\n\nNote that Mixins are created with `Mixin.create`, not\n`Mixin.extend`.\n\nNote that mixins extend a constructor's prototype so arrays and object literals\ndefined as properties will be shared amongst objects that implement the mixin.\nIf you want to define a property in a mixin that is not shared, you can define\nit either as a computed property or have it be created on initialization of the object.\n\n```javascript\n// filters array will be shared amongst any object implementing mixin\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\n\nconst FilterableMixin = Mixin.create({\n filters: A()\n});\n```\n\n```javascript\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\nimport { computed } from '@ember/object';\n\n// filters will be a separate array for every object implementing the mixin\nconst FilterableMixin = Mixin.create({\n filters: computed(function() {\n return A();\n })\n});\n```\n\n```javascript\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\n\n// filters will be created as a separate array during the object's initialization\nconst Filterable = Mixin.create({\n filters: null,\n\n init() {\n this._super(...arguments);\n this.set(\"filters\", A());\n }\n});\n```",
2705
2712
  "access": "public",
2706
2713
  "tagname": ""
@@ -2853,7 +2860,7 @@
2853
2860
  "module": "@ember/routing",
2854
2861
  "namespace": "",
2855
2862
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
2856
- "line": 24,
2863
+ "line": 25,
2857
2864
  "description": "The Router service is the public API that provides access to the router.\n\nThe immediate benefit of the Router service is that you can inject it into components,\ngiving them a friendly way to initiate transitions and ask questions about the current\nglobal router state.\n\nIn this example, the Router service is injected into a component to initiate a transition\nto a dedicated route:\n\n```app/components/example.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { service } from '@ember/service';\n\nexport default class ExampleComponent extends Component {\n @service router;\n\n @action\n next() {\n this.router.transitionTo('other.route');\n }\n}\n```\n\nLike any service, it can also be injected into helpers, routes, etc.",
2858
2865
  "access": "public",
2859
2866
  "tagname": "",
@@ -2870,7 +2877,7 @@
2870
2877
  "module": "ember",
2871
2878
  "namespace": "",
2872
2879
  "file": "packages/@ember/-internals/routing/lib/services/routing.ts",
2873
- "line": 15,
2880
+ "line": 17,
2874
2881
  "description": "The Routing service is used by LinkTo, and provides facilities for\nthe component/view layer to interact with the router.\n\nThis is a private service for internal usage only. For public usage,\nrefer to the `Router` service.",
2875
2882
  "access": "private",
2876
2883
  "tagname": ""
@@ -2902,7 +2909,7 @@
2902
2909
  "module": "ember",
2903
2910
  "namespace": "",
2904
2911
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
2905
- "line": 1,
2912
+ "line": 3,
2906
2913
  "description": "A `RouteInfoWithAttributes` is an object that contains\nmetadata, including the resolved value from the routes\n`model` hook. Like `RouteInfo`, a `RouteInfoWithAttributes`\nrepresents a specific route within a Transition.\nIt is read-only and internally immutable. It is also not\nobservable, because a Transition instance is never\nchanged after creation.",
2907
2914
  "access": "public",
2908
2915
  "tagname": ""
@@ -2918,7 +2925,7 @@
2918
2925
  "module": "ember",
2919
2926
  "namespace": "",
2920
2927
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
2921
- "line": 118,
2928
+ "line": 120,
2922
2929
  "description": "A RouteInfo is an object that contains metadata\nabout a specific route within a Transition. It is\nread-only and internally immutable. It is also not\nobservable, because a Transition instance is never\nchanged after creation.",
2923
2930
  "access": "public",
2924
2931
  "tagname": ""
@@ -2934,7 +2941,7 @@
2934
2941
  "module": "@ember/routing",
2935
2942
  "namespace": "",
2936
2943
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
2937
- "line": 100,
2944
+ "line": 79,
2938
2945
  "description": "The `Route` class is used to define individual routes. Refer to\nthe [routing guide](https://guides.emberjs.com/release/routing/) for documentation.",
2939
2946
  "extends": "EmberObject",
2940
2947
  "uses": [
@@ -2956,7 +2963,7 @@
2956
2963
  "module": "@ember/routing",
2957
2964
  "namespace": "",
2958
2965
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
2959
- "line": 133,
2966
+ "line": 143,
2960
2967
  "description": "The `EmberRouter` class manages the application state and URLs. Refer to\nthe [routing guide](https://guides.emberjs.com/release/routing/) for documentation.",
2961
2968
  "extends": "EmberObject",
2962
2969
  "uses": [
@@ -3547,8 +3554,8 @@
3547
3554
  "extension_for": [],
3548
3555
  "module": "@ember/controller",
3549
3556
  "namespace": "",
3550
- "file": "packages/@ember/controller/index.js",
3551
- "line": 9,
3557
+ "file": "packages/@ember/controller/index.ts",
3558
+ "line": 11,
3552
3559
  "extends": "EmberObject",
3553
3560
  "uses": [
3554
3561
  "Ember.ControllerMixin"
@@ -3670,7 +3677,7 @@
3670
3677
  "module": "@ember/instrumentation",
3671
3678
  "namespace": "",
3672
3679
  "file": "packages/@ember/instrumentation/index.ts",
3673
- "line": 39,
3680
+ "line": 40,
3674
3681
  "description": "The purpose of the Ember Instrumentation module is\nto provide efficient, general-purpose instrumentation\nfor Ember.\n\nSubscribe to a listener by using `subscribe`:\n\n```javascript\nimport { subscribe } from '@ember/instrumentation';\n\nsubscribe(\"render\", {\n before(name, timestamp, payload) {\n\n },\n\n after(name, timestamp, payload) {\n\n }\n});\n```\n\nIf you return a value from the `before` callback, that same\nvalue will be passed as a fourth parameter to the `after`\ncallback.\n\nInstrument a block of code by using `instrument`:\n\n```javascript\nimport { instrument } from '@ember/instrumentation';\n\ninstrument(\"render.handlebars\", payload, function() {\n // rendering logic\n}, binding);\n```\n\nEvent names passed to `instrument` are namespaced\nby periods, from more general to more specific. Subscribers\ncan listen for events by whatever level of granularity they\nare interested in.\n\nIn the above example, the event is `render.handlebars`,\nand the subscriber listened for all events beginning with\n`render`. It would receive callbacks for events named\n`render`, `render.handlebars`, `render.container`, or\neven `render.handlebars.layout`.",
3675
3682
  "static": 1,
3676
3683
  "access": "private",
@@ -3741,8 +3748,8 @@
3741
3748
  "extension_for": [],
3742
3749
  "module": "@ember/service",
3743
3750
  "namespace": "",
3744
- "file": "packages/@ember/service/index.js",
3745
- "line": 74,
3751
+ "file": "packages/@ember/service/index.ts",
3752
+ "line": 90,
3746
3753
  "extends": "EmberObject",
3747
3754
  "since": "1.10.0",
3748
3755
  "access": "public",
@@ -3759,7 +3766,7 @@
3759
3766
  "module": "@ember/string",
3760
3767
  "namespace": "",
3761
3768
  "file": "packages/@ember/string/index.ts",
3762
- "line": 73,
3769
+ "line": 74,
3763
3770
  "description": "Defines string helper methods including string formatting and localization.",
3764
3771
  "access": "public",
3765
3772
  "tagname": ""
@@ -4443,7 +4450,7 @@
4443
4450
  },
4444
4451
  {
4445
4452
  "file": "packages/@ember/-internals/container/lib/container.ts",
4446
- "line": 98,
4453
+ "line": 95,
4447
4454
  "access": "private",
4448
4455
  "tagname": "",
4449
4456
  "itemtype": "property",
@@ -4455,7 +4462,7 @@
4455
4462
  },
4456
4463
  {
4457
4464
  "file": "packages/@ember/-internals/container/lib/container.ts",
4458
- "line": 105,
4465
+ "line": 102,
4459
4466
  "access": "private",
4460
4467
  "tagname": "",
4461
4468
  "itemtype": "property",
@@ -4466,7 +4473,7 @@
4466
4473
  },
4467
4474
  {
4468
4475
  "file": "packages/@ember/-internals/container/lib/container.ts",
4469
- "line": 111,
4476
+ "line": 108,
4470
4477
  "access": "private",
4471
4478
  "tagname": "",
4472
4479
  "itemtype": "property",
@@ -4477,7 +4484,7 @@
4477
4484
  },
4478
4485
  {
4479
4486
  "file": "packages/@ember/-internals/container/lib/container.ts",
4480
- "line": 117,
4487
+ "line": 114,
4481
4488
  "description": "Given a fullName return a corresponding instance.\n The default behavior is for lookup to return a singleton instance.\nThe singleton is scoped to the container, allowing multiple containers\nto all have their own locally scoped singletons.\n ```javascript\nlet registry = new Registry();\nlet container = registry.container();\n registry.register('api:twitter', Twitter);\n let twitter = container.lookup('api:twitter');\n twitter instanceof Twitter; // => true\n // by default the container will return singletons\nlet twitter2 = container.lookup('api:twitter');\ntwitter2 instanceof Twitter; // => true\n twitter === twitter2; //=> true\n```\n If singletons are not wanted, an optional flag can be provided at lookup.\n ```javascript\nlet registry = new Registry();\nlet container = registry.container();\n registry.register('api:twitter', Twitter);\n let twitter = container.lookup('api:twitter', { singleton: false });\nlet twitter2 = container.lookup('api:twitter', { singleton: false });\n twitter === twitter2; //=> false\n```",
4482
4489
  "access": "private",
4483
4490
  "tagname": "",
@@ -4513,7 +4520,7 @@
4513
4520
  },
4514
4521
  {
4515
4522
  "file": "packages/@ember/-internals/container/lib/container.ts",
4516
- "line": 157,
4523
+ "line": 154,
4517
4524
  "description": "A depth first traversal, destroying the container, its descendant containers and all\ntheir managed objects.",
4518
4525
  "access": "private",
4519
4526
  "tagname": "",
@@ -4524,7 +4531,7 @@
4524
4531
  },
4525
4532
  {
4526
4533
  "file": "packages/@ember/-internals/container/lib/container.ts",
4527
- "line": 174,
4534
+ "line": 171,
4528
4535
  "description": "Clear either the entire cache or just the cache for a particular key.",
4529
4536
  "access": "private",
4530
4537
  "tagname": "",
@@ -4542,7 +4549,7 @@
4542
4549
  },
4543
4550
  {
4544
4551
  "file": "packages/@ember/-internals/container/lib/container.ts",
4545
- "line": 191,
4552
+ "line": 188,
4546
4553
  "description": "Returns an object that can be used to provide an owner to a\nmanually created instance.",
4547
4554
  "access": "private",
4548
4555
  "tagname": "",
@@ -4557,7 +4564,7 @@
4557
4564
  },
4558
4565
  {
4559
4566
  "file": "packages/@ember/-internals/container/lib/container.ts",
4560
- "line": 204,
4567
+ "line": 201,
4561
4568
  "description": "Given a fullName, return the corresponding factory. The consumer of the factory\nis responsible for the destruction of any factory instances, as there is no\nway for the container to ensure instances are destroyed when it itself is\ndestroyed.",
4562
4569
  "access": "public",
4563
4570
  "tagname": "",
@@ -4949,14 +4956,14 @@
4949
4956
  },
4950
4957
  {
4951
4958
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4952
- "line": 449,
4959
+ "line": 450,
4953
4960
  "description": "This is deprecated in favor of explicit injection of dependencies.\n\nReference: https://deprecations.emberjs.com/v3.x#toc_implicit-injections\n```\n\n@private\n@method injection\n@param {String} factoryName\n@param {String} property\n@param {String} injectionName\n@deprecated",
4954
4961
  "class": "Registry",
4955
4962
  "module": "rsvp"
4956
4963
  },
4957
4964
  {
4958
4965
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4959
- "line": 479,
4966
+ "line": 480,
4960
4967
  "access": "private",
4961
4968
  "tagname": "",
4962
4969
  "itemtype": "method",
@@ -5699,7 +5706,7 @@
5699
5706
  },
5700
5707
  {
5701
5708
  "file": "packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts",
5702
- "line": 11,
5709
+ "line": 12,
5703
5710
  "description": "This reference is used to get the `[]` tag of iterables, so we can trigger\nupdates to `{{each}}` when it changes. It is put into place by a template\ntransform at build time, similar to the (-each-in) helper",
5704
5711
  "class": "Ember.Templates.helpers",
5705
5712
  "module": "ember"
@@ -5764,7 +5771,7 @@
5764
5771
  },
5765
5772
  {
5766
5773
  "file": "packages/@ember/-internals/glimmer/lib/helpers/each-in.ts",
5767
- "line": 12,
5774
+ "line": 13,
5768
5775
  "description": "The `{{#each}}` helper loops over elements in a collection. It is an extension\nof the base Handlebars `{{#each}}` helper.\n\nThe default behavior of `{{#each}}` is to yield its inner block once for every\nitem in an array passing the item as the first block parameter.\n\nAssuming the `@developers` argument contains this array:\n\n```javascript\n[{ name: 'Yehuda' },{ name: 'Tom' }, { name: 'Paul' }];\n```\n\n```handlebars\n<ul>\n {{#each @developers as |person|}}\n <li>Hello, {{person.name}}!</li>\n {{/each}}\n</ul>\n```\n\nThe same rules apply to arrays of primitives.\n\n```javascript\n['Yehuda', 'Tom', 'Paul']\n```\n\n```handlebars\n<ul>\n {{#each @developerNames as |name|}}\n <li>Hello, {{name}}!</li>\n {{/each}}\n</ul>\n```\n\nDuring iteration, the index of each item in the array is provided as a second block\nparameter.\n\n```handlebars\n<ul>\n {{#each @developers as |person index|}}\n <li>Hello, {{person.name}}! You're number {{index}} in line</li>\n {{/each}}\n</ul>\n```\n\n### Specifying Keys\n\nIn order to improve rendering speed, Ember will try to reuse the DOM elements\nwhere possible. Specifically, if the same item is present in the array both\nbefore and after the change, its DOM output will be reused.\n\nThe `key` option is used to tell Ember how to determine if the items in the\narray being iterated over with `{{#each}}` has changed between renders. By\ndefault the item's object identity is used.\n\nThis is usually sufficient, so in most cases, the `key` option is simply not\nneeded. However, in some rare cases, the objects' identities may change even\nthough they represent the same underlying data.\n\nFor example:\n\n```javascript\npeople.map(person => {\n return { ...person, type: 'developer' };\n});\n```\n\nIn this case, each time the `people` array is `map`-ed over, it will produce\nan new array with completely different objects between renders. In these cases,\nyou can help Ember determine how these objects related to each other with the\n`key` option:\n\n```handlebars\n<ul>\n {{#each @developers key=\"name\" as |person|}}\n <li>Hello, {{person.name}}!</li>\n {{/each}}\n</ul>\n```\n\nBy doing so, Ember will use the value of the property specified (`person.name`\nin the example) to find a \"match\" from the previous render. That is, if Ember\nhas previously seen an object from the `@developers` array with a matching\nname, its DOM elements will be re-used.\n\nThere are two special values for `key`:\n\n * `@index` - The index of the item in the array.\n * `@identity` - The item in the array itself.\n\n### {{else}} condition\n\n`{{#each}}` can have a matching `{{else}}`. The contents of this block will render\nif the collection is empty.\n\n```handlebars\n<ul>\n {{#each @developers as |person|}}\n <li>{{person.name}} is available!</li>\n {{else}}\n <li>Sorry, nobody is available for this task.</li>\n {{/each}}\n</ul>\n```",
5769
5776
  "itemtype": "method",
5770
5777
  "name": "each",
@@ -5775,7 +5782,7 @@
5775
5782
  },
5776
5783
  {
5777
5784
  "file": "packages/@ember/-internals/glimmer/lib/helpers/each-in.ts",
5778
- "line": 123,
5785
+ "line": 124,
5779
5786
  "description": "The `{{each-in}}` helper loops over properties on an object.\n\nFor example, given this component definition:\n\n```app/components/developer-details.js\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class extends Component {\n @tracked developer = {\n \"name\": \"Shelly Sails\",\n \"age\": 42\n };\n}\n```\n\nThis template would display all properties on the `developer`\nobject in a list:\n\n```app/components/developer-details.hbs\n<ul>\n {{#each-in this.developer as |key value|}}\n <li>{{key}}: {{value}}</li>\n {{/each-in}}\n</ul>\n```\n\nOutputting their name and age:\n\n```html\n<ul>\n <li>name: Shelly Sails</li>\n <li>age: 42</li>\n</ul>\n```",
5780
5787
  "itemtype": "method",
5781
5788
  "name": "each-in",
@@ -5911,7 +5918,7 @@
5911
5918
  },
5912
5919
  {
5913
5920
  "file": "packages/@ember/-internals/glimmer/lib/helpers/readonly.ts",
5914
- "line": 8,
5921
+ "line": 9,
5915
5922
  "description": "The `readonly` helper let's you specify that a binding is one-way only,\ninstead of two-way.\nWhen you pass a `readonly` binding from an outer context (e.g. parent component),\nto to an inner context (e.g. child component), you are saying that changing that\nproperty in the inner context does not change the value in the outer context.\n\nTo specify that a binding is read-only, when invoking the child `Component`:\n\n```app/components/my-parent.js\nexport default Component.extend({\n totalClicks: 3\n});\n```\n\n```app/templates/components/my-parent.hbs\n{{log totalClicks}} // -> 3\n<MyChild @childClickCount={{readonly totalClicks}} />\n```\n```\n{{my-child childClickCount=(readonly totalClicks)}}\n```\n\nNow, when you update `childClickCount`:\n\n```app/components/my-child.js\nexport default Component.extend({\n click() {\n this.incrementProperty('childClickCount');\n }\n});\n```\n\nThe value updates in the child component, but not the parent component:\n\n```app/templates/components/my-child.hbs\n{{log childClickCount}} //-> 4\n```\n\n```app/templates/components/my-parent.hbs\n{{log totalClicks}} //-> 3\n<MyChild @childClickCount={{readonly totalClicks}} />\n```\nor\n```app/templates/components/my-parent.hbs\n{{log totalClicks}} //-> 3\n{{my-child childClickCount=(readonly totalClicks)}}\n```\n\n### Objects and Arrays\n\nWhen passing a property that is a complex object (e.g. object, array) instead of a primitive object (e.g. number, string),\nonly the reference to the object is protected using the readonly helper.\nThis means that you can change properties of the object both on the parent component, as well as the child component.\nThe `readonly` binding behaves similar to the `const` keyword in JavaScript.\n\nLet's look at an example:\n\nFirst let's set up the parent component:\n\n```app/components/my-parent.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n clicks: null,\n\n init() {\n this._super(...arguments);\n this.set('clicks', { total: 3 });\n }\n});\n```\n\n```app/templates/components/my-parent.hbs\n{{log clicks.total}} //-> 3\n<MyChild @childClicks={{readonly clicks}} />\n```\n```app/templates/components/my-parent.hbs\n{{log clicks.total}} //-> 3\n{{my-child childClicks=(readonly clicks)}}\n```\n\nNow, if you update the `total` property of `childClicks`:\n\n```app/components/my-child.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n click() {\n this.get('clicks').incrementProperty('total');\n }\n});\n```\n\nYou will see the following happen:\n\n```app/templates/components/my-parent.hbs\n{{log clicks.total}} //-> 4\n<MyChild @childClicks={{readonly clicks}} />\n```\nor\n```app/templates/components/my-parent.hbs\n{{log clicks.total}} //-> 4\n{{my-child childClicks=(readonly clicks)}}\n```\n\n```app/templates/components/my-child.hbs\n{{log childClicks.total}} //-> 4\n```",
5916
5923
  "itemtype": "method",
5917
5924
  "name": "readonly",
@@ -6727,7 +6734,7 @@
6727
6734
  },
6728
6735
  {
6729
6736
  "file": "packages/@ember/-internals/meta/lib/meta.ts",
6730
- "line": 472,
6737
+ "line": 473,
6731
6738
  "description": "Flattening is based on a global revision counter. If the revision has\nbumped it means that somewhere in a class inheritance chain something has\nchanged, so we need to reflatten everything. This can only happen if:\n\n1. A meta has been flattened (listener has been called)\n2. The meta is a prototype meta with children who have inherited its\n listeners\n3. A new listener is subsequently added to the meta (e.g. via `.reopen()`)\n\nThis is a very rare occurrence, so while the counter is global it shouldn't\nbe updated very often in practice.",
6732
6739
  "class": "Ember",
6733
6740
  "module": "ember"
@@ -6740,13 +6747,13 @@
6740
6747
  },
6741
6748
  {
6742
6749
  "file": "packages/@ember/-internals/meta/lib/meta.ts",
6743
- "line": 580,
6750
+ "line": 578,
6744
6751
  "class": "Ember",
6745
6752
  "module": "ember"
6746
6753
  },
6747
6754
  {
6748
6755
  "file": "packages/@ember/-internals/meta/lib/meta.ts",
6749
- "line": 674,
6756
+ "line": 670,
6750
6757
  "description": "Retrieves the meta hash for an object. If `writable` is true ensures the\nhash is writable for this object as well.\n\nThe meta object contains information about computed property descriptors as\nwell as any watched properties and other information. You generally will\nnot access this information directly but instead work with higher level\nmethods that manipulate this hash indirectly.",
6751
6758
  "itemtype": "method",
6752
6759
  "name": "meta",
@@ -6887,7 +6894,7 @@
6887
6894
  },
6888
6895
  {
6889
6896
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6890
- "line": 908,
6897
+ "line": 911,
6891
6898
  "description": "Allows checking if a given property on an object is a computed property. For the most part,\nthis doesn't matter (you would normally just access the property directly and use its value),\nbut for some tooling specific scenarios (e.g. the ember-inspector) it is important to\ndifferentiate if a property is a computed property or a \"normal\" property.\n\nThis will work on either a class's prototype or an instance itself.",
6892
6899
  "static": 1,
6893
6900
  "itemtype": "method",
@@ -6899,7 +6906,7 @@
6899
6906
  },
6900
6907
  {
6901
6908
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6902
- "line": 154,
6909
+ "line": 158,
6903
6910
  "description": "Returns the CP descriptor associated with `obj` and `keyName`, if any.",
6904
6911
  "itemtype": "method",
6905
6912
  "name": "descriptorForProperty",
@@ -6926,7 +6933,7 @@
6926
6933
  },
6927
6934
  {
6928
6935
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6929
- "line": 182,
6936
+ "line": 186,
6930
6937
  "description": "Check whether a value is a decorator",
6931
6938
  "itemtype": "method",
6932
6939
  "name": "isClassicDecorator",
@@ -6948,7 +6955,7 @@
6948
6955
  },
6949
6956
  {
6950
6957
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6951
- "line": 194,
6958
+ "line": 198,
6952
6959
  "description": "Set a value as a decorator",
6953
6960
  "itemtype": "method",
6954
6961
  "name": "setClassicDecorator",
@@ -7299,7 +7306,7 @@
7299
7306
  },
7300
7307
  {
7301
7308
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7302
- "line": 431,
7309
+ "line": 426,
7303
7310
  "itemtype": "method",
7304
7311
  "name": "mixin",
7305
7312
  "params": [
@@ -7323,43 +7330,43 @@
7323
7330
  },
7324
7331
  {
7325
7332
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7326
- "line": 528,
7333
+ "line": 523,
7327
7334
  "class": "Mixin",
7328
7335
  "module": "@ember/object"
7329
7336
  },
7330
7337
  {
7331
7338
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7332
- "line": 531,
7339
+ "line": 526,
7333
7340
  "class": "Mixin",
7334
7341
  "module": "@ember/object"
7335
7342
  },
7336
7343
  {
7337
7344
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7338
- "line": 534,
7345
+ "line": 529,
7339
7346
  "class": "Mixin",
7340
7347
  "module": "@ember/object"
7341
7348
  },
7342
7349
  {
7343
7350
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7344
- "line": 537,
7351
+ "line": 532,
7345
7352
  "class": "Mixin",
7346
7353
  "module": "@ember/object"
7347
7354
  },
7348
7355
  {
7349
7356
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7350
- "line": 540,
7357
+ "line": 535,
7351
7358
  "class": "Mixin",
7352
7359
  "module": "@ember/object"
7353
7360
  },
7354
7361
  {
7355
7362
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7356
- "line": 543,
7363
+ "line": 538,
7357
7364
  "class": "Mixin",
7358
7365
  "module": "@ember/object"
7359
7366
  },
7360
7367
  {
7361
7368
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7362
- "line": 569,
7369
+ "line": 564,
7363
7370
  "itemtype": "method",
7364
7371
  "name": "create",
7365
7372
  "static": 1,
@@ -7377,13 +7384,13 @@
7377
7384
  },
7378
7385
  {
7379
7386
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7380
- "line": 584,
7387
+ "line": 579,
7381
7388
  "class": "@ember/object/mixin",
7382
7389
  "module": "@ember/object"
7383
7390
  },
7384
7391
  {
7385
7392
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7386
- "line": 602,
7393
+ "line": 597,
7387
7394
  "itemtype": "method",
7388
7395
  "name": "reopen",
7389
7396
  "params": [
@@ -7401,7 +7408,7 @@
7401
7408
  },
7402
7409
  {
7403
7410
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7404
- "line": 625,
7411
+ "line": 620,
7405
7412
  "itemtype": "method",
7406
7413
  "name": "apply",
7407
7414
  "params": [
@@ -7421,13 +7428,13 @@
7421
7428
  },
7422
7429
  {
7423
7430
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7424
- "line": 641,
7431
+ "line": 636,
7425
7432
  "class": "@ember/object/mixin",
7426
7433
  "module": "@ember/object"
7427
7434
  },
7428
7435
  {
7429
7436
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7430
- "line": 646,
7437
+ "line": 641,
7431
7438
  "itemtype": "method",
7432
7439
  "name": "detect",
7433
7440
  "params": [
@@ -7448,25 +7455,25 @@
7448
7455
  },
7449
7456
  {
7450
7457
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7451
- "line": 667,
7458
+ "line": 662,
7452
7459
  "class": "@ember/object/mixin",
7453
7460
  "module": "@ember/object"
7454
7461
  },
7455
7462
  {
7456
7463
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7457
- "line": 674,
7464
+ "line": 669,
7458
7465
  "class": "@ember/object/mixin",
7459
7466
  "module": "@ember/object"
7460
7467
  },
7461
7468
  {
7462
7469
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7463
- "line": 679,
7470
+ "line": 674,
7464
7471
  "class": "@ember/object/mixin",
7465
7472
  "module": "@ember/object"
7466
7473
  },
7467
7474
  {
7468
7475
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7469
- "line": 771,
7476
+ "line": 766,
7470
7477
  "description": "Specify a method that observes property changes.\n\n```javascript\nimport EmberObject from '@ember/object';\nimport { observer } from '@ember/object';\n\nexport default EmberObject.extend({\n valueObserver: observer('value', function() {\n // Executes whenever the \"value\" property changes\n })\n});\n```\n\nAlso available as `Function.prototype.observes` if prototype extensions are\nenabled.",
7471
7478
  "itemtype": "method",
7472
7479
  "name": "observer",
@@ -7806,7 +7813,7 @@
7806
7813
  },
7807
7814
  {
7808
7815
  "file": "packages/@ember/-internals/metal/lib/tracked.ts",
7809
- "line": 16,
7816
+ "line": 17,
7810
7817
  "decorator": "",
7811
7818
  "access": "private",
7812
7819
  "tagname": "Marks a property as tracked.\n\nBy default, a component's properties are expected to be static,\nmeaning you are not able to update them and have the template update accordingly.\nMarking a property as tracked means that when that property changes,\na rerender of the component is scheduled so the template is kept up to date.\n\nThere are two usages for the `@tracked` decorator, shown below.",
@@ -7892,7 +7899,7 @@
7892
7899
  },
7893
7900
  {
7894
7901
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7895
- "line": 24,
7902
+ "line": 25,
7896
7903
  "description": "Defines which query parameters the controller accepts.\nIf you give the names `['category','page']` it will bind\nthe values of these query parameters to the variables\n`this.category` and `this.page`.\n\nBy default, query parameters are parsed as strings. This\nmay cause unexpected behavior if a query parameter is used with `toggleProperty`,\nbecause the initial value set for `param=false` will be the string `\"false\"`, which is truthy.\n\nTo avoid this, you may specify that the query parameter should be parsed as a boolean\nby using the following verbose form with a `type` property:\n```javascript\n queryParams: [{\n category: {\n type: 'boolean'\n }\n }]\n```\nAvailable values for the `type` parameter are `'boolean'`, `'number'`, `'array'`, and `'string'`.\nIf query param type is not specified, it will default to `'string'`.",
7897
7904
  "itemtype": "property",
7898
7905
  "name": "queryParams",
@@ -7903,7 +7910,7 @@
7903
7910
  },
7904
7911
  {
7905
7912
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7906
- "line": 52,
7913
+ "line": 53,
7907
7914
  "description": "This property is updated to various different callback functions depending on\nthe current \"state\" of the backing route. It is used by\n`Controller.prototype._qpChanged`.\n\nThe methods backing each state can be found in the `Route.prototype._qp` computed\nproperty return value (the `.states` property). The current values are listed here for\nthe sanity of future travelers:\n\n* `inactive` - This state is used when this controller instance is not part of the active\n route hierarchy. Set in `Route.prototype._reset` (a `router.js` microlib hook) and\n `Route.prototype.actions.finalizeQueryParamChange`.\n* `active` - This state is used when this controller instance is part of the active\n route hierarchy. Set in `Route.prototype.actions.finalizeQueryParamChange`.\n* `allowOverrides` - This state is used in `Route.prototype.setup` (`route.js` microlib hook).",
7908
7915
  "itemtype": "method",
7909
7916
  "name": "_qpDelegate",
@@ -7914,7 +7921,7 @@
7914
7921
  },
7915
7922
  {
7916
7923
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7917
- "line": 73,
7924
+ "line": 74,
7918
7925
  "description": "During `Route#setup` observers are created to invoke this method\nwhen any of the query params declared in `Controller#queryParams` property\nare changed.\n\nWhen invoked this method uses the currently active query param update delegate\n(see `Controller.prototype._qpDelegate` for details) and invokes it with\nthe QP key/value being changed.",
7919
7926
  "itemtype": "method",
7920
7927
  "name": "_qpChanged",
@@ -7925,13 +7932,18 @@
7925
7932
  },
7926
7933
  {
7927
7934
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7928
- "line": 94,
7935
+ "line": 95,
7929
7936
  "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\n```javascript\naController.transitionToRoute('blogPosts');\naController.transitionToRoute('blogPosts.recentEntries');\n```\n\nOptionally supply a model for the route in question. The model\nwill be serialized into the URL using the `serialize` hook of\nthe route:\n\n```javascript\naController.transitionToRoute('blogPost', aPost);\n```\n\nIf a literal is passed (such as a number or a string), it will\nbe treated as an identifier instead. In this case, the `model`\nhook of the route will be triggered:\n\n```javascript\naController.transitionToRoute('blogPost', 1);\n```\n\nMultiple models will be applied last to first recursively up the\nroute tree.\n\n```app/router.js\nRouter.map(function() {\n this.route('blogPost', { path: ':blogPostId' }, function() {\n this.route('blogComment', { path: ':blogCommentId', resetNamespace: true });\n });\n});\n```\n\n```javascript\naController.transitionToRoute('blogComment', aPost, aComment);\naController.transitionToRoute('blogComment', 1, 13);\n```\n\nIt is also possible to pass a URL (a string that starts with a\n`/`).\n\n```javascript\naController.transitionToRoute('/');\naController.transitionToRoute('/blog/post/1/comment/13');\naController.transitionToRoute('/blog/posts?sort=title');\n```\n\nAn options hash with a `queryParams` property may be provided as\nthe final argument to add query parameters to the destination URL.\n\n```javascript\naController.transitionToRoute('blogPost', 1, {\n queryParams: { showComments: 'true' }\n});\n\n// if you just want to transition the query parameters without changing the route\naController.transitionToRoute({ queryParams: { sort: 'date' } });\n```\n\nSee also [replaceRoute](/ember/release/classes/Ember.ControllerMixin/methods/replaceRoute?anchor=replaceRoute).",
7937
+ "itemtype": "method",
7938
+ "name": "transitionToRoute",
7939
+ "deprecated": true,
7940
+ "deprecationMessage": "Use transitionTo from the Router service instead.",
7930
7941
  "params": [
7931
7942
  {
7932
7943
  "name": "name",
7933
7944
  "description": "the name of the route or a URL",
7934
- "type": "String"
7945
+ "type": "String",
7946
+ "optional": true
7935
7947
  },
7936
7948
  {
7937
7949
  "name": "models",
@@ -7945,14 +7957,10 @@
7945
7957
  "optional": true
7946
7958
  }
7947
7959
  ],
7948
- "itemtype": "method",
7949
- "name": "transitionToRoute",
7950
7960
  "return": {
7951
7961
  "description": "the transition object associated with this\n attempted transition",
7952
7962
  "type": "Transition"
7953
7963
  },
7954
- "deprecated": true,
7955
- "deprecationMessage": "Use transitionTo from the Router service instead.",
7956
7964
  "access": "public",
7957
7965
  "tagname": "",
7958
7966
  "class": "Ember.ControllerMixin",
@@ -7960,28 +7968,35 @@
7960
7968
  },
7961
7969
  {
7962
7970
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7963
- "line": 184,
7971
+ "line": 185,
7964
7972
  "description": "Transition into another route while replacing the current URL, if possible.\nThis will replace the current history entry instead of adding a new one.\nBeside that, it is identical to `transitionToRoute` in all other respects.\n\n```javascript\naController.replaceRoute('blogPosts');\naController.replaceRoute('blogPosts.recentEntries');\n```\n\nOptionally supply a model for the route in question. The model\nwill be serialized into the URL using the `serialize` hook of\nthe route:\n\n```javascript\naController.replaceRoute('blogPost', aPost);\n```\n\nIf a literal is passed (such as a number or a string), it will\nbe treated as an identifier instead. In this case, the `model`\nhook of the route will be triggered:\n\n```javascript\naController.replaceRoute('blogPost', 1);\n```\n\nMultiple models will be applied last to first recursively up the\nroute tree.\n\n```app/router.js\nRouter.map(function() {\n this.route('blogPost', { path: ':blogPostId' }, function() {\n this.route('blogComment', { path: ':blogCommentId', resetNamespace: true });\n });\n});\n```\n\n```\naController.replaceRoute('blogComment', aPost, aComment);\naController.replaceRoute('blogComment', 1, 13);\n```\n\nIt is also possible to pass a URL (a string that starts with a\n`/`).\n\n```javascript\naController.replaceRoute('/');\naController.replaceRoute('/blog/post/1/comment/13');\n```",
7973
+ "itemtype": "method",
7974
+ "name": "replaceRoute",
7975
+ "deprecated": true,
7976
+ "deprecationMessage": "Use replaceWith from the Router service instead.",
7965
7977
  "params": [
7966
7978
  {
7967
7979
  "name": "name",
7968
7980
  "description": "the name of the route or a URL",
7969
- "type": "String"
7981
+ "type": "String",
7982
+ "optional": true
7970
7983
  },
7971
7984
  {
7972
7985
  "name": "models",
7973
7986
  "description": "the model(s) or identifier(s) to be used\nwhile transitioning to the route.",
7974
7987
  "type": "...Object"
7988
+ },
7989
+ {
7990
+ "name": "options",
7991
+ "description": "optional hash with a queryParams property\ncontaining a mapping of query parameters",
7992
+ "type": "Object",
7993
+ "optional": true
7975
7994
  }
7976
7995
  ],
7977
- "itemtype": "method",
7978
- "name": "replaceRoute",
7979
7996
  "return": {
7980
7997
  "description": "the transition object associated with this\n attempted transition",
7981
7998
  "type": "Transition"
7982
7999
  },
7983
- "deprecated": true,
7984
- "deprecationMessage": "Use replaceWith from the Router service instead.",
7985
8000
  "access": "public",
7986
8001
  "tagname": "",
7987
8002
  "class": "Ember.ControllerMixin",
@@ -8529,8 +8544,8 @@
8529
8544
  },
8530
8545
  {
8531
8546
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8532
- "line": 74,
8533
- "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\nSee [transitionTo](/ember/release/classes/Route/methods/transitionTo?anchor=transitionTo) for more info.\n\nCalling `transitionTo` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `transitionTo` on a route or `transitionToRoute` on a controller.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nIn the following example we use the Router service to navigate to a route with a\nspecific model from a Component in the first action, and in the second we trigger\na query-params only transition.\n\n```app/components/example.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n @action\n goToComments(post) {\n this.router.transitionTo('comments', post);\n }\n\n @action\n fetchMoreComments(latestComment) {\n this.router.transitionTo({\n queryParams: { commentsAfter: latestComment }\n });\n }\n}\n```",
8547
+ "line": 77,
8548
+ "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\nCalling `transitionTo` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `transitionTo` on a route or `transitionToRoute` on a controller.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nIn the following example we use the Router service to navigate to a route with a\nspecific model from a Component in the first action, and in the second we trigger\na query-params only transition.\n\n```app/components/example.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n @action\n goToComments(post) {\n this.router.transitionTo('comments', post);\n }\n\n @action\n fetchMoreComments(latestComment) {\n this.router.transitionTo({\n queryParams: { commentsAfter: latestComment }\n });\n }\n}\n```",
8534
8549
  "itemtype": "method",
8535
8550
  "name": "transitionTo",
8536
8551
  "params": [
@@ -8564,8 +8579,8 @@
8564
8579
  },
8565
8580
  {
8566
8581
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8567
- "line": 143,
8568
- "description": "Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,\nit replaces the entry for the current route.\nWhen the user clicks the \"back\" button in the browser, there will be fewer steps.\nThis is most commonly used to manage redirects in a way that does not cause confusing additions\nto the user's browsing history.\n\nSee [replaceWith](/ember/release/classes/Route/methods/replaceWith?anchor=replaceWith) for more info.\n\nCalling `replaceWith` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `replaceWith` on a route.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nUsage example:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\n\nexport default class extends Route {\n beforeModel() {\n if (!authorized()){\n this.replaceWith('unauthorized');\n }\n }\n});\n```",
8582
+ "line": 136,
8583
+ "description": "Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,\nit replaces the entry for the current route.\nWhen the user clicks the \"back\" button in the browser, there will be fewer steps.\nThis is most commonly used to manage redirects in a way that does not cause confusing additions\nto the user's browsing history.\n\nCalling `replaceWith` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `replaceWith` on a route.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nUsage example:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\n\nexport default class extends Route {\n beforeModel() {\n if (!authorized()){\n this.replaceWith('unauthorized');\n }\n }\n});\n```",
8569
8584
  "itemtype": "method",
8570
8585
  "name": "replaceWith",
8571
8586
  "params": [
@@ -8597,7 +8612,7 @@
8597
8612
  },
8598
8613
  {
8599
8614
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8600
- "line": 184,
8615
+ "line": 175,
8601
8616
  "description": "Generate a URL based on the supplied route name and optionally a model. The\nURL is returned as a string that can be used for any purpose.\n\nIn this example, the URL for the `author.books` route for a given author\nis copied to the clipboard.\n\n```app/templates/application.hbs\n<CopyLink @author={{hash id=\"tomster\" name=\"Tomster\"}} />\n```\n\n```app/components/copy-link.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { action } from '@ember/object';\n\nexport default class CopyLinkComponent extends Component {\n @service router;\n @service clipboard;\n\n @action\n copyBooksURL() {\n if (this.author) {\n const url = this.router.urlFor('author.books', this.args.author);\n this.clipboard.set(url);\n // Clipboard now has /author/tomster/books\n }\n }\n}\n```\n\nJust like with `transitionTo` and `replaceWith`, `urlFor` can also handle\nquery parameters.\n\n```app/templates/application.hbs\n<CopyLink @author={{hash id=\"tomster\" name=\"Tomster\"}} />\n```\n\n```app/components/copy-link.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { action } from '@ember/object';\n\nexport default class CopyLinkComponent extends Component {\n @service router;\n @service clipboard;\n\n @action\n copyOnlyEmberBooksURL() {\n if (this.author) {\n const url = this.router.urlFor('author.books', this.author, {\n queryParams: { filter: 'emberjs' }\n });\n this.clipboard.set(url);\n // Clipboard now has /author/tomster/books?filter=emberjs\n }\n }\n}\n```",
8602
8617
  "itemtype": "method",
8603
8618
  "name": "urlFor",
@@ -8609,7 +8624,7 @@
8609
8624
  },
8610
8625
  {
8611
8626
  "name": "models",
8612
- "description": "the model(s) or identifier(s) to be used while\n transitioning to the route.",
8627
+ "description": "the model(s) for the route.",
8613
8628
  "type": "...Object"
8614
8629
  },
8615
8630
  {
@@ -8630,7 +8645,7 @@
8630
8645
  },
8631
8646
  {
8632
8647
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8633
- "line": 258,
8648
+ "line": 248,
8634
8649
  "description": "Returns `true` if `routeName/models/queryParams` is the active route, where `models` and `queryParams` are optional.\nSee [model](api/ember/release/classes/Route/methods/model?anchor=model) and\n[queryParams](/api/ember/3.7/classes/Route/properties/queryParams?anchor=queryParams) for more information about these arguments.\n\nIn the following example, `isActive` will return `true` if the current route is `/posts`.\n\n```app/components/posts.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n displayComments() {\n return this.router.isActive('posts');\n }\n});\n```\n\nThe next example includes a dynamic segment, and will return `true` if the current route is `/posts/1`,\nassuming the post has an id of 1:\n\n```app/components/posts.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n displayComments(post) {\n return this.router.isActive('posts', post.id);\n }\n});\n```\n\nWhere `post.id` is the id of a specific post, which is represented in the route as /posts/[post.id].\nIf `post.id` is equal to 1, then isActive will return true if the current route is /posts/1, and false if the route is anything else.",
8635
8650
  "itemtype": "method",
8636
8651
  "name": "isActive",
@@ -8674,6 +8689,10 @@
8674
8689
  "type": "String"
8675
8690
  }
8676
8691
  ],
8692
+ "return": {
8693
+ "description": "",
8694
+ "type": "RouteInfo | null"
8695
+ },
8677
8696
  "access": "public",
8678
8697
  "tagname": "",
8679
8698
  "class": "RouterService",
@@ -8681,7 +8700,7 @@
8681
8700
  },
8682
8701
  {
8683
8702
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8684
- "line": 392,
8703
+ "line": 393,
8685
8704
  "description": "Takes a string URL and returns a promise that resolves to a\n`RouteInfoWithAttributes` for the leafmost route represented by the URL.\nThe promise rejects if the URL is not recognized or an unhandled exception\nis encountered. This method expects to receive the actual URL as seen by\nthe browser including the app's `rootURL`.",
8686
8705
  "itemtype": "method",
8687
8706
  "name": "recognizeAndLoad",
@@ -8692,6 +8711,10 @@
8692
8711
  "type": "String"
8693
8712
  }
8694
8713
  ],
8714
+ "return": {
8715
+ "description": "",
8716
+ "type": "RouteInfo"
8717
+ },
8695
8718
  "access": "public",
8696
8719
  "tagname": "",
8697
8720
  "class": "RouterService",
@@ -8699,7 +8722,7 @@
8699
8722
  },
8700
8723
  {
8701
8724
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8702
- "line": 413,
8725
+ "line": 415,
8703
8726
  "description": "The `routeWillChange` event is fired at the beginning of any\nattempted transition with a `Transition` object as the sole\nargument. This action can be used for aborting, redirecting,\nor decorating the transition from the currently active routes.\n\nA good example is preventing navigation when a form is\nhalf-filled out:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n constructor() {\n super(...arguments);\n\n this.router.on('routeWillChange', (transition) => {\n if (!transition.to.find(route => route.name === this.routeName)) {\n alert(\"Please save or cancel your changes.\");\n transition.abort();\n }\n })\n }\n}\n```\n\nThe `routeWillChange` event fires whenever a new route is chosen as the desired target of a transition. This includes `transitionTo`, `replaceWith`, all redirection for any reason including error handling, and abort. Aborting implies changing the desired target back to where you already were. Once a transition has completed, `routeDidChange` fires.",
8704
8727
  "itemtype": "event",
8705
8728
  "name": "routeWillChange",
@@ -8717,7 +8740,7 @@
8717
8740
  },
8718
8741
  {
8719
8742
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8720
- "line": 449,
8743
+ "line": 451,
8721
8744
  "description": "The `routeDidChange` event only fires once a transition has settled.\nThis includes aborts and error substates. Like the `routeWillChange` event\nit receives a Transition as the sole argument.\n\nA good example is sending some analytics when the route has transitioned:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n constructor() {\n super(...arguments);\n\n this.router.on('routeDidChange', (transition) => {\n ga.send('pageView', {\n current: transition.to.name,\n from: transition.from.name\n });\n })\n }\n}\n```\n\n`routeDidChange` will be called after any `Route`'s\n[didTransition](/ember/release/classes/Route/events/didTransition?anchor=didTransition)\naction has been fired.\nThe updates of properties\n[currentURL](/ember/release/classes/RouterService/properties/currentURL?anchor=currentURL),\n[currentRouteName](/ember/release/classes/RouterService/properties/currentURL?anchor=currentRouteName)\nand\n[currentRoute](/ember/release/classes/RouterService/properties/currentURL?anchor=currentRoute)\nare completed at the time `routeDidChange` is called.",
8722
8745
  "itemtype": "event",
8723
8746
  "name": "routeDidChange",
@@ -8760,11 +8783,11 @@
8760
8783
  },
8761
8784
  {
8762
8785
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8763
- "line": 529,
8764
- "description": "Name of the current route.\n\nThis property represents the logical name of the route,\nwhich is comma separated.\nFor the following router:\n\n```app/router.js\nRouter.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n});\n```\n\nIt will return:\n\n* `index` when you visit `/`\n* `about` when you visit `/about`\n* `blog.index` when you visit `/blog`\n* `blog.post` when you visit `/blog/some-post-id`",
8786
+ "line": 531,
8787
+ "description": "Name of the current route.\n\n This property represents the logical name of the route,\n which is comma separated.\n For the following router:\n\n ```app/router.js\n Router.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n });\n ```\n\n It will return:\n\n * `index` when you visit `/`\n * `about` when you visit `/about`\n * `blog.index` when you visit `/blog`\n * `blog.post` when you visit `/blog/some-post-id`",
8765
8788
  "itemtype": "property",
8766
8789
  "name": "currentRouteName",
8767
- "type": "String",
8790
+ "type": "{String | null}",
8768
8791
  "access": "public",
8769
8792
  "tagname": "",
8770
8793
  "class": "RouterService",
@@ -8772,8 +8795,8 @@
8772
8795
  },
8773
8796
  {
8774
8797
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8775
- "line": 558,
8776
- "description": "Current URL for the application.\n\n This property represents the URL path for this route.\n For the following router:\n\n```app/router.js\nRouter.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n});\n```\n\nIt will return:\n\n* `/` when you visit `/`\n* `/about` when you visit `/about`\n* `/blog` when you visit `/blog`\n* `/blog/some-post-id` when you visit `/blog/some-post-id`",
8798
+ "line": 561,
8799
+ "description": "Current URL for the application.\n\n This property represents the URL path for this route.\n For the following router:\n\n ```app/router.js\n Router.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n });\n ```\n\n It will return:\n\n * `/` when you visit `/`\n * `/about` when you visit `/about`\n * `/blog` when you visit `/blog`\n * `/blog/some-post-id` when you visit `/blog/some-post-id`",
8777
8800
  "itemtype": "property",
8778
8801
  "name": "currentURL",
8779
8802
  "type": "String",
@@ -8784,7 +8807,7 @@
8784
8807
  },
8785
8808
  {
8786
8809
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8787
- "line": 586,
8810
+ "line": 590,
8788
8811
  "description": "The `location` property returns what implementation of the `location` API\nyour application is using, which determines what type of URL is being used.\n\nSee [Location](/ember/release/classes/Location) for more information.\n\nTo force a particular `location` API implementation to be used in your\napplication you can set a location type on your `config/environment`.\nFor example, to set the `history` type:\n\n```config/environment.js\n'use strict';\n\nmodule.exports = function(environment) {\n let ENV = {\n modulePrefix: 'router-service',\n environment,\n rootURL: '/',\n locationType: 'history',\n ...\n }\n}\n```\n\nThe following location types are available by default:\n`auto`, `hash`, `history`, `none`.\n\nSee [HashLocation](/ember/release/classes/HashLocation).\nSee [HistoryLocation](/ember/release/classes/HistoryLocation).\nSee [NoneLocation](/ember/release/classes/NoneLocation).\nSee [AutoLocation](/ember/release/classes/AutoLocation).",
8789
8812
  "itemtype": "property",
8790
8813
  "name": "location",
@@ -8799,7 +8822,7 @@
8799
8822
  },
8800
8823
  {
8801
8824
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8802
- "line": 625,
8825
+ "line": 630,
8803
8826
  "description": "The `rootURL` property represents the URL of the root of\nthe application, '/' by default.\nThis prefix is assumed on all routes defined on this app.\n\nIf you change the `rootURL` in your environment configuration\nlike so:\n\n```config/environment.js\n'use strict';\n\nmodule.exports = function(environment) {\n let ENV = {\n modulePrefix: 'router-service',\n environment,\n rootURL: '/my-root',\n …\n }\n]\n```\n\nThis property will return `/my-root`.",
8804
8827
  "itemtype": "property",
8805
8828
  "name": "rootURL",
@@ -8811,7 +8834,7 @@
8811
8834
  },
8812
8835
  {
8813
8836
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8814
- "line": 654,
8837
+ "line": 660,
8815
8838
  "description": "The `currentRoute` property contains metadata about the current leaf route.\nIt returns a `RouteInfo` object that has information like the route name,\nparams, query params and more.\n\nSee [RouteInfo](/ember/release/classes/RouteInfo) for more info.\n\nThis property is guaranteed to change whenever a route transition\nhappens (even when that transition only changes parameters\nand doesn't change the active route).\n\nUsage example:\n```app/components/header.js\n import Component from '@glimmer/component';\n import { service } from '@ember/service';\n import { notEmpty } from '@ember/object/computed';\n\n export default class extends Component {\n @service router;\n\n @notEmpty('router.currentRoute.child') isChildRoute;\n });\n```",
8816
8839
  "itemtype": "property",
8817
8840
  "name": "currentRoute",
@@ -8857,7 +8880,7 @@
8857
8880
  },
8858
8881
  {
8859
8882
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8860
- "line": 14,
8883
+ "line": 16,
8861
8884
  "description": "The dot-separated, fully-qualified name of the\nroute, like \"people.index\".",
8862
8885
  "itemtype": "property",
8863
8886
  "name": "name",
@@ -8869,7 +8892,7 @@
8869
8892
  },
8870
8893
  {
8871
8894
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8872
- "line": 21,
8895
+ "line": 23,
8873
8896
  "description": "The final segment of the fully-qualified name of\nthe route, like \"index\"",
8874
8897
  "itemtype": "property",
8875
8898
  "name": "localName",
@@ -8881,7 +8904,7 @@
8881
8904
  },
8882
8905
  {
8883
8906
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8884
- "line": 28,
8907
+ "line": 30,
8885
8908
  "description": "The values of the route's parameters. These are the\nsame params that are received as arguments to the\nroute's model hook. Contains only the parameters\nvalid for this route, if any (params for parent or\nchild routes are not merged).",
8886
8909
  "itemtype": "property",
8887
8910
  "name": "params",
@@ -8893,7 +8916,7 @@
8893
8916
  },
8894
8917
  {
8895
8918
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8896
- "line": 38,
8919
+ "line": 40,
8897
8920
  "description": "The ordered list of the names of the params\nrequired for this route. It will contain the same\nstrings as `Object.keys(params)`, but here the order\nis significant. This allows users to correctly pass\nparams into routes programmatically.",
8898
8921
  "itemtype": "property",
8899
8922
  "name": "paramNames",
@@ -8905,7 +8928,7 @@
8905
8928
  },
8906
8929
  {
8907
8930
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8908
- "line": 48,
8931
+ "line": 50,
8909
8932
  "description": "The values of any queryParams on this route.",
8910
8933
  "itemtype": "property",
8911
8934
  "name": "queryParams",
@@ -8917,11 +8940,11 @@
8917
8940
  },
8918
8941
  {
8919
8942
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8920
- "line": 54,
8943
+ "line": 56,
8921
8944
  "description": "This is the resolved return value from the\nroute's model hook.",
8922
8945
  "itemtype": "property",
8923
8946
  "name": "attributes",
8924
- "type": "Object|Array|String",
8947
+ "type": "Object|Array|String|undefined",
8925
8948
  "access": "public",
8926
8949
  "tagname": "",
8927
8950
  "class": "RouteInfoWithAttributes",
@@ -8929,7 +8952,7 @@
8929
8952
  },
8930
8953
  {
8931
8954
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8932
- "line": 61,
8955
+ "line": 63,
8933
8956
  "description": "Will contain the result `Route#buildRouteInfoMetadata`\nfor the corresponding Route.",
8934
8957
  "itemtype": "property",
8935
8958
  "name": "metadata",
@@ -8941,7 +8964,7 @@
8941
8964
  },
8942
8965
  {
8943
8966
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8944
- "line": 68,
8967
+ "line": 70,
8945
8968
  "description": "A reference to the parent route's RouteInfo.\nThis can be used to traverse upward to the topmost\n`RouteInfo`.",
8946
8969
  "itemtype": "property",
8947
8970
  "name": "parent",
@@ -8953,7 +8976,7 @@
8953
8976
  },
8954
8977
  {
8955
8978
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8956
- "line": 76,
8979
+ "line": 78,
8957
8980
  "description": "A reference to the child route's RouteInfo.\nThis can be used to traverse downward to the\nleafmost `RouteInfo`.",
8958
8981
  "itemtype": "property",
8959
8982
  "name": "child",
@@ -8965,7 +8988,7 @@
8965
8988
  },
8966
8989
  {
8967
8990
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8968
- "line": 84,
8991
+ "line": 86,
8969
8992
  "description": "Allows you to traverse through the linked list\nof `RouteInfo`s from the topmost to leafmost.\nReturns the first `RouteInfo` in the linked list\nfor which the callback returns true.\n\n This method is similar to the `find()` method\n defined in ECMAScript 2015.\n\n The callback method you provide should have the\n following signature (all parameters are optional):\n\n ```javascript\n function(item, index, array);\n ```\n\n - `item` is the current item in the iteration.\n - `index` is the current index in the iteration.\n - `array` is the array itself.\n\n It should return the `true` to include the item in\n the results, `false` otherwise.\n\n Note that in addition to a callback, you can also\n pass an optional target object that will be set as\n `this` on the context.",
8970
8993
  "itemtype": "method",
8971
8994
  "name": "find",
@@ -8993,7 +9016,7 @@
8993
9016
  },
8994
9017
  {
8995
9018
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
8996
- "line": 129,
9019
+ "line": 131,
8997
9020
  "description": "The dot-separated, fully-qualified name of the\nroute, like \"people.index\".",
8998
9021
  "itemtype": "property",
8999
9022
  "name": "name",
@@ -9005,7 +9028,7 @@
9005
9028
  },
9006
9029
  {
9007
9030
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9008
- "line": 136,
9031
+ "line": 138,
9009
9032
  "description": "The final segment of the fully-qualified name of\nthe route, like \"index\"",
9010
9033
  "itemtype": "property",
9011
9034
  "name": "localName",
@@ -9017,7 +9040,7 @@
9017
9040
  },
9018
9041
  {
9019
9042
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9020
- "line": 143,
9043
+ "line": 145,
9021
9044
  "description": "The values of the route's parameters. These are the\nsame params that are received as arguments to the\nroute's `model` hook. Contains only the parameters\nvalid for this route, if any (params for parent or\nchild routes are not merged).",
9022
9045
  "itemtype": "property",
9023
9046
  "name": "params",
@@ -9029,7 +9052,7 @@
9029
9052
  },
9030
9053
  {
9031
9054
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9032
- "line": 153,
9055
+ "line": 155,
9033
9056
  "description": "The ordered list of the names of the params\nrequired for this route. It will contain the same\nstrings as Object.keys(params), but here the order\nis significant. This allows users to correctly pass\nparams into routes programmatically.",
9034
9057
  "itemtype": "property",
9035
9058
  "name": "paramNames",
@@ -9041,7 +9064,7 @@
9041
9064
  },
9042
9065
  {
9043
9066
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9044
- "line": 163,
9067
+ "line": 165,
9045
9068
  "description": "The values of any queryParams on this route.",
9046
9069
  "itemtype": "property",
9047
9070
  "name": "queryParams",
@@ -9053,7 +9076,7 @@
9053
9076
  },
9054
9077
  {
9055
9078
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9056
- "line": 169,
9079
+ "line": 171,
9057
9080
  "description": "Will contain the result `Route#buildRouteInfoMetadata`\nfor the corresponding Route.",
9058
9081
  "itemtype": "property",
9059
9082
  "name": "metadata",
@@ -9065,7 +9088,7 @@
9065
9088
  },
9066
9089
  {
9067
9090
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9068
- "line": 176,
9091
+ "line": 178,
9069
9092
  "description": "A reference to the parent route's `RouteInfo`.\nThis can be used to traverse upward to the topmost\n`RouteInfo`.",
9070
9093
  "itemtype": "property",
9071
9094
  "name": "parent",
@@ -9077,7 +9100,7 @@
9077
9100
  },
9078
9101
  {
9079
9102
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9080
- "line": 184,
9103
+ "line": 186,
9081
9104
  "description": "A reference to the child route's `RouteInfo`.\nThis can be used to traverse downward to the\nleafmost `RouteInfo`.",
9082
9105
  "itemtype": "property",
9083
9106
  "name": "child",
@@ -9089,7 +9112,7 @@
9089
9112
  },
9090
9113
  {
9091
9114
  "file": "packages/@ember/-internals/routing/lib/system/route-info.ts",
9092
- "line": 192,
9115
+ "line": 194,
9093
9116
  "description": "Allows you to traverse through the linked list\nof `RouteInfo`s from the topmost to leafmost.\nReturns the first `RouteInfo` in the linked list\nfor which the callback returns true.\n\n This method is similar to the `find()` method\n defined in ECMAScript 2015.\n\n The callback method you provide should have the\n following signature (all parameters are optional):\n\n ```javascript\n function(item, index, array);\n ```\n\n - `item` is the current item in the iteration.\n - `index` is the current index in the iteration.\n - `array` is the array itself.\n\n It should return the `true` to include the item in\n the results, `false` otherwise.\n\n Note that in addition to a callback, you can also\n pass an optional target object that will be set as\n `this` on the context.",
9094
9117
  "itemtype": "method",
9095
9118
  "name": "find",
@@ -9117,7 +9140,114 @@
9117
9140
  },
9118
9141
  {
9119
9142
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9120
- "line": 162,
9143
+ "line": 91,
9144
+ "description": "The `willTransition` action is fired at the beginning of any\nattempted transition with a `Transition` object as the sole\nargument. This action can be used for aborting, redirecting,\nor decorating the transition from the currently active routes.\n\nA good example is preventing navigation when a form is\nhalf-filled out:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ContactFormRoute extends Route {\n @action\n willTransition(transition) {\n if (this.controller.get('userHasEnteredData')) {\n this.controller.displayNavigationConfirm();\n transition.abort();\n }\n }\n}\n```\n\nYou can also redirect elsewhere by calling\n`this.transitionTo('elsewhere')` from within `willTransition`.\nNote that `willTransition` will not be fired for the\nredirecting `transitionTo`, since `willTransition` doesn't\nfire when there is already a transition underway. If you want\nsubsequent `willTransition` actions to fire for the redirecting\ntransition, you must first explicitly call\n`transition.abort()`.\n\nTo allow the `willTransition` event to continue bubbling to the parent\nroute, use `return true;`. When the `willTransition` method has a\nreturn value of `true` then the parent route's `willTransition` method\nwill be fired, enabling \"bubbling\" behavior for the event.",
9145
+ "itemtype": "event",
9146
+ "name": "willTransition",
9147
+ "params": [
9148
+ {
9149
+ "name": "transition",
9150
+ "description": "",
9151
+ "type": "Transition"
9152
+ }
9153
+ ],
9154
+ "since": "1.0.0",
9155
+ "access": "public",
9156
+ "tagname": "",
9157
+ "class": "Route",
9158
+ "module": "@ember/routing"
9159
+ },
9160
+ {
9161
+ "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9162
+ "line": 136,
9163
+ "description": "The `didTransition` action is fired after a transition has\nsuccessfully been completed. This occurs after the normal model\nhooks (`beforeModel`, `model`, `afterModel`, `setupController`)\nhave resolved. The `didTransition` action has no arguments,\nhowever, it can be useful for tracking page views or resetting\nstate on the controller.\n\n```app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class LoginRoute extends Route {\n @action\n didTransition() {\n this.controller.get('errors.base').clear();\n return true; // Bubble the didTransition event\n }\n}\n```",
9164
+ "itemtype": "event",
9165
+ "name": "didTransition",
9166
+ "since": "1.2.0",
9167
+ "access": "public",
9168
+ "tagname": "",
9169
+ "class": "Route",
9170
+ "module": "@ember/routing"
9171
+ },
9172
+ {
9173
+ "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9174
+ "line": 163,
9175
+ "description": "The `loading` action is fired on the route when a route's `model`\nhook returns a promise that is not already resolved. The current\n`Transition` object is the first parameter and the route that\ntriggered the loading event is the second parameter.\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ApplicationRoute extends Route {\n @action\n loading(transition, route) {\n let controller = this.controllerFor('foo');\n\n // The controller may not be instantiated when initially loading\n if (controller) {\n controller.currentlyLoading = true;\n\n transition.finally(function() {\n controller.currentlyLoading = false;\n });\n }\n }\n}\n```",
9176
+ "itemtype": "event",
9177
+ "name": "loading",
9178
+ "params": [
9179
+ {
9180
+ "name": "transition",
9181
+ "description": "",
9182
+ "type": "Transition"
9183
+ },
9184
+ {
9185
+ "name": "route",
9186
+ "description": "The route that triggered the loading event",
9187
+ "type": "Route"
9188
+ }
9189
+ ],
9190
+ "since": "1.2.0",
9191
+ "access": "public",
9192
+ "tagname": "",
9193
+ "class": "Route",
9194
+ "module": "@ember/routing"
9195
+ },
9196
+ {
9197
+ "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9198
+ "line": 198,
9199
+ "description": "When attempting to transition into a route, any of the hooks\nmay return a promise that rejects, at which point an `error`\naction will be fired on the partially-entered routes, allowing\nfor per-route error handling logic, or shared error handling\nlogic defined on a parent route.\n\nHere is an example of an error handler that will be invoked\nfor rejected promises from the various hooks on the route,\nas well as any unhandled errors from child routes:\n\n```app/routes/admin.js\nimport { reject } from 'rsvp';\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class AdminRoute extends Route {\n beforeModel() {\n return reject('bad things!');\n }\n\n @action\n error(error, transition) {\n // Assuming we got here due to the error in `beforeModel`,\n // we can expect that error === \"bad things!\",\n // but a promise model rejecting would also\n // call this hook, as would any errors encountered\n // in `afterModel`.\n\n // The `error` hook is also provided the failed\n // `transition`, which can be stored and later\n // `.retry()`d if desired.\n\n this.transitionTo('login');\n }\n}\n```\n\n`error` actions that bubble up all the way to `ApplicationRoute`\nwill fire a default error handler that logs the error. You can\nspecify your own global default error handler by overriding the\n`error` handler on `ApplicationRoute`:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ApplicationRoute extends Route {\n @action\n error(error, transition) {\n this.controllerFor('banner').displayError(error.message);\n }\n}\n```",
9200
+ "itemtype": "event",
9201
+ "name": "error",
9202
+ "params": [
9203
+ {
9204
+ "name": "error",
9205
+ "description": "",
9206
+ "type": "Error"
9207
+ },
9208
+ {
9209
+ "name": "transition",
9210
+ "description": "",
9211
+ "type": "Transition"
9212
+ }
9213
+ ],
9214
+ "since": "1.0.0",
9215
+ "access": "public",
9216
+ "tagname": "",
9217
+ "class": "Route",
9218
+ "module": "@ember/routing"
9219
+ },
9220
+ {
9221
+ "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9222
+ "line": 304,
9223
+ "description": "A hook you can implement to convert the route's model into parameters\nfor the URL.\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('post', { path: '/posts/:post_id' });\n});\n\n```\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class PostRoute extends Route {\n model({ post_id }) {\n // the server returns `{ id: 12 }`\n return fetch(`/posts/${post_id}`;\n }\n\n serialize(model) {\n // this will make the URL `/posts/12`\n return { post_id: model.id };\n }\n}\n```\n\nThe default `serialize` method will insert the model's `id` into the\nroute's dynamic segment (in this case, `:post_id`) if the segment contains '_id'.\nIf the route has multiple dynamic segments or does not contain '_id', `serialize`\nwill return `getProperties(model, params)`\n\nThis method is called when `transitionTo` is called with a context\nin order to populate the URL.",
9224
+ "itemtype": "method",
9225
+ "name": "serialize",
9226
+ "params": [
9227
+ {
9228
+ "name": "model",
9229
+ "description": "the routes model",
9230
+ "type": "Object"
9231
+ },
9232
+ {
9233
+ "name": "params",
9234
+ "description": "an Array of parameter names for the current\n route (in the example, `['post_id']`.",
9235
+ "type": "Array"
9236
+ }
9237
+ ],
9238
+ "return": {
9239
+ "description": "the serialized parameters",
9240
+ "type": "Object"
9241
+ },
9242
+ "since": "1.0.0",
9243
+ "access": "public",
9244
+ "tagname": "",
9245
+ "class": "Route",
9246
+ "module": "@ember/routing"
9247
+ },
9248
+ {
9249
+ "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9250
+ "line": 372,
9121
9251
  "description": "Configuration hash for this route's queryParams. The possible\nconfiguration options and their defaults are as follows\n(assuming a query param whose controller property is `page`):\n\n```javascript\nqueryParams: {\n page: {\n // By default, controller query param properties don't\n // cause a full transition when they are changed, but\n // rather only cause the URL to update. Setting\n // `refreshModel` to true will cause an \"in-place\"\n // transition to occur, whereby the model hooks for\n // this route (and any child routes) will re-fire, allowing\n // you to reload models (e.g., from the server) using the\n // updated query param values.\n refreshModel: false,\n\n // By default, changes to controller query param properties\n // cause the URL to update via `pushState`, which means an\n // item will be added to the browser's history, allowing\n // you to use the back button to restore the app to the\n // previous state before the query param property was changed.\n // Setting `replace` to true will use `replaceState` (or its\n // hash location equivalent), which causes no browser history\n // item to be added. This options name and default value are\n // the same as the `link-to` helper's `replace` option.\n replace: false,\n\n // By default, the query param URL key is the same name as\n // the controller property name. Use `as` to specify a\n // different URL key.\n as: 'page'\n }\n}\n```",
9122
9252
  "itemtype": "property",
9123
9253
  "name": "queryParams",
@@ -9130,7 +9260,7 @@
9130
9260
  },
9131
9261
  {
9132
9262
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9133
- "line": 215,
9263
+ "line": 425,
9134
9264
  "description": "The name of the template to use by default when rendering this routes\ntemplate.\n\n```app/routes/posts/list.js\nimport Route from '@ember/routing/route';\n\nexport default class extends Route {\n templateName = 'posts/list'\n});\n```\n\n```app/routes/posts/index.js\nimport PostsList from '../posts/list';\n\nexport default class extends PostsList {};\n```\n\n```app/routes/posts/archived.js\nimport PostsList from '../posts/list';\n\nexport default class extends PostsList {};\n```",
9135
9265
  "itemtype": "property",
9136
9266
  "name": "templateName",
@@ -9144,7 +9274,7 @@
9144
9274
  },
9145
9275
  {
9146
9276
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9147
- "line": 248,
9277
+ "line": 458,
9148
9278
  "description": "The name of the controller to associate with this route.\n\nBy default, Ember will lookup a route's controller that matches the name\nof the route (i.e. `posts.new`). However,\nif you would like to define a specific controller to use, you can do so\nusing this property.\n\nThis is useful in many ways, as the controller specified will be:\n\n* passed to the `setupController` method.\n* used as the controller for the template being rendered by the route.\n* returned from a call to `controllerFor` for the route.",
9149
9279
  "itemtype": "property",
9150
9280
  "name": "controllerName",
@@ -9158,7 +9288,7 @@
9158
9288
  },
9159
9289
  {
9160
9290
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9161
- "line": 271,
9291
+ "line": 481,
9162
9292
  "description": "The controller associated with this route.\n\nExample\n\n```app/routes/form.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class FormRoute extends Route {\n @action\n willTransition(transition) {\n if (this.controller.get('userHasEnteredData') &&\n !confirm('Are you sure you want to abandon progress?')) {\n transition.abort();\n } else {\n // Bubble the `willTransition` action so that\n // parent routes can decide whether or not to abort.\n return true;\n }\n }\n}\n```",
9163
9293
  "itemtype": "property",
9164
9294
  "name": "controller",
@@ -9171,7 +9301,7 @@
9171
9301
  },
9172
9302
  {
9173
9303
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9174
- "line": 302,
9304
+ "line": 512,
9175
9305
  "description": "The name of the route, dot-delimited.\n\nFor example, a route found at `app/routes/posts/post.js` will have\na `routeName` of `posts.post`.",
9176
9306
  "itemtype": "property",
9177
9307
  "name": "routeName",
@@ -9184,7 +9314,7 @@
9184
9314
  },
9185
9315
  {
9186
9316
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9187
- "line": 316,
9317
+ "line": 526,
9188
9318
  "description": "The name of the route, dot-delimited, including the engine prefix\nif applicable.\n\nFor example, a route found at `addon/routes/posts/post.js` within an\nengine named `admin` will have a `fullRouteName` of `admin.posts.post`.",
9189
9319
  "itemtype": "property",
9190
9320
  "name": "fullRouteName",
@@ -9197,7 +9327,7 @@
9197
9327
  },
9198
9328
  {
9199
9329
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9200
- "line": 331,
9330
+ "line": 541,
9201
9331
  "description": "Sets the name for this route, including a fully resolved name for routes\ninside engines.",
9202
9332
  "access": "private",
9203
9333
  "tagname": "",
@@ -9215,7 +9345,7 @@
9215
9345
  },
9216
9346
  {
9217
9347
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9218
- "line": 346,
9348
+ "line": 556,
9219
9349
  "access": "private",
9220
9350
  "tagname": "",
9221
9351
  "itemtype": "method",
@@ -9225,7 +9355,7 @@
9225
9355
  },
9226
9356
  {
9227
9357
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9228
- "line": 378,
9358
+ "line": 587,
9229
9359
  "access": "private",
9230
9360
  "tagname": "",
9231
9361
  "itemtype": "property",
@@ -9235,7 +9365,7 @@
9235
9365
  },
9236
9366
  {
9237
9367
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9238
- "line": 387,
9368
+ "line": 596,
9239
9369
  "access": "private",
9240
9370
  "tagname": "",
9241
9371
  "itemtype": "method",
@@ -9245,7 +9375,7 @@
9245
9375
  },
9246
9376
  {
9247
9377
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9248
- "line": 395,
9378
+ "line": 604,
9249
9379
  "description": "Returns a hash containing the parameters of an ancestor route.\n\nYou may notice that `this.paramsFor` sometimes works when referring to a\nchild route, but this behavior should not be relied upon as only ancestor\nroutes are certain to be loaded in time.\n\nExample\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('member', { path: ':name' }, function() {\n this.route('interest', { path: ':interest' });\n });\n});\n```\n\n```app/routes/member.js\nimport Route from '@ember/routing/route';\n\nexport default class MemberRoute extends Route {\n queryParams = {\n memberQp: { refreshModel: true }\n }\n}\n```\n\n```app/routes/member/interest.js\nimport Route from '@ember/routing/route';\n\nexport default class MemberInterestRoute extends Route {\n queryParams = {\n interestQp: { refreshModel: true }\n }\n\n model() {\n return this.paramsFor('member');\n }\n}\n```\n\nIf we visit `/turing/maths?memberQp=member&interestQp=interest` the model for\nthe `member.interest` route is a hash with:\n\n* `name`: `turing`\n* `memberQp`: `member`",
9250
9380
  "itemtype": "method",
9251
9381
  "name": "paramsFor",
@@ -9268,7 +9398,7 @@
9268
9398
  },
9269
9399
  {
9270
9400
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9271
- "line": 476,
9401
+ "line": 685,
9272
9402
  "description": "Serializes the query parameter key",
9273
9403
  "itemtype": "method",
9274
9404
  "name": "serializeQueryParamKey",
@@ -9286,7 +9416,7 @@
9286
9416
  },
9287
9417
  {
9288
9418
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9289
- "line": 487,
9419
+ "line": 696,
9290
9420
  "description": "Serializes value of the query parameter based on defaultValueType",
9291
9421
  "itemtype": "method",
9292
9422
  "name": "serializeQueryParam",
@@ -9314,7 +9444,7 @@
9314
9444
  },
9315
9445
  {
9316
9446
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9317
- "line": 503,
9447
+ "line": 712,
9318
9448
  "description": "Deserializes value of the query parameter based on defaultValueType",
9319
9449
  "itemtype": "method",
9320
9450
  "name": "deserializeQueryParam",
@@ -9342,7 +9472,7 @@
9342
9472
  },
9343
9473
  {
9344
9474
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9345
- "line": 519,
9475
+ "line": 728,
9346
9476
  "access": "private",
9347
9477
  "tagname": "",
9348
9478
  "itemtype": "property",
@@ -9352,7 +9482,7 @@
9352
9482
  },
9353
9483
  {
9354
9484
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9355
- "line": 535,
9485
+ "line": 744,
9356
9486
  "description": "A hook you can use to reset controller values either when the model\nchanges or the route is exiting.\n\n```app/routes/articles.js\nimport Route from '@ember/routing/route';\n\nexport default class ArticlesRoute extends Route {\n resetController(controller, isExiting, transition) {\n if (isExiting && transition.targetName !== 'error') {\n controller.set('page', 1);\n }\n }\n}\n```",
9357
9487
  "itemtype": "method",
9358
9488
  "name": "resetController",
@@ -9381,7 +9511,7 @@
9381
9511
  },
9382
9512
  {
9383
9513
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9384
- "line": 562,
9514
+ "line": 771,
9385
9515
  "access": "private",
9386
9516
  "tagname": "",
9387
9517
  "itemtype": "method",
@@ -9391,7 +9521,7 @@
9391
9521
  },
9392
9522
  {
9393
9523
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9394
- "line": 573,
9524
+ "line": 782,
9395
9525
  "access": "private",
9396
9526
  "tagname": "",
9397
9527
  "itemtype": "method",
@@ -9402,7 +9532,7 @@
9402
9532
  },
9403
9533
  {
9404
9534
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9405
- "line": 587,
9535
+ "line": 796,
9406
9536
  "access": "private",
9407
9537
  "tagname": "",
9408
9538
  "itemtype": "method",
@@ -9412,86 +9542,7 @@
9412
9542
  },
9413
9543
  {
9414
9544
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9415
- "line": 598,
9416
- "description": "The `willTransition` action is fired at the beginning of any\nattempted transition with a `Transition` object as the sole\nargument. This action can be used for aborting, redirecting,\nor decorating the transition from the currently active routes.\n\nA good example is preventing navigation when a form is\nhalf-filled out:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ContactFormRoute extends Route {\n @action\n willTransition(transition) {\n if (this.controller.get('userHasEnteredData')) {\n this.controller.displayNavigationConfirm();\n transition.abort();\n }\n }\n}\n```\n\nYou can also redirect elsewhere by calling\n`this.transitionTo('elsewhere')` from within `willTransition`.\nNote that `willTransition` will not be fired for the\nredirecting `transitionTo`, since `willTransition` doesn't\nfire when there is already a transition underway. If you want\nsubsequent `willTransition` actions to fire for the redirecting\ntransition, you must first explicitly call\n`transition.abort()`.\n\nTo allow the `willTransition` event to continue bubbling to the parent\nroute, use `return true;`. When the `willTransition` method has a\nreturn value of `true` then the parent route's `willTransition` method\nwill be fired, enabling \"bubbling\" behavior for the event.",
9417
- "itemtype": "event",
9418
- "name": "willTransition",
9419
- "params": [
9420
- {
9421
- "name": "transition",
9422
- "description": "",
9423
- "type": "Transition"
9424
- }
9425
- ],
9426
- "since": "1.0.0",
9427
- "access": "public",
9428
- "tagname": "",
9429
- "class": "Route",
9430
- "module": "@ember/routing"
9431
- },
9432
- {
9433
- "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9434
- "line": 642,
9435
- "description": "The `didTransition` action is fired after a transition has\nsuccessfully been completed. This occurs after the normal model\nhooks (`beforeModel`, `model`, `afterModel`, `setupController`)\nhave resolved. The `didTransition` action has no arguments,\nhowever, it can be useful for tracking page views or resetting\nstate on the controller.\n\n```app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class LoginRoute extends Route {\n @action\n didTransition() {\n this.controller.get('errors.base').clear();\n return true; // Bubble the didTransition event\n }\n}\n```",
9436
- "itemtype": "event",
9437
- "name": "didTransition",
9438
- "since": "1.2.0",
9439
- "access": "public",
9440
- "tagname": "",
9441
- "class": "Route",
9442
- "module": "@ember/routing"
9443
- },
9444
- {
9445
- "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9446
- "line": 668,
9447
- "description": "The `loading` action is fired on the route when a route's `model`\nhook returns a promise that is not already resolved. The current\n`Transition` object is the first parameter and the route that\ntriggered the loading event is the second parameter.\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ApplicationRoute extends Route {\n @action\n loading(transition, route) {\n let controller = this.controllerFor('foo');\n\n // The controller may not be instantiated when initially loading\n if (controller) {\n controller.currentlyLoading = true;\n\n transition.finally(function() {\n controller.currentlyLoading = false;\n });\n }\n }\n}\n```",
9448
- "itemtype": "event",
9449
- "name": "loading",
9450
- "params": [
9451
- {
9452
- "name": "transition",
9453
- "description": "",
9454
- "type": "Transition"
9455
- },
9456
- {
9457
- "name": "route",
9458
- "description": "The route that triggered the loading event",
9459
- "type": "Route"
9460
- }
9461
- ],
9462
- "since": "1.2.0",
9463
- "access": "public",
9464
- "tagname": "",
9465
- "class": "Route",
9466
- "module": "@ember/routing"
9467
- },
9468
- {
9469
- "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9470
- "line": 702,
9471
- "description": "When attempting to transition into a route, any of the hooks\nmay return a promise that rejects, at which point an `error`\naction will be fired on the partially-entered routes, allowing\nfor per-route error handling logic, or shared error handling\nlogic defined on a parent route.\n\nHere is an example of an error handler that will be invoked\nfor rejected promises from the various hooks on the route,\nas well as any unhandled errors from child routes:\n\n```app/routes/admin.js\nimport { reject } from 'rsvp';\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class AdminRoute extends Route {\n beforeModel() {\n return reject('bad things!');\n }\n\n @action\n error(error, transition) {\n // Assuming we got here due to the error in `beforeModel`,\n // we can expect that error === \"bad things!\",\n // but a promise model rejecting would also\n // call this hook, as would any errors encountered\n // in `afterModel`.\n\n // The `error` hook is also provided the failed\n // `transition`, which can be stored and later\n // `.retry()`d if desired.\n\n this.transitionTo('login');\n }\n}\n```\n\n`error` actions that bubble up all the way to `ApplicationRoute`\nwill fire a default error handler that logs the error. You can\nspecify your own global default error handler by overriding the\n`error` handler on `ApplicationRoute`:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ApplicationRoute extends Route {\n @action\n error(error, transition) {\n this.controllerFor('banner').displayError(error.message);\n }\n}\n```",
9472
- "itemtype": "event",
9473
- "name": "error",
9474
- "params": [
9475
- {
9476
- "name": "error",
9477
- "description": "",
9478
- "type": "Error"
9479
- },
9480
- {
9481
- "name": "transition",
9482
- "description": "",
9483
- "type": "Transition"
9484
- }
9485
- ],
9486
- "since": "1.0.0",
9487
- "access": "public",
9488
- "tagname": "",
9489
- "class": "Route",
9490
- "module": "@ember/routing"
9491
- },
9492
- {
9493
- "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9494
- "line": 763,
9545
+ "line": 807,
9495
9546
  "description": "This event is triggered when the router enters the route. It is\nnot executed when the model for the route changes.\n\n```app/routes/application.js\nimport { on } from '@ember/object/evented';\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n collectAnalytics: on('activate', function(){\n collectAnalytics();\n })\n});\n```",
9496
9547
  "itemtype": "event",
9497
9548
  "name": "activate",
@@ -9503,7 +9554,7 @@
9503
9554
  },
9504
9555
  {
9505
9556
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9506
- "line": 783,
9557
+ "line": 827,
9507
9558
  "description": "This event is triggered when the router completely exits this\nroute. It is not executed when the model for the route changes.\n\n```app/routes/index.js\nimport { on } from '@ember/object/evented';\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n trackPageLeaveAnalytics: on('deactivate', function(){\n trackPageLeaveAnalytics();\n })\n});\n```",
9508
9559
  "itemtype": "event",
9509
9560
  "name": "deactivate",
@@ -9515,7 +9566,7 @@
9515
9566
  },
9516
9567
  {
9517
9568
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9518
- "line": 803,
9569
+ "line": 847,
9519
9570
  "description": "This hook is executed when the router completely exits this route. It is\nnot executed when the model for the route changes.",
9520
9571
  "itemtype": "method",
9521
9572
  "name": "deactivate",
@@ -9534,7 +9585,7 @@
9534
9585
  },
9535
9586
  {
9536
9587
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9537
- "line": 814,
9588
+ "line": 858,
9538
9589
  "description": "This hook is executed when the router enters the route. It is not executed\nwhen the model for the route changes.",
9539
9590
  "itemtype": "method",
9540
9591
  "name": "activate",
@@ -9553,7 +9604,7 @@
9553
9604
  },
9554
9605
  {
9555
9606
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9556
- "line": 825,
9607
+ "line": 869,
9557
9608
  "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\n```javascript\nthis.transitionTo('blogPosts');\nthis.transitionTo('blogPosts.recentEntries');\n```\n\nOptionally supply a model for the route in question. The model\nwill be serialized into the URL using the `serialize` hook of\nthe route:\n\n```javascript\nthis.transitionTo('blogPost', aPost);\n```\n\nIf a literal is passed (such as a number or a string), it will\nbe treated as an identifier instead. In this case, the `model`\nhook of the route will be triggered:\n\n```javascript\nthis.transitionTo('blogPost', 1);\n```\n\nMultiple models will be applied last to first recursively up the\nroute tree.\n\n```app/routes.js\n// ...\n\nRouter.map(function() {\n this.route('blogPost', { path:':blogPostId' }, function() {\n this.route('blogComment', { path: ':blogCommentId' });\n });\n});\n\nexport default Router;\n```\n\n```javascript\nthis.transitionTo('blogComment', aPost, aComment);\nthis.transitionTo('blogComment', 1, 13);\n```\n\nIt is also possible to pass a URL (a string that starts with a\n`/`).\n\n```javascript\nthis.transitionTo('/');\nthis.transitionTo('/blog/post/1/comment/13');\nthis.transitionTo('/blog/posts?sort=title');\n```\n\nAn options hash with a `queryParams` property may be provided as\nthe final argument to add query parameters to the destination URL.\n\n```javascript\nthis.transitionTo('blogPost', 1, {\n queryParams: { showComments: 'true' }\n});\n\n// if you just want to transition the query parameters without changing the route\nthis.transitionTo({ queryParams: { sort: 'date' } });\n```\n\nSee also [replaceWith](#method_replaceWith).\n\nSimple Transition Example\n\n```app/routes.js\n// ...\n\nRouter.map(function() {\n this.route('index');\n this.route('secret');\n this.route('fourOhFour', { path: '*:' });\n});\n\nexport default Router;\n```\n\n```app/routes/index.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class IndexRoute extends Route {\n @action\n moveToSecret(context) {\n if (authorized()) {\n this.transitionTo('secret', context);\n } else {\n this.transitionTo('fourOhFour');\n }\n }\n}\n```\n\nTransition to a nested route\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('articles', { path: '/articles' }, function() {\n this.route('new');\n });\n});\n\nexport default Router;\n```\n\n```app/routes/index.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class IndexRoute extends Route {\n @action\n transitionToNewArticle() {\n this.transitionTo('articles.new');\n }\n}\n```\n\nMultiple Models Example\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('index');\n\n this.route('breakfast', { path: ':breakfastId' }, function() {\n this.route('cereal', { path: ':cerealId' });\n });\n});\n\nexport default Router;\n```\n\n```app/routes/index.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class IndexRoute extends Route {\n @action\n moveToChocolateCereal() {\n let cereal = { cerealId: 'ChocolateYumminess' };\n let breakfast = { breakfastId: 'CerealAndMilk' };\n\n this.transitionTo('breakfast.cereal', breakfast, cereal);\n }\n}\n```\n\nNested Route with Query String Example\n\n```app/routes.js\n// ...\n\nRouter.map(function() {\n this.route('fruits', function() {\n this.route('apples');\n });\n});\n\nexport default Router;\n```\n\n```app/routes/index.js\nimport Route from '@ember/routing/route';\n\nexport default class IndexRoute extends Route {\n @action\n transitionToApples() {\n this.transitionTo('fruits.apples', { queryParams: { color: 'red' } });\n }\n}\n```",
9558
9609
  "itemtype": "method",
9559
9610
  "name": "transitionTo",
@@ -9591,7 +9642,7 @@
9591
9642
  },
9592
9643
  {
9593
9644
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9594
- "line": 1023,
9645
+ "line": 1067,
9595
9646
  "description": "Perform a synchronous transition into another route without attempting\nto resolve promises, update the URL, or abort any currently active\nasynchronous transitions (i.e. regular transitions caused by\n`transitionTo` or URL changes).\n\nThis method is handy for performing intermediate transitions on the\nway to a final destination route, and is called internally by the\ndefault implementations of the `error` and `loading` handlers.",
9596
9647
  "itemtype": "method",
9597
9648
  "name": "intermediateTransitionTo",
@@ -9615,7 +9666,7 @@
9615
9666
  },
9616
9667
  {
9617
9668
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9618
- "line": 1045,
9669
+ "line": 1089,
9619
9670
  "description": "Refresh the model on this route and any child routes, firing the\n`beforeModel`, `model`, and `afterModel` hooks in a similar fashion\nto how routes are entered when transitioning in from other route.\nThe current route params (e.g. `article_id`) will be passed in\nto the respective model hooks, and if a different model is returned,\n`setupController` and associated route hooks will re-fire as well.\n\nAn example usage of this method is re-querying the server for the\nlatest information using the same parameters as when the route\nwas first entered.\n\nNote that this will cause `model` hooks to fire even on routes\nthat were provided a model object when the route was initially\nentered.",
9620
9671
  "itemtype": "method",
9621
9672
  "name": "refresh",
@@ -9631,7 +9682,7 @@
9631
9682
  },
9632
9683
  {
9633
9684
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9634
- "line": 1071,
9685
+ "line": 1115,
9635
9686
  "description": "Transition into another route while replacing the current URL, if possible.\nThis will replace the current history entry instead of adding a new one.\nBeside that, it is identical to `transitionTo` in all other respects. See\n'transitionTo' for additional information regarding multiple models.\n\nExample\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('index');\n this.route('secret');\n});\n\nexport default Router;\n```\n\n```app/routes/secret.js\nimport Route from '@ember/routing/route';\n\nexport default class SecretRoute Route {\n afterModel() {\n if (!authorized()){\n this.replaceWith('index');\n }\n }\n}\n```",
9636
9687
  "itemtype": "method",
9637
9688
  "name": "replaceWith",
@@ -9667,7 +9718,7 @@
9667
9718
  },
9668
9719
  {
9669
9720
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9670
- "line": 1119,
9721
+ "line": 1163,
9671
9722
  "description": "This hook is the entry point for router.js",
9672
9723
  "access": "private",
9673
9724
  "tagname": "",
@@ -9678,7 +9729,7 @@
9678
9729
  },
9679
9730
  {
9680
9731
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9681
- "line": 1199,
9732
+ "line": 1238,
9682
9733
  "description": "This hook is the first of the route entry validation hooks\ncalled when an attempt is made to transition into a route\nor one of its children. It is called before `model` and\n`afterModel`, and is appropriate for cases when:\n\n1) A decision can be made to redirect elsewhere without\n needing to resolve the model first.\n2) Any async operations need to occur first before the\n model is attempted to be resolved.\n\nThis hook is provided the current `transition` attempt\nas a parameter, which can be used to `.abort()` the transition,\nsave it for a later `.retry()`, or retrieve values set\non it from a previous hook. You can also just call\n`this.transitionTo` to another route to implicitly\nabort the `transition`.\n\nYou can return a promise from this hook to pause the\ntransition until the promise resolves (or rejects). This could\nbe useful, for instance, for retrieving async code from\nthe server that is required to enter a route.",
9683
9734
  "itemtype": "method",
9684
9735
  "name": "beforeModel",
@@ -9701,7 +9752,7 @@
9701
9752
  },
9702
9753
  {
9703
9754
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9704
- "line": 1233,
9755
+ "line": 1273,
9705
9756
  "description": "This hook is called after this route's model has resolved.\nIt follows identical async/promise semantics to `beforeModel`\nbut is provided the route's resolved model in addition to\nthe `transition`, and is therefore suited to performing\nlogic that can only take place after the model has already\nresolved.\n\n```app/routes/posts.js\nimport Route from '@ember/routing/route';\n\nexport default class PostsRoute extends Route {\n afterModel(posts, transition) {\n if (posts.get('length') === 1) {\n this.transitionTo('post.show', posts.get('firstObject'));\n }\n }\n}\n```\n\nRefer to documentation for `beforeModel` for a description\nof transition-pausing semantics when a promise is returned\nfrom this hook.",
9706
9757
  "itemtype": "method",
9707
9758
  "name": "afterModel",
@@ -9729,7 +9780,7 @@
9729
9780
  },
9730
9781
  {
9731
9782
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9732
- "line": 1270,
9783
+ "line": 1311,
9733
9784
  "description": "A hook you can implement to optionally redirect to another route.\n\nCalling `this.transitionTo` from inside of the `redirect` hook will\nabort the current transition (into the route that has implemented `redirect`).\n\n`redirect` and `afterModel` behave very similarly and are\ncalled almost at the same time, but they have an important\ndistinction when calling `this.transitionTo` to a child route\nof the current route. From `afterModel`, this new transition\ninvalidates the current transition, causing `beforeModel`,\n`model`, and `afterModel` hooks to be called again. But the\nsame transition started from `redirect` does _not_ invalidate\nthe current transition. In other words, by the time the `redirect`\nhook has been called, both the resolved model and the attempted\nentry into this route are considered fully validated.",
9734
9785
  "itemtype": "method",
9735
9786
  "name": "redirect",
@@ -9753,7 +9804,7 @@
9753
9804
  },
9754
9805
  {
9755
9806
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9756
- "line": 1295,
9807
+ "line": 1336,
9757
9808
  "description": "Called when the context is changed by router.js.",
9758
9809
  "access": "private",
9759
9810
  "tagname": "",
@@ -9764,7 +9815,7 @@
9764
9815
  },
9765
9816
  {
9766
9817
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9767
- "line": 1305,
9818
+ "line": 1346,
9768
9819
  "description": "A hook you can implement to convert the URL into the model for\nthis route.\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('post', { path: '/posts/:post_id' });\n});\n\nexport default Router;\n```\n\nThe model for the `post` route is `store.findRecord('post', params.post_id)`.\n\nBy default, if your route has a dynamic segment ending in `_id`:\n\n* The model class is determined from the segment (`post_id`'s\n class is `App.Post`)\n* The find method is called on the model class with the value of\n the dynamic segment.\n\nNote that for routes with dynamic segments, this hook is not always\nexecuted. If the route is entered through a transition (e.g. when\nusing the `link-to` Handlebars helper or the `transitionTo` method\nof routes), and a model context is already provided this hook\nis not called.\n\nA model context does not include a primitive string or number,\nwhich does cause the model hook to be called.\n\nRoutes without dynamic segments will always execute the model hook.\n\n```javascript\n// no dynamic segment, model hook always called\nthis.transitionTo('posts');\n\n// model passed in, so model hook not called\nthePost = store.findRecord('post', 1);\nthis.transitionTo('post', thePost);\n\n// integer passed in, model hook is called\nthis.transitionTo('post', 1);\n\n// model id passed in, model hook is called\n// useful for forcing the hook to execute\nthePost = store.findRecord('post', 1);\nthis.transitionTo('post', thePost.id);\n```\n\nThis hook follows the asynchronous/promise semantics\ndescribed in the documentation for `beforeModel`. In particular,\nif a promise returned from `model` fails, the error will be\nhandled by the `error` hook on `Route`.\n\nExample\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class PostRoute extends Route {\n model(params) {\n return this.store.findRecord('post', params.post_id);\n }\n}\n```",
9769
9820
  "itemtype": "method",
9770
9821
  "name": "model",
@@ -9792,7 +9843,7 @@
9792
9843
  },
9793
9844
  {
9794
9845
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9795
- "line": 1415,
9846
+ "line": 1462,
9796
9847
  "access": "private",
9797
9848
  "tagname": "",
9798
9849
  "itemtype": "method",
@@ -9818,7 +9869,7 @@
9818
9869
  },
9819
9870
  {
9820
9871
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9821
- "line": 1428,
9872
+ "line": 1475,
9822
9873
  "itemtype": "method",
9823
9874
  "name": "findModel",
9824
9875
  "params": [
@@ -9840,7 +9891,7 @@
9840
9891
  },
9841
9892
  {
9842
9893
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9843
- "line": 1439,
9894
+ "line": 1486,
9844
9895
  "description": "A hook you can use to setup the controller for the current route.\n\nThis method is called with the controller for the current route and the\nmodel supplied by the `model` hook.\n\nBy default, the `setupController` hook sets the `model` property of\nthe controller to the specified `model` when it is not `undefined`.\n\nIf you implement the `setupController` hook in your Route, it will\nprevent this default behavior. If you want to preserve that behavior\nwhen implementing your `setupController` function, make sure to call\n`super`:\n\n```app/routes/photos.js\nimport Route from '@ember/routing/route';\n\nexport default class PhotosRoute extends Route {\n model() {\n return this.store.findAll('photo');\n }\n\n setupController(controller, model) {\n super.setupController(controller, model);\n\n this.controllerFor('application').set('showingPhotos', true);\n }\n}\n```\n\nThe provided controller will be one resolved based on the name\nof this route.\n\nIf no explicit controller is defined, Ember will automatically create one.\n\nAs an example, consider the router:\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('post', { path: '/posts/:post_id' });\n});\n\nexport default Router;\n```\n\nIf you have defined a file for the post controller,\nthe framework will use it.\nIf it is not defined, a basic `Controller` instance would be used.",
9845
9896
  "example": [
9846
9897
  " Behavior of a basic Controller\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class PostRoute extends Route {\n setupController(controller, model) {\n controller.set('model', model);\n }\n});\n```"
@@ -9873,7 +9924,7 @@
9873
9924
  },
9874
9925
  {
9875
9926
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9876
- "line": 1515,
9927
+ "line": 1562,
9877
9928
  "description": "Returns the controller of the current route, or a parent (or any ancestor)\nroute in a route hierarchy.\n\nThe controller instance must already have been created, either through entering the\nassociated route or using `generateController`.\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class PostRoute extends Route {\n setupController(controller, post) {\n super.setupController(controller, post);\n\n this.controllerFor('posts').set('currentPost', post);\n }\n}\n```",
9878
9929
  "itemtype": "method",
9879
9930
  "name": "controllerFor",
@@ -9886,7 +9937,7 @@
9886
9937
  ],
9887
9938
  "return": {
9888
9939
  "description": "",
9889
- "type": "Controller"
9940
+ "type": "Controller | undefined"
9890
9941
  },
9891
9942
  "since": "1.0.0",
9892
9943
  "access": "public",
@@ -9896,7 +9947,7 @@
9896
9947
  },
9897
9948
  {
9898
9949
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9899
- "line": 1562,
9950
+ "line": 1611,
9900
9951
  "description": "Generates a controller for a route.\n\nExample\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class Post extends Route {\n setupController(controller, post) {\n super.setupController(controller, post);\n\n this.generateController('posts');\n }\n}\n```",
9901
9952
  "itemtype": "method",
9902
9953
  "name": "generateController",
@@ -9914,7 +9965,7 @@
9914
9965
  },
9915
9966
  {
9916
9967
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9917
- "line": 1590,
9968
+ "line": 1639,
9918
9969
  "description": "Returns the resolved model of a parent (or any ancestor) route\nin a route hierarchy. During a transition, all routes\nmust resolve a model object, and if a route\nneeds access to a parent route's model in order to\nresolve a model (or just reuse the model from a parent),\nit can call `this.modelFor(theNameOfParentRoute)` to\nretrieve it. If the ancestor route's model was a promise,\nits resolved result is returned.\n\nExample\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('post', { path: '/posts/:post_id' }, function() {\n this.route('comments');\n });\n});\n\nexport default Router;\n```\n\n```app/routes/post/comments.js\nimport Route from '@ember/routing/route';\n\nexport default class PostCommentsRoute extends Route {\n model() {\n let post = this.modelFor('post');\n\n return post.comments;\n }\n}\n```",
9919
9970
  "itemtype": "method",
9920
9971
  "name": "modelFor",
@@ -9937,7 +9988,7 @@
9937
9988
  },
9938
9989
  {
9939
9990
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9940
- "line": 1662,
9991
+ "line": 1711,
9941
9992
  "description": "`this[RENDER]` is used to render a template into a region of another template\n(indicated by an `{{outlet}}`).",
9942
9993
  "itemtype": "method",
9943
9994
  "name": "this[RENDER]",
@@ -9987,7 +10038,7 @@
9987
10038
  },
9988
10039
  {
9989
10040
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9990
- "line": 1689,
10041
+ "line": 1738,
9991
10042
  "access": "private",
9992
10043
  "tagname": "",
9993
10044
  "itemtype": "method",
@@ -9997,7 +10048,7 @@
9997
10048
  },
9998
10049
  {
9999
10050
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10000
- "line": 1702,
10051
+ "line": 1751,
10001
10052
  "description": "Allows you to produce custom metadata for the route.\nThe return value of this method will be attached to\nits corresponding RouteInfoWithAttributes object.\n\nExample\n\n```app/routes/posts/index.js\nimport Route from '@ember/routing/route';\n\nexport default class PostsIndexRoute extends Route {\n buildRouteInfoMetadata() {\n return { title: 'Posts Page' }\n }\n}\n```\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\nexport default class ApplicationRoute extends Route {\n @service router\n\n constructor() {\n super(...arguments);\n\n this.router.on('routeDidChange', transition => {\n document.title = transition.to.metadata.title;\n // would update document's title to \"Posts Page\"\n });\n }\n}\n```",
10002
10053
  "itemtype": "method",
10003
10054
  "name": "buildRouteInfoMetadata",
@@ -10012,7 +10063,7 @@
10012
10063
  },
10013
10064
  {
10014
10065
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10015
- "line": 1752,
10066
+ "line": 1802,
10016
10067
  "description": "Store property provides a hook for data persistence libraries to inject themselves.\n\nBy default, this store property provides the exact same functionality previously\nin the model hook.\n\nCurrently, the required interface is:\n\n`store.find(modelName, findArguments)`",
10017
10068
  "itemtype": "property",
10018
10069
  "name": "store",
@@ -10024,7 +10075,7 @@
10024
10075
  },
10025
10076
  {
10026
10077
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10027
- "line": 1818,
10078
+ "line": 1868,
10028
10079
  "access": "private",
10029
10080
  "tagname": "",
10030
10081
  "itemtype": "property",
@@ -10034,7 +10085,7 @@
10034
10085
  },
10035
10086
  {
10036
10087
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10037
- "line": 1950,
10088
+ "line": 2003,
10038
10089
  "description": "Sends an action to the router, which will delegate it to the currently\nactive route hierarchy per the bubbling rules explained under `actions`.\n\nExample\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('index');\n});\n\nexport default Router;\n```\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class ApplicationRoute extends Route {\n @action\n track(arg) {\n console.log(arg, 'was clicked');\n }\n}\n```\n\n```app/routes/index.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class IndexRoute extends Route {\n @action\n trackIfDebug(arg) {\n if (debug) {\n this.send('track', arg);\n }\n }\n}\n```",
10039
10090
  "itemtype": "method",
10040
10091
  "name": "send",
@@ -10058,35 +10109,7 @@
10058
10109
  },
10059
10110
  {
10060
10111
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10061
- "line": 2282,
10062
- "description": "A hook you can implement to convert the route's model into parameters\nfor the URL.\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('post', { path: '/posts/:post_id' });\n});\n\n```\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\n\nexport default class PostRoute extends Route {\n model({ post_id }) {\n // the server returns `{ id: 12 }`\n return fetch(`/posts/${post_id}`;\n }\n\n serialize(model) {\n // this will make the URL `/posts/12`\n return { post_id: model.id };\n }\n}\n```\n\nThe default `serialize` method will insert the model's `id` into the\nroute's dynamic segment (in this case, `:post_id`) if the segment contains '_id'.\nIf the route has multiple dynamic segments or does not contain '_id', `serialize`\nwill return `getProperties(model, params)`\n\nThis method is called when `transitionTo` is called with a context\nin order to populate the URL.",
10063
- "itemtype": "method",
10064
- "name": "serialize",
10065
- "params": [
10066
- {
10067
- "name": "model",
10068
- "description": "the routes model",
10069
- "type": "Object"
10070
- },
10071
- {
10072
- "name": "params",
10073
- "description": "an Array of parameter names for the current\n route (in the example, `['post_id']`.",
10074
- "type": "Array"
10075
- }
10076
- ],
10077
- "return": {
10078
- "description": "the serialized parameters",
10079
- "type": "Object"
10080
- },
10081
- "since": "1.0.0",
10082
- "access": "public",
10083
- "tagname": "",
10084
- "class": "Route",
10085
- "module": "@ember/routing"
10086
- },
10087
- {
10088
- "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10089
- "line": 2352,
10112
+ "line": 2380,
10090
10113
  "description": "The controller associated with this route.\n\nExample\n\n```app/routes/form.js\nimport Route from '@ember/routing/route';\nimport { action } from '@ember/object';\n\nexport default class FormRoute extends Route {\n @action\n willTransition(transition) {\n if (this.controller.get('userHasEnteredData') &&\n !confirm('Are you sure you want to abandon progress?')) {\n transition.abort();\n } else {\n // Bubble the `willTransition` action so that\n // parent routes can decide whether or not to abort.\n return true;\n }\n }\n}\n```",
10091
10114
  "itemtype": "property",
10092
10115
  "name": "controller",
@@ -10099,7 +10122,7 @@
10099
10122
  },
10100
10123
  {
10101
10124
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10102
- "line": 2383,
10125
+ "line": 2411,
10103
10126
  "description": "This action is called when one or more query params have changed. Bubbles.",
10104
10127
  "itemtype": "method",
10105
10128
  "name": "queryParamsDidChange",
@@ -10131,7 +10154,7 @@
10131
10154
  },
10132
10155
  {
10133
10156
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10134
- "line": 143,
10157
+ "line": 153,
10135
10158
  "description": "Represents the URL of the root of the application, often '/'. This prefix is\n assumed on all routes defined on this router.",
10136
10159
  "itemtype": "property",
10137
10160
  "name": "rootURL",
@@ -10143,7 +10166,7 @@
10143
10166
  },
10144
10167
  {
10145
10168
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10146
- "line": 154,
10169
+ "line": 164,
10147
10170
  "description": "The `location` property determines the type of URL's that your\n application will use.\n\n The following location types are currently available:\n\n * `history` - use the browser's history API to make the URLs look just like any standard URL\n * `hash` - use `#` to separate the server part of the URL from the Ember part: `/blog/#/posts/new`\n * `none` - do not store the Ember URL in the actual browser URL (mainly used for testing)\n * `auto` - use the best option based on browser capabilities: `history` if possible, then `hash` if possible, otherwise `none`\n\n This value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`",
10148
10171
  "itemtype": "property",
10149
10172
  "name": "location",
@@ -10158,7 +10181,7 @@
10158
10181
  },
10159
10182
  {
10160
10183
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10161
- "line": 212,
10184
+ "line": 222,
10162
10185
  "description": "The `Router.map` function allows you to define mappings from URLs to routes\nin your application. These mappings are defined within the\nsupplied callback function using `this.route`.\n\nThe first parameter is the name of the route which is used by default as the\npath name as well.\n\nThe second parameter is the optional options hash. Available options are:\n\n * `path`: allows you to provide your own path as well as mark dynamic\n segments.\n * `resetNamespace`: false by default; when nesting routes, ember will\n combine the route names to form the fully-qualified route name, which is\n used with `{{link-to}}` or manually transitioning to routes. Setting\n `resetNamespace: true` will cause the route not to inherit from its\n parent route's names. This is handy for preventing extremely long route names.\n Keep in mind that the actual URL path behavior is still retained.\n\nThe third parameter is a function, which can be used to nest routes.\nNested routes, by default, will have the parent route tree's route name and\npath prepended to it's own.\n\n```app/router.js\nRouter.map(function(){\n this.route('post', { path: '/post/:post_id' }, function() {\n this.route('edit');\n this.route('comments', { resetNamespace: true }, function() {\n this.route('new');\n });\n });\n});\n```",
10163
10186
  "itemtype": "method",
10164
10187
  "name": "map",
@@ -10175,7 +10198,7 @@
10175
10198
  },
10176
10199
  {
10177
10200
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10178
- "line": 539,
10201
+ "line": 551,
10179
10202
  "description": "Initializes the current router instance and sets up the change handling\nevent listeners used by the instances `location` implementation.\n\nA property named `initialURL` will be used to determine the initial URL.\nIf no value is found `/` will be used.",
10180
10203
  "itemtype": "method",
10181
10204
  "name": "startRouting",
@@ -10186,15 +10209,16 @@
10186
10209
  },
10187
10210
  {
10188
10211
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10189
- "line": 662,
10190
- "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\nSee [transitionTo](/ember/release/classes/Route/methods/transitionTo?anchor=transitionTo) for more info.",
10212
+ "line": 674,
10213
+ "description": "Transition the application into another route. The route may\nbe either a single route or route path:",
10191
10214
  "itemtype": "method",
10192
10215
  "name": "transitionTo",
10193
10216
  "params": [
10194
10217
  {
10195
10218
  "name": "name",
10196
10219
  "description": "the name of the route or a URL",
10197
- "type": "String"
10220
+ "type": "String",
10221
+ "optional": true
10198
10222
  },
10199
10223
  {
10200
10224
  "name": "models",
@@ -10220,6 +10244,40 @@
10220
10244
  {
10221
10245
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10222
10246
  "line": 719,
10247
+ "description": "Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,\nit replaces the entry for the current route.\nWhen the user clicks the \"back\" button in the browser, there will be fewer steps.\nThis is most commonly used to manage redirects in a way that does not cause confusing additions\nto the user's browsing history.",
10248
+ "itemtype": "method",
10249
+ "name": "replaceWith",
10250
+ "params": [
10251
+ {
10252
+ "name": "name",
10253
+ "description": "the name of the route or a URL",
10254
+ "type": "String",
10255
+ "optional": true
10256
+ },
10257
+ {
10258
+ "name": "models",
10259
+ "description": "the model(s) or identifier(s) to be used while\n transitioning to the route.",
10260
+ "type": "...Object"
10261
+ },
10262
+ {
10263
+ "name": "options",
10264
+ "description": "optional hash with a queryParams property\n containing a mapping of query parameters",
10265
+ "type": "Object",
10266
+ "optional": true
10267
+ }
10268
+ ],
10269
+ "return": {
10270
+ "description": "the transition object associated with this\n attempted transition",
10271
+ "type": "Transition"
10272
+ },
10273
+ "access": "public",
10274
+ "tagname": "",
10275
+ "class": "EmberRouter",
10276
+ "module": "@ember/routing"
10277
+ },
10278
+ {
10279
+ "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10280
+ "line": 746,
10223
10281
  "description": "Determines if the supplied route is currently active.",
10224
10282
  "itemtype": "method",
10225
10283
  "name": "isActive",
@@ -10240,7 +10298,7 @@
10240
10298
  },
10241
10299
  {
10242
10300
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10243
- "line": 731,
10301
+ "line": 758,
10244
10302
  "description": "An alternative form of `isActive` that doesn't require\nmanual concatenation of the arguments into a single\narray.",
10245
10303
  "itemtype": "method",
10246
10304
  "name": "isActiveIntent",
@@ -10270,7 +10328,7 @@
10270
10328
  },
10271
10329
  {
10272
10330
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10273
- "line": 753,
10331
+ "line": 780,
10274
10332
  "description": "Does this router instance have the given route.",
10275
10333
  "itemtype": "method",
10276
10334
  "name": "hasRoute",
@@ -10285,7 +10343,7 @@
10285
10343
  },
10286
10344
  {
10287
10345
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10288
- "line": 764,
10346
+ "line": 791,
10289
10347
  "description": "Resets the state of the router by clearing the current route\nhandlers and deactivating them.",
10290
10348
  "access": "private",
10291
10349
  "tagname": "",
@@ -10296,7 +10354,7 @@
10296
10354
  },
10297
10355
  {
10298
10356
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10299
- "line": 908,
10357
+ "line": 937,
10300
10358
  "description": "Serializes the given query params according to their QP meta information.",
10301
10359
  "access": "private",
10302
10360
  "tagname": "",
@@ -10323,7 +10381,7 @@
10323
10381
  },
10324
10382
  {
10325
10383
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10326
- "line": 938,
10384
+ "line": 967,
10327
10385
  "description": "Serializes the value of a query parameter based on a type",
10328
10386
  "access": "private",
10329
10387
  "tagname": "",
@@ -10346,7 +10404,7 @@
10346
10404
  },
10347
10405
  {
10348
10406
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10349
- "line": 956,
10407
+ "line": 985,
10350
10408
  "description": "Deserializes the given query params according to their QP meta information.",
10351
10409
  "access": "private",
10352
10410
  "tagname": "",
@@ -10373,7 +10431,7 @@
10373
10431
  },
10374
10432
  {
10375
10433
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10376
- "line": 981,
10434
+ "line": 1013,
10377
10435
  "description": "Deserializes the value of a query parameter based on a default type",
10378
10436
  "access": "private",
10379
10437
  "tagname": "",
@@ -10396,7 +10454,7 @@
10396
10454
  },
10397
10455
  {
10398
10456
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10399
- "line": 1002,
10457
+ "line": 1034,
10400
10458
  "description": "Removes (prunes) any query params with default values from the given QP\nobject. Default values are determined from the QP meta information per key.",
10401
10459
  "access": "private",
10402
10460
  "tagname": "",
@@ -10423,7 +10481,7 @@
10423
10481
  },
10424
10482
  {
10425
10483
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10426
- "line": 1088,
10484
+ "line": 1115,
10427
10485
  "description": "Prepares the query params for a URL or Transition. Restores any undefined QP\nkeys/values, serializes all values, and then prunes any default values.",
10428
10486
  "access": "private",
10429
10487
  "tagname": "",
@@ -10460,7 +10518,7 @@
10460
10518
  },
10461
10519
  {
10462
10520
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10463
- "line": 1115,
10521
+ "line": 1142,
10464
10522
  "description": "Returns the meta information for the query params of a given route. This\nwill be overridden to allow support for lazy routes.",
10465
10523
  "access": "private",
10466
10524
  "tagname": "",
@@ -10482,7 +10540,7 @@
10482
10540
  },
10483
10541
  {
10484
10542
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10485
- "line": 1129,
10543
+ "line": 1156,
10486
10544
  "description": "Returns a merged query params meta object for a given set of routeInfos.\nUseful for knowing what query params are available for a given route hierarchy.",
10487
10545
  "access": "private",
10488
10546
  "tagname": "",
@@ -10504,7 +10562,7 @@
10504
10562
  },
10505
10563
  {
10506
10564
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10507
- "line": 1194,
10565
+ "line": 1218,
10508
10566
  "description": "Maps all query param keys to their fully scoped property name of the form\n`controllerName:propName`.",
10509
10567
  "access": "private",
10510
10568
  "tagname": "",
@@ -10536,7 +10594,7 @@
10536
10594
  },
10537
10595
  {
10538
10596
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10539
- "line": 1236,
10597
+ "line": 1256,
10540
10598
  "description": "Hydrates (adds/restores) any query params that have pre-existing values into\nthe given queryParams hash. This is what allows query params to be \"sticky\"\nand restore their last known values for their scope.",
10541
10599
  "access": "private",
10542
10600
  "tagname": "",
@@ -10563,7 +10621,7 @@
10563
10621
  },
10564
10622
  {
10565
10623
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10566
- "line": 1400,
10624
+ "line": 1427,
10567
10625
  "description": "Handles updating the paths and notifying any listeners of the URL\nchange.\n\nTriggers the router level `didTransition` hook.\n\nFor example, to notify google analytics when the route changes,\nyou could use this hook. (Note: requires also including GA scripts, etc.)\n\n```javascript\nimport config from './config/environment';\nimport EmberRouter from '@ember/routing/router';\nimport { service } from '@ember/service';\n\nlet Router = EmberRouter.extend({\n location: config.locationType,\n\n router: service(),\n\n didTransition: function() {\n this._super(...arguments);\n\n ga('send', 'pageview', {\n page: this.router.currentURL,\n title: this.router.currentRouteName,\n });\n }\n});\n```",
10568
10626
  "itemtype": "method",
10569
10627
  "name": "didTransition",
@@ -10575,7 +10633,7 @@
10575
10633
  },
10576
10634
  {
10577
10635
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10578
- "line": 1437,
10636
+ "line": 1464,
10579
10637
  "description": "Handles notifying any listeners of an impending URL\nchange.\n\nTriggers the router level `willTransition` hook.",
10580
10638
  "itemtype": "method",
10581
10639
  "name": "willTransition",
@@ -10587,7 +10645,7 @@
10587
10645
  },
10588
10646
  {
10589
10647
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10590
- "line": 1450,
10648
+ "line": 1477,
10591
10649
  "description": "Represents the current URL.",
10592
10650
  "itemtype": "property",
10593
10651
  "name": "url",
@@ -10599,7 +10657,7 @@
10599
10657
  },
10600
10658
  {
10601
10659
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10602
- "line": 1606,
10660
+ "line": 1635,
10603
10661
  "description": "Finds the name of the substate route if it exists for the given route. A\nsubstate route is of the form `route_state`, such as `foo_loading`.",
10604
10662
  "access": "private",
10605
10663
  "tagname": "",
@@ -10624,7 +10682,7 @@
10624
10682
  },
10625
10683
  {
10626
10684
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10627
- "line": 1627,
10685
+ "line": 1656,
10628
10686
  "description": "Finds the name of the state route if it exists for the given route. A state\nroute is of the form `route.state`, such as `foo.loading`. Properly Handles\n`application` named routes.",
10629
10687
  "access": "private",
10630
10688
  "tagname": "",
@@ -10649,7 +10707,7 @@
10649
10707
  },
10650
10708
  {
10651
10709
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10652
- "line": 1649,
10710
+ "line": 1678,
10653
10711
  "description": "Determines whether or not a route has been defined by checking that the route\nis in the Router's map and the owner has a registration for that route.",
10654
10712
  "access": "private",
10655
10713
  "tagname": "",
@@ -13928,7 +13986,7 @@
13928
13986
  },
13929
13987
  {
13930
13988
  "file": "packages/@ember/-internals/utils/lib/inspect.ts",
13931
- "line": 14,
13989
+ "line": 15,
13932
13990
  "description": "Convenience method to inspect an object. This method will attempt to\nconvert the object into a useful string description.\n\nIt is a pretty simple implementation. If you want something more robust,\nuse something like JSDump: https://github.com/NV/jsDump",
13933
13991
  "itemtype": "method",
13934
13992
  "name": "inspect",
@@ -14489,7 +14547,7 @@
14489
14547
  },
14490
14548
  {
14491
14549
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14492
- "line": 62,
14550
+ "line": 63,
14493
14551
  "access": "private",
14494
14552
  "tagname": "",
14495
14553
  "itemtype": "method",
@@ -14506,7 +14564,7 @@
14506
14564
  },
14507
14565
  {
14508
14566
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14509
- "line": 82,
14567
+ "line": 83,
14510
14568
  "access": "private",
14511
14569
  "tagname": "",
14512
14570
  "itemtype": "method",
@@ -14523,7 +14581,7 @@
14523
14581
  },
14524
14582
  {
14525
14583
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14526
- "line": 114,
14584
+ "line": 115,
14527
14585
  "access": "private",
14528
14586
  "tagname": "",
14529
14587
  "itemtype": "method",
@@ -14540,7 +14598,7 @@
14540
14598
  },
14541
14599
  {
14542
14600
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14543
- "line": 157,
14601
+ "line": 158,
14544
14602
  "access": "private",
14545
14603
  "tagname": "",
14546
14604
  "itemtype": "method",
@@ -14557,7 +14615,7 @@
14557
14615
  },
14558
14616
  {
14559
14617
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14560
- "line": 166,
14618
+ "line": 167,
14561
14619
  "access": "private",
14562
14620
  "tagname": "",
14563
14621
  "itemtype": "method",
@@ -14574,7 +14632,7 @@
14574
14632
  },
14575
14633
  {
14576
14634
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14577
- "line": 181,
14635
+ "line": 182,
14578
14636
  "description": "`getViewClientRects` provides information about the position of the border\nbox edges of a view relative to the viewport.\n\nIt is only intended to be used by development tools like the Ember Inspector\nand may not work on older browsers.",
14579
14637
  "access": "private",
14580
14638
  "tagname": "",
@@ -14592,7 +14650,7 @@
14592
14650
  },
14593
14651
  {
14594
14652
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14595
- "line": 197,
14653
+ "line": 198,
14596
14654
  "description": "`getViewBoundingClientRect` provides information about the position of the\nbounding border box edges of a view relative to the viewport.\n\nIt is only intended to be used by development tools like the Ember Inspector\nand may not work on older browsers.",
14597
14655
  "access": "private",
14598
14656
  "tagname": "",
@@ -14610,7 +14668,7 @@
14610
14668
  },
14611
14669
  {
14612
14670
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14613
- "line": 213,
14671
+ "line": 214,
14614
14672
  "description": "Determines if the element matches the specified selector.",
14615
14673
  "access": "private",
14616
14674
  "tagname": "",
@@ -15307,6 +15365,12 @@
15307
15365
  "class": "@ember/component/template-only",
15308
15366
  "module": "@ember/component/template-only"
15309
15367
  },
15368
+ {
15369
+ "file": "packages/@ember/controller/lib/controller_mixin.d.ts",
15370
+ "line": 8,
15371
+ "class": "Ember.ControllerMixin",
15372
+ "module": "@ember/component/template-only"
15373
+ },
15310
15374
  {
15311
15375
  "file": "packages/@ember/controller/lib/controller_mixin.js",
15312
15376
  "line": 21,
@@ -15333,8 +15397,8 @@
15333
15397
  "namespace": "Ember"
15334
15398
  },
15335
15399
  {
15336
- "file": "packages/@ember/controller/index.js",
15337
- "line": 17,
15400
+ "file": "packages/@ember/controller/index.ts",
15401
+ "line": 20,
15338
15402
  "description": "Creates a property that lazily looks up another controller in the container.\nCan only be used when defining another controller.\n\nExample:\n\n```app/controllers/post.js\nimport Controller, {\n inject as controller\n} from '@ember/controller';\n\nexport default class PostController extends Controller {\n @controller posts;\n}\n```\n\nClassic Class Example:\n\n```app/controllers/post.js\nimport Controller, {\n inject as controller\n} from '@ember/controller';\n\nexport default Controller.extend({\n posts: controller()\n});\n```\n\nThis example will create a `posts` property on the `post` controller that\nlooks up the `posts` controller in the container, making it easy to reference\nother controllers.",
15339
15403
  "itemtype": "method",
15340
15404
  "name": "inject",
@@ -16218,7 +16282,7 @@
16218
16282
  },
16219
16283
  {
16220
16284
  "file": "packages/@ember/instrumentation/index.ts",
16221
- "line": 122,
16285
+ "line": 121,
16222
16286
  "description": "Notifies event's subscribers, calls `before` and `after` hooks.",
16223
16287
  "itemtype": "method",
16224
16288
  "name": "instrument",
@@ -16253,7 +16317,7 @@
16253
16317
  },
16254
16318
  {
16255
16319
  "file": "packages/@ember/instrumentation/index.ts",
16256
- "line": 281,
16320
+ "line": 282,
16257
16321
  "description": "Subscribes to a particular event or instrumented block of code.",
16258
16322
  "itemtype": "method",
16259
16323
  "name": "subscribe",
@@ -16283,7 +16347,7 @@
16283
16347
  },
16284
16348
  {
16285
16349
  "file": "packages/@ember/instrumentation/index.ts",
16286
- "line": 323,
16350
+ "line": 322,
16287
16351
  "description": "Unsubscribes from a particular event or instrumented block of code.",
16288
16352
  "itemtype": "method",
16289
16353
  "name": "unsubscribe",
@@ -16303,7 +16367,7 @@
16303
16367
  },
16304
16368
  {
16305
16369
  "file": "packages/@ember/instrumentation/index.ts",
16306
- "line": 346,
16370
+ "line": 345,
16307
16371
  "description": "Resets `Instrumentation` by flushing list of subscribers.",
16308
16372
  "itemtype": "method",
16309
16373
  "name": "reset",
@@ -17714,8 +17778,8 @@
17714
17778
  "module": "@ember/runloop"
17715
17779
  },
17716
17780
  {
17717
- "file": "packages/@ember/service/index.js",
17718
- "line": 9,
17781
+ "file": "packages/@ember/service/index.ts",
17782
+ "line": 13,
17719
17783
  "itemtype": "method",
17720
17784
  "name": "inject",
17721
17785
  "static": 1,
@@ -17737,8 +17801,8 @@
17737
17801
  "module": "@ember/service"
17738
17802
  },
17739
17803
  {
17740
- "file": "packages/@ember/service/index.js",
17741
- "line": 23,
17804
+ "file": "packages/@ember/service/index.ts",
17805
+ "line": 33,
17742
17806
  "description": "Creates a property that lazily looks up a service in the container. There are\nno restrictions as to what objects a service can be injected into.\n\nExample:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\nexport default class ApplicationRoute extends Route {\n @service('auth') authManager;\n\n model() {\n return this.authManager.findCurrentUser();\n }\n}\n```\n\nClassic Class Example:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\nexport default Route.extend({\n authManager: service('auth'),\n\n model() {\n return this.get('authManager').findCurrentUser();\n }\n});\n```\n\nThis example will create an `authManager` property on the application route\nthat looks up the `auth` service in the container, making it easily accessible\nin the `model` hook.",
17743
17807
  "itemtype": "method",
17744
17808
  "name": "service",
@@ -17762,7 +17826,7 @@
17762
17826
  },
17763
17827
  {
17764
17828
  "file": "packages/@ember/string/index.ts",
17765
- "line": 80,
17829
+ "line": 81,
17766
17830
  "description": "Splits a string into separate units separated by spaces, eliminating any\nempty strings in the process.\n\n```javascript\nimport { w } from '@ember/string';\n\nw(\"alpha beta gamma\").forEach(function(key) {\n console.log(key);\n});\n\n// > alpha\n// > beta\n// > gamma\n```",
17767
17831
  "itemtype": "method",
17768
17832
  "name": "w",
@@ -17784,7 +17848,7 @@
17784
17848
  },
17785
17849
  {
17786
17850
  "file": "packages/@ember/string/index.ts",
17787
- "line": 105,
17851
+ "line": 106,
17788
17852
  "description": "Converts a camelized string into all lower case separated by underscores.\n\n```javascript\nimport { decamelize } from '@ember/string';\n\ndecamelize('innerHTML'); // 'inner_html'\ndecamelize('action_name'); // 'action_name'\ndecamelize('css-class-name'); // 'css-class-name'\ndecamelize('my favorite items'); // 'my favorite items'\n```",
17789
17853
  "itemtype": "method",
17790
17854
  "name": "decamelize",
@@ -17806,7 +17870,7 @@
17806
17870
  },
17807
17871
  {
17808
17872
  "file": "packages/@ember/string/index.ts",
17809
- "line": 126,
17873
+ "line": 127,
17810
17874
  "description": "Replaces underscores, spaces, or camelCase with dashes.\n\n```javascript\nimport { dasherize } from '@ember/string';\n\ndasherize('innerHTML'); // 'inner-html'\ndasherize('action_name'); // 'action-name'\ndasherize('css-class-name'); // 'css-class-name'\ndasherize('my favorite items'); // 'my-favorite-items'\ndasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n```",
17811
17875
  "itemtype": "method",
17812
17876
  "name": "dasherize",
@@ -17828,7 +17892,7 @@
17828
17892
  },
17829
17893
  {
17830
17894
  "file": "packages/@ember/string/index.ts",
17831
- "line": 148,
17895
+ "line": 149,
17832
17896
  "description": "Returns the lowerCamelCase form of a string.\n\n```javascript\nimport { camelize } from '@ember/string';\n\ncamelize('innerHTML'); // 'innerHTML'\ncamelize('action_name'); // 'actionName'\ncamelize('css-class-name'); // 'cssClassName'\ncamelize('my favorite items'); // 'myFavoriteItems'\ncamelize('My Favorite Items'); // 'myFavoriteItems'\ncamelize('private-docs/owner-invoice'); // 'privateDocs/ownerInvoice'\n```",
17833
17897
  "itemtype": "method",
17834
17898
  "name": "camelize",
@@ -17850,7 +17914,7 @@
17850
17914
  },
17851
17915
  {
17852
17916
  "file": "packages/@ember/string/index.ts",
17853
- "line": 171,
17917
+ "line": 172,
17854
17918
  "description": "Returns the UpperCamelCase form of a string.\n\n```javascript\nimport { classify } from '@ember/string';\n\nclassify('innerHTML'); // 'InnerHTML'\nclassify('action_name'); // 'ActionName'\nclassify('css-class-name'); // 'CssClassName'\nclassify('my favorite items'); // 'MyFavoriteItems'\nclassify('private-docs/owner-invoice'); // 'PrivateDocs/OwnerInvoice'\n```",
17855
17919
  "itemtype": "method",
17856
17920
  "name": "classify",
@@ -17872,7 +17936,7 @@
17872
17936
  },
17873
17937
  {
17874
17938
  "file": "packages/@ember/string/index.ts",
17875
- "line": 193,
17939
+ "line": 194,
17876
17940
  "description": "More general than decamelize. Returns the lower\\_case\\_and\\_underscored\nform of a string.\n\n```javascript\nimport { underscore } from '@ember/string';\n\nunderscore('innerHTML'); // 'inner_html'\nunderscore('action_name'); // 'action_name'\nunderscore('css-class-name'); // 'css_class_name'\nunderscore('my favorite items'); // 'my_favorite_items'\nunderscore('privateDocs/ownerInvoice'); // 'private_docs/owner_invoice'\n```",
17877
17941
  "itemtype": "method",
17878
17942
  "name": "underscore",
@@ -17894,7 +17958,7 @@
17894
17958
  },
17895
17959
  {
17896
17960
  "file": "packages/@ember/string/index.ts",
17897
- "line": 216,
17961
+ "line": 217,
17898
17962
  "description": "Returns the Capitalized form of a string\n\n```javascript\nimport { capitalize } from '@ember/string';\n\ncapitalize('innerHTML') // 'InnerHTML'\ncapitalize('action_name') // 'Action_name'\ncapitalize('css-class-name') // 'Css-class-name'\ncapitalize('my favorite items') // 'My favorite items'\ncapitalize('privateDocs/ownerInvoice'); // 'PrivateDocs/ownerInvoice'\n```",
17899
17963
  "itemtype": "method",
17900
17964
  "name": "capitalize",
@@ -18411,35 +18475,35 @@
18411
18475
  "warnings": [
18412
18476
  {
18413
18477
  "message": "replacing incorrect tag: returns with return",
18414
- "line": " packages/@ember/-internals/container/lib/container.ts:191"
18478
+ "line": " packages/@ember/-internals/container/lib/container.ts:188"
18415
18479
  },
18416
18480
  {
18417
18481
  "message": "unknown tag: internal",
18418
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:602"
18482
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:597"
18419
18483
  },
18420
18484
  {
18421
18485
  "message": "unknown tag: internal",
18422
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:625"
18486
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:620"
18423
18487
  },
18424
18488
  {
18425
18489
  "message": "unknown tag: internal",
18426
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:646"
18490
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:641"
18427
18491
  },
18428
18492
  {
18429
18493
  "message": "unknown tag: decorator",
18430
- "line": " packages/@ember/-internals/metal/lib/tracked.ts:16"
18494
+ "line": " packages/@ember/-internals/metal/lib/tracked.ts:17"
18431
18495
  },
18432
18496
  {
18433
18497
  "message": "replacing incorrect tag: returns with return",
18434
- "line": " packages/@ember/-internals/routing/lib/system/route-info.ts:84"
18498
+ "line": " packages/@ember/-internals/routing/lib/system/route-info.ts:86"
18435
18499
  },
18436
18500
  {
18437
18501
  "message": "replacing incorrect tag: returns with return",
18438
- "line": " packages/@ember/-internals/routing/lib/system/route-info.ts:192"
18502
+ "line": " packages/@ember/-internals/routing/lib/system/route-info.ts:194"
18439
18503
  },
18440
18504
  {
18441
18505
  "message": "replacing incorrect tag: returns with return",
18442
- "line": " packages/@ember/-internals/routing/lib/system/route.ts:2383"
18506
+ "line": " packages/@ember/-internals/routing/lib/system/route.ts:2411"
18443
18507
  },
18444
18508
  {
18445
18509
  "message": "unknown tag: internal",
@@ -18471,7 +18535,7 @@
18471
18535
  },
18472
18536
  {
18473
18537
  "message": "Missing item type\nThis is deprecated in favor of explicit injection of dependencies.\n\nReference: https://deprecations.emberjs.com/v3.x#toc_implicit-injections\n```\n\n@private\n@method injection\n@param {String} factoryName\n@param {String} property\n@param {String} injectionName\n@deprecated",
18474
- "line": " packages/@ember/-internals/container/lib/registry.ts:449"
18538
+ "line": " packages/@ember/-internals/container/lib/registry.ts:450"
18475
18539
  },
18476
18540
  {
18477
18541
  "message": "Missing item type\nThe `change` and `input` actions need to be overridden in the `Input`\nsubclass. Unfortunately, some ember-source builds currently uses babel\nloose mode to transpile its classes. Having the `@action` decorator on the\nsuper class creates a getter on the prototype, and when the subclass\noverrides the method, the loose mode transpilation would emit something\nlike `Subclass.prototype['change'] = function change() { ... }`, which\nfails because `prototype['change']` is getter-only/readonly. The correct\nsolution is to use `Object.defineProperty(prototype, 'change', ...)` but\nthat requires disabling loose mode. For now, the workaround is to add the\ndecorator only on the subclass. This is more of a configuration issue on\nour own builds and doesn't really affect apps.",
@@ -18495,7 +18559,7 @@
18495
18559
  },
18496
18560
  {
18497
18561
  "message": "Missing item type\nThis reference is used to get the `[]` tag of iterables, so we can trigger\nupdates to `{{each}}` when it changes. It is put into place by a template\ntransform at build time, similar to the (-each-in) helper",
18498
- "line": " packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts:11"
18562
+ "line": " packages/@ember/-internals/glimmer/lib/helpers/-track-array.ts:12"
18499
18563
  },
18500
18564
  {
18501
18565
  "message": "Missing item type\nNot sure why this is here, we use the owner of the template for lookups.\n\nMaybe this is for the render helper?",
@@ -18695,7 +18759,7 @@
18695
18759
  },
18696
18760
  {
18697
18761
  "message": "Missing item type\nFlattening is based on a global revision counter. If the revision has\nbumped it means that somewhere in a class inheritance chain something has\nchanged, so we need to reflatten everything. This can only happen if:\n\n1. A meta has been flattened (listener has been called)\n2. The meta is a prototype meta with children who have inherited its\n listeners\n3. A new listener is subsequently added to the meta (e.g. via `.reopen()`)\n\nThis is a very rare occurrence, so while the counter is global it shouldn't\nbe updated very often in practice.",
18698
- "line": " packages/@ember/-internals/meta/lib/meta.ts:472"
18762
+ "line": " packages/@ember/-internals/meta/lib/meta.ts:473"
18699
18763
  },
18700
18764
  {
18701
18765
  "message": "Missing item type",
@@ -18703,7 +18767,7 @@
18703
18767
  },
18704
18768
  {
18705
18769
  "message": "Missing item type",
18706
- "line": " packages/@ember/-internals/meta/lib/meta.ts:580"
18770
+ "line": " packages/@ember/-internals/meta/lib/meta.ts:578"
18707
18771
  },
18708
18772
  {
18709
18773
  "message": "Missing item type",
@@ -18715,47 +18779,47 @@
18715
18779
  },
18716
18780
  {
18717
18781
  "message": "Missing item type",
18718
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:528"
18782
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:523"
18719
18783
  },
18720
18784
  {
18721
18785
  "message": "Missing item type",
18722
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:531"
18786
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:526"
18723
18787
  },
18724
18788
  {
18725
18789
  "message": "Missing item type",
18726
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:534"
18790
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:529"
18727
18791
  },
18728
18792
  {
18729
18793
  "message": "Missing item type",
18730
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:537"
18794
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:532"
18731
18795
  },
18732
18796
  {
18733
18797
  "message": "Missing item type",
18734
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:540"
18798
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:535"
18735
18799
  },
18736
18800
  {
18737
18801
  "message": "Missing item type",
18738
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:543"
18802
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:538"
18739
18803
  },
18740
18804
  {
18741
18805
  "message": "Missing item type",
18742
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:584"
18806
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:579"
18743
18807
  },
18744
18808
  {
18745
18809
  "message": "Missing item type",
18746
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:641"
18810
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:636"
18747
18811
  },
18748
18812
  {
18749
18813
  "message": "Missing item type",
18750
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:667"
18814
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:662"
18751
18815
  },
18752
18816
  {
18753
18817
  "message": "Missing item type",
18754
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:674"
18818
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:669"
18755
18819
  },
18756
18820
  {
18757
18821
  "message": "Missing item type",
18758
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:679"
18822
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:674"
18759
18823
  },
18760
18824
  {
18761
18825
  "message": "Missing item type\nPrimarily used for cases where we are redefining a class, e.g. mixins/reopen\nbeing applied later. Revalidates all the observers, resetting their tags.",
@@ -18763,7 +18827,7 @@
18763
18827
  },
18764
18828
  {
18765
18829
  "message": "Missing item type",
18766
- "line": " packages/@ember/-internals/metal/lib/tracked.ts:16"
18830
+ "line": " packages/@ember/-internals/metal/lib/tracked.ts:17"
18767
18831
  },
18768
18832
  {
18769
18833
  "message": "Missing item type",
@@ -18807,15 +18871,15 @@
18807
18871
  },
18808
18872
  {
18809
18873
  "message": "Missing item type\nFinds the name of the substate route if it exists for the given route. A\nsubstate route is of the form `route_state`, such as `foo_loading`.",
18810
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1606"
18874
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1635"
18811
18875
  },
18812
18876
  {
18813
18877
  "message": "Missing item type\nFinds the name of the state route if it exists for the given route. A state\nroute is of the form `route.state`, such as `foo.loading`. Properly Handles\n`application` named routes.",
18814
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1627"
18878
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1656"
18815
18879
  },
18816
18880
  {
18817
18881
  "message": "Missing item type\nDetermines whether or not a route has been defined by checking that the route\nis in the Router's map and the owner has a registration for that route.",
18818
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1649"
18882
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1678"
18819
18883
  },
18820
18884
  {
18821
18885
  "message": "Missing item type\nThis mixin allows for Ember objects to subscribe to and emit events.",
@@ -19017,6 +19081,10 @@
19017
19081
  "message": "Missing item type\nNavigate the instance to a particular URL. This is useful in tests, for\nexample, or to tell the app to start at a particular URL. This method\nreturns a promise that resolves with the app instance when the transition\nis complete, or rejects if the transion was aborted due to an error.",
19018
19082
  "line": " packages/@ember/application/instance.js:223"
19019
19083
  },
19084
+ {
19085
+ "message": "Missing item type",
19086
+ "line": " packages/@ember/controller/lib/controller_mixin.d.ts:8"
19087
+ },
19020
19088
  {
19021
19089
  "message": "Missing item type\nUnfortunately, a lot of existing code assumes booting an instance is\nsynchronous – specifically, a lot of tests assume the last call to\n`app.advanceReadiness()` or `app.reset()` will result in a new instance\nbeing fully-booted when the current runloop completes.\n\nWe would like new code (like the `visit` API) to stop making this\nassumption, so we created the asynchronous version above that returns a\npromise. But until we have migrated all the code, we would have to expose\nthis method for use *internally* in places where we need to boot an instance\nsynchronously.",
19022
19090
  "line": " packages/@ember/engine/instance.js:85"