ember-source 4.1.0-alpha.7 → 4.1.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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.1.0-alpha.7"
6
+ "version": "4.1.0-alpha.8"
7
7
  },
8
8
  "files": {
9
9
  "node_modules/rsvp/lib/rsvp/promise/all.js": {
@@ -2001,7 +2001,7 @@
2001
2001
  "namespaces": {},
2002
2002
  "tag": "module",
2003
2003
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
2004
- "line": 42
2004
+ "line": 43
2005
2005
  },
2006
2006
  "@ember/enumerable": {
2007
2007
  "name": "@ember/enumerable",
@@ -3030,7 +3030,7 @@
3030
3030
  "module": "@ember/array",
3031
3031
  "namespace": "",
3032
3032
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
3033
- "line": 185,
3033
+ "line": 179,
3034
3034
  "description": "This mixin implements Observer-friendly Array-like behavior. It is not a\nconcrete implementation, but it can be used up by other classes that want\nto appear like arrays.\n\nFor example, ArrayProxy is a concrete class that can be instantiated to\nimplement array-like behavior. This class uses the Array Mixin by way of\nthe MutableArray mixin, which allows observable changes to be made to the\nunderlying array.\n\nThis mixin defines methods specifically for collections that provide\nindex-ordered access to their contents. When you are designing code that\nneeds to accept any kind of Array-like object, you should use these methods\ninstead of Array primitives because these will properly notify observers of\nchanges to the array.\n\nAlthough these methods are efficient, they do add a layer of indirection to\nyour application so it is a good idea to use them only when you need the\nflexibility of using both true JavaScript arrays and \"virtual\" arrays such\nas controllers and collections.\n\nYou can use the methods defined in this module to access and modify array\ncontents in an observable-friendly way. You can also be notified whenever\nthe membership of an array changes by using `.observes('myArray.[]')`.\n\nTo support `EmberArray` in your own class, you must override two\nprimitives to use it: `length()` and `objectAt()`.",
3035
3035
  "uses": [
3036
3036
  "Enumerable"
@@ -3053,7 +3053,7 @@
3053
3053
  "module": "@ember/array",
3054
3054
  "namespace": "",
3055
3055
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
3056
- "line": 1527,
3056
+ "line": 1326,
3057
3057
  "description": "This mixin defines the API for modifying array-like objects. These methods\ncan be applied only to a collection that keeps its items in an ordered set.\nIt builds upon the Array mixin and adds methods to modify the array.\nOne concrete implementations of this class include ArrayProxy.\n\nIt is important to use the methods in this class to modify arrays so that\nchanges are observable. This allows the binding system in Ember to function\ncorrectly.\n\n\nNote that an Array can change even if it does not implement this mixin.\nFor example, one might implement a SparseArray that cannot be directly\nmodified, but if its underlying enumerable changes, it will change also.",
3058
3058
  "uses": [
3059
3059
  "EmberArray",
@@ -3073,7 +3073,7 @@
3073
3073
  "module": "ember",
3074
3074
  "namespace": "",
3075
3075
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
3076
- "line": 1948,
3076
+ "line": 1747,
3077
3077
  "description": "The NativeArray mixin contains the properties needed to make the native\nArray support MutableArray and all of its dependent APIs. Unless you\nhave `EmberENV.EXTEND_PROTOTYPES` or `EmberENV.EXTEND_PROTOTYPES.Array` set to\nfalse, this will be applied automatically. Otherwise you can apply the mixin\nat anytime by calling `Ember.NativeArray.apply(Array.prototype)`.",
3078
3078
  "uses": [
3079
3079
  "MutableArray",
@@ -3259,7 +3259,7 @@
3259
3259
  "module": "@ember/array",
3260
3260
  "namespace": "",
3261
3261
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
3262
- "line": 42,
3262
+ "line": 43,
3263
3263
  "description": "An ArrayProxy wraps any other object that implements `Array` and/or\n`MutableArray,` forwarding all requests. This makes it very useful for\na number of binding use cases or other cases where being able to swap\nout the underlying array is useful.\n\nA simple example of usage:\n\n```javascript\nimport { A } from '@ember/array';\nimport ArrayProxy from '@ember/array/proxy';\n\nlet pets = ['dog', 'cat', 'fish'];\nlet ap = ArrayProxy.create({ content: A(pets) });\n\nap.get('firstObject'); // 'dog'\nap.set('content', ['amoeba', 'paramecium']);\nap.get('firstObject'); // 'amoeba'\n```\n\nThis class can also be useful as a layer to transform the contents of\nan array, as they are accessed. This can be done by overriding\n`objectAtContent`:\n\n```javascript\nimport { A } from '@ember/array';\nimport ArrayProxy from '@ember/array/proxy';\n\nlet pets = ['dog', 'cat', 'fish'];\nlet ap = ArrayProxy.create({\n content: A(pets),\n objectAtContent: function(idx) {\n return this.get('content').objectAt(idx).toUpperCase();\n }\n});\n\nap.get('firstObject'); // . 'DOG'\n```\n\nWhen overriding this class, it is important to place the call to\n`_super` *after* setting `content` so the internal observers have\na chance to fire properly:\n\n```javascript\nimport { A } from '@ember/array';\nimport ArrayProxy from '@ember/array/proxy';\n\nexport default ArrayProxy.extend({\n init() {\n this.set('content', A(['dog', 'cat', 'fish']));\n this._super(...arguments);\n }\n});\n```",
3264
3264
  "extends": "EmberObject",
3265
3265
  "uses": [
@@ -9000,7 +9000,7 @@
9000
9000
  },
9001
9001
  {
9002
9002
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9003
- "line": 501,
9003
+ "line": 508,
9004
9004
  "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```",
9005
9005
  "itemtype": "method",
9006
9006
  "name": "resetController",
@@ -9029,7 +9029,7 @@
9029
9029
  },
9030
9030
  {
9031
9031
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9032
- "line": 528,
9032
+ "line": 535,
9033
9033
  "access": "private",
9034
9034
  "tagname": "",
9035
9035
  "itemtype": "method",
@@ -9039,7 +9039,7 @@
9039
9039
  },
9040
9040
  {
9041
9041
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9042
- "line": 539,
9042
+ "line": 546,
9043
9043
  "access": "private",
9044
9044
  "tagname": "",
9045
9045
  "itemtype": "method",
@@ -9050,7 +9050,7 @@
9050
9050
  },
9051
9051
  {
9052
9052
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9053
- "line": 552,
9053
+ "line": 559,
9054
9054
  "access": "private",
9055
9055
  "tagname": "",
9056
9056
  "itemtype": "method",
@@ -9060,7 +9060,7 @@
9060
9060
  },
9061
9061
  {
9062
9062
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9063
- "line": 563,
9063
+ "line": 570,
9064
9064
  "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.",
9065
9065
  "itemtype": "event",
9066
9066
  "name": "willTransition",
@@ -9079,7 +9079,7 @@
9079
9079
  },
9080
9080
  {
9081
9081
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9082
- "line": 607,
9082
+ "line": 614,
9083
9083
  "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```",
9084
9084
  "itemtype": "event",
9085
9085
  "name": "didTransition",
@@ -9091,7 +9091,7 @@
9091
9091
  },
9092
9092
  {
9093
9093
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9094
- "line": 633,
9094
+ "line": 640,
9095
9095
  "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```",
9096
9096
  "itemtype": "event",
9097
9097
  "name": "loading",
@@ -9115,7 +9115,7 @@
9115
9115
  },
9116
9116
  {
9117
9117
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9118
- "line": 667,
9118
+ "line": 674,
9119
9119
  "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```",
9120
9120
  "itemtype": "event",
9121
9121
  "name": "error",
@@ -9139,7 +9139,7 @@
9139
9139
  },
9140
9140
  {
9141
9141
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9142
- "line": 728,
9142
+ "line": 735,
9143
9143
  "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```",
9144
9144
  "itemtype": "event",
9145
9145
  "name": "activate",
@@ -9151,7 +9151,7 @@
9151
9151
  },
9152
9152
  {
9153
9153
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9154
- "line": 748,
9154
+ "line": 755,
9155
9155
  "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```",
9156
9156
  "itemtype": "event",
9157
9157
  "name": "deactivate",
@@ -9163,7 +9163,7 @@
9163
9163
  },
9164
9164
  {
9165
9165
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9166
- "line": 768,
9166
+ "line": 775,
9167
9167
  "description": "This hook is executed when the router completely exits this route. It is\nnot executed when the model for the route changes.",
9168
9168
  "itemtype": "method",
9169
9169
  "name": "deactivate",
@@ -9182,7 +9182,7 @@
9182
9182
  },
9183
9183
  {
9184
9184
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9185
- "line": 779,
9185
+ "line": 786,
9186
9186
  "description": "This hook is executed when the router enters the route. It is not executed\nwhen the model for the route changes.",
9187
9187
  "itemtype": "method",
9188
9188
  "name": "activate",
@@ -9201,7 +9201,7 @@
9201
9201
  },
9202
9202
  {
9203
9203
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9204
- "line": 790,
9204
+ "line": 797,
9205
9205
  "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```",
9206
9206
  "itemtype": "method",
9207
9207
  "name": "transitionTo",
@@ -9239,7 +9239,7 @@
9239
9239
  },
9240
9240
  {
9241
9241
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9242
- "line": 988,
9242
+ "line": 995,
9243
9243
  "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.",
9244
9244
  "itemtype": "method",
9245
9245
  "name": "intermediateTransitionTo",
@@ -9263,7 +9263,7 @@
9263
9263
  },
9264
9264
  {
9265
9265
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9266
- "line": 1010,
9266
+ "line": 1017,
9267
9267
  "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.",
9268
9268
  "itemtype": "method",
9269
9269
  "name": "refresh",
@@ -9279,7 +9279,7 @@
9279
9279
  },
9280
9280
  {
9281
9281
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9282
- "line": 1036,
9282
+ "line": 1043,
9283
9283
  "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```",
9284
9284
  "itemtype": "method",
9285
9285
  "name": "replaceWith",
@@ -9315,7 +9315,7 @@
9315
9315
  },
9316
9316
  {
9317
9317
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9318
- "line": 1084,
9318
+ "line": 1091,
9319
9319
  "description": "This hook is the entry point for router.js",
9320
9320
  "access": "private",
9321
9321
  "tagname": "",
@@ -9326,7 +9326,7 @@
9326
9326
  },
9327
9327
  {
9328
9328
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9329
- "line": 1164,
9329
+ "line": 1171,
9330
9330
  "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.",
9331
9331
  "itemtype": "method",
9332
9332
  "name": "beforeModel",
@@ -9349,7 +9349,7 @@
9349
9349
  },
9350
9350
  {
9351
9351
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9352
- "line": 1198,
9352
+ "line": 1205,
9353
9353
  "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.",
9354
9354
  "itemtype": "method",
9355
9355
  "name": "afterModel",
@@ -9377,7 +9377,7 @@
9377
9377
  },
9378
9378
  {
9379
9379
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9380
- "line": 1235,
9380
+ "line": 1242,
9381
9381
  "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.",
9382
9382
  "itemtype": "method",
9383
9383
  "name": "redirect",
@@ -9401,7 +9401,7 @@
9401
9401
  },
9402
9402
  {
9403
9403
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9404
- "line": 1260,
9404
+ "line": 1267,
9405
9405
  "description": "Called when the context is changed by router.js.",
9406
9406
  "access": "private",
9407
9407
  "tagname": "",
@@ -9412,7 +9412,7 @@
9412
9412
  },
9413
9413
  {
9414
9414
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9415
- "line": 1270,
9415
+ "line": 1277,
9416
9416
  "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```",
9417
9417
  "itemtype": "method",
9418
9418
  "name": "model",
@@ -9440,7 +9440,7 @@
9440
9440
  },
9441
9441
  {
9442
9442
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9443
- "line": 1379,
9443
+ "line": 1386,
9444
9444
  "access": "private",
9445
9445
  "tagname": "",
9446
9446
  "itemtype": "method",
@@ -9466,7 +9466,7 @@
9466
9466
  },
9467
9467
  {
9468
9468
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9469
- "line": 1392,
9469
+ "line": 1399,
9470
9470
  "itemtype": "method",
9471
9471
  "name": "findModel",
9472
9472
  "params": [
@@ -9488,7 +9488,7 @@
9488
9488
  },
9489
9489
  {
9490
9490
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9491
- "line": 1403,
9491
+ "line": 1410,
9492
9492
  "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.",
9493
9493
  "example": [
9494
9494
  " 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```"
@@ -9521,7 +9521,7 @@
9521
9521
  },
9522
9522
  {
9523
9523
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9524
- "line": 1480,
9524
+ "line": 1487,
9525
9525
  "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```",
9526
9526
  "itemtype": "method",
9527
9527
  "name": "controllerFor",
@@ -9544,7 +9544,7 @@
9544
9544
  },
9545
9545
  {
9546
9546
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9547
- "line": 1526,
9547
+ "line": 1533,
9548
9548
  "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```",
9549
9549
  "itemtype": "method",
9550
9550
  "name": "generateController",
@@ -9562,7 +9562,7 @@
9562
9562
  },
9563
9563
  {
9564
9564
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9565
- "line": 1553,
9565
+ "line": 1560,
9566
9566
  "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```",
9567
9567
  "itemtype": "method",
9568
9568
  "name": "modelFor",
@@ -9585,7 +9585,7 @@
9585
9585
  },
9586
9586
  {
9587
9587
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9588
- "line": 1624,
9588
+ "line": 1631,
9589
9589
  "description": "`this[RENDER]` is used to render a template into a region of another template\n(indicated by an `{{outlet}}`).",
9590
9590
  "itemtype": "method",
9591
9591
  "name": "this[RENDER]",
@@ -9635,7 +9635,7 @@
9635
9635
  },
9636
9636
  {
9637
9637
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9638
- "line": 1651,
9638
+ "line": 1658,
9639
9639
  "access": "private",
9640
9640
  "tagname": "",
9641
9641
  "itemtype": "method",
@@ -9645,7 +9645,7 @@
9645
9645
  },
9646
9646
  {
9647
9647
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9648
- "line": 1664,
9648
+ "line": 1671,
9649
9649
  "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```",
9650
9650
  "itemtype": "method",
9651
9651
  "name": "buildRouteInfoMetadata",
@@ -9660,7 +9660,7 @@
9660
9660
  },
9661
9661
  {
9662
9662
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9663
- "line": 1714,
9663
+ "line": 1721,
9664
9664
  "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)`",
9665
9665
  "itemtype": "property",
9666
9666
  "name": "store",
@@ -9672,7 +9672,7 @@
9672
9672
  },
9673
9673
  {
9674
9674
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9675
- "line": 1762,
9675
+ "line": 1769,
9676
9676
  "access": "private",
9677
9677
  "tagname": "",
9678
9678
  "itemtype": "property",
@@ -9682,7 +9682,7 @@
9682
9682
  },
9683
9683
  {
9684
9684
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9685
- "line": 1892,
9685
+ "line": 1899,
9686
9686
  "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```",
9687
9687
  "itemtype": "method",
9688
9688
  "name": "send",
@@ -9706,7 +9706,7 @@
9706
9706
  },
9707
9707
  {
9708
9708
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9709
- "line": 2219,
9709
+ "line": 2226,
9710
9710
  "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.",
9711
9711
  "itemtype": "method",
9712
9712
  "name": "serialize",
@@ -9734,7 +9734,7 @@
9734
9734
  },
9735
9735
  {
9736
9736
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9737
- "line": 2289,
9737
+ "line": 2296,
9738
9738
  "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```",
9739
9739
  "itemtype": "property",
9740
9740
  "name": "controller",
@@ -9747,7 +9747,7 @@
9747
9747
  },
9748
9748
  {
9749
9749
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9750
- "line": 2320,
9750
+ "line": 2327,
9751
9751
  "description": "This action is called when one or more query params have changed. Bubbles.",
9752
9752
  "itemtype": "method",
9753
9753
  "name": "queryParamsDidChange",
@@ -10644,7 +10644,7 @@
10644
10644
  },
10645
10645
  {
10646
10646
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10647
- "line": 111,
10647
+ "line": 105,
10648
10648
  "description": "Returns true if the passed object is an array or Array-like.\n\nObjects are considered Array-like if any of the following are true:\n\n - the object is a native Array\n - the object has an objectAt property\n - the object is an Object, and has a length property\n\nUnlike `typeOf` this method returns true even if the passed object is\nnot formally an array but appears to be array-like (i.e. implements `Array`)\n\n```javascript\nimport { isArray } from '@ember/array';\nimport ArrayProxy from '@ember/array/proxy';\n\nisArray(); // false\nisArray([]); // true\nisArray(ArrayProxy.create({ content: [] })); // true\n```",
10649
10649
  "itemtype": "method",
10650
10650
  "name": "isArray",
@@ -10667,7 +10667,7 @@
10667
10667
  },
10668
10668
  {
10669
10669
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10670
- "line": 224,
10670
+ "line": 218,
10671
10671
  "description": "__Required.__ You must implement this method to apply this mixin.\n\nYour array must support the `length` property. Your replace methods should\nset this property whenever it changes.",
10672
10672
  "itemtype": "property",
10673
10673
  "name": "length",
@@ -10679,7 +10679,7 @@
10679
10679
  },
10680
10680
  {
10681
10681
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10682
- "line": 234,
10682
+ "line": 228,
10683
10683
  "description": "Returns the object at the given `index`. If the given `index` is negative\nor is greater or equal than the array length, returns `undefined`.\n\nThis is one of the primitives you must implement to support `EmberArray`.\nIf your object supports retrieving the value of an array item using `get()`\n(i.e. `myArray.get(0)`), then you do not need to implement this method\nyourself.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectAt(0); // 'a'\narr.objectAt(3); // 'd'\narr.objectAt(-1); // undefined\narr.objectAt(4); // undefined\narr.objectAt(5); // undefined\n```",
10684
10684
  "itemtype": "method",
10685
10685
  "name": "objectAt",
@@ -10701,7 +10701,7 @@
10701
10701
  },
10702
10702
  {
10703
10703
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10704
- "line": 259,
10704
+ "line": 253,
10705
10705
  "description": "This returns the objects at the specified indexes, using `objectAt`.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectsAt([0, 1, 2]); // ['a', 'b', 'c']\narr.objectsAt([2, 3, 4]); // ['c', 'd', undefined]\n```",
10706
10706
  "itemtype": "method",
10707
10707
  "name": "objectsAt",
@@ -10723,7 +10723,7 @@
10723
10723
  },
10724
10724
  {
10725
10725
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10726
- "line": 278,
10726
+ "line": 272,
10727
10727
  "description": "This is the handler for the special array content property. If you get\nthis property, it will return this. If you set this property to a new\narray, it will replace the current content.\n\n```javascript\nlet peopleToMoon = ['Armstrong', 'Aldrin'];\n\npeopleToMoon.get('[]'); // ['Armstrong', 'Aldrin']\n\npeopleToMoon.set('[]', ['Collins']); // ['Collins']\npeopleToMoon.get('[]'); // ['Collins']\n```",
10728
10728
  "itemtype": "property",
10729
10729
  "name": "[]",
@@ -10737,7 +10737,7 @@
10737
10737
  },
10738
10738
  {
10739
10739
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10740
- "line": 306,
10740
+ "line": 300,
10741
10741
  "description": "The first object in the array, or `undefined` if the array is empty.\n\n```javascript\nlet vowels = ['a', 'e', 'i', 'o', 'u'];\nvowels.firstObject; // 'a'\n\nvowels.shiftObject();\nvowels.firstObject; // 'e'\n\nvowels.reverseObjects();\nvowels.firstObject; // 'u'\n\nvowels.clear();\nvowels.firstObject; // undefined\n```",
10742
10742
  "itemtype": "property",
10743
10743
  "name": "firstObject",
@@ -10752,7 +10752,7 @@
10752
10752
  },
10753
10753
  {
10754
10754
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10755
- "line": 331,
10755
+ "line": 325,
10756
10756
  "description": "The last object in the array, or `undefined` if the array is empty.",
10757
10757
  "itemtype": "property",
10758
10758
  "name": "lastObject",
@@ -10767,7 +10767,7 @@
10767
10767
  },
10768
10768
  {
10769
10769
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10770
- "line": 343,
10770
+ "line": 337,
10771
10771
  "description": "Returns a new array that is a slice of the receiver. This implementation\nuses the observable array methods to retrieve the objects for the new\nslice.\n\n```javascript\nlet arr = ['red', 'green', 'blue'];\n\narr.slice(0); // ['red', 'green', 'blue']\narr.slice(0, 2); // ['red', 'green']\narr.slice(1, 100); // ['green', 'blue']\n```",
10772
10772
  "itemtype": "method",
10773
10773
  "name": "slice",
@@ -10794,7 +10794,7 @@
10794
10794
  },
10795
10795
  {
10796
10796
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10797
- "line": 383,
10797
+ "line": 377,
10798
10798
  "description": "Used to determine the passed object's first occurrence in the array.\nReturns the index if found, -1 if no match is found.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.indexOf('a'); // 0\narr.indexOf('z'); // -1\narr.indexOf('a', 2); // 4\narr.indexOf('a', -1); // 4, equivalent to indexOf('a', 4)\narr.indexOf('a', -100); // 0, searches entire array\narr.indexOf('b', 3); // -1\narr.indexOf('a', 100); // -1\n\nlet people = [{ name: 'Zoey' }, { name: 'Bob' }]\nlet newPerson = { name: 'Tom' };\npeople = [newPerson, ...people, newPerson];\n\npeople.indexOf(newPerson); // 0\npeople.indexOf(newPerson, 1); // 3\npeople.indexOf(newPerson, -4); // 0\npeople.indexOf(newPerson, 10); // -1\n```",
10799
10799
  "itemtype": "method",
10800
10800
  "name": "indexOf",
@@ -10821,7 +10821,7 @@
10821
10821
  },
10822
10822
  {
10823
10823
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10824
- "line": 425,
10824
+ "line": 419,
10825
10825
  "description": "Returns the index of the given `object`'s last occurrence.\n\n- If no `startAt` argument is given, the search starts from\nthe last position.\n- If it's greater than or equal to the length of the array,\nthe search starts from the last position.\n- If it's negative, it is taken as the offset from the end\nof the array i.e. `startAt + array.length`.\n- If it's any other positive number, will search backwards\nfrom that index of the array.\n\nReturns -1 if no match is found.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.lastIndexOf('a'); // 4\narr.lastIndexOf('z'); // -1\narr.lastIndexOf('a', 2); // 0\narr.lastIndexOf('a', -1); // 4\narr.lastIndexOf('a', -3); // 0\narr.lastIndexOf('b', 3); // 1\narr.lastIndexOf('a', 100); // 4\n```",
10826
10826
  "itemtype": "method",
10827
10827
  "name": "lastIndexOf",
@@ -10848,140 +10848,7 @@
10848
10848
  },
10849
10849
  {
10850
10850
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10851
- "line": 483,
10852
- "description": "Adds an array observer to the receiving array. The array observer object\nnormally must implement two methods:\n\n* `willChange(observedObj, start, removeCount, addCount)` - This method will be\n called just before the array is modified.\n* `didChange(observedObj, start, removeCount, addCount)` - This method will be\n called just after the array is modified.\n\nBoth callbacks will be passed the observed object, starting index of the\nchange as well as a count of the items to be removed and added. You can use\nthese callbacks to optionally inspect the array during the change, clear\ncaches, or do any other bookkeeping necessary.\n\nIn addition to passing a target, you can also include an options hash\nwhich you can use to override the method names that will be invoked on the\ntarget.",
10853
- "itemtype": "method",
10854
- "name": "addArrayObserver",
10855
- "params": [
10856
- {
10857
- "name": "target",
10858
- "description": "The observer object.",
10859
- "type": "Object"
10860
- },
10861
- {
10862
- "name": "opts",
10863
- "description": "Optional hash of configuration options including\n `willChange` and `didChange` option.",
10864
- "type": "Object"
10865
- }
10866
- ],
10867
- "return": {
10868
- "description": "receiver",
10869
- "type": "EmberArray"
10870
- },
10871
- "access": "public",
10872
- "tagname": "",
10873
- "example": [
10874
- "\n import Service from '@ember/service';\n\n export default Service.extend({\n data: Ember.A(),\n\n init() {\n this._super(...arguments);\n\n this.data.addArrayObserver(this, {\n willChange: 'dataWillChange',\n didChange: 'dataDidChange'\n });\n },\n\n dataWillChange(array, start, removeCount, addCount) {\n console.log('array will change', array, start, removeCount, addCount);\n },\n\n dataDidChange(array, start, removeCount, addCount) {\n console.log('array did change', array, start, removeCount, addCount);\n }\n });"
10875
- ],
10876
- "class": "EmberArray",
10877
- "module": "@ember/array"
10878
- },
10879
- {
10880
- "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10881
- "line": 536,
10882
- "description": "Removes an array observer from the object if the observer is current\nregistered. Calling this method multiple times with the same object will\nhave no effect.",
10883
- "itemtype": "method",
10884
- "name": "removeArrayObserver",
10885
- "params": [
10886
- {
10887
- "name": "target",
10888
- "description": "The object observing the array.",
10889
- "type": "Object"
10890
- },
10891
- {
10892
- "name": "opts",
10893
- "description": "Optional hash of configuration options including\n `willChange` and `didChange` option.",
10894
- "type": "Object"
10895
- }
10896
- ],
10897
- "return": {
10898
- "description": "receiver",
10899
- "type": "EmberArray"
10900
- },
10901
- "access": "public",
10902
- "tagname": "",
10903
- "class": "EmberArray",
10904
- "module": "@ember/array"
10905
- },
10906
- {
10907
- "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10908
- "line": 552,
10909
- "description": "Becomes true whenever the array currently has observers watching changes\non the array.\n\n```javascript\nlet arr = [1, 2, 3, 4, 5];\narr.hasArrayObservers; // false\n\narr.addArrayObserver(this, {\n willChange() {\n console.log('willChange');\n }\n});\narr.hasArrayObservers; // true\n```",
10910
- "itemtype": "property",
10911
- "name": "hasArrayObservers",
10912
- "type": "Boolean",
10913
- "access": "public",
10914
- "tagname": "",
10915
- "class": "EmberArray",
10916
- "module": "@ember/array"
10917
- },
10918
- {
10919
- "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10920
- "line": 579,
10921
- "description": "If you are implementing an object that supports `EmberArray`, call this\nmethod just before the array content changes to notify any observers and\ninvalidate any related properties. Pass the starting index of the change\nas well as a delta of the amounts to change.\n\n```app/components/show-post.js\nimport Component from '@ember/component';\nimport EmberObject from '@ember/object';\n\nconst Post = EmberObject.extend({\n body: '',\n save() {}\n})\n\nexport default Component.extend({\n attemptsToModify: 0,\n successfulModifications: 0,\n posts: null,\n\n init() {\n this._super(...arguments);\n\n this.posts = [1, 2, 3].map(i => Post.create({ body: i }));\n this.posts.addArrayObserver(this, {\n willChange() {\n this.incrementProperty('attemptsToModify');\n },\n didChange() {\n this.incrementProperty('successfulModifications');\n }\n });\n },\n\n actions: {\n editPost(post, newContent) {\n let oldContent = post.body,\n postIndex = this.posts.indexOf(post);\n\n this.posts.arrayContentWillChange(postIndex, 0, 0); // attemptsToModify = 1\n post.set('body', newContent);\n\n post.save()\n .then(response => {\n this.posts.arrayContentDidChange(postIndex, 0, 0); // successfulModifications = 1\n })\n .catch(error => {\n post.set('body', oldContent);\n })\n }\n }\n});\n```",
10922
- "itemtype": "method",
10923
- "name": "arrayContentWillChange",
10924
- "params": [
10925
- {
10926
- "name": "startIdx",
10927
- "description": "The starting index in the array that will change.",
10928
- "type": "Number"
10929
- },
10930
- {
10931
- "name": "removeAmt",
10932
- "description": "The number of items that will be removed. If you\n pass `null` assumes 0",
10933
- "type": "Number"
10934
- },
10935
- {
10936
- "name": "addAmt",
10937
- "description": "The number of items that will be added. If you\n pass `null` assumes 0.",
10938
- "type": "Number"
10939
- }
10940
- ],
10941
- "return": {
10942
- "description": "receiver",
10943
- "type": "EmberArray"
10944
- },
10945
- "access": "public",
10946
- "tagname": "",
10947
- "class": "EmberArray",
10948
- "module": "@ember/array"
10949
- },
10950
- {
10951
- "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10952
- "line": 646,
10953
- "description": "If you are implementing an object that supports `EmberArray`, call this\nmethod just after the array content changes to notify any observers and\ninvalidate any related properties. Pass the starting index of the change\nas well as a delta of the amounts to change.\n\n```javascript\nlet arr = [1, 2, 3, 4, 5];\n\narr.copyWithin(-2); // [1, 2, 3, 1, 2]\n// arr.lastObject = 5\narr.arrayContentDidChange(3, 2, 2);\n// arr.lastObject = 2\n```",
10954
- "itemtype": "method",
10955
- "name": "arrayContentDidChange",
10956
- "params": [
10957
- {
10958
- "name": "startIdx",
10959
- "description": "The starting index in the array that did change.",
10960
- "type": "Number"
10961
- },
10962
- {
10963
- "name": "removeAmt",
10964
- "description": "The number of items that were removed. If you\n pass `null` assumes 0",
10965
- "type": "Number"
10966
- },
10967
- {
10968
- "name": "addAmt",
10969
- "description": "The number of items that were added. If you\n pass `null` assumes 0.",
10970
- "type": "Number"
10971
- }
10972
- ],
10973
- "return": {
10974
- "description": "receiver",
10975
- "type": "EmberArray"
10976
- },
10977
- "access": "public",
10978
- "tagname": "",
10979
- "class": "EmberArray",
10980
- "module": "@ember/array"
10981
- },
10982
- {
10983
- "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
10984
- "line": 674,
10851
+ "line": 473,
10985
10852
  "description": "Iterates through the array, calling the passed function on each\nitem. This method corresponds to the `forEach()` method defined in\nJavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(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\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet foods = [\n { name: 'apple', eaten: false },\n { name: 'banana', eaten: false },\n { name: 'carrot', eaten: false }\n];\n\nfoods.forEach((food) => food.eaten = true);\n\nlet output = '';\nfoods.forEach((item, index, array) =>\n output += `${index + 1}/${array.length} ${item.name}\\n`;\n);\nconsole.log(output);\n// 1/3 apple\n// 2/3 banana\n// 3/3 carrot\n```",
10986
10853
  "itemtype": "method",
10987
10854
  "name": "forEach",
@@ -11009,7 +10876,7 @@
11009
10876
  },
11010
10877
  {
11011
10878
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11012
- "line": 734,
10879
+ "line": 533,
11013
10880
  "description": "Alias for `mapBy`.\n\nReturns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.getEach('name');\n// ['Joe', 'Matt'];\n\npeople.getEach('nonexistentProperty');\n// [undefined, undefined];\n```",
11014
10881
  "itemtype": "method",
11015
10882
  "name": "getEach",
@@ -11031,7 +10898,7 @@
11031
10898
  },
11032
10899
  {
11033
10900
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11034
- "line": 757,
10901
+ "line": 556,
11035
10902
  "description": "Sets the value on the named property for each member. This is more\nergonomic than using other methods defined on this helper. If the object\nimplements Observable, the value will be changed to `set(),` otherwise\nit will be set directly. `null` objects are skipped.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.setEach('zipCode', '10011');\n// [{name: 'Joe', zipCode: '10011'}, {name: 'Matt', zipCode: '10011'}];\n```",
11036
10903
  "itemtype": "method",
11037
10904
  "name": "setEach",
@@ -11058,7 +10925,7 @@
11058
10925
  },
11059
10926
  {
11060
10927
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11061
- "line": 780,
10928
+ "line": 579,
11062
10929
  "description": "Maps all of the items in the enumeration to another value, returning\na new array. This method corresponds to `map()` defined in JavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\nlet arr = [1, 2, 3, 4, 5, 6];\n\narr.map(element => element * element);\n// [1, 4, 9, 16, 25, 36];\n\narr.map((element, index) => element + index);\n// [1, 3, 5, 7, 9, 11];\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\nIt should return the mapped value.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.",
11063
10930
  "itemtype": "method",
11064
10931
  "name": "map",
@@ -11086,7 +10953,7 @@
11086
10953
  },
11087
10954
  {
11088
10955
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11089
- "line": 824,
10956
+ "line": 623,
11090
10957
  "description": "Similar to map, this specialized function returns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.mapBy('name');\n// ['Joe', 'Matt'];\n\npeople.mapBy('unknownProperty');\n// [undefined, undefined];\n```",
11091
10958
  "itemtype": "method",
11092
10959
  "name": "mapBy",
@@ -11108,7 +10975,7 @@
11108
10975
  },
11109
10976
  {
11110
10977
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11111
- "line": 845,
10978
+ "line": 644,
11112
10979
  "description": "Returns a new array with all of the items in the enumeration that the provided\ncallback function returns true for. This method corresponds to [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter).\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(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\nAll parameters are optional. The function should return `true` to include the item\nin the results, and `false` otherwise.\n\nExample:\n\n```javascript\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nlet people = Ember.A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n\npeople.filter(isAdult); // returns [{ name: 'Joan', age: 45 }];\n```\n\nNote that in addition to a callback, you can pass an optional target object\nthat will be set as `this` on the context. This is a good way to give your\niterator function access to the current object. For example:\n\n```javascript\nfunction isAdultAndEngineer(person) {\n return person.age > 18 && this.engineering;\n}\n\nclass AdultsCollection {\n engineering = false;\n\n constructor(opts = {}) {\n super(...arguments);\n\n this.engineering = opts.engineering;\n this.people = Ember.A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n }\n}\n\nlet collection = new AdultsCollection({ engineering: true });\ncollection.people.filter(isAdultAndEngineer, { target: collection });\n```",
11113
10980
  "itemtype": "method",
11114
10981
  "name": "filter",
@@ -11136,7 +11003,7 @@
11136
11003
  },
11137
11004
  {
11138
11005
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11139
- "line": 918,
11006
+ "line": 717,
11140
11007
  "description": "Returns an array with all of the items in the enumeration where the passed\nfunction returns false. This method is the inverse of filter().\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(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\nIt should return a falsey value to include the item in the results.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as \"this\" on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\nconst nonFruits = food.reject(function(thing) {\n return thing.isFruit;\n}); // [{food: 'bread', isFruit: false}]\n```",
11141
11008
  "itemtype": "method",
11142
11009
  "name": "reject",
@@ -11164,7 +11031,7 @@
11164
11031
  },
11165
11032
  {
11166
11033
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11167
- "line": 965,
11034
+ "line": 764,
11168
11035
  "description": "Filters the array by the property and an optional value. If a value is given, it returns\nthe items that have said value for the property. If not, it returns all the items that\nhave a truthy value for the property.\n\nExample Usage:\n\n```javascript\nlet things = Ember.A([{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }]);\n\nthings.filterBy('food', 'beans'); // [{ food: 'beans', isFruit: false }]\nthings.filterBy('isFruit'); // [{ food: 'apple', isFruit: true }]\n```",
11169
11036
  "itemtype": "method",
11170
11037
  "name": "filterBy",
@@ -11192,7 +11059,7 @@
11192
11059
  },
11193
11060
  {
11194
11061
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11195
- "line": 989,
11062
+ "line": 788,
11196
11063
  "description": "Returns an array with the items that do not have truthy values for the provided key.\nYou can pass an optional second argument with a target value to reject for the key.\nOtherwise this will reject objects where the provided property evaluates to false.\n\nExample Usage:\n\n```javascript\n let food = [\n { name: \"apple\", isFruit: true },\n { name: \"carrot\", isFruit: false },\n { name: \"bread\", isFruit: false },\n ];\n food.rejectBy('isFruit'); // [{ name: \"carrot\", isFruit: false }, { name: \"bread\", isFruit: false }]\n food.rejectBy('name', 'carrot'); // [{ name: \"apple\", isFruit: true }}, { name: \"bread\", isFruit: false }]\n```",
11197
11064
  "itemtype": "method",
11198
11065
  "name": "rejectBy",
@@ -11220,7 +11087,7 @@
11220
11087
  },
11221
11088
  {
11222
11089
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11223
- "line": 1016,
11090
+ "line": 815,
11224
11091
  "description": "Returns the first item in the array for which the callback returns true.\nThis method is similar to the `find()` method defined in ECMAScript 2015.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(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\nIt should return the `true` to include the item in the results, `false`\notherwise.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda' },\n { id: 2, name: 'Tom' },\n { id: 3, name: 'Melanie' },\n { id: 4, name: 'Leah' }\n];\n\nusers.find((user) => user.name == 'Tom'); // [{ id: 2, name: 'Tom' }]\nusers.find(({ id }) => id == 3); // [{ id: 3, name: 'Melanie' }]\n```",
11225
11092
  "itemtype": "method",
11226
11093
  "name": "find",
@@ -11248,7 +11115,7 @@
11248
11115
  },
11249
11116
  {
11250
11117
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11251
- "line": 1063,
11118
+ "line": 862,
11252
11119
  "description": "Returns the first item with a property matching the passed value. You\ncan pass an optional second argument with the target value. Otherwise\nthis will match any property that evaluates to `true`.\n\nThis method works much like the more generic `find()` method.\n\nUsage Example:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda', isTom: false },\n { id: 2, name: 'Tom', isTom: true },\n { id: 3, name: 'Melanie', isTom: false },\n { id: 4, name: 'Leah', isTom: false }\n];\n\nusers.findBy('id', 4); // { id: 4, name: 'Leah', isTom: false }\nusers.findBy('name', 'Melanie'); // { id: 3, name: 'Melanie', isTom: false }\nusers.findBy('isTom'); // { id: 2, name: 'Tom', isTom: true }\n```",
11253
11120
  "itemtype": "method",
11254
11121
  "name": "findBy",
@@ -11276,7 +11143,7 @@
11276
11143
  },
11277
11144
  {
11278
11145
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11279
- "line": 1095,
11146
+ "line": 894,
11280
11147
  "description": "Returns `true` if the passed function returns true for every item in the\nenumeration. This corresponds with the `Array.prototype.every()` method defined in ES5.\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(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\nAll params are optional. The method should return `true` or `false`.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nUsage example:\n\n```javascript\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nconst people = Ember.A([{ name: 'John', age: 24 }, { name: 'Joan', age: 45 }]);\nconst areAllAdults = people.every(isAdult);\n```",
11281
11148
  "itemtype": "method",
11282
11149
  "name": "every",
@@ -11304,7 +11171,7 @@
11304
11171
  },
11305
11172
  {
11306
11173
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11307
- "line": 1137,
11174
+ "line": 936,
11308
11175
  "description": "Returns `true` if the passed property resolves to the value of the second\nargument for all items in the array. This method is often simpler/faster\nthan using a callback.\n\nNote that like the native `Array.every`, `isEvery` will return true when called\non any empty array.\n```javascript\nclass Language {\n constructor(name, isProgrammingLanguage) {\n this.name = name;\n this.programmingLanguage = isProgrammingLanguage;\n }\n}\n\nconst compiledLanguages = [\n new Language('Java', true),\n new Language('Go', true),\n new Language('Rust', true)\n]\n\nconst languagesKnownByMe = [\n new Language('Javascript', true),\n new Language('English', false),\n new Language('Ruby', true)\n]\n\ncompiledLanguages.isEvery('programmingLanguage'); // true\nlanguagesKnownByMe.isEvery('programmingLanguage'); // false\n```",
11309
11176
  "itemtype": "method",
11310
11177
  "name": "isEvery",
@@ -11333,7 +11200,7 @@
11333
11200
  },
11334
11201
  {
11335
11202
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11336
- "line": 1179,
11203
+ "line": 978,
11337
11204
  "description": "The any() method executes the callback function once for each element\npresent in the array until it finds the one where callback returns a truthy\nvalue (i.e. `true`). If such an element is found, any() immediately returns\ntrue. Otherwise, any() returns false.\n\n```javascript\nfunction(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 object itself.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. It can be a good way\nto give your iterator function access to an object in cases where an ES6\narrow function would not be appropriate.\n\nUsage Example:\n\n```javascript\nlet includesManager = people.any(this.findPersonInManagersList, this);\n\nlet includesStockHolder = people.any(person => {\n return this.findPersonInStockHoldersList(person)\n});\n\nif (includesManager || includesStockHolder) {\n Paychecks.addBiggerBonus();\n}\n```",
11338
11205
  "itemtype": "method",
11339
11206
  "name": "any",
@@ -11361,7 +11228,7 @@
11361
11228
  },
11362
11229
  {
11363
11230
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11364
- "line": 1223,
11231
+ "line": 1022,
11365
11232
  "description": "Returns `true` if the passed property resolves to the value of the second\nargument for any item in the array. This method is often simpler/faster\nthan using a callback.\n\nExample usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\n\nfood.isAny('isFruit'); // true\n```",
11366
11233
  "itemtype": "method",
11367
11234
  "name": "isAny",
@@ -11390,7 +11257,7 @@
11390
11257
  },
11391
11258
  {
11392
11259
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11393
- "line": 1251,
11260
+ "line": 1050,
11394
11261
  "description": "This will combine the values of the array into a single value. It\nis a useful way to collect a summary value from an array. This\ncorresponds to the `reduce()` method defined in JavaScript 1.8.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(previousValue, item, index, array);\n```\n\n- `previousValue` is the value returned by the last call to the iterator.\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\nReturn the new cumulative value.\n\nIn addition to the callback you can also pass an `initialValue`. An error\nwill be raised if you do not pass an initial value and the enumerator is\nempty.\n\nNote that unlike the other methods, this method does not allow you to\npass a target object to set as this for the callback. It's part of the\nspec. Sorry.\n\nExample Usage:\n\n```javascript\n let numbers = [1, 2, 3, 4, 5];\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }); // 15 (1 + 2 + 3 + 4 + 5)\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }, -15); // 0 (-15 + 1 + 2 + 3 + 4 + 5)\n\n\n let binaryValues = [true, false, false];\n\n binaryValues.reduce(function(truthValue, current) {\n return truthValue && current;\n }); // false (true && false && false)\n```",
11395
11262
  "itemtype": "method",
11396
11263
  "name": "reduce",
@@ -11417,7 +11284,7 @@
11417
11284
  },
11418
11285
  {
11419
11286
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11420
- "line": 1317,
11287
+ "line": 1116,
11421
11288
  "description": "Invokes the named method on every object in the receiver that\nimplements it. This method corresponds to the implementation in\nPrototype 1.6.\n\n```javascript\nclass Person {\n name = null;\n\n constructor(name) {\n this.name = name;\n }\n\n greet(prefix='Hello') {\n return `${prefix} ${this.name}`;\n }\n}\n\nlet people = [new Person('Joe'), new Person('Matt')];\n\npeople.invoke('greet'); // ['Hello Joe', 'Hello Matt']\npeople.invoke('greet', 'Bonjour'); // ['Bonjour Joe', 'Bonjour Matt']\n```",
11422
11289
  "itemtype": "method",
11423
11290
  "name": "invoke",
@@ -11444,7 +11311,7 @@
11444
11311
  },
11445
11312
  {
11446
11313
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11447
- "line": 1355,
11314
+ "line": 1154,
11448
11315
  "description": "Simply converts the object into a genuine array. The order is not\nguaranteed. Corresponds to the method implemented by Prototype.",
11449
11316
  "itemtype": "method",
11450
11317
  "name": "toArray",
@@ -11459,7 +11326,7 @@
11459
11326
  },
11460
11327
  {
11461
11328
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11462
- "line": 1367,
11329
+ "line": 1166,
11463
11330
  "description": "Returns a copy of the array with all `null` and `undefined` elements removed.\n\n```javascript\nlet arr = ['a', null, 'c', undefined];\narr.compact(); // ['a', 'c']\n```",
11464
11331
  "itemtype": "method",
11465
11332
  "name": "compact",
@@ -11474,7 +11341,7 @@
11474
11341
  },
11475
11342
  {
11476
11343
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11477
- "line": 1383,
11344
+ "line": 1182,
11478
11345
  "description": "Used to determine if the array contains the passed object.\nReturns `true` if found, `false` otherwise.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\nThis method has the same behavior of JavaScript's [Array.includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes).\n\n```javascript\n[1, 2, 3].includes(2); // true\n[1, 2, 3].includes(4); // false\n[1, 2, 3].includes(3, 2); // true\n[1, 2, 3].includes(3, 3); // false\n[1, 2, 3].includes(3, -1); // true\n[1, 2, 3].includes(1, -1); // false\n[1, 2, 3].includes(1, -4); // true\n[1, 2, NaN].includes(NaN); // true\n```",
11479
11346
  "itemtype": "method",
11480
11347
  "name": "includes",
@@ -11501,7 +11368,7 @@
11501
11368
  },
11502
11369
  {
11503
11370
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11504
- "line": 1416,
11371
+ "line": 1215,
11505
11372
  "description": "Sorts the array by the keys specified in the argument.\n\nYou may provide multiple arguments to sort by multiple properties.\n\n```javascript\n let colors = [\n { name: 'red', weight: 500 },\n { name: 'green', weight: 600 },\n { name: 'blue', weight: 500 }\n];\n\n colors.sortBy('name');\n // [{name: 'blue', weight: 500}, {name: 'green', weight: 600}, {name: 'red', weight: 500}]\n\n colors.sortBy('weight', 'name');\n // [{name: 'blue', weight: 500}, {name: 'red', weight: 500}, {name: 'green', weight: 600}]\n ```",
11506
11373
  "itemtype": "method",
11507
11374
  "name": "sortBy",
@@ -11524,7 +11391,7 @@
11524
11391
  },
11525
11392
  {
11526
11393
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11527
- "line": 1460,
11394
+ "line": 1259,
11528
11395
  "description": "Returns a new array that contains only unique values. The default\nimplementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = ['a', 'a', 'b', 'b'];\narr.uniq(); // ['a', 'b']\n```\n\nThis only works on primitive data types, e.g. Strings, Numbers, etc.",
11529
11396
  "itemtype": "method",
11530
11397
  "name": "uniq",
@@ -11539,7 +11406,7 @@
11539
11406
  },
11540
11407
  {
11541
11408
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11542
- "line": 1479,
11409
+ "line": 1278,
11543
11410
  "description": "Returns a new array that contains only items containing a unique property value.\nThe default implementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];\narr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]\n\nlet arr = [2.2, 2.1, 3.2, 3.3];\narr.uniqBy(Math.floor); // [2.2, 3.2];\n```",
11544
11411
  "itemtype": "method",
11545
11412
  "name": "uniqBy",
@@ -11561,7 +11428,7 @@
11561
11428
  },
11562
11429
  {
11563
11430
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11564
- "line": 1501,
11431
+ "line": 1300,
11565
11432
  "description": "Returns a new array that excludes the passed value. The default\nimplementation returns an array regardless of the receiver type.\nIf the receiver does not contain the value it returns the original array.\n\n```javascript\nlet arr = ['a', 'b', 'a', 'c'];\narr.without('a'); // ['b', 'c']\n```",
11566
11433
  "itemtype": "method",
11567
11434
  "name": "without",
@@ -11583,8 +11450,8 @@
11583
11450
  },
11584
11451
  {
11585
11452
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11586
- "line": 1549,
11587
- "description": "__Required.__ You must implement this method to apply this mixin.\n\nThis is one of the primitives you must implement to support `Array`.\nYou should replace amt objects started at idx with the objects in the\npassed array. You should also call `this.arrayContentDidChange()`\n\nNote that this method is expected to validate the type(s) of objects that it expects.",
11453
+ "line": 1348,
11454
+ "description": "__Required.__ You must implement this method to apply this mixin.\n\nThis is one of the primitives you must implement to support `Array`.\nYou should replace amt objects started at idx with the objects in the\npassed array.\n\nNote that this method is expected to validate the type(s) of objects that it expects.",
11588
11455
  "itemtype": "method",
11589
11456
  "name": "replace",
11590
11457
  "params": [
@@ -11611,7 +11478,7 @@
11611
11478
  },
11612
11479
  {
11613
11480
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11614
- "line": 1568,
11481
+ "line": 1367,
11615
11482
  "description": "Remove all elements from the array. This is useful if you\nwant to reuse an existing array without having to recreate it.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.length; // 3\ncolors.clear(); // []\ncolors.length; // 0\n```",
11616
11483
  "itemtype": "method",
11617
11484
  "name": "clear",
@@ -11626,7 +11493,7 @@
11626
11493
  },
11627
11494
  {
11628
11495
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11629
- "line": 1594,
11496
+ "line": 1393,
11630
11497
  "description": "This will use the primitive `replace()` method to insert an object at the\nspecified index.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.insertAt(2, 'yellow'); // ['red', 'green', 'yellow', 'blue']\ncolors.insertAt(5, 'orange'); // Error: Index out of range\n```",
11631
11498
  "itemtype": "method",
11632
11499
  "name": "insertAt",
@@ -11653,7 +11520,7 @@
11653
11520
  },
11654
11521
  {
11655
11522
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11656
- "line": 1616,
11523
+ "line": 1415,
11657
11524
  "description": "Remove an object at the specified index using the `replace()` primitive\nmethod. You can pass either a single index, or a start and a length.\n\nIf you pass a start and length that is beyond the\nlength this method will throw an assertion.\n\n```javascript\nlet colors = ['red', 'green', 'blue', 'yellow', 'orange'];\n\ncolors.removeAt(0); // ['green', 'blue', 'yellow', 'orange']\ncolors.removeAt(2, 2); // ['green', 'blue']\ncolors.removeAt(4, 2); // Error: Index out of range\n```",
11658
11525
  "itemtype": "method",
11659
11526
  "name": "removeAt",
@@ -11680,7 +11547,7 @@
11680
11547
  },
11681
11548
  {
11682
11549
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11683
- "line": 1641,
11550
+ "line": 1440,
11684
11551
  "description": "Push the object onto the end of the array. Works just like `push()` but it\nis KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green'];\n\ncolors.pushObject('black'); // ['red', 'green', 'black']\ncolors.pushObject(['yellow']); // ['red', 'green', ['yellow']]\n```",
11685
11552
  "itemtype": "method",
11686
11553
  "name": "pushObject",
@@ -11701,7 +11568,7 @@
11701
11568
  },
11702
11569
  {
11703
11570
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11704
- "line": 1661,
11571
+ "line": 1460,
11705
11572
  "description": "Add the objects in the passed array to the end of the array. Defers\nnotifying observers of the change until all objects are added.\n\n```javascript\nlet colors = ['red'];\n\ncolors.pushObjects(['yellow', 'orange']); // ['red', 'yellow', 'orange']\n```",
11706
11573
  "itemtype": "method",
11707
11574
  "name": "pushObjects",
@@ -11723,7 +11590,7 @@
11723
11590
  },
11724
11591
  {
11725
11592
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11726
- "line": 1681,
11593
+ "line": 1480,
11727
11594
  "description": "Pop object from array or nil if none are left. Works just like `pop()` but\nit is KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.popObject(); // 'blue'\nconsole.log(colors); // ['red', 'green']\n```",
11728
11595
  "itemtype": "method",
11729
11596
  "name": "popObject",
@@ -11737,7 +11604,7 @@
11737
11604
  },
11738
11605
  {
11739
11606
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11740
- "line": 1707,
11607
+ "line": 1506,
11741
11608
  "description": "Shift an object from start of array or nil if none are left. Works just\nlike `shift()` but it is KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.shiftObject(); // 'red'\nconsole.log(colors); // ['green', 'blue']\n```",
11742
11609
  "itemtype": "method",
11743
11610
  "name": "shiftObject",
@@ -11751,7 +11618,7 @@
11751
11618
  },
11752
11619
  {
11753
11620
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11754
- "line": 1732,
11621
+ "line": 1531,
11755
11622
  "description": "Unshift an object to start of array. Works just like `unshift()` but it is\nKVO-compliant.\n\n```javascript\nlet colors = ['red'];\n\ncolors.unshiftObject('yellow'); // ['yellow', 'red']\ncolors.unshiftObject(['black']); // [['black'], 'yellow', 'red']\n```",
11756
11623
  "itemtype": "method",
11757
11624
  "name": "unshiftObject",
@@ -11772,7 +11639,7 @@
11772
11639
  },
11773
11640
  {
11774
11641
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11775
- "line": 1752,
11642
+ "line": 1551,
11776
11643
  "description": "Adds the named objects to the beginning of the array. Defers notifying\nobservers until all objects have been added.\n\n```javascript\nlet colors = ['red'];\n\ncolors.unshiftObjects(['black', 'white']); // ['black', 'white', 'red']\ncolors.unshiftObjects('yellow'); // Type Error: 'undefined' is not a function\n```",
11777
11644
  "itemtype": "method",
11778
11645
  "name": "unshiftObjects",
@@ -11794,7 +11661,7 @@
11794
11661
  },
11795
11662
  {
11796
11663
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11797
- "line": 1773,
11664
+ "line": 1572,
11798
11665
  "description": "Reverse objects in the array. Works just like `reverse()` but it is\nKVO-compliant.",
11799
11666
  "itemtype": "method",
11800
11667
  "name": "reverseObjects",
@@ -11809,7 +11676,7 @@
11809
11676
  },
11810
11677
  {
11811
11678
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11812
- "line": 1792,
11679
+ "line": 1591,
11813
11680
  "description": "Replace all the receiver's content with content of the argument.\nIf argument is an empty array receiver will be cleared.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.setObjects(['black', 'white']); // ['black', 'white']\ncolors.setObjects([]); // []\n```",
11814
11681
  "itemtype": "method",
11815
11682
  "name": "setObjects",
@@ -11831,7 +11698,7 @@
11831
11698
  },
11832
11699
  {
11833
11700
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11834
- "line": 1819,
11701
+ "line": 1618,
11835
11702
  "description": "Remove all occurrences of an object in the array.\n\n```javascript\nlet cities = ['Chicago', 'Berlin', 'Lima', 'Chicago'];\n\ncities.removeObject('Chicago'); // ['Berlin', 'Lima']\ncities.removeObject('Lima'); // ['Berlin']\ncities.removeObject('Tokyo') // ['Berlin']\n```",
11836
11703
  "itemtype": "method",
11837
11704
  "name": "removeObject",
@@ -11853,7 +11720,7 @@
11853
11720
  },
11854
11721
  {
11855
11722
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11856
- "line": 1847,
11723
+ "line": 1646,
11857
11724
  "description": "Removes each object in the passed array from the receiver.",
11858
11725
  "itemtype": "method",
11859
11726
  "name": "removeObjects",
@@ -11875,7 +11742,7 @@
11875
11742
  },
11876
11743
  {
11877
11744
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11878
- "line": 1864,
11745
+ "line": 1663,
11879
11746
  "description": "Push the object onto the end of the array if it is not already\npresent in the array.\n\n```javascript\nlet cities = ['Chicago', 'Berlin'];\n\ncities.addObject('Lima'); // ['Chicago', 'Berlin', 'Lima']\ncities.addObject('Berlin'); // ['Chicago', 'Berlin', 'Lima']\n```",
11880
11747
  "itemtype": "method",
11881
11748
  "name": "addObject",
@@ -11897,7 +11764,7 @@
11897
11764
  },
11898
11765
  {
11899
11766
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11900
- "line": 1890,
11767
+ "line": 1689,
11901
11768
  "description": "Adds each object in the passed array to the receiver.",
11902
11769
  "itemtype": "method",
11903
11770
  "name": "addObjects",
@@ -11919,7 +11786,7 @@
11919
11786
  },
11920
11787
  {
11921
11788
  "file": "packages/@ember/-internals/runtime/lib/mixins/array.js",
11922
- "line": 1906,
11789
+ "line": 1705,
11923
11790
  "description": "Creates an `Ember.NativeArray` from an Array-like object.\nDoes not modify the original object's contents. `A()` is not needed if\n`EmberENV.EXTEND_PROTOTYPES` is `true` (the default value). However,\nit is recommended that you use `A()` when creating addons for\nember or when you can not guarantee that `EmberENV.EXTEND_PROTOTYPES`\nwill be `true`.\n\nExample\n\n```app/components/my-component.js\nimport Component from '@ember/component';\nimport { A } from '@ember/array';\n\nexport default Component.extend({\n tagName: 'ul',\n classNames: ['pagination'],\n\n init() {\n this._super(...arguments);\n\n if (!this.get('content')) {\n this.set('content', A());\n this.set('otherContent', A([1,2,3]));\n }\n }\n});\n```",
11924
11791
  "itemtype": "method",
11925
11792
  "name": "A",
@@ -12921,7 +12788,7 @@
12921
12788
  },
12922
12789
  {
12923
12790
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
12924
- "line": 140,
12791
+ "line": 141,
12925
12792
  "description": "The content array. Must be an object that implements `Array` and/or\n`MutableArray.`",
12926
12793
  "itemtype": "property",
12927
12794
  "name": "content",
@@ -12933,7 +12800,7 @@
12933
12800
  },
12934
12801
  {
12935
12802
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
12936
- "line": 149,
12803
+ "line": 150,
12937
12804
  "description": "Should actually retrieve the object at the specified index from the\ncontent. You can override this method in subclasses to transform the\ncontent item to something new.\n\nThis method will only be called if content is non-`null`.",
12938
12805
  "itemtype": "method",
12939
12806
  "name": "objectAtContent",
@@ -12955,7 +12822,7 @@
12955
12822
  },
12956
12823
  {
12957
12824
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
12958
- "line": 175,
12825
+ "line": 176,
12959
12826
  "description": "Should actually replace the specified objects on the content array.\nYou can override this method in subclasses to transform the content item\ninto something new.\n\nThis method will only be called if content is non-`null`.",
12960
12827
  "itemtype": "method",
12961
12828
  "name": "replaceContent",
@@ -12987,7 +12854,7 @@
12987
12854
  },
12988
12855
  {
12989
12856
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.js",
12990
- "line": 345,
12857
+ "line": 346,
12991
12858
  "description": "The array that the proxy pretends to be. In the default `ArrayProxy`\nimplementation, this and `content` are the same. Subclasses of `ArrayProxy`\ncan override this property to provide things like sorting and filtering.",
12992
12859
  "itemtype": "property",
12993
12860
  "name": "arrangedContent",
@@ -15362,7 +15229,7 @@
15362
15229
  {
15363
15230
  "file": "packages/@ember/destroyable/index.ts",
15364
15231
  "line": 31,
15365
- "description": "This function is used to associate a destroyable object with a parent. When the parent\nis destroyed, all registered children will also be destroyed.\n\n```js\nclass CustomSelect extends Component {\n constructor() {\n // obj is now a child of the component. When the component is destroyed,\n // obj will also be destroyed, and have all of its destructors triggered.\n this.obj = associateDestroyableChild(this, {});\n }\n}\n```\n\nReturns the associated child for convenience.",
15232
+ "description": "This function is used to associate a destroyable object with a parent. When the parent\nis destroyed, all registered children will also be destroyed.\n\n```js\nclass CustomSelect extends Component {\n constructor(...args) {\n super(...args);\n\n // obj is now a child of the component. When the component is destroyed,\n // obj will also be destroyed, and have all of its destructors triggered.\n this.obj = associateDestroyableChild(this, {});\n }\n}\n```\n\nReturns the associated child for convenience.",
15366
15233
  "itemtype": "method",
15367
15234
  "name": "associateDestroyableChild",
15368
15235
  "params": [
@@ -15389,7 +15256,7 @@
15389
15256
  },
15390
15257
  {
15391
15258
  "file": "packages/@ember/destroyable/index.ts",
15392
- "line": 56,
15259
+ "line": 58,
15393
15260
  "description": "Receives a destroyable, and returns true if the destroyable has begun destroying. Otherwise returns\nfalse.\n\n ```js\n let obj = {};\n isDestroying(obj); // false\n destroy(obj);\n isDestroying(obj); // true\n // ...sometime later, after scheduled destruction\n isDestroyed(obj); // true\n isDestroying(obj); // true\n ```",
15394
15261
  "itemtype": "method",
15395
15262
  "name": "isDestroying",
@@ -15412,7 +15279,7 @@
15412
15279
  },
15413
15280
  {
15414
15281
  "file": "packages/@ember/destroyable/index.ts",
15415
- "line": 78,
15282
+ "line": 80,
15416
15283
  "description": "Receives a destroyable, and returns true if the destroyable has finished destroying. Otherwise\nreturns false.\n\n```js\nlet obj = {};\n\nisDestroyed(obj); // false\ndestroy(obj);\n\n// ...sometime later, after scheduled destruction\n\nisDestroyed(obj); // true\n```",
15417
15284
  "itemtype": "method",
15418
15285
  "name": "isDestroyed",
@@ -15435,7 +15302,7 @@
15435
15302
  },
15436
15303
  {
15437
15304
  "file": "packages/@ember/destroyable/index.ts",
15438
- "line": 101,
15305
+ "line": 103,
15439
15306
  "description": "Initiates the destruction of a destroyable object. It runs all associated destructors, and then\ndestroys all children recursively.\n\n```js\nlet obj = {};\n\nregisterDestructor(obj, () => console.log('destroyed!'));\n\ndestroy(obj); // this will schedule the destructor to be called\n\n// ...some time later, during scheduled destruction\n\n// destroyed!\n```\n\nDestruction via `destroy()` follows these steps:\n\n1, Mark the destroyable such that `isDestroying(destroyable)` returns `true`\n2, Call `destroy()` on each of the destroyable's associated children\n3, Schedule calling the destroyable's destructors\n4, Schedule setting destroyable such that `isDestroyed(destroyable)` returns `true`\n\nThis results in the entire tree of destroyables being first marked as destroying,\nthen having all of their destructors called, and finally all being marked as isDestroyed.\nThere won't be any in between states where some items are marked as `isDestroying` while\ndestroying, while others are not.",
15440
15307
  "itemtype": "method",
15441
15308
  "name": "destroy",
@@ -15454,7 +15321,7 @@
15454
15321
  },
15455
15322
  {
15456
15323
  "file": "packages/@ember/destroyable/index.ts",
15457
- "line": 136,
15324
+ "line": 138,
15458
15325
  "description": "This function asserts that all objects which have associated destructors or associated children\nhave been destroyed at the time it is called. It is meant to be a low level hook that testing\nframeworks can use to hook into and validate that all destroyables have in fact been destroyed.\n\nThis function requires that `enableDestroyableTracking` was called previously, and is only\navailable in non-production builds.",
15459
15326
  "itemtype": "method",
15460
15327
  "name": "assertDestroyablesDestroyed",
@@ -15466,7 +15333,7 @@
15466
15333
  },
15467
15334
  {
15468
15335
  "file": "packages/@ember/destroyable/index.ts",
15469
- "line": 150,
15336
+ "line": 152,
15470
15337
  "description": "This function instructs the destroyable system to keep track of all destroyables (their\nchildren, destructors, etc). This enables a future usage of `assertDestroyablesDestroyed`\nto be used to ensure that all destroyable tasks (registered destructors and associated children)\nhave completed when `assertDestroyablesDestroyed` is called.",
15471
15338
  "itemtype": "method",
15472
15339
  "name": "enableDestroyableTracking",
@@ -15478,8 +15345,8 @@
15478
15345
  },
15479
15346
  {
15480
15347
  "file": "packages/@ember/destroyable/index.ts",
15481
- "line": 162,
15482
- "description": "Receives a destroyable object and a destructor function, and associates the\nfunction with it. When the destroyable is destroyed with destroy, or when its\nparent is destroyed, the destructor function will be called.\n\n```js\nimport { registerDestructor } from '@ember/destroyable';\n\nclass Modal extends Component {\n @service resize;\n\n constructor() {\n this.resize.register(this, this.layout);\n\n registerDestructor(this, () => this.resize.unregister(this));\n }\n}\n```\n\nMultiple destructors can be associated with a given destroyable, and they can be\nassociated over time, allowing libraries to dynamically add destructors as needed.\n`registerDestructor` also returns the associated destructor function, for convenience.\n\nThe destructor function is passed a single argument, which is the destroyable itself.\nThis allows the function to be reused multiple times for many destroyables, rather\nthan creating a closure function per destroyable.\n\n```js\nimport { registerDestructor } from '@ember/destroyable';\n\nfunction unregisterResize(instance) {\n instance.resize.unregister(instance);\n}\n\nclass Modal extends Component {\n @service resize;\n\n constructor() {\n this.resize.register(this, this.layout);\n\n registerDestructor(this, unregisterResize);\n }\n}\n```",
15348
+ "line": 164,
15349
+ "description": "Receives a destroyable object and a destructor function, and associates the\nfunction with it. When the destroyable is destroyed with destroy, or when its\nparent is destroyed, the destructor function will be called.\n\n```js\nimport Component from '@glimmer/component';\nimport { registerDestructor } from '@ember/destroyable';\n\nclass Modal extends Component {\n @service resize;\n\n constructor(...args) {\n super(...args);\n\n this.resize.register(this, this.layout);\n\n registerDestructor(this, () => this.resize.unregister(this));\n }\n}\n```\n\nMultiple destructors can be associated with a given destroyable, and they can be\nassociated over time, allowing libraries to dynamically add destructors as needed.\n`registerDestructor` also returns the associated destructor function, for convenience.\n\nThe destructor function is passed a single argument, which is the destroyable itself.\nThis allows the function to be reused multiple times for many destroyables, rather\nthan creating a closure function per destroyable.\n\n```js\nimport Component from '@glimmer/component';\nimport { registerDestructor } from '@ember/destroyable';\n\nfunction unregisterResize(instance) {\n instance.resize.unregister(instance);\n}\n\nclass Modal extends Component {\n @service resize;\n\n constructor(...args) {\n super(...args);\n\n this.resize.register(this, this.layout);\n\n registerDestructor(this, unregisterResize);\n }\n}\n```",
15483
15350
  "itemtype": "method",
15484
15351
  "name": "registerDestructor",
15485
15352
  "params": [
@@ -15502,8 +15369,8 @@
15502
15369
  },
15503
15370
  {
15504
15371
  "file": "packages/@ember/destroyable/index.ts",
15505
- "line": 221,
15506
- "description": "Receives a destroyable and a destructor function, and de-associates the destructor\nfrom the destroyable.\n\n```js\nimport { registerDestructor, unregisterDestructor } from '@ember/destroyable';\n\nclass Modal extends Component {\n @service modals;\n\n constructor() {\n this.modals.add(this);\n\n this.modalDestructor = registerDestructor(this, () => this.modals.remove(this));\n }\n\n @action pinModal() {\n unregisterDestructor(this, this.modalDestructor);\n }\n}\n```",
15372
+ "line": 229,
15373
+ "description": "Receives a destroyable and a destructor function, and de-associates the destructor\nfrom the destroyable.\n\n```js\nimport Component from '@glimmer/component';\nimport { registerDestructor, unregisterDestructor } from '@ember/destroyable';\n\nclass Modal extends Component {\n @service modals;\n\n constructor(...args) {\n super(...args);\n\n this.modals.add(this);\n\n this.modalDestructor = registerDestructor(this, () => this.modals.remove(this));\n }\n\n @action pinModal() {\n unregisterDestructor(this, this.modalDestructor);\n }\n}\n```",
15507
15374
  "itemtype": "method",
15508
15375
  "name": "unregisterDestructor",
15509
15376
  "params": [
@@ -18141,7 +18008,7 @@
18141
18008
  },
18142
18009
  {
18143
18010
  "message": "replacing incorrect tag: returns with return",
18144
- "line": " packages/@ember/-internals/routing/lib/system/route.ts:2320"
18011
+ "line": " packages/@ember/-internals/routing/lib/system/route.ts:2327"
18145
18012
  },
18146
18013
  {
18147
18014
  "message": "replacing incorrect tag: function with method",
@@ -18153,11 +18020,11 @@
18153
18020
  },
18154
18021
  {
18155
18022
  "message": "replacing incorrect tag: returns with return",
18156
- "line": " packages/@ember/destroyable/index.ts:56"
18023
+ "line": " packages/@ember/destroyable/index.ts:58"
18157
18024
  },
18158
18025
  {
18159
18026
  "message": "replacing incorrect tag: returns with return",
18160
- "line": " packages/@ember/destroyable/index.ts:78"
18027
+ "line": " packages/@ember/destroyable/index.ts:80"
18161
18028
  },
18162
18029
  {
18163
18030
  "message": "replacing incorrect tag: returns with return",