ember-source 4.5.0-alpha.5 → 4.6.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/blueprints-js/-addon-import.js +48 -0
  3. package/blueprints-js/acceptance-test/mocha-files/tests/acceptance/__name__-test.js +24 -0
  4. package/blueprints-js/acceptance-test/mocha-rfc-232-files/tests/acceptance/__name__-test.js +13 -0
  5. package/blueprints-js/acceptance-test/qunit-files/tests/acceptance/__name__-test.js +12 -0
  6. package/blueprints-js/acceptance-test/qunit-rfc-232-files/tests/acceptance/__name__-test.js +13 -0
  7. package/blueprints-js/component/files/__root__/__path__/__name__.js +3 -0
  8. package/blueprints-js/component/files/__root__/__templatepath__/__templatename__.hbs +1 -0
  9. package/blueprints-js/component-addon/files/__root__/__path__/__name__.js +1 -0
  10. package/blueprints-js/component-class/files/__root__/__path__/__name__.js +3 -0
  11. package/blueprints-js/component-class-addon/files/__root__/__path__/__name__.js +1 -0
  12. package/blueprints-js/component-test/mocha-0.12-files/__root__/__testType__/__path__/__test__.js +34 -0
  13. package/blueprints-js/component-test/mocha-files/__root__/__testType__/__path__/__test__.js +36 -0
  14. package/blueprints-js/component-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +38 -0
  15. package/blueprints-js/component-test/qunit-files/__root__/__testType__/__path__/__test__.js +31 -0
  16. package/blueprints-js/component-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +36 -0
  17. package/blueprints-js/controller/files/__root__/__path__/__name__.js +3 -0
  18. package/blueprints-js/controller-test/mocha-0.12-files/__root__/__testType__/__path__/__test__.js +16 -0
  19. package/blueprints-js/controller-test/mocha-files/__root__/__testType__/__path__/__test__.js +18 -0
  20. package/blueprints-js/controller-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +13 -0
  21. package/blueprints-js/controller-test/qunit-files/__root__/__testType__/__path__/__test__.js +12 -0
  22. package/blueprints-js/controller-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +12 -0
  23. package/blueprints-js/helper/files/__root__/__collection__/__name__.js +5 -0
  24. package/blueprints-js/helper/mu-files/__root__/__collection__/__name__.js +7 -0
  25. package/blueprints-js/helper-addon/files/__root__/__path__/__name__.js +1 -0
  26. package/blueprints-js/helper-test/mocha-0.12-files/__root__/__testType__/__collection__/__name__-test.js +26 -0
  27. package/blueprints-js/helper-test/mocha-files/__root__/__testType__/__collection__/__name__-test.js +28 -0
  28. package/blueprints-js/helper-test/mocha-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +18 -0
  29. package/blueprints-js/helper-test/qunit-files/__root__/__testType__/__collection__/__name__-test.js +15 -0
  30. package/blueprints-js/helper-test/qunit-rfc-232-files/__root__/__testType__/__collection__/__name__-test.js +17 -0
  31. package/blueprints-js/initializer/files/__root__/initializers/__name__.js +5 -0
  32. package/blueprints-js/initializer-addon/files/__root__/__path__/__name__.js +1 -0
  33. package/blueprints-js/initializer-test/mocha-files/__root__/__testType__/__path__/__name__-test.js +28 -0
  34. package/blueprints-js/initializer-test/mocha-rfc-232-files/__root__/__testType__/__path__/__name__-test.js +31 -0
  35. package/blueprints-js/initializer-test/qunit-files/__root__/__testType__/__path__/__name__-test.js +25 -0
  36. package/blueprints-js/initializer-test/qunit-rfc-232-files/__root__/__testType__/__path__/__name__-test.js +37 -0
  37. package/blueprints-js/instance-initializer/files/__root__/instance-initializers/__name__.js +5 -0
  38. package/blueprints-js/instance-initializer-addon/files/__root__/__path__/__name__.js +1 -0
  39. package/blueprints-js/instance-initializer-test/mocha-files/__root__/__testType__/__path__/__name__-test.js +30 -0
  40. package/blueprints-js/instance-initializer-test/mocha-rfc-232-files/__root__/__testType__/__path__/__name__-test.js +32 -0
  41. package/blueprints-js/instance-initializer-test/qunit-files/__root__/__testType__/__path__/__name__-test.js +26 -0
  42. package/blueprints-js/instance-initializer-test/qunit-rfc-232-files/__root__/__testType__/__path__/__name__-test.js +39 -0
  43. package/blueprints-js/mixin/files/__root__/mixins/__name__.js +3 -0
  44. package/blueprints-js/mixin-test/mocha-files/__root__/__testType__/__name__-test.js +13 -0
  45. package/blueprints-js/mixin-test/mocha-rfc-232-files/__root__/__testType__/__name__-test.js +13 -0
  46. package/blueprints-js/mixin-test/qunit-files/__root__/__testType__/__name__-test.js +12 -0
  47. package/blueprints-js/mixin-test/qunit-rfc-232-files/__root__/__testType__/__name__-test.js +12 -0
  48. package/blueprints-js/route/files/__root__/__path__/__name__.js +9 -0
  49. package/blueprints-js/route/files/__root__/__templatepath__/__templatename__.hbs +2 -0
  50. package/blueprints-js/route-addon/files/__root__/__path__/__name__.js +1 -0
  51. package/blueprints-js/route-addon/files/__root__/__templatepath__/__templatename__.js +1 -0
  52. package/blueprints-js/route-test/mocha-0.12-files/__root__/__testType__/__path__/__test__.js +15 -0
  53. package/blueprints-js/route-test/mocha-files/__root__/__testType__/__path__/__test__.js +17 -0
  54. package/blueprints-js/route-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +12 -0
  55. package/blueprints-js/route-test/qunit-files/__root__/__testType__/__path__/__test__.js +11 -0
  56. package/blueprints-js/route-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +11 -0
  57. package/blueprints-js/service/files/__root__/__path__/__name__.js +3 -0
  58. package/blueprints-js/service-test/mocha-0.12-files/__root__/__testType__/__path__/__test__.js +16 -0
  59. package/blueprints-js/service-test/mocha-files/__root__/__testType__/__path__/__test__.js +18 -0
  60. package/blueprints-js/service-test/mocha-rfc-232-files/__root__/__testType__/__path__/__test__.js +13 -0
  61. package/blueprints-js/service-test/qunit-files/__root__/__testType__/__path__/__test__.js +12 -0
  62. package/blueprints-js/service-test/qunit-rfc-232-files/__root__/__testType__/__path__/__test__.js +12 -0
  63. package/blueprints-js/template/files/__root__/__path__/__name__.hbs +0 -0
  64. package/blueprints-js/test-framework-detector.js +60 -0
  65. package/blueprints-js/util/files/__root__/utils/__name__.js +3 -0
  66. package/blueprints-js/util-test/mocha-files/__root__/__testType__/__name__-test.js +11 -0
  67. package/blueprints-js/util-test/mocha-rfc-232-files/__root__/__testType__/__name__-test.js +11 -0
  68. package/blueprints-js/util-test/qunit-files/__root__/__testType__/__name__-test.js +10 -0
  69. package/blueprints-js/util-test/qunit-rfc-232-files/__root__/__testType__/__name__-test.js +10 -0
  70. package/build-metadata.json +3 -3
  71. package/dist/ember-template-compiler.js +2 -2
  72. package/dist/ember-template-compiler.map +1 -1
  73. package/dist/ember-testing.js +3 -8
  74. package/dist/ember-testing.map +1 -1
  75. package/dist/ember.debug.js +119 -419
  76. package/dist/ember.debug.map +1 -1
  77. package/dist/header/license.js +1 -1
  78. package/dist/packages/@ember/-internals/glimmer/index.js +21 -11
  79. package/dist/packages/@ember/-internals/metal/index.js +0 -3
  80. package/dist/packages/@ember/-internals/routing/lib/system/router.js +0 -4
  81. package/dist/packages/@ember/controller/lib/controller_mixin.js +8 -18
  82. package/dist/packages/@ember/object/lib/computed/computed_macros.js +6 -4
  83. package/dist/packages/@ember/object/lib/computed/reduce_computed_macros.js +73 -364
  84. package/dist/packages/ember/version.js +1 -1
  85. package/dist/packages/ember-testing/lib/adapters/adapter.js +2 -7
  86. package/docs/data.json +534 -528
  87. package/package.json +5 -4
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.5.0-alpha.5"
6
+ "version": "4.6.0-alpha.2"
7
7
  },
8
8
  "files": {
9
9
  "node_modules/rsvp/lib/rsvp/promise/all.js": {
@@ -1334,15 +1334,8 @@
1334
1334
  },
1335
1335
  "namespaces": {}
1336
1336
  },
1337
- "packages/@ember/controller/lib/controller_mixin.d.ts": {
1338
- "name": "packages/@ember/controller/lib/controller_mixin.d.ts",
1339
- "modules": {},
1340
- "classes": {},
1341
- "fors": {},
1342
- "namespaces": {}
1343
- },
1344
- "packages/@ember/controller/lib/controller_mixin.js": {
1345
- "name": "packages/@ember/controller/lib/controller_mixin.js",
1337
+ "packages/@ember/controller/lib/controller_mixin.ts": {
1338
+ "name": "packages/@ember/controller/lib/controller_mixin.ts",
1346
1339
  "modules": {},
1347
1340
  "classes": {
1348
1341
  "Ember.ControllerMixin": 1
@@ -1480,8 +1473,8 @@
1480
1473
  },
1481
1474
  "namespaces": {}
1482
1475
  },
1483
- "packages/@ember/object/lib/computed/computed_macros.js": {
1484
- "name": "packages/@ember/object/lib/computed/computed_macros.js",
1476
+ "packages/@ember/object/lib/computed/computed_macros.ts": {
1477
+ "name": "packages/@ember/object/lib/computed/computed_macros.ts",
1485
1478
  "modules": {
1486
1479
  "@ember/object": 1
1487
1480
  },
@@ -1491,8 +1484,8 @@
1491
1484
  },
1492
1485
  "namespaces": {}
1493
1486
  },
1494
- "packages/@ember/object/lib/computed/reduce_computed_macros.js": {
1495
- "name": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
1487
+ "packages/@ember/object/lib/computed/reduce_computed_macros.ts": {
1488
+ "name": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
1496
1489
  "modules": {},
1497
1490
  "classes": {},
1498
1491
  "fors": {
@@ -1764,7 +1757,7 @@
1764
1757
  "namespaces": {},
1765
1758
  "tag": "module",
1766
1759
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
1767
- "line": 158,
1760
+ "line": 156,
1768
1761
  "access": "public",
1769
1762
  "tagname": ""
1770
1763
  },
@@ -1787,7 +1780,7 @@
1787
1780
  "namespaces": {},
1788
1781
  "tag": "main",
1789
1782
  "file": "packages/@ember/-internals/glimmer/lib/helper.ts",
1790
- "line": 45,
1783
+ "line": 47,
1791
1784
  "description": "[Glimmer](https://github.com/tildeio/glimmer) is a templating engine used by Ember.js that is compatible with a subset of the [Handlebars](http://handlebarsjs.com/) syntax.\n\n### Showing a property\n\nTemplates manage the flow of an application's UI, and display state (through\nthe DOM) to a user. For example, given a component with the property \"name\",\nthat component's template can use the name in several ways:\n\n```app/components/person-profile.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n name: 'Jill'\n});\n```\n\n```app/components/person-profile.hbs\n{{this.name}}\n<div>{{this.name}}</div>\n<span data-name={{this.name}}></span>\n```\n\nAny time the \"name\" property on the component changes, the DOM will be\nupdated.\n\nProperties can be chained as well:\n\n```handlebars\n{{@aUserModel.name}}\n<div>{{@listOfUsers.firstObject.name}}</div>\n```\n\n### Using Ember helpers\n\nWhen content is passed in mustaches `{{}}`, Ember will first try to find a helper\nor component with that name. For example, the `if` helper:\n\n```app/components/person-profile.hbs\n{{if this.name \"I have a name\" \"I have no name\"}}\n<span data-has-name={{if this.name true}}></span>\n```\n\nThe returned value is placed where the `{{}}` is called. The above style is\ncalled \"inline\". A second style of helper usage is called \"block\". For example:\n\n```handlebars\n{{#if this.name}}\n I have a name\n{{else}}\n I have no name\n{{/if}}\n```\n\nThe block form of helpers allows you to control how the UI is created based\non the values of properties.\nA third form of helper is called \"nested\". For example here the concat\nhelper will add \" Doe\" to a displayed name if the person has no last name:\n\n```handlebars\n<span data-name={{concat this.firstName (\n if this.lastName (concat \" \" this.lastName) \"Doe\"\n)}}></span>\n```\n\nEmber's built-in helpers are described under the [Ember.Templates.helpers](/ember/release/classes/Ember.Templates.helpers)\nnamespace. Documentation on creating custom helpers can be found under\n[helper](/ember/release/functions/@ember%2Fcomponent%2Fhelper/helper) (or\nunder [Helper](/ember/release/classes/Helper) if a helper requires access to\ndependency injection).\n\n### Invoking a Component\n\nEmber components represent state to the UI of an application. Further\nreading on components can be found under [Component](/ember/release/classes/Component).",
1792
1785
  "itemtype": "main"
1793
1786
  },
@@ -1909,7 +1902,7 @@
1909
1902
  "tag": "module",
1910
1903
  "file": "packages/@ember/-internals/glimmer/lib/glimmer-tracking-docs.ts",
1911
1904
  "line": 1,
1912
- "description": "In order to tell Ember a value might change, we need to mark it as trackable.\nTrackable values are values that:\n\n- Can change over their component’s lifetime and\n- Should cause Ember to rerender if and when they change\n\nWe can do this by marking the field with the `@tracked` decorator.",
1905
+ "description": "In order to tell Ember a value might change, we need to mark it as trackable.\nTrackable values are values that:\n\n- Can change over their component’s lifetime and\n- Should cause Ember to rerender if and when they change\n\nWe can do this by marking the field with the `@tracked` decorator.\n\n### Caching a getter value\n\nThe `@cached` decorator can be used on getters in order to cache the\nreturn value of the getter.\n\nThis method adds an extra overhead to each memoized getter, therefore caching\nthe values should not be the default strategy, but used in last resort.",
1913
1906
  "access": "public",
1914
1907
  "tagname": ""
1915
1908
  },
@@ -2008,7 +2001,7 @@
2008
2001
  },
2009
2002
  "tag": "module",
2010
2003
  "file": "packages/@ember/application/instance.ts",
2011
- "line": 325
2004
+ "line": 326
2012
2005
  },
2013
2006
  "@ember/array": {
2014
2007
  "name": "@ember/array",
@@ -2026,7 +2019,7 @@
2026
2019
  "namespaces": {},
2027
2020
  "tag": "module",
2028
2021
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
2029
- "line": 58
2022
+ "line": 52
2030
2023
  },
2031
2024
  "@ember/enumerable": {
2032
2025
  "name": "@ember/enumerable",
@@ -2218,7 +2211,7 @@
2218
2211
  "namespaces": {},
2219
2212
  "tag": "module",
2220
2213
  "file": "packages/@ember/runloop/index.ts",
2221
- "line": 97
2214
+ "line": 98
2222
2215
  },
2223
2216
  "@ember/service": {
2224
2217
  "name": "@ember/service",
@@ -2234,7 +2227,7 @@
2234
2227
  "namespaces": {},
2235
2228
  "tag": "module",
2236
2229
  "file": "packages/@ember/service/index.ts",
2237
- "line": 90,
2230
+ "line": 87,
2238
2231
  "access": "public",
2239
2232
  "tagname": ""
2240
2233
  },
@@ -2268,7 +2261,7 @@
2268
2261
  },
2269
2262
  "tag": "module",
2270
2263
  "file": "packages/ember-testing/lib/adapters/adapter.js",
2271
- "line": 11
2264
+ "line": 7
2272
2265
  }
2273
2266
  },
2274
2267
  "classes": {
@@ -2338,7 +2331,7 @@
2338
2331
  "module": "rsvp",
2339
2332
  "namespace": "",
2340
2333
  "file": "packages/@ember/-internals/container/lib/container.ts",
2341
- "line": 51,
2334
+ "line": 53,
2342
2335
  "description": "A container used to instantiate and cache objects.\n\nEvery `Container` must be associated with a `Registry`, which is referenced\nto determine the factory and options that should be used to instantiate\nobjects.\n\nThe public API for `Container` is still in flux and should not be considered\nstable.",
2343
2336
  "access": "private",
2344
2337
  "tagname": ""
@@ -2354,7 +2347,7 @@
2354
2347
  "module": "rsvp",
2355
2348
  "namespace": "",
2356
2349
  "file": "packages/@ember/-internals/container/lib/registry.ts",
2357
- "line": 56,
2350
+ "line": 57,
2358
2351
  "description": "A registry used to store factory and option information keyed\nby type.\n\nA `Registry` stores the factory and option information needed by a\n`Container` to instantiate and cache objects.\n\nThe API for `Registry` is still in flux and should not be considered stable.",
2359
2352
  "access": "private",
2360
2353
  "tagname": "",
@@ -2388,7 +2381,7 @@
2388
2381
  "module": "@ember/debug",
2389
2382
  "namespace": "",
2390
2383
  "file": "packages/@ember/-internals/extension-support/lib/container_debug_adapter.ts",
2391
- "line": 16,
2384
+ "line": 12,
2392
2385
  "description": "The `ContainerDebugAdapter` helps the container and resolver interface\nwith tools that debug Ember such as the\n[Ember Inspector](https://github.com/emberjs/ember-inspector)\nfor Chrome and Firefox.\n\nThis class can be extended by a custom resolver implementer\nto override some of the methods with library-specific code.\n\nThe methods likely to be overridden are:\n\n* `canCatalogEntriesByType`\n* `catalogEntriesByType`\n\nThe adapter will need to be registered\nin the application's container as `container-debug-adapter:main`.\n\nExample:\n\n```javascript\nApplication.initializer({\n name: \"containerDebugAdapter\",\n\n initialize(application) {\n application.register('container-debug-adapter:main', require('app/container-debug-adapter'));\n }\n});\n```",
2393
2386
  "extends": "EmberObject",
2394
2387
  "since": "1.5.0",
@@ -2406,7 +2399,7 @@
2406
2399
  "module": "@ember/debug",
2407
2400
  "namespace": "",
2408
2401
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
2409
- "line": 158,
2402
+ "line": 156,
2410
2403
  "description": "The `DataAdapter` helps a data persistence library\ninterface with tools that debug Ember such\nas the [Ember Inspector](https://github.com/emberjs/ember-inspector)\nfor Chrome and Firefox.\n\nThis class will be extended by a persistence library\nwhich will override some of the methods with\nlibrary-specific code.\n\nThe methods likely to be overridden are:\n\n* `getFilters`\n* `detect`\n* `columnsForType`\n* `getRecords`\n* `getRecordColumnValues`\n* `getRecordKeywords`\n* `getRecordFilterValues`\n* `getRecordColor`\n\nThe adapter will need to be registered\nin the application's container as `dataAdapter:main`.\n\nExample:\n\n```javascript\nApplication.initializer({\n name: \"data-adapter\",\n\n initialize: function(application) {\n application.register('data-adapter:main', DS.DataAdapter);\n }\n});\n```",
2411
2404
  "extends": "EmberObject",
2412
2405
  "access": "public",
@@ -2471,7 +2464,7 @@
2471
2464
  "module": "ember",
2472
2465
  "namespace": "",
2473
2466
  "file": "packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts",
2474
- "line": 15,
2467
+ "line": 17,
2475
2468
  "description": "Represents the internal state of the component.",
2476
2469
  "access": "private",
2477
2470
  "tagname": ""
@@ -2498,7 +2491,7 @@
2498
2491
  "module": "@ember/component",
2499
2492
  "namespace": "",
2500
2493
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
2501
- "line": 38,
2494
+ "line": 39,
2502
2495
  "description": "A component is a reusable UI element that consists of a `.hbs` template and an\noptional JavaScript class that defines its behavior. For example, someone\nmight make a `button` in the template and handle the click behavior in the\nJavaScript file that shares the same name as the template.\n\nComponents are broken down into two categories:\n\n- Components _without_ JavaScript, that are based only on a template. These\n are called Template-only or TO components.\n- Components _with_ JavaScript, which consist of a template and a backing\n class.\n\nEmber ships with two types of JavaScript classes for components:\n\n1. Glimmer components, imported from `@glimmer/component`, which are the\n default component's for Ember Octane (3.15) and more recent editions.\n2. Classic components, imported from `@ember/component`, which were the\n default for older editions of Ember (pre 3.15).\n\nBelow is the documentation for Classic components. If you are looking for the\nAPI documentation for Template-only or Glimmer components, it is\n[available here](/ember/release/modules/@glimmer%2Fcomponent).\n\n## Defining a Classic Component\n\nIf you want to customize the component in order to handle events, transform\narguments or maintain internal state, you implement a subclass of `Component`.\n\nOne example is to add computed properties to your component:\n\n```app/components/person-profile.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n displayName: computed('person.title', 'person.firstName', 'person.lastName', function() {\n let { title, firstName, lastName } = this.person;\n\n if (title) {\n return `${title} ${lastName}`;\n } else {\n return `${firstName} ${lastName}`;\n }\n })\n});\n```\n\nAnd then use it in the component's template:\n\n```app/templates/components/person-profile.hbs\n<h1>{{this.displayName}}</h1>\n{{yield}}\n```\n\n## Customizing a Classic Component's HTML Element in JavaScript\n\n### HTML Tag\n\nThe default HTML tag name used for a component's HTML representation is `div`.\nThis can be customized by setting the `tagName` property.\n\nConsider the following component class:\n\n```app/components/emphasized-paragraph.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'em'\n});\n```\n\nWhen invoked, this component would produce output that looks something like\nthis:\n\n```html\n<em id=\"ember1\" class=\"ember-view\"></em>\n```\n\n### HTML `class` Attribute\n\nThe HTML `class` attribute of a component's tag can be set by providing a\n`classNames` property that is set to an array of strings:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n classNames: ['my-class', 'my-other-class']\n});\n```\n\nInvoking this component will produce output that looks like this:\n\n```html\n<div id=\"ember1\" class=\"ember-view my-class my-other-class\"></div>\n```\n\n`class` attribute values can also be set by providing a `classNameBindings`\nproperty set to an array of properties names for the component. The return\nvalue of these properties will be added as part of the value for the\ncomponents's `class` attribute. These properties can be computed properties:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n classNames: ['my-class', 'my-other-class'],\n classNameBindings: ['propertyA', 'propertyB'],\n\n propertyA: 'from-a',\n propertyB: computed(function() {\n if (someLogic) { return 'from-b'; }\n })\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view my-class my-other-class from-a from-b\"></div>\n```\n\nNote that `classNames` and `classNameBindings` is in addition to the `class`\nattribute passed with the angle bracket invocation syntax. Therefore, if this\ncomponent was invoked like so:\n\n```handlebars\n<MyWidget class=\"from-invocation\" />\n```\n\nThe resulting HTML will look similar to this:\n\n```html\n<div id=\"ember1\" class=\"from-invocation ember-view my-class my-other-class from-a from-b\"></div>\n```\n\nIf the value of a class name binding returns a boolean the property name\nitself will be used as the class name if the property is true. The class name\nwill not be added if the value is `false` or `undefined`.\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n classNameBindings: ['hovered'],\n\n hovered: true\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view hovered\"></div>\n```\n\n### Custom Class Names for Boolean Values\n\nWhen using boolean class name bindings you can supply a string value other\nthan the property name for use as the `class` HTML attribute by appending the\npreferred value after a \":\" character when defining the binding:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n classNameBindings: ['awesome:so-very-cool'],\n\n awesome: true\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view so-very-cool\"></div>\n```\n\nBoolean value class name bindings whose property names are in a\ncamelCase-style format will be converted to a dasherized format:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n classNameBindings: ['isUrgent'],\n\n isUrgent: true\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view is-urgent\"></div>\n```\n\nClass name bindings can also refer to object values that are found by\ntraversing a path relative to the component itself:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\nimport EmberObject from '@ember/object';\n\nexport default Component.extend({\n classNameBindings: ['messages.empty'],\n\n messages: EmberObject.create({\n empty: true\n })\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view empty\"></div>\n```\n\nIf you want to add a class name for a property which evaluates to true and\nand a different class name if it evaluates to false, you can pass a binding\nlike this:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n classNameBindings: ['isEnabled:enabled:disabled'],\n isEnabled: true\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view enabled\"></div>\n```\n\nWhen isEnabled is `false`, the resulting HTML representation looks like this:\n\n```html\n<div id=\"ember1\" class=\"ember-view disabled\"></div>\n```\n\nThis syntax offers the convenience to add a class if a property is `false`:\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\n// Applies no class when isEnabled is true and class 'disabled' when isEnabled is false\nexport default Component.extend({\n classNameBindings: ['isEnabled::disabled'],\n isEnabled: true\n});\n```\n\nInvoking this component when the `isEnabled` property is true will produce\nHTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view\"></div>\n```\n\nInvoking it when the `isEnabled` property on the component is `false` will\nproduce HTML that looks like:\n\n```html\n<div id=\"ember1\" class=\"ember-view disabled\"></div>\n```\n\nUpdates to the value of a class name binding will result in automatic update\nof the HTML `class` attribute in the component's rendered HTML\nrepresentation. If the value becomes `false` or `undefined` the class name\nwill be removed.\n\nBoth `classNames` and `classNameBindings` are concatenated properties. See\n[EmberObject](/ember/release/classes/EmberObject) documentation for more\ninformation about concatenated properties.\n\n### Other HTML Attributes\n\nThe HTML attribute section of a component's tag can be set by providing an\n`attributeBindings` property set to an array of property names on the component.\nThe return value of these properties will be used as the value of the component's\nHTML associated attribute:\n\n```app/components/my-anchor.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'a',\n attributeBindings: ['href'],\n\n href: 'http://google.com'\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<a id=\"ember1\" class=\"ember-view\" href=\"http://google.com\"></a>\n```\n\nOne property can be mapped on to another by placing a \":\" between\nthe source property and the destination property:\n\n```app/components/my-anchor.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'a',\n attributeBindings: ['url:href'],\n\n url: 'http://google.com'\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<a id=\"ember1\" class=\"ember-view\" href=\"http://google.com\"></a>\n```\n\nHTML attributes passed with angle bracket invocations will take precedence\nover those specified in `attributeBindings`. Therefore, if this component was\ninvoked like so:\n\n```handlebars\n<MyAnchor href=\"http://bing.com\" @url=\"http://google.com\" />\n```\n\nThe resulting HTML will looks like this:\n\n```html\n<a id=\"ember1\" class=\"ember-view\" href=\"http://bing.com\"></a>\n```\n\nNote that the `href` attribute is ultimately set to `http://bing.com`,\ndespite it having attribute binidng to the `url` property, which was\nset to `http://google.com`.\n\nNamespaced attributes (e.g. `xlink:href`) are supported, but have to be\nmapped, since `:` is not a valid character for properties in Javascript:\n\n```app/components/my-use.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'use',\n attributeBindings: ['xlinkHref:xlink:href'],\n\n xlinkHref: '#triangle'\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<use xlink:href=\"#triangle\"></use>\n```\n\nIf the value of a property monitored by `attributeBindings` is a boolean, the\nattribute will be present or absent depending on the value:\n\n```app/components/my-text-input.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'input',\n attributeBindings: ['disabled'],\n\n disabled: false\n});\n```\n\nInvoking this component will produce HTML that looks like:\n\n```html\n<input id=\"ember1\" class=\"ember-view\" />\n```\n\n`attributeBindings` can refer to computed properties:\n\n```app/components/my-text-input.js\nimport Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n tagName: 'input',\n attributeBindings: ['disabled'],\n\n disabled: computed(function() {\n if (someLogic) {\n return true;\n } else {\n return false;\n }\n })\n});\n```\n\nTo prevent setting an attribute altogether, use `null` or `undefined` as the\nvalue of the property used in `attributeBindings`:\n\n```app/components/my-text-input.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n tagName: 'form',\n attributeBindings: ['novalidate'],\n novalidate: null\n});\n```\n\nUpdates to the property of an attribute binding will result in automatic\nupdate of the HTML attribute in the component's HTML output.\n\n`attributeBindings` is a concatenated property. See\n[EmberObject](/ember/release/classes/EmberObject) documentation for more\ninformation about concatenated properties.\n\n## Layouts\n\nThe `layout` property can be used to dynamically specify a template associated\nwith a component class, instead of relying on Ember to link together a\ncomponent class and a template based on file names.\n\nIn general, applications should not use this feature, but it's commonly used\nin addons for historical reasons.\n\nThe `layout` property should be set to the default export of a template\nmodule, which is the name of a template file without the `.hbs` extension.\n\n```app/templates/components/person-profile.hbs\n<h1>Person's Title</h1>\n<div class='details'>{{yield}}</div>\n```\n\n```app/components/person-profile.js\n import Component from '@ember/component';\n import layout from '../templates/components/person-profile';\n\n export default Component.extend({\n layout\n });\n```\n\nIf you invoke the component:\n\n```handlebars\n<PersonProfile>\n <h2>Chief Basket Weaver</h2>\n <h3>Fisherman Industries</h3>\n</PersonProfile>\n```\n\nor\n\n```handlebars\n{{#person-profile}}\n <h2>Chief Basket Weaver</h2>\n <h3>Fisherman Industries</h3>\n{{/person-profile}}\n```\n\nIt will result in the following HTML output:\n\n```html\n<h1>Person's Title</h1>\n <div class=\"details\">\n <h2>Chief Basket Weaver</h2>\n <h3>Fisherman Industries</h3>\n</div>\n```\n\n## Handling Browser Events\n\nComponents can respond to user-initiated events in one of three ways: passing\nactions with angle bracket invocation, adding event handler methods to the\ncomponent's class, or adding actions to the component's template.\n\n### Passing Actions With Angle Bracket Invocation\n\nFor one-off events specific to particular instance of a component, it is possible\nto pass actions to the component's element using angle bracket invocation syntax.\n\n```handlebars\n<MyWidget {{action 'firstWidgetClicked'}} />\n\n<MyWidget {{action 'secondWidgetClicked'}} />\n```\n\nIn this case, when the first component is clicked on, Ember will invoke the\n`firstWidgetClicked` action. When the second component is clicked on, Ember\nwill invoke the `secondWidgetClicked` action instead.\n\nBesides `{{action}}`, it is also possible to pass any arbitrary element modifiers\nusing the angle bracket invocation syntax.\n\n### Event Handler Methods\n\nComponents can also respond to user-initiated events by implementing a method\nthat matches the event name. This approach is appropriate when the same event\nshould be handled by all instances of the same component.\n\nAn event object will be passed as the argument to the event handler method.\n\n```app/components/my-widget.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n click(event) {\n // `event.target` is either the component's element or one of its children\n let tag = event.target.tagName.toLowerCase();\n console.log('clicked on a `<${tag}>` HTML element!');\n }\n});\n```\n\nIn this example, whenever the user clicked anywhere inside the component, it\nwill log a message to the console.\n\nIt is possible to handle event types other than `click` by implementing the\nfollowing event handler methods. In addition, custom events can be registered\nby using `Application.customEvents`.\n\nTouch events:\n\n* `touchStart`\n* `touchMove`\n* `touchEnd`\n* `touchCancel`\n\nKeyboard events:\n\n* `keyDown`\n* `keyUp`\n* `keyPress`\n\nMouse events:\n\n* `mouseDown`\n* `mouseUp`\n* `contextMenu`\n* `click`\n* `doubleClick`\n* `focusIn`\n* `focusOut`\n\nForm events:\n\n* `submit`\n* `change`\n* `focusIn`\n* `focusOut`\n* `input`\n\nDrag and drop events:\n\n* `dragStart`\n* `drag`\n* `dragEnter`\n* `dragLeave`\n* `dragOver`\n* `dragEnd`\n* `drop`\n\n### `{{action}}` Helper\n\nInstead of handling all events of a particular type anywhere inside the\ncomponent's element, you may instead want to limit it to a particular\nelement in the component's template. In this case, it would be more\nconvenient to implement an action instead.\n\nFor example, you could implement the action `hello` for the `person-profile`\ncomponent:\n\n```app/components/person-profile.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n actions: {\n hello(name) {\n console.log(\"Hello\", name);\n }\n }\n});\n```\n\nAnd then use it in the component's template:\n\n```app/templates/components/person-profile.hbs\n<h1>{{@person.name}}</h1>\n\n<button {{action 'hello' @person.name}}>\n Say Hello to {{@person.name}}\n</button>\n```\n\nWhen the user clicks the button, Ember will invoke the `hello` action,\npassing in the current value of `@person.name` as an argument.\n\nSee [Ember.Templates.helpers.action](/ember/release/classes/Ember.Templates.helpers/methods/action?anchor=action).",
2503
2496
  "extends": "Ember.CoreView",
2504
2497
  "uses": [
@@ -2533,7 +2526,7 @@
2533
2526
  "module": "@ember/component",
2534
2527
  "namespace": "",
2535
2528
  "file": "packages/@ember/-internals/glimmer/lib/helper.ts",
2536
- "line": 45,
2529
+ "line": 47,
2537
2530
  "description": "Ember Helpers are functions that can compute values, and are used in templates.\nFor example, this code calls a helper named `format-currency`:\n\n```app/templates/application.hbs\n<Cost @cents={{230}} />\n```\n\n```app/components/cost.hbs\n<div>{{format-currency @cents currency=\"$\"}}</div>\n```\n\nAdditionally a helper can be called as a nested helper.\nIn this example, we show the formatted currency value if the `showMoney`\nnamed argument is truthy.\n\n```handlebars\n{{if @showMoney (format-currency @cents currency=\"$\")}}\n```\n\nHelpers defined using a class must provide a `compute` function. For example:\n\n```app/helpers/format-currency.js\nimport Helper from '@ember/component/helper';\n\nexport default class extends Helper {\n compute([cents], { currency }) {\n return `${currency}${cents * 0.01}`;\n }\n}\n```\n\nEach time the input to a helper changes, the `compute` function will be\ncalled again.\n\nAs instances, these helpers also have access to the container and will accept\ninjected dependencies.\n\nAdditionally, class helpers can call `recompute` to force a new computation.",
2538
2531
  "extends": "CoreObject",
2539
2532
  "access": "public",
@@ -2584,7 +2577,7 @@
2584
2577
  "module": "@ember/object",
2585
2578
  "namespace": "",
2586
2579
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
2587
- "line": 74,
2580
+ "line": 77,
2588
2581
  "description": "`@computed` is a decorator that turns a JavaScript getter and setter into a\ncomputed property, which is a _cached, trackable value_. By default the getter\nwill only be called once and the result will be cached. You can specify\nvarious properties that your computed property depends on. This will force the\ncached result to be cleared if the dependencies are modified, and lazily recomputed the next time something asks for it.\n\nIn the following example we decorate a getter - `fullName` - by calling\n`computed` with the property dependencies (`firstName` and `lastName`) as\narguments. The `fullName` getter will be called once (regardless of how many\ntimes it is accessed) as long as its dependencies do not change. Once\n`firstName` or `lastName` are updated any future calls to `fullName` will\nincorporate the new values, and any watchers of the value such as templates\nwill be updated:\n\n```javascript\nimport { computed, set } from '@ember/object';\n\nclass Person {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @computed('firstName', 'lastName')\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n});\n\nlet tom = new Person('Tom', 'Dale');\n\ntom.fullName; // 'Tom Dale'\n```\n\nYou can also provide a setter, which will be used when updating the computed\nproperty. Ember's `set` function must be used to update the property\nsince it will also notify observers of the property:\n\n```javascript\nimport { computed, set } from '@ember/object';\n\nclass Person {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @computed('firstName', 'lastName')\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n\n set fullName(value) {\n let [firstName, lastName] = value.split(' ');\n\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n});\n\nlet person = new Person();\n\nset(person, 'fullName', 'Peter Wagenet');\nperson.firstName; // 'Peter'\nperson.lastName; // 'Wagenet'\n```\n\nYou can also pass a getter function or object with `get` and `set` functions\nas the last argument to the computed decorator. This allows you to define\ncomputed property _macros_:\n\n```js\nimport { computed } from '@ember/object';\n\nfunction join(...keys) {\n return computed(...keys, function() {\n return keys.map(key => this[key]).join(' ');\n });\n}\n\nclass Person {\n @join('firstName', 'lastName')\n fullName;\n}\n```\n\nNote that when defined this way, getters and setters receive the _key_ of the\nproperty they are decorating as the first argument. Setters receive the value\nthey are setting to as the second argument instead. Additionally, setters must\n_return_ the value that should be cached:\n\n```javascript\nimport { computed, set } from '@ember/object';\n\nfunction fullNameMacro(firstNameKey, lastNameKey) {\n return computed(firstNameKey, lastNameKey, {\n get() {\n return `${this[firstNameKey]} ${this[lastNameKey]}`;\n }\n\n set(key, value) {\n let [firstName, lastName] = value.split(' ');\n\n set(this, firstNameKey, firstName);\n set(this, lastNameKey, lastName);\n\n return value;\n }\n });\n}\n\nclass Person {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @fullNameMacro('firstName', 'lastName') fullName;\n});\n\nlet person = new Person();\n\nset(person, 'fullName', 'Peter Wagenet');\nperson.firstName; // 'Peter'\nperson.lastName; // 'Wagenet'\n```\n\nComputed properties can also be used in classic classes. To do this, we\nprovide the getter and setter as the last argument like we would for a macro,\nand we assign it to a property on the class definition. This is an _anonymous_\ncomputed macro:\n\n```javascript\nimport EmberObject, { computed, set } from '@ember/object';\n\nlet Person = EmberObject.extend({\n // these will be supplied by `create`\n firstName: null,\n lastName: null,\n\n fullName: computed('firstName', 'lastName', {\n get() {\n return `${this.firstName} ${this.lastName}`;\n }\n\n set(key, value) {\n let [firstName, lastName] = value.split(' ');\n\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n\n return value;\n }\n })\n});\n\nlet tom = Person.create({\n firstName: 'Tom',\n lastName: 'Dale'\n});\n\ntom.get('fullName') // 'Tom Dale'\n```\n\nYou can overwrite computed property without setters with a normal property (no\nlonger computed) that won't change if dependencies change. You can also mark\ncomputed property as `.readOnly()` and block all attempts to set it.\n\n```javascript\nimport { computed, set } from '@ember/object';\n\nclass Person {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @computed('firstName', 'lastName').readOnly()\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n});\n\nlet person = new Person();\nperson.set('fullName', 'Peter Wagenet'); // Uncaught Error: Cannot set read-only property \"fullName\" on object: <(...):emberXXX>\n```\n\nAdditional resources:\n- [Decorators RFC](https://github.com/emberjs/rfcs/blob/master/text/0408-decorators.md)\n- [New CP syntax RFC](https://github.com/emberjs/rfcs/blob/master/text/0011-improved-cp-syntax.md)\n- [New computed syntax explained in \"Ember 1.12 released\" ](https://emberjs.com/blog/2015/05/13/ember-1-12-released.html#toc_new-computed-syntax)",
2589
2582
  "access": "public",
2590
2583
  "tagname": ""
@@ -2622,7 +2615,7 @@
2622
2615
  "module": "@ember/object",
2623
2616
  "namespace": "",
2624
2617
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
2625
- "line": 49,
2618
+ "line": 50,
2626
2619
  "description": "Objects of this type can implement an interface to respond to requests to\nget and set. The default implementation handles simple properties.",
2627
2620
  "access": "private",
2628
2621
  "tagname": ""
@@ -2671,7 +2664,7 @@
2671
2664
  "module": "ember",
2672
2665
  "namespace": "Ember",
2673
2666
  "file": "packages/@ember/-internals/metal/lib/injected_property.ts",
2674
- "line": 19,
2667
+ "line": 20,
2675
2668
  "description": "Read-only property that returns the result of a container lookup.",
2676
2669
  "is_constructor": 1,
2677
2670
  "params": [
@@ -2728,7 +2721,7 @@
2728
2721
  "module": "@ember/object",
2729
2722
  "namespace": "",
2730
2723
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
2731
- "line": 445,
2724
+ "line": 442,
2732
2725
  "description": "The `Mixin` class allows you to create mixins, whose properties can be\nadded to other classes. For instance,\n\n```javascript\nimport Mixin from '@ember/object/mixin';\n\nconst EditableMixin = Mixin.create({\n edit() {\n console.log('starting to edit');\n this.set('isEditing', true);\n },\n isEditing: false\n});\n```\n\n```javascript\nimport EmberObject from '@ember/object';\nimport EditableMixin from '../mixins/editable';\n\n// Mix mixins into classes by passing them as the first arguments to\n// `.extend.`\nconst Comment = EmberObject.extend(EditableMixin, {\n post: null\n});\n\nlet comment = Comment.create({\n post: somePost\n});\n\ncomment.edit(); // outputs 'starting to edit'\n```\n\nNote that Mixins are created with `Mixin.create`, not\n`Mixin.extend`.\n\nNote that mixins extend a constructor's prototype so arrays and object literals\ndefined as properties will be shared amongst objects that implement the mixin.\nIf you want to define a property in a mixin that is not shared, you can define\nit either as a computed property or have it be created on initialization of the object.\n\n```javascript\n// filters array will be shared amongst any object implementing mixin\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\n\nconst FilterableMixin = Mixin.create({\n filters: A()\n});\n```\n\n```javascript\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\nimport { computed } from '@ember/object';\n\n// filters will be a separate array for every object implementing the mixin\nconst FilterableMixin = Mixin.create({\n filters: computed(function() {\n return A();\n })\n});\n```\n\n```javascript\nimport Mixin from '@ember/object/mixin';\nimport { A } from '@ember/array';\n\n// filters will be created as a separate array during the object's initialization\nconst Filterable = Mixin.create({\n filters: null,\n\n init() {\n this._super(...arguments);\n this.set(\"filters\", A());\n }\n});\n```",
2733
2726
  "access": "public",
2734
2727
  "tagname": ""
@@ -2778,8 +2771,8 @@
2778
2771
  ],
2779
2772
  "module": "ember",
2780
2773
  "namespace": "Ember",
2781
- "file": "packages/@ember/controller/lib/controller_mixin.js",
2782
- "line": 11,
2774
+ "file": "packages/@ember/controller/lib/controller_mixin.ts",
2775
+ "line": 17,
2783
2776
  "uses": [
2784
2777
  "Ember.ActionHandler"
2785
2778
  ],
@@ -2881,7 +2874,7 @@
2881
2874
  "module": "@ember/routing",
2882
2875
  "namespace": "",
2883
2876
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
2884
- "line": 23,
2877
+ "line": 24,
2885
2878
  "description": "The Router service is the public API that provides access to the router.\n\nThe immediate benefit of the Router service is that you can inject it into components,\ngiving them a friendly way to initiate transitions and ask questions about the current\nglobal router state.\n\nIn this example, the Router service is injected into a component to initiate a transition\nto a dedicated route:\n\n```app/components/example.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { service } from '@ember/service';\n\nexport default class ExampleComponent extends Component {\n @service router;\n\n @action\n next() {\n this.router.transitionTo('other.route');\n }\n}\n```\n\nLike any service, it can also be injected into helpers, routes, etc.",
2886
2879
  "access": "public",
2887
2880
  "tagname": "",
@@ -2962,7 +2955,7 @@
2962
2955
  "module": "@ember/routing",
2963
2956
  "namespace": "",
2964
2957
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
2965
- "line": 85,
2958
+ "line": 84,
2966
2959
  "description": "The `Route` class is used to define individual routes. Refer to\nthe [routing guide](https://guides.emberjs.com/release/routing/) for documentation.",
2967
2960
  "extends": "EmberObject",
2968
2961
  "uses": [
@@ -2984,7 +2977,7 @@
2984
2977
  "module": "@ember/routing",
2985
2978
  "namespace": "",
2986
2979
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
2987
- "line": 141,
2980
+ "line": 137,
2988
2981
  "description": "The `EmberRouter` class manages the application state and URLs. Refer to\nthe [routing guide](https://guides.emberjs.com/release/routing/) for documentation.",
2989
2982
  "extends": "EmberObject",
2990
2983
  "uses": [
@@ -3022,7 +3015,7 @@
3022
3015
  "module": "ember",
3023
3016
  "namespace": "Ember",
3024
3017
  "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
3025
- "line": 62,
3018
+ "line": 63,
3026
3019
  "description": "`Ember.ProxyMixin` forwards all properties not defined by the proxy itself\nto a proxied `content` object. See ObjectProxy for more details.",
3027
3020
  "access": "private",
3028
3021
  "tagname": ""
@@ -3152,7 +3145,7 @@
3152
3145
  "module": "ember",
3153
3146
  "namespace": "",
3154
3147
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
3155
- "line": 18,
3148
+ "line": 19,
3156
3149
  "description": "ContainerProxyMixin is used to provide public access to specific\ncontainer functionality.",
3157
3150
  "access": "private",
3158
3151
  "tagname": ""
@@ -3299,7 +3292,7 @@
3299
3292
  "module": "@ember/array",
3300
3293
  "namespace": "",
3301
3294
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
3302
- "line": 58,
3295
+ "line": 52,
3303
3296
  "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```",
3304
3297
  "extends": "EmberObject",
3305
3298
  "uses": [
@@ -3319,7 +3312,7 @@
3319
3312
  "module": "@ember/object",
3320
3313
  "namespace": "",
3321
3314
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
3322
- "line": 174,
3315
+ "line": 173,
3323
3316
  "description": "`CoreObject` is the base class for all Ember constructs. It establishes a\nclass system based on Ember's Mixin system, and provides the basis for the\nEmber Object Model. `CoreObject` should generally not be used directly,\ninstead you should use `EmberObject`.\n\n## Usage\n\nYou can define a class by extending from `CoreObject` using the `extend`\nmethod:\n\n```js\nconst Person = CoreObject.extend({\n name: 'Tomster',\n});\n```\n\nFor detailed usage, see the [Object Model](https://guides.emberjs.com/release/object-model/)\nsection of the guides.\n\n## Usage with Native Classes\n\nNative JavaScript `class` syntax can be used to extend from any `CoreObject`\nbased class:\n\n```js\nclass Person extends CoreObject {\n init() {\n super.init(...arguments);\n this.name = 'Tomster';\n }\n}\n```\n\nSome notes about `class` usage:\n\n* `new` syntax is not currently supported with classes that extend from\n `EmberObject` or `CoreObject`. You must continue to use the `create` method\n when making new instances of classes, even if they are defined using native\n class syntax. If you want to use `new` syntax, consider creating classes\n which do _not_ extend from `EmberObject` or `CoreObject`. Ember features,\n such as computed properties and decorators, will still work with base-less\n classes.\n* Instead of using `this._super()`, you must use standard `super` syntax in\n native classes. See the [MDN docs on classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Super_class_calls_with_super)\n for more details.\n* Native classes support using [constructors](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Constructor)\n to set up newly-created instances. Ember uses these to, among other things,\n support features that need to retrieve other entities by name, like Service\n injection and `getOwner`. To ensure your custom instance setup logic takes\n place after this important work is done, avoid using the `constructor` in\n favor of `init`.\n* Properties passed to `create` will be available on the instance by the time\n `init` runs, so any code that requires these values should work at that\n time.\n* Using native classes, and switching back to the old Ember Object model is\n fully supported.",
3324
3317
  "access": "public",
3325
3318
  "tagname": ""
@@ -3471,7 +3464,7 @@
3471
3464
  "module": "ember",
3472
3465
  "namespace": "Ember",
3473
3466
  "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
3474
- "line": 6,
3467
+ "line": 7,
3475
3468
  "description": "`Ember.CoreView` is an abstract class that exists to give view-like behavior\nto both Ember's main view class `Component` and other classes that don't need\nthe full functionality of `Component`.\n\nUnless you have specific needs for `CoreView`, you will use `Component`\nin your applications.",
3476
3469
  "extends": "EmberObject",
3477
3470
  "deprecated": true,
@@ -3494,7 +3487,7 @@
3494
3487
  "module": "@ember/application",
3495
3488
  "namespace": "",
3496
3489
  "file": "packages/@ember/application/lib/application.ts",
3497
- "line": 32,
3490
+ "line": 34,
3498
3491
  "description": "An instance of `Application` is the starting point for every Ember\napplication. It instantiates, initializes and coordinates the\nobjects that make up your app.\n\nEach Ember app has one and only one `Application` object. Although\nEmber CLI creates this object implicitly, the `Application` class\nis defined in the `app/app.js`. You can define a `ready` method on the\n`Application` class, which will be run by Ember when the application is\ninitialized.\n\n```app/app.js\nconst App = Application.extend({\n ready() {\n // your code here\n }\n})\n```\n\nBecause `Application` ultimately inherits from `Ember.Namespace`, any classes\nyou create will have useful string representations when calling `toString()`.\nSee the `Ember.Namespace` documentation for more information.\n\nWhile you can think of your `Application` as a container that holds the\nother classes in your application, there are several other responsibilities\ngoing on under-the-hood that you may want to understand. It is also important\nto understand that an `Application` is different from an `ApplicationInstance`.\nRefer to the Guides to understand the difference between these.\n\n### Event Delegation\n\nEmber uses a technique called _event delegation_. This allows the framework\nto set up a global, shared event listener instead of requiring each view to\ndo it manually. For example, instead of each view registering its own\n`mousedown` listener on its associated element, Ember sets up a `mousedown`\nlistener on the `body`.\n\nIf a `mousedown` event occurs, Ember will look at the target of the event and\nstart walking up the DOM node tree, finding corresponding views and invoking\ntheir `mouseDown` method as it goes.\n\n`Application` has a number of default events that it listens for, as\nwell as a mapping from lowercase events to camel-cased view method names. For\nexample, the `keypress` event causes the `keyPress` method on the view to be\ncalled, the `dblclick` event causes `doubleClick` to be called, and so on.\n\nIf there is a bubbling browser event that Ember does not listen for by\ndefault, you can specify custom events and their corresponding view method\nnames by setting the application's `customEvents` property:\n\n```app/app.js\nimport Application from '@ember/application';\n\nlet App = Application.extend({\n customEvents: {\n // add support for the paste event\n paste: 'paste'\n }\n});\n```\n\nTo prevent Ember from setting up a listener for a default event,\nspecify the event name with a `null` value in the `customEvents`\nproperty:\n\n```app/app.js\nimport Application from '@ember/application';\n\nlet App = Application.extend({\n customEvents: {\n // prevent listeners for mouseenter/mouseleave events\n mouseenter: null,\n mouseleave: null\n }\n});\n```\n\nBy default, the application sets up these event listeners on the document\nbody. However, in cases where you are embedding an Ember application inside\nan existing page, you may want it to set up the listeners on an element\ninside the body.\n\nFor example, if only events inside a DOM element with the ID of `ember-app`\nshould be delegated, set your application's `rootElement` property:\n\n```app/app.js\nimport Application from '@ember/application';\n\nlet App = Application.extend({\n rootElement: '#ember-app'\n});\n```\n\nThe `rootElement` can be either a DOM element or a CSS selector\nstring. Note that *views appended to the DOM outside the root element will\nnot receive events.* If you specify a custom root element, make sure you only\nappend views inside it!\n\nTo learn more about the events Ember components use, see\n\n[components/handling-events](https://guides.emberjs.com/release/components/handling-events/#toc_event-names).\n\n### Initializers\n\nTo add behavior to the Application's boot process, you can define initializers in\nthe `app/initializers` directory, or with `ember generate initializer` using Ember CLI.\nThese files should export a named `initialize` function which will receive the created `application`\nobject as its first argument.\n\n```javascript\nexport function initialize(application) {\n // application.inject('route', 'foo', 'service:foo');\n}\n```\n\nApplication initializers can be used for a variety of reasons including:\n\n- setting up external libraries\n- injecting dependencies\n- setting up event listeners in embedded apps\n- deferring the boot process using the `deferReadiness` and `advanceReadiness` APIs.\n\n### Routing\n\nIn addition to creating your application's router, `Application` is\nalso responsible for telling the router when to start routing. Transitions\nbetween routes can be logged with the `LOG_TRANSITIONS` flag, and more\ndetailed intra-transition logging can be logged with\nthe `LOG_TRANSITIONS_INTERNAL` flag:\n\n```javascript\nimport Application from '@ember/application';\n\nlet App = Application.create({\n LOG_TRANSITIONS: true, // basic logging of successful transitions\n LOG_TRANSITIONS_INTERNAL: true // detailed logging of all routing steps\n});\n```\n\nBy default, the router will begin trying to translate the current URL into\napplication state once the browser emits the `DOMContentReady` event. If you\nneed to defer routing, you can call the application's `deferReadiness()`\nmethod. Once routing can begin, call the `advanceReadiness()` method.\n\nIf there is any setup required before routing begins, you can implement a\n`ready()` method on your app that will be invoked immediately before routing\nbegins.",
3499
3492
  "extends": "Engine",
3500
3493
  "access": "public",
@@ -3511,7 +3504,7 @@
3511
3504
  "module": "@ember/application",
3512
3505
  "namespace": "",
3513
3506
  "file": "packages/@ember/application/instance.ts",
3514
- "line": 28,
3507
+ "line": 29,
3515
3508
  "description": "The `ApplicationInstance` encapsulates all of the stateful aspects of a\nrunning `Application`.\n\nAt a high-level, we break application boot into two distinct phases:\n\n* Definition time, where all of the classes, templates, and other\n dependencies are loaded (typically in the browser).\n* Run time, where we begin executing the application once everything\n has loaded.\n\nDefinition time can be expensive and only needs to happen once since it is\nan idempotent operation. For example, between test runs and FastBoot\nrequests, the application stays the same. It is only the state that we want\nto reset.\n\nThat state is what the `ApplicationInstance` manages: it is responsible for\ncreating the container that contains all application state, and disposing of\nit once the particular test run or FastBoot request has finished.",
3516
3509
  "access": "public",
3517
3510
  "tagname": "",
@@ -3528,7 +3521,7 @@
3528
3521
  "module": "@ember/application",
3529
3522
  "namespace": "ApplicationInstance",
3530
3523
  "file": "packages/@ember/application/instance.ts",
3531
- "line": 325,
3524
+ "line": 326,
3532
3525
  "description": "A list of boot-time configuration options for customizing the behavior of\nan `ApplicationInstance`.\n\nThis is an interface class that exists purely to document the available\noptions; you do not need to construct it manually. Simply pass a regular\nJavaScript object containing the desired options into methods that require\none of these options object:\n\n```javascript\nMyApp.visit(\"/\", { location: \"none\", rootElement: \"#container\" });\n```\n\nNot all combinations of the supported options are valid. See the documentation\non `Application#visit` for the supported configurations.\n\nInternal, experimental or otherwise unstable flags are marked as private.",
3533
3526
  "access": "public",
3534
3527
  "tagname": ""
@@ -3625,7 +3618,7 @@
3625
3618
  "module": "@ember/engine",
3626
3619
  "namespace": "",
3627
3620
  "file": "packages/@ember/engine/index.ts",
3628
- "line": 39,
3621
+ "line": 40,
3629
3622
  "description": "The `Engine` class contains core functionality for both applications and\nengines.\n\nEach engine manages a registry that's used for dependency injection and\nexposed through `RegistryProxy`.\n\nEngines also manage initializers and instance initializers.\n\nEngines can spawn `EngineInstance` instances via `buildInstance()`.",
3630
3623
  "extends": "Ember.Namespace",
3631
3624
  "uses": [
@@ -3782,7 +3775,7 @@
3782
3775
  "module": "@ember/service",
3783
3776
  "namespace": "",
3784
3777
  "file": "packages/@ember/service/index.ts",
3785
- "line": 90,
3778
+ "line": 87,
3786
3779
  "extends": "EmberObject",
3787
3780
  "since": "1.10.0",
3788
3781
  "access": "public",
@@ -3815,7 +3808,7 @@
3815
3808
  "module": "@ember/test",
3816
3809
  "namespace": "",
3817
3810
  "file": "packages/ember-testing/lib/adapters/adapter.js",
3818
- "line": 11,
3811
+ "line": 7,
3819
3812
  "description": "The primary purpose of this class is to create hooks that can be implemented\nby an adapter for various test frameworks.",
3820
3813
  "access": "public",
3821
3814
  "tagname": ""
@@ -4483,7 +4476,7 @@
4483
4476
  },
4484
4477
  {
4485
4478
  "file": "packages/@ember/-internals/container/lib/container.ts",
4486
- "line": 91,
4479
+ "line": 93,
4487
4480
  "access": "private",
4488
4481
  "tagname": "",
4489
4482
  "itemtype": "property",
@@ -4495,7 +4488,7 @@
4495
4488
  },
4496
4489
  {
4497
4490
  "file": "packages/@ember/-internals/container/lib/container.ts",
4498
- "line": 98,
4491
+ "line": 100,
4499
4492
  "access": "private",
4500
4493
  "tagname": "",
4501
4494
  "itemtype": "property",
@@ -4506,7 +4499,7 @@
4506
4499
  },
4507
4500
  {
4508
4501
  "file": "packages/@ember/-internals/container/lib/container.ts",
4509
- "line": 104,
4502
+ "line": 106,
4510
4503
  "access": "private",
4511
4504
  "tagname": "",
4512
4505
  "itemtype": "property",
@@ -4517,7 +4510,7 @@
4517
4510
  },
4518
4511
  {
4519
4512
  "file": "packages/@ember/-internals/container/lib/container.ts",
4520
- "line": 110,
4513
+ "line": 112,
4521
4514
  "description": "Given a fullName return a corresponding instance.\n The default behavior is for lookup to return a singleton instance.\nThe singleton is scoped to the container, allowing multiple containers\nto all have their own locally scoped singletons.\n ```javascript\nlet registry = new Registry();\nlet container = registry.container();\n registry.register('api:twitter', Twitter);\n let twitter = container.lookup('api:twitter');\n twitter instanceof Twitter; // => true\n // by default the container will return singletons\nlet twitter2 = container.lookup('api:twitter');\ntwitter2 instanceof Twitter; // => true\n twitter === twitter2; //=> true\n```\n If singletons are not wanted, an optional flag can be provided at lookup.\n ```javascript\nlet registry = new Registry();\nlet container = registry.container();\n registry.register('api:twitter', Twitter);\n let twitter = container.lookup('api:twitter', { singleton: false });\nlet twitter2 = container.lookup('api:twitter', { singleton: false });\n twitter === twitter2; //=> false\n```",
4522
4515
  "access": "private",
4523
4516
  "tagname": "",
@@ -4545,7 +4538,7 @@
4545
4538
  },
4546
4539
  {
4547
4540
  "file": "packages/@ember/-internals/container/lib/container.ts",
4548
- "line": 149,
4541
+ "line": 151,
4549
4542
  "description": "A depth first traversal, destroying the container, its descendant containers and all\ntheir managed objects.",
4550
4543
  "access": "private",
4551
4544
  "tagname": "",
@@ -4556,7 +4549,7 @@
4556
4549
  },
4557
4550
  {
4558
4551
  "file": "packages/@ember/-internals/container/lib/container.ts",
4559
- "line": 166,
4552
+ "line": 168,
4560
4553
  "description": "Clear either the entire cache or just the cache for a particular key.",
4561
4554
  "access": "private",
4562
4555
  "tagname": "",
@@ -4574,7 +4567,7 @@
4574
4567
  },
4575
4568
  {
4576
4569
  "file": "packages/@ember/-internals/container/lib/container.ts",
4577
- "line": 183,
4570
+ "line": 185,
4578
4571
  "description": "Returns an object that can be used to provide an owner to a\nmanually created instance.",
4579
4572
  "access": "private",
4580
4573
  "tagname": "",
@@ -4589,7 +4582,7 @@
4589
4582
  },
4590
4583
  {
4591
4584
  "file": "packages/@ember/-internals/container/lib/container.ts",
4592
- "line": 196,
4585
+ "line": 198,
4593
4586
  "description": "Given a fullName, return the corresponding factory. The consumer of the factory\nis responsible for the destruction of any factory instances, as there is no\nway for the container to ensure instances are destroyed when it itself is\ndestroyed.",
4594
4587
  "access": "public",
4595
4588
  "tagname": "",
@@ -4611,7 +4604,7 @@
4611
4604
  },
4612
4605
  {
4613
4606
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4614
- "line": 95,
4607
+ "line": 96,
4615
4608
  "description": "A backup registry for resolving registrations when no matches can be found.",
4616
4609
  "access": "private",
4617
4610
  "tagname": "",
@@ -4623,7 +4616,7 @@
4623
4616
  },
4624
4617
  {
4625
4618
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4626
- "line": 103,
4619
+ "line": 104,
4627
4620
  "description": "An object that has a `resolve` method that resolves a name.",
4628
4621
  "access": "private",
4629
4622
  "tagname": "",
@@ -4635,7 +4628,7 @@
4635
4628
  },
4636
4629
  {
4637
4630
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4638
- "line": 111,
4631
+ "line": 112,
4639
4632
  "access": "private",
4640
4633
  "tagname": "",
4641
4634
  "itemtype": "property",
@@ -4646,7 +4639,7 @@
4646
4639
  },
4647
4640
  {
4648
4641
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4649
- "line": 117,
4642
+ "line": 118,
4650
4643
  "access": "private",
4651
4644
  "tagname": "",
4652
4645
  "itemtype": "property",
@@ -4657,7 +4650,7 @@
4657
4650
  },
4658
4651
  {
4659
4652
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4660
- "line": 124,
4653
+ "line": 125,
4661
4654
  "access": "private",
4662
4655
  "tagname": "",
4663
4656
  "itemtype": "property",
@@ -4668,7 +4661,7 @@
4668
4661
  },
4669
4662
  {
4670
4663
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4671
- "line": 131,
4664
+ "line": 132,
4672
4665
  "access": "private",
4673
4666
  "tagname": "",
4674
4667
  "itemtype": "property",
@@ -4679,7 +4672,7 @@
4679
4672
  },
4680
4673
  {
4681
4674
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4682
- "line": 138,
4675
+ "line": 139,
4683
4676
  "access": "private",
4684
4677
  "tagname": "",
4685
4678
  "itemtype": "property",
@@ -4690,7 +4683,7 @@
4690
4683
  },
4691
4684
  {
4692
4685
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4693
- "line": 145,
4686
+ "line": 146,
4694
4687
  "description": "Creates a container based on this registry.",
4695
4688
  "access": "private",
4696
4689
  "tagname": "",
@@ -4712,7 +4705,7 @@
4712
4705
  },
4713
4706
  {
4714
4707
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4715
- "line": 157,
4708
+ "line": 158,
4716
4709
  "description": "Registers a factory for later injection.\n\nExample:\n\n```javascript\nlet registry = new Registry();\n\nregistry.register('model:user', Person, {singleton: false });\nregistry.register('fruit:favorite', Orange);\nregistry.register('communication:main', Email, {singleton: false});\n```",
4717
4710
  "access": "private",
4718
4711
  "tagname": "",
@@ -4740,7 +4733,7 @@
4740
4733
  },
4741
4734
  {
4742
4735
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4743
- "line": 194,
4736
+ "line": 195,
4744
4737
  "description": "Unregister a fullName\n\n```javascript\nlet registry = new Registry();\nregistry.register('model:user', User);\n\nregistry.resolve('model:user').create() instanceof User //=> true\n\nregistry.unregister('model:user')\nregistry.resolve('model:user') === undefined //=> true\n```",
4745
4738
  "access": "private",
4746
4739
  "tagname": "",
@@ -4758,7 +4751,7 @@
4758
4751
  },
4759
4752
  {
4760
4753
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4761
- "line": 222,
4754
+ "line": 223,
4762
4755
  "description": "Given a fullName return the corresponding factory.\n\nBy default `resolve` will retrieve the factory from\nthe registry.\n\n```javascript\nlet registry = new Registry();\nregistry.register('api:twitter', Twitter);\n\nregistry.resolve('api:twitter') // => Twitter\n```\n\nOptionally the registry can be provided with a custom resolver.\nIf provided, `resolve` will first provide the custom resolver\nthe opportunity to resolve the fullName, otherwise it will fallback\nto the registry.\n\n```javascript\nlet registry = new Registry();\nregistry.resolver = function(fullName) {\n // lookup via the module system of choice\n };\n\n// the twitter factory is added to the module system\nregistry.resolve('api:twitter') // => Twitter\n```",
4763
4756
  "access": "private",
4764
4757
  "tagname": "",
@@ -4780,7 +4773,7 @@
4780
4773
  },
4781
4774
  {
4782
4775
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4783
- "line": 263,
4776
+ "line": 264,
4784
4777
  "description": "A hook that can be used to describe how the resolver will\nattempt to find the factory.\n\nFor example, the default Ember `.describe` returns the full\nclass name (including namespace) where Ember's resolver expects\nto find the `fullName`.",
4785
4778
  "access": "private",
4786
4779
  "tagname": "",
@@ -4802,7 +4795,7 @@
4802
4795
  },
4803
4796
  {
4804
4797
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4805
- "line": 286,
4798
+ "line": 287,
4806
4799
  "description": "A hook to enable custom fullName normalization behavior",
4807
4800
  "access": "private",
4808
4801
  "tagname": "",
@@ -4824,7 +4817,7 @@
4824
4817
  },
4825
4818
  {
4826
4819
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4827
- "line": 304,
4820
+ "line": 305,
4828
4821
  "description": "Normalize a fullName based on the application's conventions",
4829
4822
  "access": "private",
4830
4823
  "tagname": "",
@@ -4846,7 +4839,7 @@
4846
4839
  },
4847
4840
  {
4848
4841
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4849
- "line": 319,
4842
+ "line": 320,
4850
4843
  "itemtype": "method",
4851
4844
  "name": "makeToString",
4852
4845
  "access": "private",
@@ -4872,7 +4865,7 @@
4872
4865
  },
4873
4866
  {
4874
4867
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4875
- "line": 337,
4868
+ "line": 338,
4876
4869
  "description": "Given a fullName check if the container is aware of its factory\nor singleton instance.",
4877
4870
  "access": "private",
4878
4871
  "tagname": "",
@@ -4908,7 +4901,7 @@
4908
4901
  },
4909
4902
  {
4910
4903
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4911
- "line": 356,
4904
+ "line": 357,
4912
4905
  "description": "Allow registering options for all factories of a type.\n\n```javascript\nlet registry = new Registry();\nlet container = registry.container();\n\n// if all of type `connection` must not be singletons\nregistry.optionsForType('connection', { singleton: false });\n\nregistry.register('connection:twitter', TwitterConnection);\nregistry.register('connection:facebook', FacebookConnection);\n\nlet twitter = container.lookup('connection:twitter');\nlet twitter2 = container.lookup('connection:twitter');\n\ntwitter === twitter2; // => false\n\nlet facebook = container.lookup('connection:facebook');\nlet facebook2 = container.lookup('connection:facebook');\n\nfacebook === facebook2; // => false\n```",
4913
4906
  "access": "private",
4914
4907
  "tagname": "",
@@ -4931,7 +4924,7 @@
4931
4924
  },
4932
4925
  {
4933
4926
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4934
- "line": 397,
4927
+ "line": 398,
4935
4928
  "access": "private",
4936
4929
  "tagname": "",
4937
4930
  "itemtype": "method",
@@ -4953,14 +4946,14 @@
4953
4946
  },
4954
4947
  {
4955
4948
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4956
- "line": 440,
4949
+ "line": 441,
4957
4950
  "description": "This is deprecated in favor of explicit injection of dependencies.\n\nReference: https://deprecations.emberjs.com/v3.x#toc_implicit-injections\n```\n\n@private\n@method injection\n@param {String} factoryName\n@param {String} property\n@param {String} injectionName\n@deprecated",
4958
4951
  "class": "Registry",
4959
4952
  "module": "rsvp"
4960
4953
  },
4961
4954
  {
4962
4955
  "file": "packages/@ember/-internals/container/lib/registry.ts",
4963
- "line": 470,
4956
+ "line": 471,
4964
4957
  "access": "private",
4965
4958
  "tagname": "",
4966
4959
  "itemtype": "method",
@@ -5081,7 +5074,7 @@
5081
5074
  },
5082
5075
  {
5083
5076
  "file": "packages/@ember/-internals/extension-support/lib/container_debug_adapter.ts",
5084
- "line": 57,
5077
+ "line": 53,
5085
5078
  "description": "The resolver instance of the application\nbeing debugged. This property will be injected\non creation.",
5086
5079
  "itemtype": "property",
5087
5080
  "name": "resolver",
@@ -5092,7 +5085,7 @@
5092
5085
  },
5093
5086
  {
5094
5087
  "file": "packages/@ember/-internals/extension-support/lib/container_debug_adapter.ts",
5095
- "line": 67,
5088
+ "line": 63,
5096
5089
  "description": "Returns true if it is possible to catalog a list of available\nclasses in the resolver for a given type.",
5097
5090
  "itemtype": "method",
5098
5091
  "name": "canCatalogEntriesByType",
@@ -5114,7 +5107,7 @@
5114
5107
  },
5115
5108
  {
5116
5109
  "file": "packages/@ember/-internals/extension-support/lib/container_debug_adapter.ts",
5117
- "line": 84,
5110
+ "line": 80,
5118
5111
  "description": "Returns the available classes a given type.",
5119
5112
  "itemtype": "method",
5120
5113
  "name": "catalogEntriesByType",
@@ -5136,7 +5129,7 @@
5136
5129
  },
5137
5130
  {
5138
5131
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5139
- "line": 214,
5132
+ "line": 212,
5140
5133
  "description": "The container-debug-adapter which is used\nto list all models.",
5141
5134
  "itemtype": "property",
5142
5135
  "name": "containerDebugAdapter",
@@ -5149,7 +5142,7 @@
5149
5142
  },
5150
5143
  {
5151
5144
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5152
- "line": 224,
5145
+ "line": 222,
5153
5146
  "description": "The number of attributes to send\nas columns. (Enough to make the record\nidentifiable).",
5154
5147
  "access": "private",
5155
5148
  "tagname": "",
@@ -5162,7 +5155,7 @@
5162
5155
  },
5163
5156
  {
5164
5157
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5165
- "line": 236,
5158
+ "line": 234,
5166
5159
  "description": "Ember Data > v1.0.0-beta.18\nrequires string model names to be passed\naround instead of the actual factories.\n\nThis is a stamp for the Ember Inspector\nto differentiate between the versions\nto be able to support older versions too.",
5167
5160
  "access": "public",
5168
5161
  "tagname": "",
@@ -5173,7 +5166,7 @@
5173
5166
  },
5174
5167
  {
5175
5168
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5176
- "line": 250,
5169
+ "line": 248,
5177
5170
  "description": "Map from records arrays to RecordsWatcher instances",
5178
5171
  "access": "private",
5179
5172
  "tagname": "",
@@ -5185,7 +5178,7 @@
5185
5178
  },
5186
5179
  {
5187
5180
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5188
- "line": 258,
5181
+ "line": 256,
5189
5182
  "description": "Map from records arrays to TypeWatcher instances",
5190
5183
  "access": "private",
5191
5184
  "tagname": "",
@@ -5197,7 +5190,7 @@
5197
5190
  },
5198
5191
  {
5199
5192
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5200
- "line": 266,
5193
+ "line": 264,
5201
5194
  "description": "Callback that is currently scheduled on backburner end to flush and check\nall active watchers.",
5202
5195
  "access": "private",
5203
5196
  "tagname": "",
@@ -5209,7 +5202,7 @@
5209
5202
  },
5210
5203
  {
5211
5204
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5212
- "line": 276,
5205
+ "line": 274,
5213
5206
  "description": "Stores all methods that clear observers.\nThese methods will be called on destruction.",
5214
5207
  "access": "private",
5215
5208
  "tagname": "",
@@ -5221,7 +5214,7 @@
5221
5214
  },
5222
5215
  {
5223
5216
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5224
- "line": 285,
5217
+ "line": 283,
5225
5218
  "description": "Specifies how records can be filtered.\nRecords returned will need to have a `filterValues`\nproperty with a key for every name in the returned array.",
5226
5219
  "access": "public",
5227
5220
  "tagname": "",
@@ -5236,7 +5229,7 @@
5236
5229
  },
5237
5230
  {
5238
5231
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5239
- "line": 299,
5232
+ "line": 297,
5240
5233
  "description": "Fetch the model types and observe them for changes.",
5241
5234
  "access": "public",
5242
5235
  "tagname": "",
@@ -5263,7 +5256,7 @@
5263
5256
  },
5264
5257
  {
5265
5258
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5266
- "line": 347,
5259
+ "line": 345,
5267
5260
  "description": "Fetch the records of a given type and observe them for changes.",
5268
5261
  "access": "public",
5269
5262
  "tagname": "",
@@ -5300,7 +5293,7 @@
5300
5293
  },
5301
5294
  {
5302
5295
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5303
- "line": 419,
5296
+ "line": 417,
5304
5297
  "description": "Clear all observers before destruction",
5305
5298
  "access": "private",
5306
5299
  "tagname": "",
@@ -5311,7 +5304,7 @@
5311
5304
  },
5312
5305
  {
5313
5306
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5314
- "line": 437,
5307
+ "line": 435,
5315
5308
  "description": "Detect whether a class is a model.\n\nTest that against the model class\nof your persistence library.",
5316
5309
  "access": "public",
5317
5310
  "tagname": "",
@@ -5325,7 +5318,7 @@
5325
5318
  },
5326
5319
  {
5327
5320
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5328
- "line": 451,
5321
+ "line": 449,
5329
5322
  "description": "Get the columns for a given model type.",
5330
5323
  "access": "public",
5331
5324
  "tagname": "",
@@ -5340,7 +5333,7 @@
5340
5333
  },
5341
5334
  {
5342
5335
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5343
- "line": 464,
5336
+ "line": 462,
5344
5337
  "description": "Adds observers to a model type class.",
5345
5338
  "access": "private",
5346
5339
  "tagname": "",
@@ -5367,7 +5360,7 @@
5367
5360
  },
5368
5361
  {
5369
5362
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5370
- "line": 501,
5363
+ "line": 499,
5371
5364
  "description": "Wraps a given model type and observes changes to it.",
5372
5365
  "access": "private",
5373
5366
  "tagname": "",
@@ -5394,7 +5387,7 @@
5394
5387
  },
5395
5388
  {
5396
5389
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5397
- "line": 525,
5390
+ "line": 523,
5398
5391
  "description": "Fetches all models defined in the application.",
5399
5392
  "access": "private",
5400
5393
  "tagname": "",
@@ -5409,7 +5402,7 @@
5409
5402
  },
5410
5403
  {
5411
5404
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5412
- "line": 550,
5405
+ "line": 548,
5413
5406
  "description": "Loops over all namespaces and all objects\nattached to them.",
5414
5407
  "access": "private",
5415
5408
  "tagname": "",
@@ -5424,7 +5417,7 @@
5424
5417
  },
5425
5418
  {
5426
5419
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5427
- "line": 579,
5420
+ "line": 577,
5428
5421
  "description": "Fetches all loaded records for a given type.",
5429
5422
  "access": "public",
5430
5423
  "tagname": "",
@@ -5439,7 +5432,7 @@
5439
5432
  },
5440
5433
  {
5441
5434
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5442
- "line": 592,
5435
+ "line": 590,
5443
5436
  "description": "Wraps a record and observers changes to it.",
5444
5437
  "access": "private",
5445
5438
  "tagname": "",
@@ -5461,7 +5454,7 @@
5461
5454
  },
5462
5455
  {
5463
5456
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5464
- "line": 612,
5457
+ "line": 610,
5465
5458
  "description": "Gets the values for each column.",
5466
5459
  "access": "public",
5467
5460
  "tagname": "",
@@ -5476,7 +5469,7 @@
5476
5469
  },
5477
5470
  {
5478
5471
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5479
- "line": 624,
5472
+ "line": 622,
5480
5473
  "description": "Returns keywords to match when searching records.",
5481
5474
  "access": "public",
5482
5475
  "tagname": "",
@@ -5491,7 +5484,7 @@
5491
5484
  },
5492
5485
  {
5493
5486
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5494
- "line": 635,
5487
+ "line": 633,
5495
5488
  "description": "Returns the values of filters defined by `getFilters`.",
5496
5489
  "access": "public",
5497
5490
  "tagname": "",
@@ -5513,7 +5506,7 @@
5513
5506
  },
5514
5507
  {
5515
5508
  "file": "packages/@ember/-internals/extension-support/lib/data_adapter.ts",
5516
- "line": 647,
5509
+ "line": 645,
5517
5510
  "description": "Each record can have a color that represents its state.",
5518
5511
  "access": "public",
5519
5512
  "tagname": "",
@@ -5535,7 +5528,7 @@
5535
5528
  },
5536
5529
  {
5537
5530
  "file": "packages/@ember/-internals/glimmer/lib/components/abstract-input.ts",
5538
- "line": 125,
5531
+ "line": 127,
5539
5532
  "description": "The `change` and `input` actions need to be overridden in the `Input`\nsubclass. Unfortunately, some ember-source builds currently uses babel\nloose mode to transpile its classes. Having the `@action` decorator on the\nsuper class creates a getter on the prototype, and when the subclass\noverrides the method, the loose mode transpilation would emit something\nlike `Subclass.prototype['change'] = function change() { ... }`, which\nfails because `prototype['change']` is getter-only/readonly. The correct\nsolution is to use `Object.defineProperty(prototype, 'change', ...)` but\nthat requires disabling loose mode. For now, the workaround is to add the\ndecorator only on the subclass. This is more of a configuration issue on\nour own builds and doesn't really affect apps.",
5540
5533
  "class": "Ember.Templates.helpers",
5541
5534
  "module": "@ember/debug"
@@ -5610,14 +5603,14 @@
5610
5603
  },
5611
5604
  {
5612
5605
  "file": "packages/@ember/-internals/glimmer/lib/components/internal.ts",
5613
- "line": 37,
5606
+ "line": 39,
5614
5607
  "description": "The default HTML id attribute. We don't really _need_ one, this is just\nadded for compatibility as it's hard to tell if people rely on it being\npresent, and it doens't really hurt.\n\nHowever, don't rely on this internally, like passing it to `getElementId`.\nThis can be (and often is) overriden by passing an `id` attribute on the\ninvocation, which shadows this default id via `...attributes`.",
5615
5608
  "class": "Ember.Templates.components",
5616
5609
  "module": "@ember/component"
5617
5610
  },
5618
5611
  {
5619
5612
  "file": "packages/@ember/-internals/glimmer/lib/components/internal.ts",
5620
- "line": 50,
5613
+ "line": 52,
5621
5614
  "description": "The default HTML class attribute. Similar to the above, we don't _need_\nthem, they are just added for compatibility as it's similarly hard to tell\nif people rely on it in their CSS etc, and it doens't really hurt.",
5622
5615
  "class": "Ember.Templates.components",
5623
5616
  "module": "@ember/component"
@@ -5709,7 +5702,7 @@
5709
5702
  },
5710
5703
  {
5711
5704
  "file": "packages/@ember/-internals/glimmer/lib/helpers/action.ts",
5712
- "line": 23,
5705
+ "line": 18,
5713
5706
  "description": "The `{{action}}` helper provides a way to pass triggers for behavior (usually\njust a function) between components, and into components from controllers.\n\n### Passing functions with the action helper\n\nThere are three contexts an action helper can be used in. The first two\ncontexts to discuss are attribute context, and Handlebars value context.\n\n```handlebars\n{{! An example of attribute context }}\n<div onclick={{action \"save\"}}></div>\n{{! Examples of Handlebars value context }}\n{{input on-input=(action \"save\")}}\n{{yield (action \"refreshData\") andAnotherParam}}\n```\n\nIn these contexts,\nthe helper is called a \"closure action\" helper. Its behavior is simple:\nIf passed a function name, read that function off the `actions` property\nof the current context. Once that function is read, or immediately if a function was\npassed, create a closure over that function and any arguments.\nThe resulting value of an action helper used this way is simply a function.\n\nFor example, in the attribute context:\n\n```handlebars\n{{! An example of attribute context }}\n<div onclick={{action \"save\"}}></div>\n```\n\nThe resulting template render logic would be:\n\n```js\nvar div = document.createElement('div');\nvar actionFunction = (function(context){\n return function() {\n return context.actions.save.apply(context, arguments);\n };\n})(context);\ndiv.onclick = actionFunction;\n```\n\nThus when the div is clicked, the action on that context is called.\nBecause the `actionFunction` is just a function, closure actions can be\npassed between components and still execute in the correct context.\n\nHere is an example action handler on a component:\n\n```app/components/my-component.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default class extends Component {\n @action\n save() {\n this.model.save();\n }\n}\n```\n\nActions are always looked up on the `actions` property of the current context.\nThis avoids collisions in the naming of common actions, such as `destroy`.\nTwo options can be passed to the `action` helper when it is used in this way.\n\n* `target=someProperty` will look to `someProperty` instead of the current\n context for the `actions` hash. This can be useful when targeting a\n service for actions.\n* `value=\"target.value\"` will read the path `target.value` off the first\n argument to the action when it is called and rewrite the first argument\n to be that value. This is useful when attaching actions to event listeners.\n\n### Invoking an action\n\nClosure actions curry both their scope and any arguments. When invoked, any\nadditional arguments are added to the already curried list.\nActions are presented in JavaScript as callbacks, and are\ninvoked like any other JavaScript function.\n\nFor example\n\n```app/components/update-name.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default class extends Component {\n @action\n setName(model, name) {\n model.set('name', name);\n }\n}\n```\n\n```app/components/update-name.hbs\n{{input on-input=(action (action 'setName' @model) value=\"target.value\")}}\n```\n\nThe first argument (`@model`) was curried over, and the run-time argument (`event`)\nbecomes a second argument. Action calls can be nested this way because each simply\nreturns a function. Any function can be passed to the `{{action}}` helper, including\nother actions.\n\nActions invoked with `sendAction` have the same currying behavior as demonstrated\nwith `on-input` above. For example:\n\n```app/components/my-input.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default class extends Component {\n @action\n setName(model, name) {\n model.set('name', name);\n }\n}\n```\n\n```handlebars\n<MyInput @submit={{action 'setName' @model}} />\n```\n\nor\n\n```handlebars\n{{my-input submit=(action 'setName' @model)}}\n```\n\n```app/components/my-component.js\nimport Component from '@ember/component';\n\nexport default Component.extend({\n click() {\n // Note that model is not passed, it was curried in the template\n this.submit('bob');\n }\n});\n```\n\n### Attaching actions to DOM elements\n\nThe third context of the `{{action}}` helper can be called \"element space\".\nFor example:\n\n```handlebars\n{{! An example of element space }}\n<div {{action \"save\"}}></div>\n```\n\nUsed this way, the `{{action}}` helper provides a useful shortcut for\nregistering an HTML element in a template for a single DOM event and\nforwarding that interaction to the template's context (controller or component).\nIf the context of a template is a controller, actions used this way will\nbubble to routes when the controller does not implement the specified action.\nOnce an action hits a route, it will bubble through the route hierarchy.\n\n### Event Propagation\n\n`{{action}}` helpers called in element space can control event bubbling. Note\nthat the closure style actions cannot.\n\nEvents triggered through the action helper will automatically have\n`.preventDefault()` called on them. You do not need to do so in your event\nhandlers. If you need to allow event propagation (to handle file inputs for\nexample) you can supply the `preventDefault=false` option to the `{{action}}` helper:\n\n```handlebars\n<div {{action \"sayHello\" preventDefault=false}}>\n <input type=\"file\" />\n <input type=\"checkbox\" />\n</div>\n```\n\nTo disable bubbling, pass `bubbles=false` to the helper:\n\n```handlebars\n<button {{action 'edit' post bubbles=false}}>Edit</button>\n```\n\nTo disable bubbling with closure style actions you must create your own\nwrapper helper that makes use of `event.stopPropagation()`:\n\n```handlebars\n<div onclick={{disable-bubbling (action \"sayHello\")}}>Hello</div>\n```\n\n```app/helpers/disable-bubbling.js\nimport { helper } from '@ember/component/helper';\n\nexport function disableBubbling([action]) {\n return function(event) {\n event.stopPropagation();\n return action(event);\n };\n}\nexport default helper(disableBubbling);\n```\n\nIf you need the default handler to trigger you should either register your\nown event handler, or use event methods on your view class. See\n[\"Responding to Browser Events\"](/ember/release/classes/Component)\nin the documentation for `Component` for more information.\n\n### Specifying DOM event type\n\n`{{action}}` helpers called in element space can specify an event type.\nBy default the `{{action}}` helper registers for DOM `click` events. You can\nsupply an `on` option to the helper to specify a different DOM event name:\n\n```handlebars\n<div {{action \"anActionName\" on=\"doubleClick\"}}>\n click me\n</div>\n```\n\nSee [\"Event Names\"](/ember/release/classes/Component) for a list of\nacceptable DOM event names.\n\n### Specifying whitelisted modifier keys\n\n`{{action}}` helpers called in element space can specify modifier keys.\nBy default the `{{action}}` helper will ignore click events with pressed modifier\nkeys. You can supply an `allowedKeys` option to specify which keys should not be ignored.\n\n```handlebars\n<div {{action \"anActionName\" allowedKeys=\"alt\"}}>\n click me\n</div>\n```\n\nThis way the action will fire when clicking with the alt key pressed down.\nAlternatively, supply \"any\" to the `allowedKeys` option to accept any combination of modifier keys.\n\n```handlebars\n<div {{action \"anActionName\" allowedKeys=\"any\"}}>\n click me with any key pressed\n</div>\n```\n\n### Specifying a Target\n\nA `target` option can be provided to the helper to change\nwhich object will receive the method call. This option must be a path\nto an object, accessible in the current context:\n\n```app/templates/application.hbs\n<div {{action \"anActionName\" target=someService}}>\n click me\n</div>\n```\n\n```app/controllers/application.js\nimport Controller from '@ember/controller';\nimport { service } from '@ember/service';\n\nexport default class extends Controller {\n @service someService;\n}\n```",
5714
5707
  "itemtype": "method",
5715
5708
  "name": "action",
@@ -5990,7 +5983,7 @@
5990
5983
  },
5991
5984
  {
5992
5985
  "file": "packages/@ember/-internals/glimmer/lib/syntax/mount.ts",
5993
- "line": 13,
5986
+ "line": 16,
5994
5987
  "description": "The `{{mount}}` helper lets you embed a routeless engine in a template.\nMounting an engine will cause an instance to be booted and its `application`\ntemplate to be rendered.\n\nFor example, the following template mounts the `ember-chat` engine:\n\n```handlebars\n{{! application.hbs }}\n{{mount \"ember-chat\"}}\n```\n\nAdditionally, you can also pass in a `model` argument that will be\nset as the engines model. This can be an existing object:\n\n```\n<div>\n {{mount 'admin' model=userSettings}}\n</div>\n```\n\nOr an inline `hash`, and you can even pass components:\n\n```\n<div>\n <h1>Application template!</h1>\n {{mount 'admin' model=(hash\n title='Secret Admin'\n signInButton=(component 'sign-in-button')\n )}}\n</div>\n```",
5995
5988
  "itemtype": "method",
5996
5989
  "name": "mount",
@@ -6014,7 +6007,7 @@
6014
6007
  },
6015
6008
  {
6016
6009
  "file": "packages/@ember/-internals/glimmer/lib/syntax/outlet.ts",
6017
- "line": 19,
6010
+ "line": 22,
6018
6011
  "description": "The `{{outlet}}` helper lets you specify where a child route will render in\nyour template. An important use of the `{{outlet}}` helper is in your\napplication's `application.hbs` file:\n\n```app/templates/application.hbs\n<MyHeader />\n\n<div class=\"my-dynamic-content\">\n <!-- this content will change based on the current route, which depends on the current URL -->\n {{outlet}}\n</div>\n\n<MyFooter />\n```\n\nSee the [routing guide](https://guides.emberjs.com/release/routing/rendering-a-template/) for more\ninformation on how your `route` interacts with the `{{outlet}}` helper.\nNote: Your content __will not render__ if there isn't an `{{outlet}}` for it.",
6019
6012
  "itemtype": "method",
6020
6013
  "name": "outlet",
@@ -6116,7 +6109,7 @@
6116
6109
  {
6117
6110
  "file": "packages/@ember/-internals/glimmer/lib/utils/string.ts",
6118
6111
  "line": 61,
6119
- "description": "Mark a string as safe for unescaped output with Ember templates. If you\nreturn HTML from a helper, use this function to\nensure Ember's rendering layer does not escape the HTML.\n\n```javascript\nimport { htmlSafe } from '@ember/template';\n\nhtmlSafe('<div>someString</div>')\n```",
6112
+ "description": "Use this method to indicate that a string should be rendered as HTML\nwhen the string is used in a template. To say this another way,\nstrings marked with `htmlSafe` will not be HTML escaped.\n\nA word of warning - The `htmlSafe` method does not make the string safe;\nit only tells the framework to treat the string as if it is safe to render\nas HTML. If a string contains user inputs or other untrusted\ndata, you must sanitize the string before using the `htmlSafe` method.\nOtherwise your code is vulnerable to\n[Cross-Site Scripting](https://owasp.org/www-community/attacks/DOM_Based_XSS).\nThere are many open source sanitization libraries to choose from,\nboth for front end and server-side sanitization.\n\n```javascript\nimport { htmlSafe } from '@ember/template';\n\nconst someTrustedOrSanitizedString = \"<div>Hello!</div>\"\n\nhtmlSafe(someTrustedorSanitizedString)\n```",
6120
6113
  "itemtype": "method",
6121
6114
  "name": "htmlSafe",
6122
6115
  "static": 1,
@@ -6131,7 +6124,7 @@
6131
6124
  },
6132
6125
  {
6133
6126
  "file": "packages/@ember/-internals/glimmer/lib/utils/string.ts",
6134
- "line": 87,
6127
+ "line": 98,
6135
6128
  "description": "Detects if a string was decorated using `htmlSafe`.\n\n```javascript\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\n\nvar plainString = 'plain string',\n safeString = htmlSafe('<div>someValue</div>');\n\nisHTMLSafe(plainString); // false\nisHTMLSafe(safeString); // true\n```",
6136
6129
  "itemtype": "method",
6137
6130
  "name": "isHTMLSafe",
@@ -6147,19 +6140,19 @@
6147
6140
  },
6148
6141
  {
6149
6142
  "file": "packages/@ember/-internals/glimmer/lib/views/outlet.ts",
6150
- "line": 109,
6143
+ "line": 111,
6151
6144
  "class": "Component",
6152
6145
  "module": "@ember/template"
6153
6146
  },
6154
6147
  {
6155
6148
  "file": "packages/@ember/-internals/glimmer/lib/views/outlet.ts",
6156
- "line": 117,
6149
+ "line": 119,
6157
6150
  "class": "Component",
6158
6151
  "module": "@ember/template"
6159
6152
  },
6160
6153
  {
6161
6154
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6162
- "line": 655,
6155
+ "line": 656,
6163
6156
  "description": "Called when the attributes passed into the component have been updated.\n Called both during the initial render of a container and during a rerender.\n Can be used in place of an observer; code placed here will be executed\n every time any attribute updates.",
6164
6157
  "itemtype": "method",
6165
6158
  "name": "didReceiveAttrs",
@@ -6171,7 +6164,7 @@
6171
6164
  },
6172
6165
  {
6173
6166
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6174
- "line": 666,
6167
+ "line": 667,
6175
6168
  "description": "Called when the attributes passed into the component have been updated.\n Called both during the initial render of a container and during a rerender.\n Can be used in place of an observer; code placed here will be executed\n every time any attribute updates.",
6176
6169
  "itemtype": "event",
6177
6170
  "name": "didReceiveAttrs",
@@ -6183,7 +6176,7 @@
6183
6176
  },
6184
6177
  {
6185
6178
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6186
- "line": 676,
6179
+ "line": 677,
6187
6180
  "description": "Called after a component has been rendered, both on initial render and\n in subsequent rerenders.",
6188
6181
  "itemtype": "method",
6189
6182
  "name": "didRender",
@@ -6195,7 +6188,7 @@
6195
6188
  },
6196
6189
  {
6197
6190
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6198
- "line": 685,
6191
+ "line": 686,
6199
6192
  "description": "Called after a component has been rendered, both on initial render and\n in subsequent rerenders.",
6200
6193
  "itemtype": "event",
6201
6194
  "name": "didRender",
@@ -6207,7 +6200,7 @@
6207
6200
  },
6208
6201
  {
6209
6202
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6210
- "line": 693,
6203
+ "line": 694,
6211
6204
  "description": "Called before a component has been rendered, both on initial render and\n in subsequent rerenders.",
6212
6205
  "itemtype": "method",
6213
6206
  "name": "willRender",
@@ -6219,7 +6212,7 @@
6219
6212
  },
6220
6213
  {
6221
6214
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6222
- "line": 702,
6215
+ "line": 703,
6223
6216
  "description": "Called before a component has been rendered, both on initial render and\n in subsequent rerenders.",
6224
6217
  "itemtype": "event",
6225
6218
  "name": "willRender",
@@ -6231,7 +6224,7 @@
6231
6224
  },
6232
6225
  {
6233
6226
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6234
- "line": 710,
6227
+ "line": 711,
6235
6228
  "description": "Called when the attributes passed into the component have been changed.\n Called only during a rerender, not during an initial render.",
6236
6229
  "itemtype": "method",
6237
6230
  "name": "didUpdateAttrs",
@@ -6243,7 +6236,7 @@
6243
6236
  },
6244
6237
  {
6245
6238
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6246
- "line": 719,
6239
+ "line": 720,
6247
6240
  "description": "Called when the attributes passed into the component have been changed.\n Called only during a rerender, not during an initial render.",
6248
6241
  "itemtype": "event",
6249
6242
  "name": "didUpdateAttrs",
@@ -6255,7 +6248,7 @@
6255
6248
  },
6256
6249
  {
6257
6250
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6258
- "line": 727,
6251
+ "line": 728,
6259
6252
  "description": "Called when the component is about to update and rerender itself.\n Called only during a rerender, not during an initial render.",
6260
6253
  "itemtype": "method",
6261
6254
  "name": "willUpdate",
@@ -6267,7 +6260,7 @@
6267
6260
  },
6268
6261
  {
6269
6262
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6270
- "line": 736,
6263
+ "line": 737,
6271
6264
  "description": "Called when the component is about to update and rerender itself.\n Called only during a rerender, not during an initial render.",
6272
6265
  "itemtype": "event",
6273
6266
  "name": "willUpdate",
@@ -6279,7 +6272,7 @@
6279
6272
  },
6280
6273
  {
6281
6274
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6282
- "line": 744,
6275
+ "line": 745,
6283
6276
  "description": "Called when the component has updated and rerendered itself.\n Called only during a rerender, not during an initial render.",
6284
6277
  "itemtype": "method",
6285
6278
  "name": "didUpdate",
@@ -6291,7 +6284,7 @@
6291
6284
  },
6292
6285
  {
6293
6286
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6294
- "line": 753,
6287
+ "line": 754,
6295
6288
  "description": "Called when the component has updated and rerendered itself.\n Called only during a rerender, not during an initial render.",
6296
6289
  "itemtype": "event",
6297
6290
  "name": "didUpdate",
@@ -6303,7 +6296,7 @@
6303
6296
  },
6304
6297
  {
6305
6298
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6306
- "line": 761,
6299
+ "line": 762,
6307
6300
  "description": "The HTML `id` of the component's element in the DOM. You can provide this\nvalue yourself but it must be unique (just as in HTML):\n\n```handlebars\n{{my-component elementId=\"a-really-cool-id\"}}\n```\n\n```handlebars\n<MyComponent @elementId=\"a-really-cool-id\" />\n```\nIf not manually set a default value will be provided by the framework.\nOnce rendered an element's `elementId` is considered immutable and you\nshould never change it. If you need to compute a dynamic value for the\n`elementId`, you should do this when the component or element is being\ninstantiated:\n\n```javascript\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n var index = this.get('index');\n this.set('elementId', `component-id${index}`);\n }\n});\n```",
6308
6301
  "itemtype": "property",
6309
6302
  "name": "elementId",
@@ -6315,7 +6308,7 @@
6315
6308
  },
6316
6309
  {
6317
6310
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6318
- "line": 950,
6311
+ "line": 951,
6319
6312
  "description": "Normally, Ember's component model is \"write-only\". The component takes a\nbunch of attributes that it got passed in, and uses them to render its\ntemplate.\n\nOne nice thing about this model is that if you try to set a value to the\nsame thing as last time, Ember (through HTMLBars) will avoid doing any\nwork on the DOM.\n\nThis is not just a performance optimization. If an attribute has not\nchanged, it is important not to clobber the element's \"hidden state\".\nFor example, if you set an input's `value` to the same value as before,\nit will clobber selection state and cursor position. In other words,\nsetting an attribute is not **always** idempotent.\n\nThis method provides a way to read an element's attribute and also\nupdate the last value Ember knows about at the same time. This makes\nsetting an attribute idempotent.\n\nIn particular, what this means is that if you get an `<input>` element's\n`value` attribute and then re-render the template with the same value,\nit will avoid clobbering the cursor and selection position.\nSince most attribute sets are idempotent in the browser, you typically\ncan get away with reading attributes using jQuery, but the most reliable\nway to do so is through this method.",
6320
6313
  "itemtype": "method",
6321
6314
  "name": "readDOMAttr",
@@ -6336,7 +6329,7 @@
6336
6329
  },
6337
6330
  {
6338
6331
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6339
- "line": 1010,
6332
+ "line": 1011,
6340
6333
  "description": "Layout can be used to wrap content in a component.",
6341
6334
  "itemtype": "property",
6342
6335
  "name": "layout",
@@ -6348,7 +6341,7 @@
6348
6341
  },
6349
6342
  {
6350
6343
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6351
- "line": 1018,
6344
+ "line": 1019,
6352
6345
  "description": "The name of the layout to lookup if no layout is provided.\nBy default `Component` will lookup a template with this name in\n`Ember.TEMPLATES` (a shared global object).",
6353
6346
  "itemtype": "property",
6354
6347
  "name": "layoutName",
@@ -6361,7 +6354,7 @@
6361
6354
  },
6362
6355
  {
6363
6356
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6364
- "line": 1029,
6357
+ "line": 1030,
6365
6358
  "description": "The WAI-ARIA role of the control represented by this view. For example, a\n button may have a role of type 'button', or a pane may have a role of\n type 'alertdialog'. This property is used by assistive software to help\n visually challenged users navigate rich web applications.\n\n The full list of valid WAI-ARIA roles is available at:\n [https://www.w3.org/TR/wai-aria/#roles_categorization](https://www.w3.org/TR/wai-aria/#roles_categorization)",
6366
6359
  "itemtype": "property",
6367
6360
  "name": "ariaRole",
@@ -6374,7 +6367,7 @@
6374
6367
  },
6375
6368
  {
6376
6369
  "file": "packages/@ember/-internals/glimmer/lib/component.ts",
6377
- "line": 1054,
6370
+ "line": 1055,
6378
6371
  "description": "Enables components to take a list of parameters as arguments.\n For example, a component that takes two parameters with the names\n `name` and `age`:\n\n ```app/components/my-component.js\n import Component from '@ember/component';\n\n let MyComponent = Component.extend();\n\n MyComponent.reopenClass({\n positionalParams: ['name', 'age']\n });\n\n export default MyComponent;\n ```\n\n It can then be invoked like this:\n\n ```hbs\n {{my-component \"John\" 38}}\n ```\n\n The parameters can be referred to just like named parameters:\n\n ```hbs\n Name: {{name}}, Age: {{age}}.\n ```\n\n Using a string instead of an array allows for an arbitrary number of\n parameters:\n\n ```app/components/my-component.js\n import Component from '@ember/component';\n\n let MyComponent = Component.extend();\n\n MyComponent.reopenClass({\n positionalParams: 'names'\n });\n\n export default MyComponent;\n ```\n\n It can then be invoked like this:\n\n ```hbs\n {{my-component \"John\" \"Michael\" \"Scott\"}}\n ```\n The parameters can then be referred to by enumerating over the list:\n\n ```hbs\n {{#each names as |name|}}{{name}}{{/each}}\n ```",
6379
6372
  "static": 1,
6380
6373
  "access": "public",
@@ -6387,7 +6380,7 @@
6387
6380
  },
6388
6381
  {
6389
6382
  "file": "packages/@ember/-internals/glimmer/lib/glimmer-tracking-docs.ts",
6390
- "line": 14,
6383
+ "line": 22,
6391
6384
  "description": "Marks a property as tracked. By default, values that are rendered in Ember app\ntemplates are _static_, meaning that updates to them won't cause the\napplication to rerender. Marking a property as tracked means that when that\nproperty changes, any templates that used that property, directly or\nindirectly, will rerender. For instance, consider this component:\n\n```handlebars\n<div>Count: {{this.count}}</div>\n<div>Times Ten: {{this.timesTen}}</div>\n<div>\n <button {{on \"click\" this.plusOne}}>\n Plus One\n </button>\n</div>\n```\n\n```javascript\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\nexport default class CounterComponent extends Component {\n @tracked count = 0;\n\n get timesTen() {\n return this.count * 10;\n }\n\n @action\n plusOne() {\n this.count += 1;\n }\n}\n```\n\nBoth the `{{this.count}}` and the `{{this.timesTen}}` properties in the\ntemplate will update whenever the button is clicked. Any tracked properties\nthat are used in any way to calculate a value that is used in the template\nwill cause a rerender when updated - this includes through method calls and\nother means:\n\n```javascript\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\n\nclass Entry {\n @tracked name;\n @tracked phoneNumber;\n\n constructor(name, phoneNumber) {\n this.name = name;\n this.phoneNumber = phoneNumber;\n }\n}\n\nexport default class PhoneBookComponent extends Component {\n entries = [\n new Entry('Pizza Palace', 5551234),\n new Entry('1st Street Cleaners', 5554321),\n new Entry('Plants R Us', 5552468),\n ];\n\n // Any usage of this property will update whenever any of the names in the\n // entries arrays are updated\n get names() {\n return this.entries.map(e => e.name);\n }\n\n // Any usage of this property will update whenever any of the numbers in the\n // entries arrays are updated\n get numbers() {\n return this.getFormattedNumbers();\n }\n\n getFormattedNumbers() {\n return this.entries\n .map(e => e.phoneNumber)\n .map(number => {\n let numberString = '' + number;\n\n return numberString.slice(0, 3) + '-' + numberString.slice(3);\n });\n }\n}\n```\n\nIt's important to note that setting tracked properties will always trigger an\nupdate, even if the property is set to the same value as it was before.\n\n```js\nlet entry = new Entry('Pizza Palace', 5551234);\n\n// if entry was used when rendering, this would cause a rerender, even though\n// the name is being set to the same value as it was before\nentry.name = entry.name;\n```\n\n`tracked` can also be used with the classic Ember object model in a similar\nmanner to classic computed properties:\n\n```javascript\nimport EmberObject from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\n\nconst Entry = EmberObject.extend({\n name: tracked(),\n phoneNumber: tracked()\n});\n```\n\nOften this is unnecessary, but to ensure robust auto-tracking behavior it is\nadvisable to mark tracked state appropriately wherever possible.\n\nThis form of `tracked` also accepts an optional configuration object\ncontaining either an initial `value` or an `initializer` function (but not\nboth).\n\n```javascript\nimport EmberObject from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\n\nconst Entry = EmberObject.extend({\n name: tracked({ value: 'Zoey' }),\n favoriteSongs: tracked({\n initializer: () => ['Raspberry Beret', 'Time After Time']\n })\n});\n```",
6392
6385
  "itemtype": "method",
6393
6386
  "name": "tracked",
@@ -6397,9 +6390,21 @@
6397
6390
  "class": "@glimmer/tracking",
6398
6391
  "module": "@glimmer/tracking"
6399
6392
  },
6393
+ {
6394
+ "file": "packages/@ember/-internals/glimmer/lib/glimmer-tracking-docs.ts",
6395
+ "line": 158,
6396
+ "description": "Gives the getter a caching behavior. The return value of the getter\nwill be cached until any of the properties it is entangled with\nare invalidated. This is useful when a getter is expensive and\nused very often.\n\nFor instance, in this GuestList class, we have the sortedGuests\ngetter that sorts the guests alphabetically:\n\n```javascript\n import { tracked } from '@glimmer/tracking';\n\n class GuestList {\n @tracked guests = ['Zoey', 'Tomster'];\n\n get sortedGuests() {\n return this.guests.slice().sort()\n }\n }\n```\n\nEvery time sortedGuests is accessed, a new array will be created and sorted,\nbecause JavaScript getters do not cache by default. When the guest list\nis small, like the one in the example, this is not a problem. However, if\nthe guest list were to grow very large, it would mean that we would be doing\na large amount of work each time we accessed sortedGetters. With @cached,\nwe can cache the value instead:\n\n```javascript\n import { tracked, cached } from '@glimmer/tracking';\n\n class GuestList {\n @tracked guests = ['Zoey', 'Tomster'];\n\n @cached\n get sortedGuests() {\n return this.guests.slice().sort()\n }\n }\n```\n\nNow the sortedGuests getter will be cached based on autotracking.\nIt will only rerun and create a new sorted array when the guests tracked\nproperty is updated.\n\n### Tradeoffs\n\nOveruse is discouraged.\n\nIn general, you should avoid using `@cached` unless you have confirmed that\nthe getter you are decorating is computationally expensive. `@cached` adds\na small amount of overhead to the getter, making it more expensive.\nWhile this overhead is small, if `@cached` is overused it can add up to a\nlarge impact overall in your app. Many getters and tracked properties\nare only accessed once, rendered, and then never rerendered, so adding\n`@cached` when it is unnecessary can negatively impact performance.\n\nAlso, `@cached` may rerun even if the values themselves have not changed,\nsince tracked properties will always invalidate even if their underlying\nvalue did not change.\nFor example updating an integer value from `5` to an other `5`.\n\nAvoiding a cache invalidation in this case is not something that can\nbe achieved on the `@cached` decorator itself, but rather when updating\nthe underlying values, by applying a diff checking mecanism:\n\n```javascript\nif (newValue !== this.trackedProp) {\n this.trackedProp = newValue;\n}\n```\n\nHere equal values won't update the property, therefore not triggering a\ncache invalidation.\n\nThe cost of these edge-guards adds up to the tradoff calculation of using\na caching strategy, hence requiring a very sensitive approach regarding\nperformance.",
6397
+ "itemtype": "method",
6398
+ "name": "cached",
6399
+ "static": 1,
6400
+ "access": "public",
6401
+ "tagname": "",
6402
+ "class": "@glimmer/tracking",
6403
+ "module": "@glimmer/tracking"
6404
+ },
6400
6405
  {
6401
6406
  "file": "packages/@ember/-internals/glimmer/lib/helper.ts",
6402
- "line": 91,
6407
+ "line": 93,
6403
6408
  "description": "Override this function when writing a class-based helper.",
6404
6409
  "itemtype": "method",
6405
6410
  "name": "compute",
@@ -6423,7 +6428,7 @@
6423
6428
  },
6424
6429
  {
6425
6430
  "file": "packages/@ember/-internals/glimmer/lib/helper.ts",
6426
- "line": 115,
6431
+ "line": 117,
6427
6432
  "description": "On a class-based helper, it may be useful to force a recomputation of that\nhelpers value. This is akin to `rerender` on a component.\n\nFor example, this component will rerender when the `currentUser` on a\nsession service changes:\n\n```app/helpers/current-user-email.js\nimport Helper from '@ember/component/helper'\nimport { service } from '@ember/service'\nimport { observer } from '@ember/object'\n\nexport default Helper.extend({\n session: service(),\n\n onNewUser: observer('session.currentUser', function() {\n this.recompute();\n }),\n\n compute() {\n return this.get('session.currentUser.email');\n }\n});\n```",
6428
6433
  "itemtype": "method",
6429
6434
  "name": "recompute",
@@ -6435,7 +6440,7 @@
6435
6440
  },
6436
6441
  {
6437
6442
  "file": "packages/@ember/-internals/glimmer/lib/helper.ts",
6438
- "line": 267,
6443
+ "line": 269,
6439
6444
  "description": "In many cases it is not necessary to use the full `Helper` class.\nThe `helper` method create pure-function helpers without instances.\nFor example:\n\n```app/helpers/format-currency.js\nimport { helper } from '@ember/component/helper';\n\nexport default helper(function([cents], {currency}) {\n return `${currency}${cents * 0.01}`;\n});\n```",
6440
6445
  "static": 1,
6441
6446
  "params": [
@@ -6851,7 +6856,7 @@
6851
6856
  },
6852
6857
  {
6853
6858
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6854
- "line": 604,
6859
+ "line": 607,
6855
6860
  "description": "Call on a computed property to set it into read-only mode. When in this\nmode the computed property will throw an error when set.\n\nExample:\n\n```javascript\nimport { computed, set } from '@ember/object';\n\nclass Person {\n @computed().readOnly()\n get guid() {\n return 'guid-guid-guid';\n }\n}\n\nlet person = new Person();\nset(person, 'guid', 'new-guid'); // will throw an exception\n```\n\nClassic Class Example:\n\n```javascript\nimport EmberObject, { computed } from '@ember/object';\n\nlet Person = EmberObject.extend({\n guid: computed(function() {\n return 'guid-guid-guid';\n }).readOnly()\n});\n\nlet person = Person.create();\nperson.set('guid', 'new-guid'); // will throw an exception\n```",
6856
6861
  "itemtype": "method",
6857
6862
  "name": "readOnly",
@@ -6867,7 +6872,7 @@
6867
6872
  },
6868
6873
  {
6869
6874
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6870
- "line": 654,
6875
+ "line": 657,
6871
6876
  "description": "In some cases, you may want to annotate computed properties with additional\nmetadata about how they function or what values they operate on. For example,\ncomputed property functions may close over variables that are then no longer\navailable for introspection. You can pass a hash of these values to a\ncomputed property.\n\nExample:\n\n```javascript\nimport { computed } from '@ember/object';\nimport Person from 'my-app/utils/person';\n\nclass Store {\n @computed().meta({ type: Person })\n get person() {\n let personId = this.personId;\n return Person.create({ id: personId });\n }\n}\n```\n\nClassic Class Example:\n\n```javascript\nimport { computed } from '@ember/object';\nimport Person from 'my-app/utils/person';\n\nconst Store = EmberObject.extend({\n person: computed(function() {\n let personId = this.get('personId');\n return Person.create({ id: personId });\n }).meta({ type: Person })\n});\n```\n\nThe hash that you pass to the `meta()` function will be saved on the\ncomputed property descriptor under the `_meta` key. Ember runtime\nexposes a public API for retrieving these values from classes,\nvia the `metaForProperty()` function.",
6872
6877
  "itemtype": "method",
6873
6878
  "name": "meta",
@@ -6886,19 +6891,19 @@
6886
6891
  },
6887
6892
  {
6888
6893
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6889
- "line": 713,
6894
+ "line": 716,
6890
6895
  "class": "ComputedProperty",
6891
6896
  "module": "@ember/object"
6892
6897
  },
6893
6898
  {
6894
6899
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6895
- "line": 719,
6900
+ "line": 722,
6896
6901
  "class": "ComputedProperty",
6897
6902
  "module": "@ember/object"
6898
6903
  },
6899
6904
  {
6900
6905
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6901
- "line": 727,
6906
+ "line": 730,
6902
6907
  "description": "This helper returns a new property descriptor that wraps the passed\ncomputed property function. You can use this helper to define properties with\nnative decorator syntax, mixins, or via `defineProperty()`.\n\nExample:\n\n```js\nimport { computed, set } from '@ember/object';\n\nclass Person {\n constructor() {\n this.firstName = 'Betty';\n this.lastName = 'Jones';\n },\n\n @computed('firstName', 'lastName')\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n}\n\nlet client = new Person();\n\nclient.fullName; // 'Betty Jones'\n\nset(client, 'lastName', 'Fuller');\nclient.fullName; // 'Betty Fuller'\n```\n\nClassic Class Example:\n\n```js\nimport EmberObject, { computed } from '@ember/object';\n\nlet Person = EmberObject.extend({\n init() {\n this._super(...arguments);\n\n this.firstName = 'Betty';\n this.lastName = 'Jones';\n },\n\n fullName: computed('firstName', 'lastName', function() {\n return `${this.get('firstName')} ${this.get('lastName')}`;\n })\n});\n\nlet client = Person.create();\n\nclient.get('fullName'); // 'Betty Jones'\n\nclient.set('lastName', 'Fuller');\nclient.get('fullName'); // 'Betty Fuller'\n```\n\nYou can also provide a setter, either directly on the class using native class\nsyntax, or by passing a hash with `get` and `set` functions.\n\nExample:\n\n```js\nimport { computed, set } from '@ember/object';\n\nclass Person {\n constructor() {\n this.firstName = 'Betty';\n this.lastName = 'Jones';\n },\n\n @computed('firstName', 'lastName')\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n\n set fullName(value) {\n let [firstName, lastName] = value.split(/\\s+/);\n\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n\n return value;\n }\n}\n\nlet client = new Person();\n\nclient.fullName; // 'Betty Jones'\n\nset(client, 'lastName', 'Fuller');\nclient.fullName; // 'Betty Fuller'\n```\n\nClassic Class Example:\n\n```js\nimport EmberObject, { computed } from '@ember/object';\n\nlet Person = EmberObject.extend({\n init() {\n this._super(...arguments);\n\n this.firstName = 'Betty';\n this.lastName = 'Jones';\n },\n\n fullName: computed('firstName', 'lastName', {\n get(key) {\n return `${this.get('firstName')} ${this.get('lastName')}`;\n },\n set(key, value) {\n let [firstName, lastName] = value.split(/\\s+/);\n this.setProperties({ firstName, lastName });\n return value;\n }\n })\n});\n\nlet client = Person.create();\nclient.get('firstName'); // 'Betty'\n\nclient.set('fullName', 'Carroll Fuller');\nclient.get('firstName'); // 'Carroll'\n```\n\nWhen passed as an argument, the `set` function should accept two parameters,\n`key` and `value`. The value returned from `set` will be the new value of the\nproperty.\n\n_Note: This is the preferred way to define computed properties when writing third-party\nlibraries that depend on or use Ember, since there is no guarantee that the user\nwill have [prototype Extensions](https://guides.emberjs.com/release/configuring-ember/disabling-prototype-extensions/) enabled._",
6903
6908
  "itemtype": "method",
6904
6909
  "name": "computed",
@@ -6927,7 +6932,7 @@
6927
6932
  },
6928
6933
  {
6929
6934
  "file": "packages/@ember/-internals/metal/lib/computed.ts",
6930
- "line": 915,
6935
+ "line": 918,
6931
6936
  "description": "Allows checking if a given property on an object is a computed property. For the most part,\nthis doesn't matter (you would normally just access the property directly and use its value),\nbut for some tooling specific scenarios (e.g. the ember-inspector) it is important to\ndifferentiate if a property is a computed property or a \"normal\" property.\n\nThis will work on either a class's prototype or an instance itself.",
6932
6937
  "static": 1,
6933
6938
  "itemtype": "method",
@@ -6939,7 +6944,7 @@
6939
6944
  },
6940
6945
  {
6941
6946
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6942
- "line": 156,
6947
+ "line": 157,
6943
6948
  "description": "Returns the CP descriptor associated with `obj` and `keyName`, if any.",
6944
6949
  "itemtype": "method",
6945
6950
  "name": "descriptorForProperty",
@@ -6966,7 +6971,7 @@
6966
6971
  },
6967
6972
  {
6968
6973
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6969
- "line": 184,
6974
+ "line": 185,
6970
6975
  "description": "Check whether a value is a decorator",
6971
6976
  "itemtype": "method",
6972
6977
  "name": "isClassicDecorator",
@@ -6988,7 +6993,7 @@
6988
6993
  },
6989
6994
  {
6990
6995
  "file": "packages/@ember/-internals/metal/lib/decorator.ts",
6991
- "line": 196,
6996
+ "line": 197,
6992
6997
  "description": "Set a value as a decorator",
6993
6998
  "itemtype": "method",
6994
6999
  "name": "setClassicDecorator",
@@ -7035,7 +7040,7 @@
7035
7040
  },
7036
7041
  {
7037
7042
  "file": "packages/@ember/-internals/metal/lib/events.ts",
7038
- "line": 27,
7043
+ "line": 28,
7039
7044
  "description": "Add an event listener",
7040
7045
  "itemtype": "method",
7041
7046
  "name": "addListener",
@@ -7073,7 +7078,7 @@
7073
7078
  },
7074
7079
  {
7075
7080
  "file": "packages/@ember/-internals/metal/lib/events.ts",
7076
- "line": 61,
7081
+ "line": 62,
7077
7082
  "description": "Remove an event listener\n\nArguments should match those passed to `addListener`.",
7078
7083
  "itemtype": "method",
7079
7084
  "name": "removeListener",
@@ -7106,7 +7111,7 @@
7106
7111
  },
7107
7112
  {
7108
7113
  "file": "packages/@ember/-internals/metal/lib/events.ts",
7109
- "line": 104,
7114
+ "line": 105,
7110
7115
  "description": "Send an event. The execution of suspended listeners\nis skipped, and once listeners are removed. A listener without\na target is executed on the passed object. If an array of actions\nis not passed, the actions stored on the passed object are invoked.",
7111
7116
  "itemtype": "method",
7112
7117
  "name": "sendEvent",
@@ -7138,7 +7143,7 @@
7138
7143
  },
7139
7144
  {
7140
7145
  "file": "packages/@ember/-internals/metal/lib/events.ts",
7141
- "line": 161,
7146
+ "line": 162,
7142
7147
  "access": "public",
7143
7148
  "tagname": "",
7144
7149
  "itemtype": "method",
@@ -7164,7 +7169,7 @@
7164
7169
  },
7165
7170
  {
7166
7171
  "file": "packages/@ember/-internals/metal/lib/events.ts",
7167
- "line": 179,
7172
+ "line": 180,
7168
7173
  "description": "Define a property as a function that should be executed when\na specified event or events are triggered.\n\n``` javascript\nimport EmberObject from '@ember/object';\nimport { on } from '@ember/object/evented';\nimport { sendEvent } from '@ember/object/events';\n\nlet Job = EmberObject.extend({\n logCompleted: on('completed', function() {\n console.log('Job completed!');\n })\n});\n\nlet job = Job.create();\n\nsendEvent(job, 'completed'); // Logs 'Job completed!'\n ```",
7169
7174
  "itemtype": "method",
7170
7175
  "name": "on",
@@ -7339,7 +7344,7 @@
7339
7344
  },
7340
7345
  {
7341
7346
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7342
- "line": 431,
7347
+ "line": 428,
7343
7348
  "itemtype": "method",
7344
7349
  "name": "mixin",
7345
7350
  "params": [
@@ -7363,43 +7368,43 @@
7363
7368
  },
7364
7369
  {
7365
7370
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7366
- "line": 528,
7371
+ "line": 525,
7367
7372
  "class": "Mixin",
7368
7373
  "module": "@ember/object"
7369
7374
  },
7370
7375
  {
7371
7376
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7372
- "line": 531,
7377
+ "line": 528,
7373
7378
  "class": "Mixin",
7374
7379
  "module": "@ember/object"
7375
7380
  },
7376
7381
  {
7377
7382
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7378
- "line": 534,
7383
+ "line": 531,
7379
7384
  "class": "Mixin",
7380
7385
  "module": "@ember/object"
7381
7386
  },
7382
7387
  {
7383
7388
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7384
- "line": 537,
7389
+ "line": 534,
7385
7390
  "class": "Mixin",
7386
7391
  "module": "@ember/object"
7387
7392
  },
7388
7393
  {
7389
7394
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7390
- "line": 540,
7395
+ "line": 537,
7391
7396
  "class": "Mixin",
7392
7397
  "module": "@ember/object"
7393
7398
  },
7394
7399
  {
7395
7400
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7396
- "line": 545,
7401
+ "line": 542,
7397
7402
  "class": "Mixin",
7398
7403
  "module": "@ember/object"
7399
7404
  },
7400
7405
  {
7401
7406
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7402
- "line": 571,
7407
+ "line": 568,
7403
7408
  "itemtype": "method",
7404
7409
  "name": "create",
7405
7410
  "static": 1,
@@ -7417,13 +7422,13 @@
7417
7422
  },
7418
7423
  {
7419
7424
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7420
- "line": 586,
7425
+ "line": 583,
7421
7426
  "class": "@ember/object/mixin",
7422
7427
  "module": "@ember/object"
7423
7428
  },
7424
7429
  {
7425
7430
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7426
- "line": 604,
7431
+ "line": 601,
7427
7432
  "itemtype": "method",
7428
7433
  "name": "reopen",
7429
7434
  "params": [
@@ -7441,7 +7446,7 @@
7441
7446
  },
7442
7447
  {
7443
7448
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7444
- "line": 627,
7449
+ "line": 624,
7445
7450
  "itemtype": "method",
7446
7451
  "name": "apply",
7447
7452
  "params": [
@@ -7461,13 +7466,13 @@
7461
7466
  },
7462
7467
  {
7463
7468
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7464
- "line": 643,
7469
+ "line": 640,
7465
7470
  "class": "@ember/object/mixin",
7466
7471
  "module": "@ember/object"
7467
7472
  },
7468
7473
  {
7469
7474
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7470
- "line": 648,
7475
+ "line": 645,
7471
7476
  "itemtype": "method",
7472
7477
  "name": "detect",
7473
7478
  "params": [
@@ -7488,25 +7493,25 @@
7488
7493
  },
7489
7494
  {
7490
7495
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7491
- "line": 669,
7496
+ "line": 666,
7492
7497
  "class": "@ember/object/mixin",
7493
7498
  "module": "@ember/object"
7494
7499
  },
7495
7500
  {
7496
7501
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7497
- "line": 676,
7502
+ "line": 673,
7498
7503
  "class": "@ember/object/mixin",
7499
7504
  "module": "@ember/object"
7500
7505
  },
7501
7506
  {
7502
7507
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7503
- "line": 681,
7508
+ "line": 678,
7504
7509
  "class": "@ember/object/mixin",
7505
7510
  "module": "@ember/object"
7506
7511
  },
7507
7512
  {
7508
7513
  "file": "packages/@ember/-internals/metal/lib/mixin.ts",
7509
- "line": 773,
7514
+ "line": 770,
7510
7515
  "description": "Specify a method that observes property changes.\n\n```javascript\nimport EmberObject from '@ember/object';\nimport { observer } from '@ember/object';\n\nexport default EmberObject.extend({\n valueObserver: observer('value', function() {\n // Executes whenever the \"value\" property changes\n })\n});\n```\n\nAlso available as `Function.prototype.observes` if prototype extensions are\nenabled.",
7511
7516
  "itemtype": "method",
7512
7517
  "name": "observer",
@@ -7534,7 +7539,7 @@
7534
7539
  },
7535
7540
  {
7536
7541
  "file": "packages/@ember/-internals/metal/lib/observer.ts",
7537
- "line": 26,
7542
+ "line": 27,
7538
7543
  "itemtype": "method",
7539
7544
  "name": "addObserver",
7540
7545
  "static": 1,
@@ -7567,7 +7572,7 @@
7567
7572
  },
7568
7573
  {
7569
7574
  "file": "packages/@ember/-internals/metal/lib/observer.ts",
7570
- "line": 54,
7575
+ "line": 55,
7571
7576
  "itemtype": "method",
7572
7577
  "name": "removeObserver",
7573
7578
  "static": 1,
@@ -7600,7 +7605,7 @@
7600
7605
  },
7601
7606
  {
7602
7607
  "file": "packages/@ember/-internals/metal/lib/observer.ts",
7603
- "line": 154,
7608
+ "line": 155,
7604
7609
  "description": "Primarily used for cases where we are redefining a class, e.g. mixins/reopen\nbeing applied later. Revalidates all the observers, resetting their tags.",
7605
7610
  "access": "private",
7606
7611
  "tagname": "",
@@ -7615,7 +7620,7 @@
7615
7620
  },
7616
7621
  {
7617
7622
  "file": "packages/@ember/-internals/metal/lib/properties.ts",
7618
- "line": 11,
7623
+ "line": 13,
7619
7624
  "description": "NOTE: This is a low-level method used by other parts of the API. You almost\nnever want to call this method directly. Instead you should use\n`mixin()` to define new properties.\n\nDefines a property on an object. This method works much like the ES5\n`Object.defineProperty()` method except that it can also accept computed\nproperties and other special descriptors.\n\nNormally this method takes only three parameters. However if you pass an\ninstance of `Descriptor` as the third param then you can pass an\noptional value as the fourth parameter. This is often more efficient than\ncreating new descriptor hashes for each property.\n\n## Examples\n\n```javascript\nimport { defineProperty, computed } from '@ember/object';\n\n// ES5 compatible mode\ndefineProperty(contact, 'firstName', {\n writable: true,\n configurable: false,\n enumerable: true,\n value: 'Charles'\n});\n\n// define a simple property\ndefineProperty(contact, 'lastName', undefined, 'Jolley');\n\n// define a computed property\ndefineProperty(contact, 'fullName', computed('firstName', 'lastName', function() {\n return this.firstName+' '+this.lastName;\n}));\n```",
7620
7625
  "access": "public",
7621
7626
  "tagname": "",
@@ -7651,7 +7656,7 @@
7651
7656
  },
7652
7657
  {
7653
7658
  "file": "packages/@ember/-internals/metal/lib/property_events.ts",
7654
- "line": 31,
7659
+ "line": 32,
7655
7660
  "description": "This function is called just after an object property has changed.\nIt will notify any observers and clear caches among other things.\n\nNormally you will not need to call this method directly but if for some\nreason you can't directly watch a property you can invoke this method\nmanually.",
7656
7661
  "itemtype": "method",
7657
7662
  "name": "notifyPropertyChange",
@@ -7691,7 +7696,7 @@
7691
7696
  },
7692
7697
  {
7693
7698
  "file": "packages/@ember/-internals/metal/lib/property_events.ts",
7694
- "line": 82,
7699
+ "line": 83,
7695
7700
  "itemtype": "method",
7696
7701
  "name": "beginPropertyChanges",
7697
7702
  "chainable": 1,
@@ -7702,7 +7707,7 @@
7702
7707
  },
7703
7708
  {
7704
7709
  "file": "packages/@ember/-internals/metal/lib/property_events.ts",
7705
- "line": 92,
7710
+ "line": 93,
7706
7711
  "itemtype": "method",
7707
7712
  "name": "endPropertyChanges",
7708
7713
  "access": "private",
@@ -7712,7 +7717,7 @@
7712
7717
  },
7713
7718
  {
7714
7719
  "file": "packages/@ember/-internals/metal/lib/property_events.ts",
7715
- "line": 104,
7720
+ "line": 105,
7716
7721
  "description": "Make a series of property changes together in an\nexception-safe way.\n\n```javascript\nEmber.changeProperties(function() {\n obj1.set('foo', mayBlowUpWhenSet);\n obj2.set('bar', baz);\n});\n```",
7717
7722
  "itemtype": "method",
7718
7723
  "name": "changeProperties",
@@ -7846,7 +7851,7 @@
7846
7851
  },
7847
7852
  {
7848
7853
  "file": "packages/@ember/-internals/metal/lib/tracked.ts",
7849
- "line": 17,
7854
+ "line": 12,
7850
7855
  "decorator": "",
7851
7856
  "access": "private",
7852
7857
  "tagname": "Marks a property as tracked.\n\nBy default, a component's properties are expected to be static,\nmeaning you are not able to update them and have the template update accordingly.\nMarking a property as tracked means that when that property changes,\na rerender of the component is scheduled so the template is kept up to date.\n\nThere are two usages for the `@tracked` decorator, shown below.",
@@ -7914,7 +7919,7 @@
7914
7919
  },
7915
7920
  {
7916
7921
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7917
- "line": 25,
7922
+ "line": 26,
7918
7923
  "description": "Defines which query parameters the controller accepts.\nIf you give the names `['category','page']` it will bind\nthe values of these query parameters to the variables\n`this.category` and `this.page`.\n\nBy default, query parameters are parsed as strings. This\nmay cause unexpected behavior if a query parameter is used with `toggleProperty`,\nbecause the initial value set for `param=false` will be the string `\"false\"`, which is truthy.\n\nTo avoid this, you may specify that the query parameter should be parsed as a boolean\nby using the following verbose form with a `type` property:\n```javascript\n queryParams: [{\n category: {\n type: 'boolean'\n }\n }]\n```\nAvailable values for the `type` parameter are `'boolean'`, `'number'`, `'array'`, and `'string'`.\nIf query param type is not specified, it will default to `'string'`.",
7919
7924
  "itemtype": "property",
7920
7925
  "name": "queryParams",
@@ -7925,7 +7930,7 @@
7925
7930
  },
7926
7931
  {
7927
7932
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7928
- "line": 53,
7933
+ "line": 54,
7929
7934
  "description": "This property is updated to various different callback functions depending on\nthe current \"state\" of the backing route. It is used by\n`Controller.prototype._qpChanged`.\n\nThe methods backing each state can be found in the `Route.prototype._qp` computed\nproperty return value (the `.states` property). The current values are listed here for\nthe sanity of future travelers:\n\n* `inactive` - This state is used when this controller instance is not part of the active\n route hierarchy. Set in `Route.prototype._reset` (a `router.js` microlib hook) and\n `Route.prototype.actions.finalizeQueryParamChange`.\n* `active` - This state is used when this controller instance is part of the active\n route hierarchy. Set in `Route.prototype.actions.finalizeQueryParamChange`.\n* `allowOverrides` - This state is used in `Route.prototype.setup` (`route.js` microlib hook).",
7930
7935
  "itemtype": "method",
7931
7936
  "name": "_qpDelegate",
@@ -7936,7 +7941,7 @@
7936
7941
  },
7937
7942
  {
7938
7943
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7939
- "line": 74,
7944
+ "line": 75,
7940
7945
  "description": "During `Route#setup` observers are created to invoke this method\nwhen any of the query params declared in `Controller#queryParams` property\nare changed.\n\nWhen invoked this method uses the currently active query param update delegate\n(see `Controller.prototype._qpDelegate` for details) and invokes it with\nthe QP key/value being changed.",
7941
7946
  "itemtype": "method",
7942
7947
  "name": "_qpChanged",
@@ -7947,7 +7952,7 @@
7947
7952
  },
7948
7953
  {
7949
7954
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7950
- "line": 95,
7955
+ "line": 96,
7951
7956
  "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\n```javascript\naController.transitionToRoute('blogPosts');\naController.transitionToRoute('blogPosts.recentEntries');\n```\n\nOptionally supply a model for the route in question. The model\nwill be serialized into the URL using the `serialize` hook of\nthe route:\n\n```javascript\naController.transitionToRoute('blogPost', aPost);\n```\n\nIf a literal is passed (such as a number or a string), it will\nbe treated as an identifier instead. In this case, the `model`\nhook of the route will be triggered:\n\n```javascript\naController.transitionToRoute('blogPost', 1);\n```\n\nMultiple models will be applied last to first recursively up the\nroute tree.\n\n```app/router.js\nRouter.map(function() {\n this.route('blogPost', { path: ':blogPostId' }, function() {\n this.route('blogComment', { path: ':blogCommentId', resetNamespace: true });\n });\n});\n```\n\n```javascript\naController.transitionToRoute('blogComment', aPost, aComment);\naController.transitionToRoute('blogComment', 1, 13);\n```\n\nIt is also possible to pass a URL (a string that starts with a\n`/`).\n\n```javascript\naController.transitionToRoute('/');\naController.transitionToRoute('/blog/post/1/comment/13');\naController.transitionToRoute('/blog/posts?sort=title');\n```\n\nAn options hash with a `queryParams` property may be provided as\nthe final argument to add query parameters to the destination URL.\n\n```javascript\naController.transitionToRoute('blogPost', 1, {\n queryParams: { showComments: 'true' }\n});\n\n// if you just want to transition the query parameters without changing the route\naController.transitionToRoute({ queryParams: { sort: 'date' } });\n```\n\nSee also [replaceRoute](/ember/release/classes/Ember.ControllerMixin/methods/replaceRoute?anchor=replaceRoute).",
7952
7957
  "itemtype": "method",
7953
7958
  "name": "transitionToRoute",
@@ -7983,7 +7988,7 @@
7983
7988
  },
7984
7989
  {
7985
7990
  "file": "packages/@ember/-internals/routing/lib/ext/controller.ts",
7986
- "line": 185,
7991
+ "line": 186,
7987
7992
  "description": "Transition into another route while replacing the current URL, if possible.\nThis will replace the current history entry instead of adding a new one.\nBeside that, it is identical to `transitionToRoute` in all other respects.\n\n```javascript\naController.replaceRoute('blogPosts');\naController.replaceRoute('blogPosts.recentEntries');\n```\n\nOptionally supply a model for the route in question. The model\nwill be serialized into the URL using the `serialize` hook of\nthe route:\n\n```javascript\naController.replaceRoute('blogPost', aPost);\n```\n\nIf a literal is passed (such as a number or a string), it will\nbe treated as an identifier instead. In this case, the `model`\nhook of the route will be triggered:\n\n```javascript\naController.replaceRoute('blogPost', 1);\n```\n\nMultiple models will be applied last to first recursively up the\nroute tree.\n\n```app/router.js\nRouter.map(function() {\n this.route('blogPost', { path: ':blogPostId' }, function() {\n this.route('blogComment', { path: ':blogCommentId', resetNamespace: true });\n });\n});\n```\n\n```\naController.replaceRoute('blogComment', aPost, aComment);\naController.replaceRoute('blogComment', 1, 13);\n```\n\nIt is also possible to pass a URL (a string that starts with a\n`/`).\n\n```javascript\naController.replaceRoute('/');\naController.replaceRoute('/blog/post/1/comment/13');\n```",
7988
7993
  "itemtype": "method",
7989
7994
  "name": "replaceRoute",
@@ -8559,7 +8564,7 @@
8559
8564
  },
8560
8565
  {
8561
8566
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8562
- "line": 81,
8567
+ "line": 82,
8563
8568
  "description": "Transition the application into another route. The route may\nbe either a single route or route path:\n\nCalling `transitionTo` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `transitionTo` on a route or `transitionToRoute` on a controller.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nIn the following example we use the Router service to navigate to a route with a\nspecific model from a Component in the first action, and in the second we trigger\na query-params only transition.\n\n```app/components/example.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n @action\n goToComments(post) {\n this.router.transitionTo('comments', post);\n }\n\n @action\n fetchMoreComments(latestComment) {\n this.router.transitionTo({\n queryParams: { commentsAfter: latestComment }\n });\n }\n}\n```",
8564
8569
  "itemtype": "method",
8565
8570
  "name": "transitionTo",
@@ -8594,7 +8599,7 @@
8594
8599
  },
8595
8600
  {
8596
8601
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8597
- "line": 140,
8602
+ "line": 141,
8598
8603
  "description": "Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,\nit replaces the entry for the current route.\nWhen the user clicks the \"back\" button in the browser, there will be fewer steps.\nThis is most commonly used to manage redirects in a way that does not cause confusing additions\nto the user's browsing history.\n\nCalling `replaceWith` from the Router service will cause default query parameter values to be included in the URL.\nThis behavior is different from calling `replaceWith` on a route.\nSee the [Router Service RFC](https://github.com/emberjs/rfcs/blob/master/text/0095-router-service.md#query-parameter-semantics) for more info.\n\nUsage example:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\n\nexport default class extends Route {\n beforeModel() {\n if (!authorized()){\n this.replaceWith('unauthorized');\n }\n }\n});\n```",
8599
8604
  "itemtype": "method",
8600
8605
  "name": "replaceWith",
@@ -8627,7 +8632,7 @@
8627
8632
  },
8628
8633
  {
8629
8634
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8630
- "line": 179,
8635
+ "line": 180,
8631
8636
  "description": "Generate a URL based on the supplied route name and optionally a model. The\nURL is returned as a string that can be used for any purpose.\n\nIn this example, the URL for the `author.books` route for a given author\nis copied to the clipboard.\n\n```app/templates/application.hbs\n<CopyLink @author={{hash id=\"tomster\" name=\"Tomster\"}} />\n```\n\n```app/components/copy-link.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { action } from '@ember/object';\n\nexport default class CopyLinkComponent extends Component {\n @service router;\n @service clipboard;\n\n @action\n copyBooksURL() {\n if (this.author) {\n const url = this.router.urlFor('author.books', this.args.author);\n this.clipboard.set(url);\n // Clipboard now has /author/tomster/books\n }\n }\n}\n```\n\nJust like with `transitionTo` and `replaceWith`, `urlFor` can also handle\nquery parameters.\n\n```app/templates/application.hbs\n<CopyLink @author={{hash id=\"tomster\" name=\"Tomster\"}} />\n```\n\n```app/components/copy-link.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { action } from '@ember/object';\n\nexport default class CopyLinkComponent extends Component {\n @service router;\n @service clipboard;\n\n @action\n copyOnlyEmberBooksURL() {\n if (this.author) {\n const url = this.router.urlFor('author.books', this.author, {\n queryParams: { filter: 'emberjs' }\n });\n this.clipboard.set(url);\n // Clipboard now has /author/tomster/books?filter=emberjs\n }\n }\n}\n```",
8632
8637
  "itemtype": "method",
8633
8638
  "name": "urlFor",
@@ -8660,7 +8665,7 @@
8660
8665
  },
8661
8666
  {
8662
8667
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8663
- "line": 252,
8668
+ "line": 253,
8664
8669
  "description": "Returns `true` if `routeName/models/queryParams` is the active route, where `models` and `queryParams` are optional.\nSee [model](api/ember/release/classes/Route/methods/model?anchor=model) and\n[queryParams](/api/ember/3.7/classes/Route/properties/queryParams?anchor=queryParams) for more information about these arguments.\n\nIn the following example, `isActive` will return `true` if the current route is `/posts`.\n\n```app/components/posts.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n displayComments() {\n return this.router.isActive('posts');\n }\n});\n```\n\nThe next example includes a dynamic segment, and will return `true` if the current route is `/posts/1`,\nassuming the post has an id of 1:\n\n```app/components/posts.js\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n\n displayComments(post) {\n return this.router.isActive('posts', post.id);\n }\n});\n```\n\nWhere `post.id` is the id of a specific post, which is represented in the route as /posts/[post.id].\nIf `post.id` is equal to 1, then isActive will return true if the current route is /posts/1, and false if the route is anything else.",
8665
8670
  "itemtype": "method",
8666
8671
  "name": "isActive",
@@ -8693,7 +8698,7 @@
8693
8698
  },
8694
8699
  {
8695
8700
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8696
- "line": 356,
8701
+ "line": 357,
8697
8702
  "description": "Takes a string URL and returns a `RouteInfo` for the leafmost route represented\nby the URL. Returns `null` if the URL is not recognized. This method expects to\nreceive the actual URL as seen by the browser including the app's `rootURL`.\n\nSee [RouteInfo](/ember/release/classes/RouteInfo) for more info.\n\nIn the following example `recognize` is used to verify if a path belongs to our\napplication before transitioning to it.\n\n```\nimport Component from '@ember/component';\nimport { service } from '@ember/service';\n\nexport default class extends Component {\n @service router;\n path = '/';\n\n click() {\n if (this.router.recognize(this.path)) {\n this.router.transitionTo(this.path);\n }\n }\n}\n```",
8698
8703
  "itemtype": "method",
8699
8704
  "name": "recognize",
@@ -8715,7 +8720,7 @@
8715
8720
  },
8716
8721
  {
8717
8722
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8718
- "line": 397,
8723
+ "line": 398,
8719
8724
  "description": "Takes a string URL and returns a promise that resolves to a\n`RouteInfoWithAttributes` for the leafmost route represented by the URL.\nThe promise rejects if the URL is not recognized or an unhandled exception\nis encountered. This method expects to receive the actual URL as seen by\nthe browser including the app's `rootURL`.",
8720
8725
  "itemtype": "method",
8721
8726
  "name": "recognizeAndLoad",
@@ -8737,7 +8742,7 @@
8737
8742
  },
8738
8743
  {
8739
8744
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8740
- "line": 419,
8745
+ "line": 420,
8741
8746
  "description": "You can register a listener for events emitted by this service with `.on()`:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n activate() {\n this.router.on('routeWillChange', (transition) => {\n if (!transition.to.find(route => route.name === this.routeName)) {\n alert(\"Please save or cancel your changes.\");\n transition.abort();\n }\n })\n }\n}\n```",
8742
8747
  "itemtype": "method",
8743
8748
  "name": "on",
@@ -8760,7 +8765,7 @@
8760
8765
  },
8761
8766
  {
8762
8767
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8763
- "line": 446,
8768
+ "line": 447,
8764
8769
  "description": "You can unregister a listener for events emitted by this service with `.off()`:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n callback = (transition) => {\n if (!transition.to.find(route => route.name === this.routeName)) {\n alert(\"Please save or cancel your changes.\");\n transition.abort();\n }\n };\n\n activate() {\n this.router.on('routeWillChange', this.callback);\n }\n\n deactivate() {\n this.router.off('routeWillChange', this.callback);\n}\n```",
8765
8770
  "itemtype": "method",
8766
8771
  "name": "off",
@@ -8783,7 +8788,7 @@
8783
8788
  },
8784
8789
  {
8785
8790
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8786
- "line": 478,
8791
+ "line": 479,
8787
8792
  "description": "The `routeWillChange` event is fired at the beginning of any\nattempted transition with a `Transition` object as the sole\nargument. This action can be used for aborting, redirecting,\nor decorating the transition from the currently active routes.\n\nA good example is preventing navigation when a form is\nhalf-filled out:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n activate() {\n this.router.on('routeWillChange', (transition) => {\n if (!transition.to.find(route => route.name === this.routeName)) {\n alert(\"Please save or cancel your changes.\");\n transition.abort();\n }\n })\n }\n}\n```\n\nThe `routeWillChange` event fires whenever a new route is chosen as the desired target of a transition. This includes `transitionTo`, `replaceWith`, all redirection for any reason including error handling, and abort. Aborting implies changing the desired target back to where you already were. Once a transition has completed, `routeDidChange` fires.",
8788
8793
  "itemtype": "event",
8789
8794
  "name": "routeWillChange",
@@ -8801,7 +8806,7 @@
8801
8806
  },
8802
8807
  {
8803
8808
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8804
- "line": 512,
8809
+ "line": 513,
8805
8810
  "description": "The `routeDidChange` event only fires once a transition has settled.\nThis includes aborts and error substates. Like the `routeWillChange` event\nit receives a Transition as the sole argument.\n\nA good example is sending some analytics when the route has transitioned:\n\n```app/routes/contact-form.js\nimport Route from '@ember/routing';\nimport { service } from '@ember/service';\n\nexport default class extends Route {\n @service router;\n\n activate() {\n this.router.on('routeDidChange', (transition) => {\n ga.send('pageView', {\n current: transition.to.name,\n from: transition.from.name\n });\n })\n }\n}\n```\n\n`routeDidChange` will be called after any `Route`'s\n[didTransition](/ember/release/classes/Route/events/didTransition?anchor=didTransition)\naction has been fired.\nThe updates of properties\n[currentURL](/ember/release/classes/RouterService/properties/currentURL?anchor=currentURL),\n[currentRouteName](/ember/release/classes/RouterService/properties/currentURL?anchor=currentRouteName)\nand\n[currentRoute](/ember/release/classes/RouterService/properties/currentURL?anchor=currentRoute)\nare completed at the time `routeDidChange` is called.",
8806
8811
  "itemtype": "event",
8807
8812
  "name": "routeDidChange",
@@ -8819,7 +8824,7 @@
8819
8824
  },
8820
8825
  {
8821
8826
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8822
- "line": 552,
8827
+ "line": 553,
8823
8828
  "description": "Refreshes all currently active routes, doing a full transition.\nIf a route name is provided and refers to a currently active route,\nit will refresh only that route and its descendents.\nReturns a promise that will be resolved once the refresh is complete.\nAll resetController, beforeModel, model, afterModel, redirect, and setupController\nhooks will be called again. You will get new data from the model hook.",
8824
8829
  "itemtype": "method",
8825
8830
  "name": "refresh",
@@ -8841,7 +8846,7 @@
8841
8846
  },
8842
8847
  {
8843
8848
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8844
- "line": 582,
8849
+ "line": 583,
8845
8850
  "description": "Name of the current route.\n\n This property represents the logical name of the route,\n which is dot separated.\n For the following router:\n\n ```app/router.js\n Router.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n });\n ```\n\n It will return:\n\n * `index` when you visit `/`\n * `about` when you visit `/about`\n * `blog.index` when you visit `/blog`\n * `blog.post` when you visit `/blog/some-post-id`",
8846
8851
  "itemtype": "property",
8847
8852
  "name": "currentRouteName",
@@ -8853,7 +8858,7 @@
8853
8858
  },
8854
8859
  {
8855
8860
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8856
- "line": 612,
8861
+ "line": 613,
8857
8862
  "description": "Current URL for the application.\n\n This property represents the URL path for this route.\n For the following router:\n\n ```app/router.js\n Router.map(function() {\n this.route('about');\n this.route('blog', function () {\n this.route('post', { path: ':post_id' });\n });\n });\n ```\n\n It will return:\n\n * `/` when you visit `/`\n * `/about` when you visit `/about`\n * `/blog` when you visit `/blog`\n * `/blog/some-post-id` when you visit `/blog/some-post-id`",
8858
8863
  "itemtype": "property",
8859
8864
  "name": "currentURL",
@@ -8865,7 +8870,7 @@
8865
8870
  },
8866
8871
  {
8867
8872
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8868
- "line": 641,
8873
+ "line": 642,
8869
8874
  "description": "The `location` property returns what implementation of the `location` API\nyour application is using, which determines what type of URL is being used.\n\nSee [Location](/ember/release/classes/Location) for more information.\n\nTo force a particular `location` API implementation to be used in your\napplication you can set a location type on your `config/environment`.\nFor example, to set the `history` type:\n\n```config/environment.js\n'use strict';\n\nmodule.exports = function(environment) {\n let ENV = {\n modulePrefix: 'router-service',\n environment,\n rootURL: '/',\n locationType: 'history',\n ...\n }\n}\n```\n\nThe following location types are available by default:\n`auto`, `hash`, `history`, `none`.\n\nSee [HashLocation](/ember/release/classes/HashLocation).\nSee [HistoryLocation](/ember/release/classes/HistoryLocation).\nSee [NoneLocation](/ember/release/classes/NoneLocation).\nSee [AutoLocation](/ember/release/classes/AutoLocation).",
8870
8875
  "itemtype": "property",
8871
8876
  "name": "location",
@@ -8880,7 +8885,7 @@
8880
8885
  },
8881
8886
  {
8882
8887
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8883
- "line": 681,
8888
+ "line": 682,
8884
8889
  "description": "The `rootURL` property represents the URL of the root of\nthe application, '/' by default.\nThis prefix is assumed on all routes defined on this app.\n\nIf you change the `rootURL` in your environment configuration\nlike so:\n\n```config/environment.js\n'use strict';\n\nmodule.exports = function(environment) {\n let ENV = {\n modulePrefix: 'router-service',\n environment,\n rootURL: '/my-root',\n …\n }\n]\n```\n\nThis property will return `/my-root`.",
8885
8890
  "itemtype": "property",
8886
8891
  "name": "rootURL",
@@ -8892,7 +8897,7 @@
8892
8897
  },
8893
8898
  {
8894
8899
  "file": "packages/@ember/-internals/routing/lib/services/router.ts",
8895
- "line": 711,
8900
+ "line": 712,
8896
8901
  "description": "The `currentRoute` property contains metadata about the current leaf route.\nIt returns a `RouteInfo` object that has information like the route name,\nparams, query params and more.\n\nSee [RouteInfo](/ember/release/classes/RouteInfo) for more info.\n\nThis property is guaranteed to change whenever a route transition\nhappens (even when that transition only changes parameters\nand doesn't change the active route).\n\nUsage example:\n```app/components/header.js\n import Component from '@glimmer/component';\n import { service } from '@ember/service';\n import { notEmpty } from '@ember/object/computed';\n\n export default class extends Component {\n @service router;\n\n @notEmpty('router.currentRoute.child') isChildRoute;\n });\n```",
8897
8902
  "itemtype": "property",
8898
8903
  "name": "currentRoute",
@@ -9198,7 +9203,7 @@
9198
9203
  },
9199
9204
  {
9200
9205
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9201
- "line": 97,
9206
+ "line": 96,
9202
9207
  "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.",
9203
9208
  "itemtype": "event",
9204
9209
  "name": "willTransition",
@@ -9217,7 +9222,7 @@
9217
9222
  },
9218
9223
  {
9219
9224
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9220
- "line": 142,
9225
+ "line": 141,
9221
9226
  "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```",
9222
9227
  "itemtype": "event",
9223
9228
  "name": "didTransition",
@@ -9229,7 +9234,7 @@
9229
9234
  },
9230
9235
  {
9231
9236
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9232
- "line": 169,
9237
+ "line": 168,
9233
9238
  "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```",
9234
9239
  "itemtype": "event",
9235
9240
  "name": "loading",
@@ -9253,7 +9258,7 @@
9253
9258
  },
9254
9259
  {
9255
9260
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9256
- "line": 204,
9261
+ "line": 203,
9257
9262
  "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```",
9258
9263
  "itemtype": "event",
9259
9264
  "name": "error",
@@ -9277,7 +9282,7 @@
9277
9282
  },
9278
9283
  {
9279
9284
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9280
- "line": 311,
9285
+ "line": 310,
9281
9286
  "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.",
9282
9287
  "itemtype": "method",
9283
9288
  "name": "serialize",
@@ -9305,7 +9310,7 @@
9305
9310
  },
9306
9311
  {
9307
9312
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9308
- "line": 379,
9313
+ "line": 378,
9309
9314
  "description": "Configuration hash for this route's queryParams. The possible\nconfiguration options and their defaults are as follows\n(assuming a query param whose controller property is `page`):\n\n```javascript\nqueryParams = {\n page: {\n // By default, controller query param properties don't\n // cause a full transition when they are changed, but\n // rather only cause the URL to update. Setting\n // `refreshModel` to true will cause an \"in-place\"\n // transition to occur, whereby the model hooks for\n // this route (and any child routes) will re-fire, allowing\n // you to reload models (e.g., from the server) using the\n // updated query param values.\n refreshModel: false,\n\n // By default, changes to controller query param properties\n // cause the URL to update via `pushState`, which means an\n // item will be added to the browser's history, allowing\n // you to use the back button to restore the app to the\n // previous state before the query param property was changed.\n // Setting `replace` to true will use `replaceState` (or its\n // hash location equivalent), which causes no browser history\n // item to be added. This options name and default value are\n // the same as the `link-to` helper's `replace` option.\n replace: false,\n\n // By default, the query param URL key is the same name as\n // the controller property name. Use `as` to specify a\n // different URL key.\n as: 'page'\n }\n};\n```",
9310
9315
  "itemtype": "property",
9311
9316
  "name": "queryParams",
@@ -9318,8 +9323,8 @@
9318
9323
  },
9319
9324
  {
9320
9325
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9321
- "line": 432,
9322
- "description": "The name of the template to use by default when rendering this routes\ntemplate.\n\n```app/routes/posts/list.js\nimport Route from '@ember/routing/route';\n\nexport default class extends Route {\n templateName = 'posts/list'\n});\n```\n\n```app/routes/posts/index.js\nimport PostsList from '../posts/list';\n\nexport default class extends PostsList {};\n```\n\n```app/routes/posts/archived.js\nimport PostsList from '../posts/list';\n\nexport default class extends PostsList {};\n```",
9326
+ "line": 431,
9327
+ "description": "The name of the template to use by default when rendering this route's\ntemplate.\n\n```app/routes/posts/list.js\nimport Route from '@ember/routing/route';\n\nexport default class PostsListRoute extends Route {\n templateName = 'posts/list';\n}\n```\n\n```app/routes/posts/index.js\nimport PostsListRoute from '../posts/list';\n\nexport default class PostsIndexRoute extends PostsListRoute {};\n```\n\n```app/routes/posts/archived.js\nimport PostsListRoute from '../posts/list';\n\nexport default class PostsArchivedRoute extends PostsListRoute {};\n```",
9323
9328
  "itemtype": "property",
9324
9329
  "name": "templateName",
9325
9330
  "type": "String",
@@ -9332,7 +9337,7 @@
9332
9337
  },
9333
9338
  {
9334
9339
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9335
- "line": 465,
9340
+ "line": 464,
9336
9341
  "description": "The name of the controller to associate with this route.\n\nBy default, Ember will lookup a route's controller that matches the name\nof the route (i.e. `posts.new`). However,\nif you would like to define a specific controller to use, you can do so\nusing this property.\n\nThis is useful in many ways, as the controller specified will be:\n\n* passed to the `setupController` method.\n* used as the controller for the template being rendered by the route.\n* returned from a call to `controllerFor` for the route.",
9337
9342
  "itemtype": "property",
9338
9343
  "name": "controllerName",
@@ -9346,7 +9351,7 @@
9346
9351
  },
9347
9352
  {
9348
9353
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9349
- "line": 488,
9354
+ "line": 487,
9350
9355
  "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```",
9351
9356
  "itemtype": "property",
9352
9357
  "name": "controller",
@@ -9359,7 +9364,7 @@
9359
9364
  },
9360
9365
  {
9361
9366
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9362
- "line": 519,
9367
+ "line": 518,
9363
9368
  "description": "The name of the route, dot-delimited.\n\nFor example, a route found at `app/routes/posts/post.js` will have\na `routeName` of `posts.post`.",
9364
9369
  "itemtype": "property",
9365
9370
  "name": "routeName",
@@ -9372,7 +9377,7 @@
9372
9377
  },
9373
9378
  {
9374
9379
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9375
- "line": 533,
9380
+ "line": 532,
9376
9381
  "description": "The name of the route, dot-delimited, including the engine prefix\nif applicable.\n\nFor example, a route found at `addon/routes/posts/post.js` within an\nengine named `admin` will have a `fullRouteName` of `admin.posts.post`.",
9377
9382
  "itemtype": "property",
9378
9383
  "name": "fullRouteName",
@@ -9385,7 +9390,7 @@
9385
9390
  },
9386
9391
  {
9387
9392
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9388
- "line": 548,
9393
+ "line": 547,
9389
9394
  "description": "Sets the name for this route, including a fully resolved name for routes\ninside engines.",
9390
9395
  "access": "private",
9391
9396
  "tagname": "",
@@ -9403,7 +9408,7 @@
9403
9408
  },
9404
9409
  {
9405
9410
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9406
- "line": 563,
9411
+ "line": 562,
9407
9412
  "access": "private",
9408
9413
  "tagname": "",
9409
9414
  "itemtype": "method",
@@ -9413,7 +9418,7 @@
9413
9418
  },
9414
9419
  {
9415
9420
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9416
- "line": 597,
9421
+ "line": 596,
9417
9422
  "access": "private",
9418
9423
  "tagname": "",
9419
9424
  "itemtype": "property",
@@ -9423,7 +9428,7 @@
9423
9428
  },
9424
9429
  {
9425
9430
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9426
- "line": 606,
9431
+ "line": 605,
9427
9432
  "access": "private",
9428
9433
  "tagname": "",
9429
9434
  "itemtype": "method",
@@ -9433,7 +9438,7 @@
9433
9438
  },
9434
9439
  {
9435
9440
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9436
- "line": 614,
9441
+ "line": 613,
9437
9442
  "description": "Returns a hash containing the parameters of an ancestor route.\n\nYou may notice that `this.paramsFor` sometimes works when referring to a\nchild route, but this behavior should not be relied upon as only ancestor\nroutes are certain to be loaded in time.\n\nExample\n\n```app/router.js\n// ...\n\nRouter.map(function() {\n this.route('member', { path: ':name' }, function() {\n this.route('interest', { path: ':interest' });\n });\n});\n```\n\n```app/routes/member.js\nimport Route from '@ember/routing/route';\n\nexport default class MemberRoute extends Route {\n queryParams = {\n memberQp: { refreshModel: true }\n }\n}\n```\n\n```app/routes/member/interest.js\nimport Route from '@ember/routing/route';\n\nexport default class MemberInterestRoute extends Route {\n queryParams = {\n interestQp: { refreshModel: true }\n }\n\n model() {\n return this.paramsFor('member');\n }\n}\n```\n\nIf we visit `/turing/maths?memberQp=member&interestQp=interest` the model for\nthe `member.interest` route is a hash with:\n\n* `name`: `turing`\n* `memberQp`: `member`",
9438
9443
  "itemtype": "method",
9439
9444
  "name": "paramsFor",
@@ -9456,7 +9461,7 @@
9456
9461
  },
9457
9462
  {
9458
9463
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9459
- "line": 695,
9464
+ "line": 694,
9460
9465
  "description": "Serializes the query parameter key",
9461
9466
  "itemtype": "method",
9462
9467
  "name": "serializeQueryParamKey",
@@ -9474,7 +9479,7 @@
9474
9479
  },
9475
9480
  {
9476
9481
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9477
- "line": 706,
9482
+ "line": 705,
9478
9483
  "description": "Serializes value of the query parameter based on defaultValueType",
9479
9484
  "itemtype": "method",
9480
9485
  "name": "serializeQueryParam",
@@ -9502,7 +9507,7 @@
9502
9507
  },
9503
9508
  {
9504
9509
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9505
- "line": 722,
9510
+ "line": 721,
9506
9511
  "description": "Deserializes value of the query parameter based on defaultValueType",
9507
9512
  "itemtype": "method",
9508
9513
  "name": "deserializeQueryParam",
@@ -9530,7 +9535,7 @@
9530
9535
  },
9531
9536
  {
9532
9537
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9533
- "line": 738,
9538
+ "line": 737,
9534
9539
  "access": "private",
9535
9540
  "tagname": "",
9536
9541
  "itemtype": "property",
@@ -9540,7 +9545,7 @@
9540
9545
  },
9541
9546
  {
9542
9547
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9543
- "line": 754,
9548
+ "line": 753,
9544
9549
  "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```",
9545
9550
  "itemtype": "method",
9546
9551
  "name": "resetController",
@@ -9569,7 +9574,7 @@
9569
9574
  },
9570
9575
  {
9571
9576
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9572
- "line": 781,
9577
+ "line": 780,
9573
9578
  "access": "private",
9574
9579
  "tagname": "",
9575
9580
  "itemtype": "method",
@@ -9579,7 +9584,7 @@
9579
9584
  },
9580
9585
  {
9581
9586
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9582
- "line": 792,
9587
+ "line": 791,
9583
9588
  "access": "private",
9584
9589
  "tagname": "",
9585
9590
  "itemtype": "method",
@@ -9590,7 +9595,7 @@
9590
9595
  },
9591
9596
  {
9592
9597
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9593
- "line": 806,
9598
+ "line": 805,
9594
9599
  "access": "private",
9595
9600
  "tagname": "",
9596
9601
  "itemtype": "method",
@@ -9600,7 +9605,7 @@
9600
9605
  },
9601
9606
  {
9602
9607
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9603
- "line": 817,
9608
+ "line": 816,
9604
9609
  "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```",
9605
9610
  "itemtype": "event",
9606
9611
  "name": "activate",
@@ -9612,7 +9617,7 @@
9612
9617
  },
9613
9618
  {
9614
9619
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9615
- "line": 837,
9620
+ "line": 836,
9616
9621
  "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```",
9617
9622
  "itemtype": "event",
9618
9623
  "name": "deactivate",
@@ -9624,7 +9629,7 @@
9624
9629
  },
9625
9630
  {
9626
9631
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9627
- "line": 857,
9632
+ "line": 856,
9628
9633
  "description": "This hook is executed when the router completely exits this route. It is\nnot executed when the model for the route changes.",
9629
9634
  "itemtype": "method",
9630
9635
  "name": "deactivate",
@@ -9643,7 +9648,7 @@
9643
9648
  },
9644
9649
  {
9645
9650
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9646
- "line": 868,
9651
+ "line": 867,
9647
9652
  "description": "This hook is executed when the router enters the route. It is not executed\nwhen the model for the route changes.",
9648
9653
  "itemtype": "method",
9649
9654
  "name": "activate",
@@ -9662,7 +9667,7 @@
9662
9667
  },
9663
9668
  {
9664
9669
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9665
- "line": 879,
9670
+ "line": 878,
9666
9671
  "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```",
9667
9672
  "itemtype": "method",
9668
9673
  "name": "transitionTo",
@@ -9700,7 +9705,7 @@
9700
9705
  },
9701
9706
  {
9702
9707
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9703
- "line": 1077,
9708
+ "line": 1076,
9704
9709
  "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.",
9705
9710
  "itemtype": "method",
9706
9711
  "name": "intermediateTransitionTo",
@@ -9724,7 +9729,7 @@
9724
9729
  },
9725
9730
  {
9726
9731
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9727
- "line": 1099,
9732
+ "line": 1098,
9728
9733
  "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.",
9729
9734
  "itemtype": "method",
9730
9735
  "name": "refresh",
@@ -9740,7 +9745,7 @@
9740
9745
  },
9741
9746
  {
9742
9747
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9743
- "line": 1125,
9748
+ "line": 1124,
9744
9749
  "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```",
9745
9750
  "itemtype": "method",
9746
9751
  "name": "replaceWith",
@@ -9776,7 +9781,7 @@
9776
9781
  },
9777
9782
  {
9778
9783
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9779
- "line": 1173,
9784
+ "line": 1172,
9780
9785
  "description": "This hook is the entry point for router.js",
9781
9786
  "access": "private",
9782
9787
  "tagname": "",
@@ -9787,7 +9792,7 @@
9787
9792
  },
9788
9793
  {
9789
9794
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9790
- "line": 1248,
9795
+ "line": 1247,
9791
9796
  "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.",
9792
9797
  "itemtype": "method",
9793
9798
  "name": "beforeModel",
@@ -9810,7 +9815,7 @@
9810
9815
  },
9811
9816
  {
9812
9817
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9813
- "line": 1283,
9818
+ "line": 1282,
9814
9819
  "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.",
9815
9820
  "itemtype": "method",
9816
9821
  "name": "afterModel",
@@ -9838,7 +9843,7 @@
9838
9843
  },
9839
9844
  {
9840
9845
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9841
- "line": 1321,
9846
+ "line": 1320,
9842
9847
  "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.",
9843
9848
  "itemtype": "method",
9844
9849
  "name": "redirect",
@@ -9862,7 +9867,7 @@
9862
9867
  },
9863
9868
  {
9864
9869
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9865
- "line": 1346,
9870
+ "line": 1345,
9866
9871
  "description": "Called when the context is changed by router.js.",
9867
9872
  "access": "private",
9868
9873
  "tagname": "",
@@ -9873,7 +9878,7 @@
9873
9878
  },
9874
9879
  {
9875
9880
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9876
- "line": 1356,
9881
+ "line": 1355,
9877
9882
  "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```",
9878
9883
  "itemtype": "method",
9879
9884
  "name": "model",
@@ -9901,7 +9906,7 @@
9901
9906
  },
9902
9907
  {
9903
9908
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9904
- "line": 1471,
9909
+ "line": 1470,
9905
9910
  "access": "private",
9906
9911
  "tagname": "",
9907
9912
  "itemtype": "method",
@@ -9927,7 +9932,7 @@
9927
9932
  },
9928
9933
  {
9929
9934
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9930
- "line": 1484,
9935
+ "line": 1483,
9931
9936
  "itemtype": "method",
9932
9937
  "name": "findModel",
9933
9938
  "params": [
@@ -9949,7 +9954,7 @@
9949
9954
  },
9950
9955
  {
9951
9956
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9952
- "line": 1495,
9957
+ "line": 1494,
9953
9958
  "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.",
9954
9959
  "example": [
9955
9960
  " 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```"
@@ -9982,7 +9987,7 @@
9982
9987
  },
9983
9988
  {
9984
9989
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
9985
- "line": 1571,
9990
+ "line": 1570,
9986
9991
  "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```",
9987
9992
  "itemtype": "method",
9988
9993
  "name": "controllerFor",
@@ -10005,7 +10010,7 @@
10005
10010
  },
10006
10011
  {
10007
10012
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10008
- "line": 1625,
10013
+ "line": 1624,
10009
10014
  "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```",
10010
10015
  "itemtype": "method",
10011
10016
  "name": "generateController",
@@ -10023,7 +10028,7 @@
10023
10028
  },
10024
10029
  {
10025
10030
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10026
- "line": 1653,
10031
+ "line": 1652,
10027
10032
  "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```",
10028
10033
  "itemtype": "method",
10029
10034
  "name": "modelFor",
@@ -10046,7 +10051,7 @@
10046
10051
  },
10047
10052
  {
10048
10053
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10049
- "line": 1725,
10054
+ "line": 1724,
10050
10055
  "description": "`this[RENDER]` is used to render a template into a region of another template\n(indicated by an `{{outlet}}`).",
10051
10056
  "itemtype": "method",
10052
10057
  "name": "this[RENDER]",
@@ -10096,7 +10101,7 @@
10096
10101
  },
10097
10102
  {
10098
10103
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10099
- "line": 1752,
10104
+ "line": 1751,
10100
10105
  "access": "private",
10101
10106
  "tagname": "",
10102
10107
  "itemtype": "method",
@@ -10106,7 +10111,7 @@
10106
10111
  },
10107
10112
  {
10108
10113
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10109
- "line": 1765,
10114
+ "line": 1764,
10110
10115
  "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```",
10111
10116
  "itemtype": "method",
10112
10117
  "name": "buildRouteInfoMetadata",
@@ -10121,7 +10126,7 @@
10121
10126
  },
10122
10127
  {
10123
10128
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10124
- "line": 1816,
10129
+ "line": 1815,
10125
10130
  "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)`",
10126
10131
  "itemtype": "property",
10127
10132
  "name": "store",
@@ -10133,7 +10138,7 @@
10133
10138
  },
10134
10139
  {
10135
10140
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10136
- "line": 1882,
10141
+ "line": 1881,
10137
10142
  "access": "private",
10138
10143
  "tagname": "",
10139
10144
  "itemtype": "property",
@@ -10143,7 +10148,7 @@
10143
10148
  },
10144
10149
  {
10145
10150
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10146
- "line": 2021,
10151
+ "line": 2020,
10147
10152
  "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```",
10148
10153
  "itemtype": "method",
10149
10154
  "name": "send",
@@ -10167,7 +10172,7 @@
10167
10172
  },
10168
10173
  {
10169
10174
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10170
- "line": 2406,
10175
+ "line": 2405,
10171
10176
  "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```",
10172
10177
  "itemtype": "property",
10173
10178
  "name": "controller",
@@ -10180,7 +10185,7 @@
10180
10185
  },
10181
10186
  {
10182
10187
  "file": "packages/@ember/-internals/routing/lib/system/route.ts",
10183
- "line": 2437,
10188
+ "line": 2436,
10184
10189
  "description": "This action is called when one or more query params have changed. Bubbles.",
10185
10190
  "itemtype": "method",
10186
10191
  "name": "queryParamsDidChange",
@@ -10212,7 +10217,7 @@
10212
10217
  },
10213
10218
  {
10214
10219
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10215
- "line": 151,
10220
+ "line": 147,
10216
10221
  "description": "Represents the URL of the root of the application, often '/'. This prefix is\n assumed on all routes defined on this router.",
10217
10222
  "itemtype": "property",
10218
10223
  "name": "rootURL",
@@ -10224,7 +10229,7 @@
10224
10229
  },
10225
10230
  {
10226
10231
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10227
- "line": 162,
10232
+ "line": 158,
10228
10233
  "description": "The `location` property determines the type of URL's that your\n application will use.\n\n The following location types are currently available:\n\n * `history` - use the browser's history API to make the URLs look just like any standard URL\n * `hash` - use `#` to separate the server part of the URL from the Ember part: `/blog/#/posts/new`\n * `none` - do not store the Ember URL in the actual browser URL (mainly used for testing)\n * `auto` - use the best option based on browser capabilities: `history` if possible, then `hash` if possible, otherwise `none`\n\n This value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`",
10229
10234
  "itemtype": "property",
10230
10235
  "name": "location",
@@ -10239,7 +10244,7 @@
10239
10244
  },
10240
10245
  {
10241
10246
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10242
- "line": 220,
10247
+ "line": 216,
10243
10248
  "description": "The `Router.map` function allows you to define mappings from URLs to routes\nin your application. These mappings are defined within the\nsupplied callback function using `this.route`.\n\nThe first parameter is the name of the route which is used by default as the\npath name as well.\n\nThe second parameter is the optional options hash. Available options are:\n\n * `path`: allows you to provide your own path as well as mark dynamic\n segments.\n * `resetNamespace`: false by default; when nesting routes, ember will\n combine the route names to form the fully-qualified route name, which is\n used with `{{link-to}}` or manually transitioning to routes. Setting\n `resetNamespace: true` will cause the route not to inherit from its\n parent route's names. This is handy for preventing extremely long route names.\n Keep in mind that the actual URL path behavior is still retained.\n\nThe third parameter is a function, which can be used to nest routes.\nNested routes, by default, will have the parent route tree's route name and\npath prepended to it's own.\n\n```app/router.js\nRouter.map(function(){\n this.route('post', { path: '/post/:post_id' }, function() {\n this.route('edit');\n this.route('comments', { resetNamespace: true }, function() {\n this.route('new');\n });\n });\n});\n```",
10244
10249
  "itemtype": "method",
10245
10250
  "name": "map",
@@ -10256,7 +10261,7 @@
10256
10261
  },
10257
10262
  {
10258
10263
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10259
- "line": 555,
10264
+ "line": 551,
10260
10265
  "description": "Initializes the current router instance and sets up the change handling\nevent listeners used by the instances `location` implementation.\n\nA property named `initialURL` will be used to determine the initial URL.\nIf no value is found `/` will be used.",
10261
10266
  "itemtype": "method",
10262
10267
  "name": "startRouting",
@@ -10267,7 +10272,7 @@
10267
10272
  },
10268
10273
  {
10269
10274
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10270
- "line": 678,
10275
+ "line": 674,
10271
10276
  "description": "Transition the application into another route. The route may\nbe either a single route or route path:",
10272
10277
  "itemtype": "method",
10273
10278
  "name": "transitionTo",
@@ -10301,7 +10306,7 @@
10301
10306
  },
10302
10307
  {
10303
10308
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10304
- "line": 723,
10309
+ "line": 719,
10305
10310
  "description": "Similar to `transitionTo`, but instead of adding the destination to the browser's URL history,\nit replaces the entry for the current route.\nWhen the user clicks the \"back\" button in the browser, there will be fewer steps.\nThis is most commonly used to manage redirects in a way that does not cause confusing additions\nto the user's browsing history.",
10306
10311
  "itemtype": "method",
10307
10312
  "name": "replaceWith",
@@ -10335,7 +10340,7 @@
10335
10340
  },
10336
10341
  {
10337
10342
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10338
- "line": 750,
10343
+ "line": 746,
10339
10344
  "description": "Determines if the supplied route is currently active.",
10340
10345
  "itemtype": "method",
10341
10346
  "name": "isActive",
@@ -10356,7 +10361,7 @@
10356
10361
  },
10357
10362
  {
10358
10363
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10359
- "line": 762,
10364
+ "line": 758,
10360
10365
  "description": "An alternative form of `isActive` that doesn't require\nmanual concatenation of the arguments into a single\narray.",
10361
10366
  "itemtype": "method",
10362
10367
  "name": "isActiveIntent",
@@ -10386,7 +10391,7 @@
10386
10391
  },
10387
10392
  {
10388
10393
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10389
- "line": 784,
10394
+ "line": 780,
10390
10395
  "description": "Does this router instance have the given route.",
10391
10396
  "itemtype": "method",
10392
10397
  "name": "hasRoute",
@@ -10401,7 +10406,7 @@
10401
10406
  },
10402
10407
  {
10403
10408
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10404
- "line": 795,
10409
+ "line": 791,
10405
10410
  "description": "Resets the state of the router by clearing the current route\nhandlers and deactivating them.",
10406
10411
  "access": "private",
10407
10412
  "tagname": "",
@@ -10412,7 +10417,7 @@
10412
10417
  },
10413
10418
  {
10414
10419
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10415
- "line": 943,
10420
+ "line": 939,
10416
10421
  "description": "Serializes the given query params according to their QP meta information.",
10417
10422
  "access": "private",
10418
10423
  "tagname": "",
@@ -10439,7 +10444,7 @@
10439
10444
  },
10440
10445
  {
10441
10446
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10442
- "line": 973,
10447
+ "line": 969,
10443
10448
  "description": "Serializes the value of a query parameter based on a type",
10444
10449
  "access": "private",
10445
10450
  "tagname": "",
@@ -10462,7 +10467,7 @@
10462
10467
  },
10463
10468
  {
10464
10469
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10465
- "line": 991,
10470
+ "line": 987,
10466
10471
  "description": "Deserializes the given query params according to their QP meta information.",
10467
10472
  "access": "private",
10468
10473
  "tagname": "",
@@ -10489,7 +10494,7 @@
10489
10494
  },
10490
10495
  {
10491
10496
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10492
- "line": 1019,
10497
+ "line": 1015,
10493
10498
  "description": "Deserializes the value of a query parameter based on a default type",
10494
10499
  "access": "private",
10495
10500
  "tagname": "",
@@ -10512,7 +10517,7 @@
10512
10517
  },
10513
10518
  {
10514
10519
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10515
- "line": 1040,
10520
+ "line": 1036,
10516
10521
  "description": "Removes (prunes) any query params with default values from the given QP\nobject. Default values are determined from the QP meta information per key.",
10517
10522
  "access": "private",
10518
10523
  "tagname": "",
@@ -10539,7 +10544,7 @@
10539
10544
  },
10540
10545
  {
10541
10546
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10542
- "line": 1121,
10547
+ "line": 1117,
10543
10548
  "description": "Prepares the query params for a URL or Transition. Restores any undefined QP\nkeys/values, serializes all values, and then prunes any default values.",
10544
10549
  "access": "private",
10545
10550
  "tagname": "",
@@ -10576,7 +10581,7 @@
10576
10581
  },
10577
10582
  {
10578
10583
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10579
- "line": 1148,
10584
+ "line": 1144,
10580
10585
  "description": "Returns the meta information for the query params of a given route. This\nwill be overridden to allow support for lazy routes.",
10581
10586
  "access": "private",
10582
10587
  "tagname": "",
@@ -10598,7 +10603,7 @@
10598
10603
  },
10599
10604
  {
10600
10605
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10601
- "line": 1162,
10606
+ "line": 1158,
10602
10607
  "description": "Returns a merged query params meta object for a given set of routeInfos.\nUseful for knowing what query params are available for a given route hierarchy.",
10603
10608
  "access": "private",
10604
10609
  "tagname": "",
@@ -10620,7 +10625,7 @@
10620
10625
  },
10621
10626
  {
10622
10627
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10623
- "line": 1224,
10628
+ "line": 1220,
10624
10629
  "description": "Maps all query param keys to their fully scoped property name of the form\n`controllerName:propName`.",
10625
10630
  "access": "private",
10626
10631
  "tagname": "",
@@ -10652,7 +10657,7 @@
10652
10657
  },
10653
10658
  {
10654
10659
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10655
- "line": 1262,
10660
+ "line": 1258,
10656
10661
  "description": "Hydrates (adds/restores) any query params that have pre-existing values into\nthe given queryParams hash. This is what allows query params to be \"sticky\"\nand restore their last known values for their scope.",
10657
10662
  "access": "private",
10658
10663
  "tagname": "",
@@ -10679,7 +10684,7 @@
10679
10684
  },
10680
10685
  {
10681
10686
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10682
- "line": 1433,
10687
+ "line": 1429,
10683
10688
  "description": "Handles updating the paths and notifying any listeners of the URL\nchange.\n\nTriggers the router level `didTransition` hook.\n\nFor example, to notify google analytics when the route changes,\nyou could use this hook. (Note: requires also including GA scripts, etc.)\n\n```javascript\nimport config from './config/environment';\nimport EmberRouter from '@ember/routing/router';\nimport { service } from '@ember/service';\n\nlet Router = EmberRouter.extend({\n location: config.locationType,\n\n router: service(),\n\n didTransition: function() {\n this._super(...arguments);\n\n ga('send', 'pageview', {\n page: this.router.currentURL,\n title: this.router.currentRouteName,\n });\n }\n});\n```",
10684
10689
  "itemtype": "method",
10685
10690
  "name": "didTransition",
@@ -10691,7 +10696,7 @@
10691
10696
  },
10692
10697
  {
10693
10698
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10694
- "line": 1470,
10699
+ "line": 1466,
10695
10700
  "description": "Handles notifying any listeners of an impending URL\nchange.\n\nTriggers the router level `willTransition` hook.",
10696
10701
  "itemtype": "method",
10697
10702
  "name": "willTransition",
@@ -10703,7 +10708,7 @@
10703
10708
  },
10704
10709
  {
10705
10710
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10706
- "line": 1483,
10711
+ "line": 1479,
10707
10712
  "description": "Represents the current URL.",
10708
10713
  "itemtype": "property",
10709
10714
  "name": "url",
@@ -10715,7 +10720,7 @@
10715
10720
  },
10716
10721
  {
10717
10722
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10718
- "line": 1650,
10723
+ "line": 1646,
10719
10724
  "description": "Finds the name of the substate route if it exists for the given route. A\nsubstate route is of the form `route_state`, such as `foo_loading`.",
10720
10725
  "access": "private",
10721
10726
  "tagname": "",
@@ -10740,7 +10745,7 @@
10740
10745
  },
10741
10746
  {
10742
10747
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10743
- "line": 1671,
10748
+ "line": 1667,
10744
10749
  "description": "Finds the name of the state route if it exists for the given route. A state\nroute is of the form `route.state`, such as `foo.loading`. Properly Handles\n`application` named routes.",
10745
10750
  "access": "private",
10746
10751
  "tagname": "",
@@ -10765,7 +10770,7 @@
10765
10770
  },
10766
10771
  {
10767
10772
  "file": "packages/@ember/-internals/routing/lib/system/router.ts",
10768
- "line": 1693,
10773
+ "line": 1689,
10769
10774
  "description": "Determines whether or not a route has been defined by checking that the route\nis in the Router's map and the owner has a registration for that route.",
10770
10775
  "access": "private",
10771
10776
  "tagname": "",
@@ -11060,7 +11065,7 @@
11060
11065
  },
11061
11066
  {
11062
11067
  "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
11063
- "line": 71,
11068
+ "line": 72,
11064
11069
  "description": "The object whose properties will be forwarded.",
11065
11070
  "itemtype": "property",
11066
11071
  "name": "content",
@@ -11074,7 +11079,7 @@
11074
11079
  },
11075
11080
  {
11076
11081
  "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
11077
- "line": 93,
11082
+ "line": 94,
11078
11083
  "description": "The object whose properties will be forwarded.",
11079
11084
  "itemtype": "property",
11080
11085
  "name": "content",
@@ -12313,13 +12318,13 @@
12313
12318
  },
12314
12319
  {
12315
12320
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
12316
- "line": 26,
12321
+ "line": 27,
12317
12322
  "class": "ContainerProxyMixin",
12318
12323
  "module": "ember"
12319
12324
  },
12320
12325
  {
12321
12326
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
12322
- "line": 30,
12327
+ "line": 31,
12323
12328
  "description": "The container stores state.",
12324
12329
  "access": "private",
12325
12330
  "tagname": "",
@@ -12331,7 +12336,7 @@
12331
12336
  },
12332
12337
  {
12333
12338
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
12334
- "line": 38,
12339
+ "line": 39,
12335
12340
  "description": "Returns an object that can be used to provide an owner to a\nmanually created instance.\n\nExample:\n\n```\nimport { getOwner } from '@ember/application';\n\nlet owner = getOwner(this);\n\nUser.create(\n owner.ownerInjection(),\n { username: 'rwjblue' }\n)\n```",
12336
12341
  "access": "public",
12337
12342
  "tagname": "",
@@ -12347,7 +12352,7 @@
12347
12352
  },
12348
12353
  {
12349
12354
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
12350
- "line": 64,
12355
+ "line": 65,
12351
12356
  "description": "Given a fullName return a corresponding instance.\n\nThe default behavior is for lookup to return a singleton instance.\nThe singleton is scoped to the container, allowing multiple containers\nto all have their own locally scoped singletons.\n\n```javascript\nlet registry = new Registry();\nlet container = registry.container();\n\nregistry.register('api:twitter', Twitter);\n\nlet twitter = container.lookup('api:twitter');\n\ntwitter instanceof Twitter; // => true\n\n// by default the container will return singletons\nlet twitter2 = container.lookup('api:twitter');\ntwitter2 instanceof Twitter; // => true\n\ntwitter === twitter2; //=> true\n```\n\nIf singletons are not wanted an optional flag can be provided at lookup.\n\n```javascript\nlet registry = new Registry();\nlet container = registry.container();\n\nregistry.register('api:twitter', Twitter);\n\nlet twitter = container.lookup('api:twitter', { singleton: false });\nlet twitter2 = container.lookup('api:twitter', { singleton: false });\n\ntwitter === twitter2; //=> false\n```",
12352
12357
  "access": "public",
12353
12358
  "tagname": "",
@@ -12374,7 +12379,7 @@
12374
12379
  },
12375
12380
  {
12376
12381
  "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
12377
- "line": 125,
12382
+ "line": 126,
12378
12383
  "description": "Given a fullName return a factory manager.\n\n This method returns a manager which can be used for introspection of the\n factory's class or for the creation of factory instances with initial\n properties. The manager is an object with the following properties:\n\n * `class` - The registered or resolved class.\n * `create` - A function that will create an instance of the class with\n any dependencies injected.\n\n For example:\n\n ```javascript\n import { getOwner } from '@ember/application';\n\n let owner = getOwner(otherInstance);\n // the owner is commonly the `applicationInstance`, and can be accessed via\n // an instance initializer.\n\n let factory = owner.factoryFor('service:bespoke');\n\n factory.class;\n // The registered or resolved class. For example when used with an Ember-CLI\n // app, this would be the default export from `app/services/bespoke.js`.\n\n let instance = factory.create({\n someProperty: 'an initial property value'\n });\n // Create an instance with any injections and the passed options as\n // initial properties.\n ```\n\n Any instances created via the factory's `.create()` method *must* be destroyed\n manually by the caller of `.create()`. Typically, this is done during the creating\n objects own `destroy` or `willDestroy` methods.",
12379
12384
  "access": "public",
12380
12385
  "tagname": "",
@@ -13403,67 +13408,67 @@
13403
13408
  },
13404
13409
  {
13405
13410
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13406
- "line": 134,
13411
+ "line": 128,
13407
13412
  "class": "ArrayProxy",
13408
13413
  "module": "@ember/array"
13409
13414
  },
13410
13415
  {
13411
13416
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13412
- "line": 136,
13417
+ "line": 130,
13413
13418
  "class": "ArrayProxy",
13414
13419
  "module": "@ember/array"
13415
13420
  },
13416
13421
  {
13417
13422
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13418
- "line": 139,
13423
+ "line": 133,
13419
13424
  "class": "ArrayProxy",
13420
13425
  "module": "@ember/array"
13421
13426
  },
13422
13427
  {
13423
13428
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13424
- "line": 141,
13429
+ "line": 135,
13425
13430
  "class": "ArrayProxy",
13426
13431
  "module": "@ember/array"
13427
13432
  },
13428
13433
  {
13429
13434
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13430
- "line": 144,
13435
+ "line": 138,
13431
13436
  "class": "ArrayProxy",
13432
13437
  "module": "@ember/array"
13433
13438
  },
13434
13439
  {
13435
13440
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13436
- "line": 146,
13441
+ "line": 140,
13437
13442
  "class": "ArrayProxy",
13438
13443
  "module": "@ember/array"
13439
13444
  },
13440
13445
  {
13441
13446
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13442
- "line": 148,
13447
+ "line": 142,
13443
13448
  "class": "ArrayProxy",
13444
13449
  "module": "@ember/array"
13445
13450
  },
13446
13451
  {
13447
13452
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13448
- "line": 150,
13453
+ "line": 144,
13449
13454
  "class": "ArrayProxy",
13450
13455
  "module": "@ember/array"
13451
13456
  },
13452
13457
  {
13453
13458
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13454
- "line": 152,
13459
+ "line": 146,
13455
13460
  "class": "ArrayProxy",
13456
13461
  "module": "@ember/array"
13457
13462
  },
13458
13463
  {
13459
13464
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13460
- "line": 154,
13465
+ "line": 148,
13461
13466
  "class": "ArrayProxy",
13462
13467
  "module": "@ember/array"
13463
13468
  },
13464
13469
  {
13465
13470
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13466
- "line": 171,
13471
+ "line": 165,
13467
13472
  "description": "The content array. Must be an object that implements `Array` and/or\n`MutableArray.`",
13468
13473
  "itemtype": "property",
13469
13474
  "name": "content",
@@ -13475,7 +13480,7 @@
13475
13480
  },
13476
13481
  {
13477
13482
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13478
- "line": 183,
13483
+ "line": 177,
13479
13484
  "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`.",
13480
13485
  "itemtype": "method",
13481
13486
  "name": "objectAtContent",
@@ -13497,7 +13502,7 @@
13497
13502
  },
13498
13503
  {
13499
13504
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13500
- "line": 211,
13505
+ "line": 205,
13501
13506
  "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`.",
13502
13507
  "itemtype": "method",
13503
13508
  "name": "replaceContent",
@@ -13529,7 +13534,7 @@
13529
13534
  },
13530
13535
  {
13531
13536
  "file": "packages/@ember/-internals/runtime/lib/system/array_proxy.ts",
13532
- "line": 394,
13537
+ "line": 388,
13533
13538
  "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.",
13534
13539
  "itemtype": "property",
13535
13540
  "name": "arrangedContent",
@@ -13540,13 +13545,13 @@
13540
13545
  },
13541
13546
  {
13542
13547
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13543
- "line": 236,
13548
+ "line": 235,
13544
13549
  "class": "CoreObject",
13545
13550
  "module": "@ember/object"
13546
13551
  },
13547
13552
  {
13548
13553
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13549
- "line": 320,
13554
+ "line": 319,
13550
13555
  "description": "An overridable method called when objects are instantiated. By default,\ndoes nothing unless it is overridden during class definition.\n\nExample:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend({\n init() {\n alert(`Name is ${this.get('name')}`);\n }\n});\n\nlet steve = Person.create({\n name: 'Steve'\n});\n\n// alerts 'Name is Steve'.\n```\n\nNOTE: If you do override `init` for a framework class like `Component`\nfrom `@ember/component`, be sure to call `this._super(...arguments)`\nin your `init` declaration!\nIf you don't, Ember may not have an opportunity to\ndo important setup work, and you'll see strange behavior in your\napplication.",
13551
13556
  "itemtype": "method",
13552
13557
  "name": "init",
@@ -13557,7 +13562,7 @@
13557
13562
  },
13558
13563
  {
13559
13564
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13560
- "line": 354,
13565
+ "line": 353,
13561
13566
  "description": "Defines the properties that will be concatenated from the superclass\n(instead of overridden).\n\nBy default, when you extend an Ember class a property defined in\nthe subclass overrides a property with the same name that is defined\nin the superclass. However, there are some cases where it is preferable\nto build up a property's value by combining the superclass' property\nvalue with the subclass' value. An example of this in use within Ember\nis the `classNames` property of `Component` from `@ember/component`.\n\nHere is some sample code showing the difference between a concatenated\nproperty and a normal one:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Bar = EmberObject.extend({\n // Configure which properties to concatenate\n concatenatedProperties: ['concatenatedProperty'],\n\n someNonConcatenatedProperty: ['bar'],\n concatenatedProperty: ['bar']\n});\n\nconst FooBar = Bar.extend({\n someNonConcatenatedProperty: ['foo'],\n concatenatedProperty: ['foo']\n});\n\nlet fooBar = FooBar.create();\nfooBar.get('someNonConcatenatedProperty'); // ['foo']\nfooBar.get('concatenatedProperty'); // ['bar', 'foo']\n```\n\nThis behavior extends to object creation as well. Continuing the\nabove example:\n\n```javascript\nlet fooBar = FooBar.create({\n someNonConcatenatedProperty: ['baz'],\n concatenatedProperty: ['baz']\n})\nfooBar.get('someNonConcatenatedProperty'); // ['baz']\nfooBar.get('concatenatedProperty'); // ['bar', 'foo', 'baz']\n```\n\nAdding a single property that is not an array will just add it in the array:\n\n```javascript\nlet fooBar = FooBar.create({\n concatenatedProperty: 'baz'\n})\nview.get('concatenatedProperty'); // ['bar', 'foo', 'baz']\n```\n\nUsing the `concatenatedProperties` property, we can tell Ember to mix the\ncontent of the properties.\n\nIn `Component` the `classNames`, `classNameBindings` and\n`attributeBindings` properties are concatenated.\n\nThis feature is available for you to use throughout the Ember object model,\nalthough typical app developers are likely to use it infrequently. Since\nit changes expectations about behavior of properties, you should properly\ndocument its usage in each individual concatenated property (to not\nmislead your users to think they can override the property in a subclass).",
13562
13567
  "itemtype": "property",
13563
13568
  "name": "concatenatedProperties",
@@ -13570,7 +13575,7 @@
13570
13575
  },
13571
13576
  {
13572
13577
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13573
- "line": 428,
13578
+ "line": 427,
13574
13579
  "description": "Defines the properties that will be merged from the superclass\n(instead of overridden).\n\nBy default, when you extend an Ember class a property defined in\nthe subclass overrides a property with the same name that is defined\nin the superclass. However, there are some cases where it is preferable\nto build up a property's value by merging the superclass property value\nwith the subclass property's value. An example of this in use within Ember\nis the `queryParams` property of routes.\n\nHere is some sample code showing the difference between a merged\nproperty and a normal one:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Bar = EmberObject.extend({\n // Configure which properties are to be merged\n mergedProperties: ['mergedProperty'],\n\n someNonMergedProperty: {\n nonMerged: 'superclass value of nonMerged'\n },\n mergedProperty: {\n page: { replace: false },\n limit: { replace: true }\n }\n});\n\nconst FooBar = Bar.extend({\n someNonMergedProperty: {\n completelyNonMerged: 'subclass value of nonMerged'\n },\n mergedProperty: {\n limit: { replace: false }\n }\n});\n\nlet fooBar = FooBar.create();\n\nfooBar.get('someNonMergedProperty');\n// => { completelyNonMerged: 'subclass value of nonMerged' }\n//\n// Note the entire object, including the nonMerged property of\n// the superclass object, has been replaced\n\nfooBar.get('mergedProperty');\n// => {\n// page: {replace: false},\n// limit: {replace: false}\n// }\n//\n// Note the page remains from the superclass, and the\n// `limit` property's value of `false` has been merged from\n// the subclass.\n```\n\nThis behavior is not available during object `create` calls. It is only\navailable at `extend` time.\n\nIn `Route` the `queryParams` property is merged.\n\nThis feature is available for you to use throughout the Ember object model,\nalthough typical app developers are likely to use it infrequently. Since\nit changes expectations about behavior of properties, you should properly\ndocument its usage in each individual merged property (to not\nmislead your users to think they can override the property in a subclass).",
13575
13580
  "itemtype": "property",
13576
13581
  "name": "mergedProperties",
@@ -13583,7 +13588,7 @@
13583
13588
  },
13584
13589
  {
13585
13590
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13586
- "line": 503,
13591
+ "line": 502,
13587
13592
  "description": "Destroyed object property flag.\n\nif this property is `true` the observers and bindings were already\nremoved by the effect of calling the `destroy()` method.",
13588
13593
  "itemtype": "property",
13589
13594
  "name": "isDestroyed",
@@ -13595,7 +13600,7 @@
13595
13600
  },
13596
13601
  {
13597
13602
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13598
- "line": 521,
13603
+ "line": 520,
13599
13604
  "description": "Destruction scheduled flag. The `destroy()` method has been called.\n\nThe object stays intact until the end of the run loop at which point\nthe `isDestroyed` flag is set.",
13600
13605
  "itemtype": "property",
13601
13606
  "name": "isDestroying",
@@ -13607,7 +13612,7 @@
13607
13612
  },
13608
13613
  {
13609
13614
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13610
- "line": 539,
13615
+ "line": 538,
13611
13616
  "description": "Destroys an object by setting the `isDestroyed` flag and removing its\nmetadata, which effectively destroys observers and bindings.\n\nIf you try to set a property on a destroyed object, an exception will be\nraised.\n\nNote that destruction is scheduled for the end of the run loop and does not\nhappen immediately. It will set an isDestroying flag immediately.",
13612
13617
  "itemtype": "method",
13613
13618
  "name": "destroy",
@@ -13622,7 +13627,7 @@
13622
13627
  },
13623
13628
  {
13624
13629
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13625
- "line": 566,
13630
+ "line": 565,
13626
13631
  "description": "Override to implement teardown.",
13627
13632
  "itemtype": "method",
13628
13633
  "name": "willDestroy",
@@ -13633,7 +13638,7 @@
13633
13638
  },
13634
13639
  {
13635
13640
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13636
- "line": 574,
13641
+ "line": 573,
13637
13642
  "description": "Returns a string representation which attempts to provide more information\nthan Javascript's `toString` typically does, in a generic way for all Ember\nobjects.\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend();\nperson = Person.create();\nperson.toString(); //=> \"<Person:ember1024>\"\n```\n\nIf the object's class is not defined on an Ember namespace, it will\nindicate it is a subclass of the registered superclass:\n\n```javascript\nconst Student = Person.extend();\nlet student = Student.create();\nstudent.toString(); //=> \"<(subclass of Person):ember1025>\"\n```\n\nIf the method `toStringExtension` is defined, its return value will be\nincluded in the output.\n\n```javascript\nconst Teacher = Person.extend({\n toStringExtension() {\n return this.get('fullName');\n }\n});\nteacher = Teacher.create();\nteacher.toString(); //=> \"<Teacher:ember1026:Tom Dale>\"\n```",
13638
13643
  "itemtype": "method",
13639
13644
  "name": "toString",
@@ -13648,7 +13653,7 @@
13648
13653
  },
13649
13654
  {
13650
13655
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13651
- "line": 619,
13656
+ "line": 618,
13652
13657
  "description": "Creates a new subclass.\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend({\n say(thing) {\n alert(thing);\n }\n});\n```\n\nThis defines a new subclass of EmberObject: `Person`. It contains one method: `say()`.\n\nYou can also create a subclass from any existing class by calling its `extend()` method.\nFor example, you might want to create a subclass of Ember's built-in `Component` class:\n\n```javascript\nimport Component from '@ember/component';\n\nconst PersonComponent = Component.extend({\n tagName: 'li',\n classNameBindings: ['isAdministrator']\n});\n```\n\nWhen defining a subclass, you can override methods but still access the\nimplementation of your parent class by calling the special `_super()` method:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend({\n say(thing) {\n let name = this.get('name');\n alert(`${name} says: ${thing}`);\n }\n});\n\nconst Soldier = Person.extend({\n say(thing) {\n this._super(`${thing}, sir!`);\n },\n march(numberOfHours) {\n alert(`${this.get('name')} marches for ${numberOfHours} hours.`);\n }\n});\n\nlet yehuda = Soldier.create({\n name: 'Yehuda Katz'\n});\n\nyehuda.say('Yes'); // alerts \"Yehuda Katz says: Yes, sir!\"\n```\n\nThe `create()` on line #17 creates an *instance* of the `Soldier` class.\nThe `extend()` on line #8 creates a *subclass* of `Person`. Any instance\nof the `Person` class will *not* have the `march()` method.\n\nYou can also pass `Mixin` classes to add additional properties to the subclass.\n\n```javascript\nimport EmberObject from '@ember/object';\nimport Mixin from '@ember/object/mixin';\n\nconst Person = EmberObject.extend({\n say(thing) {\n alert(`${this.get('name')} says: ${thing}`);\n }\n});\n\nconst SingingMixin = Mixin.create({\n sing(thing) {\n alert(`${this.get('name')} sings: la la la ${thing}`);\n }\n});\n\nconst BroadwayStar = Person.extend(SingingMixin, {\n dance() {\n alert(`${this.get('name')} dances: tap tap tap tap `);\n }\n});\n```\n\nThe `BroadwayStar` class contains three methods: `say()`, `sing()`, and `dance()`.",
13653
13658
  "itemtype": "method",
13654
13659
  "name": "extend",
@@ -13676,7 +13681,7 @@
13676
13681
  },
13677
13682
  {
13678
13683
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13679
- "line": 723,
13684
+ "line": 722,
13680
13685
  "description": "Creates an instance of a class. Accepts either no arguments, or an object\ncontaining values to initialize the newly instantiated object with.\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend({\n helloWorld() {\n alert(`Hi, my name is ${this.get('name')}`);\n }\n});\n\nlet tom = Person.create({\n name: 'Tom Dale'\n});\n\ntom.helloWorld(); // alerts \"Hi, my name is Tom Dale\".\n```\n\n`create` will call the `init` function if defined during\n`AnyObject.extend`\n\nIf no arguments are passed to `create`, it will not set values to the new\ninstance during initialization:\n\n```javascript\nlet noName = Person.create();\nnoName.helloWorld(); // alerts undefined\n```\n\nNOTE: For performance reasons, you cannot declare methods or computed\nproperties during `create`. You should instead declare methods and computed\nproperties when using `extend`.",
13681
13686
  "itemtype": "method",
13682
13687
  "name": "create",
@@ -13696,7 +13701,7 @@
13696
13701
  },
13697
13702
  {
13698
13703
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13699
- "line": 788,
13704
+ "line": 787,
13700
13705
  "description": "Augments a constructor's prototype with additional\nproperties and functions:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst MyObject = EmberObject.extend({\n name: 'an object'\n});\n\no = MyObject.create();\no.get('name'); // 'an object'\n\nMyObject.reopen({\n say(msg) {\n console.log(msg);\n }\n});\n\no2 = MyObject.create();\no2.say('hello'); // logs \"hello\"\n\no.say('goodbye'); // logs \"goodbye\"\n```\n\nTo add functions and properties to the constructor itself,\nsee `reopenClass`",
13701
13706
  "itemtype": "method",
13702
13707
  "name": "reopen",
@@ -13708,7 +13713,7 @@
13708
13713
  },
13709
13714
  {
13710
13715
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13711
- "line": 842,
13716
+ "line": 841,
13712
13717
  "description": "Augments a constructor's own properties and functions:\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst MyObject = EmberObject.extend({\n name: 'an object'\n});\n\nMyObject.reopenClass({\n canBuild: false\n});\n\nMyObject.canBuild; // false\no = MyObject.create();\n```\n\nIn other words, this creates static properties and functions for the class.\nThese are only available on the class and not on any instance of that class.\n\n```javascript\nimport EmberObject from '@ember/object';\n\nconst Person = EmberObject.extend({\n name: '',\n sayHello() {\n alert(`Hello. My name is ${this.get('name')}`);\n }\n});\n\nPerson.reopenClass({\n species: 'Homo sapiens',\n\n createPerson(name) {\n return Person.create({ name });\n }\n});\n\nlet tom = Person.create({\n name: 'Tom Dale'\n});\nlet yehuda = Person.createPerson('Yehuda Katz');\n\ntom.sayHello(); // \"Hello. My name is Tom Dale\"\nyehuda.sayHello(); // \"Hello. My name is Yehuda Katz\"\nalert(Person.species); // \"Homo sapiens\"\n```\n\nNote that `species` and `createPerson` are *not* valid on the `tom` and `yehuda`\nvariables. They are only valid on `Person`.\n\nTo add functions and properties to instances of\na constructor by extending the constructor's prototype\nsee `reopen`",
13713
13718
  "itemtype": "method",
13714
13719
  "name": "reopenClass",
@@ -13720,7 +13725,7 @@
13720
13725
  },
13721
13726
  {
13722
13727
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13723
- "line": 925,
13728
+ "line": 924,
13724
13729
  "description": "In some cases, you may want to annotate computed properties with additional\nmetadata about how they function or what values they operate on. For\nexample, computed property functions may close over variables that are then\nno longer available for introspection.\n\nYou can pass a hash of these values to a computed property like this:\n\n```javascript\nimport { computed } from '@ember/object';\n\nperson: computed(function() {\n let personId = this.get('personId');\n return Person.create({ id: personId });\n}).meta({ type: Person })\n```\n\nOnce you've done this, you can retrieve the values saved to the computed\nproperty from your class like this:\n\n```javascript\nMyClass.metaForProperty('person');\n```\n\nThis will return the original hash that was passed to `meta()`.",
13725
13730
  "static": 1,
13726
13731
  "itemtype": "method",
@@ -13739,7 +13744,7 @@
13739
13744
  },
13740
13745
  {
13741
13746
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13742
- "line": 968,
13747
+ "line": 967,
13743
13748
  "description": "Iterate over each computed property for the class, passing its name\nand any associated metadata (see `metaForProperty`) to the callback.",
13744
13749
  "static": 1,
13745
13750
  "itemtype": "method",
@@ -13763,7 +13768,7 @@
13763
13768
  },
13764
13769
  {
13765
13770
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13766
- "line": 1060,
13771
+ "line": 1059,
13767
13772
  "description": "Provides lookup-time type validation for injected properties.",
13768
13773
  "access": "private",
13769
13774
  "tagname": "",
@@ -13774,7 +13779,7 @@
13774
13779
  },
13775
13780
  {
13776
13781
  "file": "packages/@ember/-internals/runtime/lib/system/core_object.ts",
13777
- "line": 1081,
13782
+ "line": 1080,
13778
13783
  "description": "Returns a hash of property names and container names that injected\nproperties will lookup on the container lazily.",
13779
13784
  "itemtype": "method",
13780
13785
  "name": "_lazyInjections",
@@ -13789,7 +13794,7 @@
13789
13794
  },
13790
13795
  {
13791
13796
  "file": "packages/@ember/-internals/runtime/lib/compare.ts",
13792
- "line": 51,
13797
+ "line": 52,
13793
13798
  "description": "Compares two javascript values and returns:\n\n - -1 if the first is smaller than the second,\n - 0 if both are equal,\n - 1 if the first is greater than the second.\n\n ```javascript\n import { compare } from '@ember/utils';\n\n compare('hello', 'hello'); // 0\n compare('abc', 'dfg'); // -1\n compare(2, 1); // 1\n ```\n\nIf the types of the two objects are different precedence occurs in the\nfollowing order, with types earlier in the list considered `<` types\nlater in the list:\n\n - undefined\n - null\n - boolean\n - number\n - string\n - array\n - object\n - instance\n - function\n - class\n - date\n\n ```javascript\n import { compare } from '@ember/utils';\n\n compare('hello', 50); // 1\n compare(50, 'hello'); // -1\n ```",
13794
13799
  "itemtype": "method",
13795
13800
  "name": "compare",
@@ -14539,7 +14544,7 @@
14539
14544
  },
14540
14545
  {
14541
14546
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14542
- "line": 35,
14547
+ "line": 36,
14543
14548
  "access": "private",
14544
14549
  "tagname": "",
14545
14550
  "itemtype": "method",
@@ -14556,7 +14561,7 @@
14556
14561
  },
14557
14562
  {
14558
14563
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14559
- "line": 57,
14564
+ "line": 58,
14560
14565
  "access": "private",
14561
14566
  "tagname": "",
14562
14567
  "itemtype": "method",
@@ -14573,7 +14578,7 @@
14573
14578
  },
14574
14579
  {
14575
14580
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14576
- "line": 77,
14581
+ "line": 78,
14577
14582
  "access": "private",
14578
14583
  "tagname": "",
14579
14584
  "itemtype": "method",
@@ -14590,7 +14595,7 @@
14590
14595
  },
14591
14596
  {
14592
14597
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14593
- "line": 109,
14598
+ "line": 110,
14594
14599
  "access": "private",
14595
14600
  "tagname": "",
14596
14601
  "itemtype": "method",
@@ -14607,7 +14612,7 @@
14607
14612
  },
14608
14613
  {
14609
14614
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14610
- "line": 152,
14615
+ "line": 153,
14611
14616
  "access": "private",
14612
14617
  "tagname": "",
14613
14618
  "itemtype": "method",
@@ -14624,7 +14629,7 @@
14624
14629
  },
14625
14630
  {
14626
14631
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14627
- "line": 161,
14632
+ "line": 162,
14628
14633
  "access": "private",
14629
14634
  "tagname": "",
14630
14635
  "itemtype": "method",
@@ -14641,7 +14646,7 @@
14641
14646
  },
14642
14647
  {
14643
14648
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14644
- "line": 176,
14649
+ "line": 177,
14645
14650
  "description": "`getViewClientRects` provides information about the position of the border\nbox edges of a view relative to the viewport.\n\nIt is only intended to be used by development tools like the Ember Inspector\nand may not work on older browsers.",
14646
14651
  "access": "private",
14647
14652
  "tagname": "",
@@ -14659,7 +14664,7 @@
14659
14664
  },
14660
14665
  {
14661
14666
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14662
- "line": 192,
14667
+ "line": 193,
14663
14668
  "description": "`getViewBoundingClientRect` provides information about the position of the\nbounding border box edges of a view relative to the viewport.\n\nIt is only intended to be used by development tools like the Ember Inspector\nand may not work on older browsers.",
14664
14669
  "access": "private",
14665
14670
  "tagname": "",
@@ -14677,7 +14682,7 @@
14677
14682
  },
14678
14683
  {
14679
14684
  "file": "packages/@ember/-internals/views/lib/system/utils.ts",
14680
- "line": 208,
14685
+ "line": 209,
14681
14686
  "description": "Determines if the element matches the specified selector.",
14682
14687
  "access": "private",
14683
14688
  "tagname": "",
@@ -14700,7 +14705,7 @@
14700
14705
  },
14701
14706
  {
14702
14707
  "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
14703
- "line": 35,
14708
+ "line": 36,
14704
14709
  "description": "If the view is currently inserted into the DOM of a parent view, this\nproperty will point to the parent of the view.",
14705
14710
  "itemtype": "property",
14706
14711
  "name": "parentView",
@@ -14714,7 +14719,7 @@
14714
14719
  },
14715
14720
  {
14716
14721
  "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
14717
- "line": 74,
14722
+ "line": 75,
14718
14723
  "description": "Override the default event firing from `Evented` to\nalso call methods with the given name.",
14719
14724
  "itemtype": "method",
14720
14725
  "name": "trigger",
@@ -14733,7 +14738,7 @@
14733
14738
  },
14734
14739
  {
14735
14740
  "file": "packages/@ember/application/lib/application.ts",
14736
- "line": 186,
14741
+ "line": 188,
14737
14742
  "description": "This creates a registry with the default Ember naming conventions.\n\nIt also configures the registry:\n\n* registered views are created every time they are looked up (they are\n not singletons)\n* registered templates are not factories; the registered value is\n returned directly.\n* the router receives the application as its `namespace` property\n* all controllers receive the router as their `target` and `controllers`\n properties\n* all controllers receive the application as their `namespace` property\n* the application view receives the application controller as its\n `controller` property\n* the application view receives the application template as its\n `defaultTemplate` property",
14738
14743
  "itemtype": "method",
14739
14744
  "name": "buildRegistry",
@@ -14756,7 +14761,7 @@
14756
14761
  },
14757
14762
  {
14758
14763
  "file": "packages/@ember/application/lib/application.ts",
14759
- "line": 221,
14764
+ "line": 223,
14760
14765
  "description": "The root DOM element of the Application. This can be specified as an\nelement or a [selector string](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors#reference_table_of_selectors).\n\nThis is the element that will be passed to the Application's,\n`eventDispatcher`, which sets up the listeners for event delegation. Every\nview in your application should be a child of the element you specify here.",
14761
14766
  "itemtype": "property",
14762
14767
  "name": "rootElement",
@@ -14769,7 +14774,7 @@
14769
14774
  },
14770
14775
  {
14771
14776
  "file": "packages/@ember/application/lib/application.ts",
14772
- "line": 236,
14777
+ "line": 238,
14773
14778
  "itemtype": "property",
14774
14779
  "name": "_document",
14775
14780
  "type": "Document | null",
@@ -14781,7 +14786,7 @@
14781
14786
  },
14782
14787
  {
14783
14788
  "file": "packages/@ember/application/lib/application.ts",
14784
- "line": 245,
14789
+ "line": 247,
14785
14790
  "description": "The `Ember.EventDispatcher` responsible for delegating events to this\napplication's views.\n\nThe event dispatcher is created by the application at initialization time\nand sets up event listeners on the DOM element described by the\napplication's `rootElement` property.\n\nSee the documentation for `Ember.EventDispatcher` for more information.",
14786
14791
  "itemtype": "property",
14787
14792
  "name": "eventDispatcher",
@@ -14794,7 +14799,7 @@
14794
14799
  },
14795
14800
  {
14796
14801
  "file": "packages/@ember/application/lib/application.ts",
14797
- "line": 262,
14802
+ "line": 264,
14798
14803
  "description": "The DOM events for which the event dispatcher should listen.\n\nBy default, the application's `Ember.EventDispatcher` listens\nfor a set of standard DOM events, such as `mousedown` and\n`keyup`, and delegates them to your application's `Ember.View`\ninstances.\n\nIf you would like additional bubbling events to be delegated to your\nviews, set your `Application`'s `customEvents` property\nto a hash containing the DOM event name as the key and the\ncorresponding view method name as the value. Setting an event to\na value of `null` will prevent a default event listener from being\nadded for that event.\n\nTo add new events to be listened to:\n\n```app/app.js\nimport Application from '@ember/application';\n\nlet App = Application.extend({\n customEvents: {\n // add support for the paste event\n paste: 'paste'\n }\n});\n```\n\nTo prevent default events from being listened to:\n\n```app/app.js\nimport Application from '@ember/application';\n\nlet App = Application.extend({\n customEvents: {\n // remove support for mouseenter / mouseleave events\n mouseenter: null,\n mouseleave: null\n }\n});\n```",
14799
14804
  "itemtype": "property",
14800
14805
  "name": "customEvents",
@@ -14807,7 +14812,7 @@
14807
14812
  },
14808
14813
  {
14809
14814
  "file": "packages/@ember/application/lib/application.ts",
14810
- "line": 310,
14815
+ "line": 312,
14811
14816
  "description": "Whether the application should automatically start routing and render\ntemplates to the `rootElement` on DOM ready. While default by true,\nother environments such as FastBoot or a testing harness can set this\nproperty to `false` and control the precise timing and behavior of the boot\nprocess.",
14812
14817
  "itemtype": "property",
14813
14818
  "name": "autoboot",
@@ -14820,7 +14825,7 @@
14820
14825
  },
14821
14826
  {
14822
14827
  "file": "packages/@ember/application/lib/application.ts",
14823
- "line": 324,
14828
+ "line": 326,
14824
14829
  "description": "Whether the application should be configured for the legacy \"globals mode\".\nUnder this mode, the Application object serves as a global namespace for all\nclasses.\n\n```javascript\nimport Application from '@ember/application';\nimport Component from '@ember/component';\n\nlet App = Application.create({\n ...\n});\n\nApp.Router.reopen({\n location: 'none'\n});\n\nApp.Router.map({\n ...\n});\n\nApp.MyComponent = Component.extend({\n ...\n});\n```\n\nThis flag also exposes other internal APIs that assumes the existence of\na special \"default instance\", like `App.__container__.lookup(...)`.\n\nThis option is currently not configurable, its value is derived from\nthe `autoboot` flag – disabling `autoboot` also implies opting-out of\nglobals mode support, although they are ultimately orthogonal concerns.\n\nSome of the global modes features are already deprecated in 1.x. The\nexistence of this flag is to untangle the globals mode code paths from\nthe autoboot code paths, so that these legacy features can be reviewed\nfor deprecation/removal separately.\n\nForcing the (autoboot=true, _globalsMode=false) here and running the tests\nwould reveal all the places where we are still relying on these legacy\nbehavior internally (mostly just tests).",
14825
14830
  "itemtype": "property",
14826
14831
  "name": "_globalsMode",
@@ -14833,7 +14838,7 @@
14833
14838
  },
14834
14839
  {
14835
14840
  "file": "packages/@ember/application/lib/application.ts",
14836
- "line": 373,
14841
+ "line": 375,
14837
14842
  "description": "An array of application instances created by `buildInstance()`. Used\ninternally to ensure that all instances get destroyed.",
14838
14843
  "itemtype": "property",
14839
14844
  "name": "_applicationInstances",
@@ -14845,7 +14850,7 @@
14845
14850
  },
14846
14851
  {
14847
14852
  "file": "packages/@ember/application/lib/application.ts",
14848
- "line": 423,
14853
+ "line": 425,
14849
14854
  "description": "Create an ApplicationInstance for this application.",
14850
14855
  "access": "public",
14851
14856
  "tagname": "",
@@ -14860,7 +14865,7 @@
14860
14865
  },
14861
14866
  {
14862
14867
  "file": "packages/@ember/application/lib/application.ts",
14863
- "line": 448,
14868
+ "line": 450,
14864
14869
  "description": "Start tracking an ApplicationInstance for this application.\nUsed when the ApplicationInstance is created.",
14865
14870
  "access": "private",
14866
14871
  "tagname": "",
@@ -14871,7 +14876,7 @@
14871
14876
  },
14872
14877
  {
14873
14878
  "file": "packages/@ember/application/lib/application.ts",
14874
- "line": 459,
14879
+ "line": 461,
14875
14880
  "description": "Stop tracking an ApplicationInstance for this application.\nUsed when the ApplicationInstance is about to be destroyed.",
14876
14881
  "access": "private",
14877
14882
  "tagname": "",
@@ -14882,7 +14887,7 @@
14882
14887
  },
14883
14888
  {
14884
14889
  "file": "packages/@ember/application/lib/application.ts",
14885
- "line": 472,
14890
+ "line": 474,
14886
14891
  "description": "Enable the legacy globals mode by allowing this application to act\nas a global namespace. See the docs on the `_globalsMode` property\nfor details.\n\nMost of these features are already deprecated in 1.x, so we can\nstop using them internally and try to remove them.",
14887
14892
  "access": "private",
14888
14893
  "tagname": "",
@@ -14893,7 +14898,7 @@
14893
14898
  },
14894
14899
  {
14895
14900
  "file": "packages/@ember/application/lib/application.ts",
14896
- "line": 519,
14901
+ "line": 521,
14897
14902
  "description": "Automatically kick-off the boot process for the application once the\nDOM has become ready.\n\nThe initialization itself is scheduled on the actions queue which\nensures that code-loading finishes before booting.\n\nIf you are asynchronously loading code, you should call `deferReadiness()`\nto defer booting, and then call `advanceReadiness()` once all of your code\nhas finished loading.",
14898
14903
  "access": "private",
14899
14904
  "tagname": "",
@@ -14904,7 +14909,7 @@
14904
14909
  },
14905
14910
  {
14906
14911
  "file": "packages/@ember/application/lib/application.ts",
14907
- "line": 559,
14912
+ "line": 561,
14908
14913
  "description": "This is the autoboot flow:\n\n1. Boot the app by calling `this.boot()`\n2. Create an instance (or use the `__deprecatedInstance__` in globals mode)\n3. Boot the instance by calling `instance.boot()`\n4. Invoke the `App.ready()` callback\n5. Kick-off routing on the instance\n\nIdeally, this is all we would need to do:\n\n```javascript\n_autoBoot() {\n this.boot().then(() => {\n let instance = (this._globalsMode) ? this.__deprecatedInstance__ : this.buildInstance();\n return instance.boot();\n }).then((instance) => {\n App.ready();\n instance.startRouting();\n });\n}\n```\n\nUnfortunately, we cannot actually write this because we need to participate\nin the \"synchronous\" boot process. While the code above would work fine on\nthe initial boot (i.e. DOM ready), when `App.reset()` is called, we need to\nboot a new instance synchronously (see the documentation on `_bootSync()`\nfor details).\n\nBecause of this restriction, the actual logic of this method is located\ninside `didBecomeReady()`.",
14909
14914
  "access": "private",
14910
14915
  "tagname": "",
@@ -14915,7 +14920,7 @@
14915
14920
  },
14916
14921
  {
14917
14922
  "file": "packages/@ember/application/lib/application.ts",
14918
- "line": 604,
14923
+ "line": 606,
14919
14924
  "description": "Use this to defer readiness until some condition is true.\n\nExample:\n\n```javascript\nimport Application from '@ember/application';\n\nlet App = Application.create();\n\nApp.deferReadiness();\n\nfetch('/auth-token')\n.then(response => response.json())\n.then(data => {\n App.token = data.token;\n App.advanceReadiness();\n});\n```\n\nThis allows you to perform asynchronous setup logic and defer\nbooting your application until the setup has finished.\n\nHowever, if the setup requires a loading UI, it might be better\nto use the router for this purpose.",
14920
14925
  "itemtype": "method",
14921
14926
  "name": "deferReadiness",
@@ -14926,7 +14931,7 @@
14926
14931
  },
14927
14932
  {
14928
14933
  "file": "packages/@ember/application/lib/application.ts",
14929
- "line": 654,
14934
+ "line": 656,
14930
14935
  "description": "Call `advanceReadiness` after any asynchronous setup logic has completed.\nEach call to `deferReadiness` must be matched by a call to `advanceReadiness`\nor the application will never become ready and routing will not begin.",
14931
14936
  "itemtype": "method",
14932
14937
  "name": "advanceReadiness",
@@ -14940,7 +14945,7 @@
14940
14945
  },
14941
14946
  {
14942
14947
  "file": "packages/@ember/application/lib/application.ts",
14943
- "line": 693,
14948
+ "line": 695,
14944
14949
  "description": "Initialize the application and return a promise that resolves with the `Application`\nobject when the boot process is complete.\n\nRun any application initializers and run the application load hook. These hooks may\nchoose to defer readiness. For example, an authentication hook might want to defer\nreadiness until the auth token has been retrieved.\n\nBy default, this method is called automatically on \"DOM ready\"; however, if autoboot\nis disabled, this is automatically called when the first application instance is\ncreated via `visit`.",
14945
14950
  "access": "public",
14946
14951
  "tagname": "",
@@ -14955,7 +14960,7 @@
14955
14960
  },
14956
14961
  {
14957
14962
  "file": "packages/@ember/application/lib/application.ts",
14958
- "line": 735,
14963
+ "line": 737,
14959
14964
  "description": "Unfortunately, a lot of existing code assumes the booting process is\n\"synchronous\". Specifically, a lot of tests assumes the last call to\n`app.advanceReadiness()` or `app.reset()` will result in the app being\nfully-booted when the current runloop completes.\n\nWe would like new code (like the `visit` API) to stop making this assumption,\nso we created the asynchronous version above that returns a promise. But until\nwe have migrated all the code, we would have to expose this method for use\n*internally* in places where we need to boot an app \"synchronously\".",
14960
14965
  "access": "private",
14961
14966
  "tagname": "",
@@ -14964,7 +14969,7 @@
14964
14969
  },
14965
14970
  {
14966
14971
  "file": "packages/@ember/application/lib/application.ts",
14967
- "line": 774,
14972
+ "line": 776,
14968
14973
  "description": "Reset the application. This is typically used only in tests. It cleans up\nthe application in the following order:\n\n1. Deactivate existing routes\n2. Destroy all objects in the container\n3. Create a new application container\n4. Re-route to the existing url\n\nTypical Example:\n\n```javascript\nimport Application from '@ember/application';\nlet App;\n\nrun(function() {\n App = Application.create();\n});\n\nmodule('acceptance test', {\n setup: function() {\n App.reset();\n }\n});\n\ntest('first test', function() {\n // App is freshly reset\n});\n\ntest('second test', function() {\n // App is again freshly reset\n});\n```\n\nAdvanced Example:\n\nOccasionally you may want to prevent the app from initializing during\nsetup. This could enable extra configuration, or enable asserting prior\nto the app becoming ready.\n\n```javascript\nimport Application from '@ember/application';\nlet App;\n\nrun(function() {\n App = Application.create();\n});\n\nmodule('acceptance test', {\n setup: function() {\n run(function() {\n App.reset();\n App.deferReadiness();\n });\n }\n});\n\ntest('first test', function() {\n ok(true, 'something before app is initialized');\n\n run(function() {\n App.advanceReadiness();\n });\n\n ok(true, 'something after app is initialized');\n});\n```",
14969
14974
  "itemtype": "method",
14970
14975
  "name": "reset",
@@ -14975,7 +14980,7 @@
14975
14980
  },
14976
14981
  {
14977
14982
  "file": "packages/@ember/application/lib/application.ts",
14978
- "line": 878,
14983
+ "line": 880,
14979
14984
  "access": "private",
14980
14985
  "tagname": "",
14981
14986
  "itemtype": "method",
@@ -14985,7 +14990,7 @@
14985
14990
  },
14986
14991
  {
14987
14992
  "file": "packages/@ember/application/lib/application.ts",
14988
- "line": 931,
14993
+ "line": 933,
14989
14994
  "description": "Called when the Application has become ready, immediately before routing\nbegins. The call will be delayed until the DOM has become ready.",
14990
14995
  "itemtype": "event",
14991
14996
  "name": "ready",
@@ -14996,7 +15001,7 @@
14996
15001
  },
14997
15002
  {
14998
15003
  "file": "packages/@ember/application/lib/application.ts",
14999
- "line": 956,
15004
+ "line": 958,
15000
15005
  "description": "Boot a new instance of `ApplicationInstance` for the current\napplication and navigate it to the given `url`. Returns a `Promise` that\nresolves with the instance when the initial routing and rendering is\ncomplete, or rejects with any error that occurred during the boot process.\n\nWhen `autoboot` is disabled, calling `visit` would first cause the\napplication to boot, which runs the application initializers.\n\nThis method also takes a hash of boot-time configuration options for\ncustomizing the instance's behavior. See the documentation on\n`ApplicationInstance.BootOptions` for details.\n\n`ApplicationInstance.BootOptions` is an interface class that exists\npurely to document the available options; you do not need to construct it\nmanually. Simply pass a regular JavaScript object containing of the\ndesired options:\n\n```javascript\nMyApp.visit(\"/\", { location: \"none\", rootElement: \"#container\" });\n```\n\n### Supported Scenarios\n\nWhile the `BootOptions` class exposes a large number of knobs, not all\ncombinations of them are valid; certain incompatible combinations might\nresult in unexpected behavior.\n\nFor example, booting the instance in the full browser environment\nwhile specifying a foreign `document` object (e.g. `{ isBrowser: true,\ndocument: iframe.contentDocument }`) does not work correctly today,\nlargely due to Ember's jQuery dependency.\n\nCurrently, there are three officially supported scenarios/configurations.\nUsages outside of these scenarios are not guaranteed to work, but please\nfeel free to file bug reports documenting your experience and any issues\nyou encountered to help expand support.\n\n#### Browser Applications (Manual Boot)\n\nThe setup is largely similar to how Ember works out-of-the-box. Normally,\nEmber will boot a default instance for your Application on \"DOM ready\".\nHowever, you can customize this behavior by disabling `autoboot`.\n\nFor example, this allows you to render a miniture demo of your application\ninto a specific area on your marketing website:\n\n```javascript\nimport MyApp from 'my-app';\n\n$(function() {\n let App = MyApp.create({ autoboot: false });\n\n let options = {\n // Override the router's location adapter to prevent it from updating\n // the URL in the address bar\n location: 'none',\n\n // Override the default `rootElement` on the app to render into a\n // specific `div` on the page\n rootElement: '#demo'\n };\n\n // Start the app at the special demo URL\n App.visit('/demo', options);\n});\n```\n\nOr perhaps you might want to boot two instances of your app on the same\npage for a split-screen multiplayer experience:\n\n```javascript\nimport MyApp from 'my-app';\n\n$(function() {\n let App = MyApp.create({ autoboot: false });\n\n let sessionId = MyApp.generateSessionID();\n\n let player1 = App.visit(`/matches/join?name=Player+1&session=${sessionId}`, { rootElement: '#left', location: 'none' });\n let player2 = App.visit(`/matches/join?name=Player+2&session=${sessionId}`, { rootElement: '#right', location: 'none' });\n\n Promise.all([player1, player2]).then(() => {\n // Both apps have completed the initial render\n $('#loading').fadeOut();\n });\n});\n```\n\nDo note that each app instance maintains their own registry/container, so\nthey will run in complete isolation by default.\n\n#### Server-Side Rendering (also known as FastBoot)\n\nThis setup allows you to run your Ember app in a server environment using\nNode.js and render its content into static HTML for SEO purposes.\n\n```javascript\nconst HTMLSerializer = new SimpleDOM.HTMLSerializer(SimpleDOM.voidMap);\n\nfunction renderURL(url) {\n let dom = new SimpleDOM.Document();\n let rootElement = dom.body;\n let options = { isBrowser: false, document: dom, rootElement: rootElement };\n\n return MyApp.visit(options).then(instance => {\n try {\n return HTMLSerializer.serialize(rootElement.firstChild);\n } finally {\n instance.destroy();\n }\n });\n}\n```\n\nIn this scenario, because Ember does not have access to a global `document`\nobject in the Node.js environment, you must provide one explicitly. In practice,\nin the non-browser environment, the stand-in `document` object only needs to\nimplement a limited subset of the full DOM API. The `SimpleDOM` library is known\nto work.\n\nSince there is no DOM access in the non-browser environment, you must also\nspecify a DOM `Element` object in the same `document` for the `rootElement` option\n(as opposed to a selector string like `\"body\"`).\n\nSee the documentation on the `isBrowser`, `document` and `rootElement` properties\non `ApplicationInstance.BootOptions` for details.\n\n#### Server-Side Resource Discovery\n\nThis setup allows you to run the routing layer of your Ember app in a server\nenvironment using Node.js and completely disable rendering. This allows you\nto simulate and discover the resources (i.e. AJAX requests) needed to fulfill\na given request and eagerly \"push\" these resources to the client.\n\n```app/initializers/network-service.js\nimport BrowserNetworkService from 'app/services/network/browser';\nimport NodeNetworkService from 'app/services/network/node';\n\n// Inject a (hypothetical) service for abstracting all AJAX calls and use\n// the appropriate implementation on the client/server. This also allows the\n// server to log all the AJAX calls made during a particular request and use\n// that for resource-discovery purpose.\n\nexport function initialize(application) {\n if (window) { // browser\n application.register('service:network', BrowserNetworkService);\n } else { // node\n application.register('service:network', NodeNetworkService);\n }\n};\n\nexport default {\n name: 'network-service',\n initialize: initialize\n};\n```\n\n```app/routes/post.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\n// An example of how the (hypothetical) service is used in routes.\n\nexport default class IndexRoute extends Route {\n @service network;\n\n model(params) {\n return this.network.fetch(`/api/posts/${params.post_id}.json`);\n }\n\n afterModel(post) {\n if (post.isExternalContent) {\n return this.network.fetch(`/api/external/?url=${post.externalURL}`);\n } else {\n return post;\n }\n }\n}\n```\n\n```javascript\n// Finally, put all the pieces together\n\nfunction discoverResourcesFor(url) {\n return MyApp.visit(url, { isBrowser: false, shouldRender: false }).then(instance => {\n let networkService = instance.lookup('service:network');\n return networkService.requests; // => { \"/api/posts/123.json\": \"...\" }\n });\n}\n```",
15001
15006
  "access": "public",
15002
15007
  "tagname": "",
@@ -15071,7 +15076,7 @@
15071
15076
  },
15072
15077
  {
15073
15078
  "file": "packages/@ember/application/instance.ts",
15074
- "line": 54,
15079
+ "line": 55,
15075
15080
  "description": "The `Application` for which this is an instance.",
15076
15081
  "itemtype": "property",
15077
15082
  "name": "application",
@@ -15083,7 +15088,7 @@
15083
15088
  },
15084
15089
  {
15085
15090
  "file": "packages/@ember/application/instance.ts",
15086
- "line": 62,
15091
+ "line": 63,
15087
15092
  "description": "The root DOM element of the Application as an element or a\nCSS selector.",
15088
15093
  "access": "private",
15089
15094
  "tagname": "",
@@ -15095,7 +15100,7 @@
15095
15100
  },
15096
15101
  {
15097
15102
  "file": "packages/@ember/application/instance.ts",
15098
- "line": 88,
15103
+ "line": 89,
15099
15104
  "description": "Overrides the base `EngineInstance._bootSync` method with concerns relevant\nto booting application (instead of engine) instances.\n\nThis method should only contain synchronous boot concerns. Asynchronous\nboot concerns should eventually be moved to the `boot` method, which\nreturns a promise.\n\nUntil all boot code has been made asynchronous, we need to continue to\nexpose this method for use *internally* in places where we need to boot an\ninstance synchronously.",
15100
15105
  "access": "private",
15101
15106
  "tagname": "",
@@ -15104,7 +15109,7 @@
15104
15109
  },
15105
15110
  {
15106
15111
  "file": "packages/@ember/application/instance.ts",
15107
- "line": 148,
15112
+ "line": 149,
15108
15113
  "description": "This hook is called by the root-most Route (a.k.a. the ApplicationRoute)\nwhen it has finished creating the root View. By default, we simply take the\nview and append it to the `rootElement` specified on the Application.\n\nIn cases like FastBoot and testing, we can override this hook and implement\ncustom behavior, such as serializing to a string and sending over an HTTP\nsocket rather than appending to DOM.",
15109
15114
  "params": [
15110
15115
  {
@@ -15121,7 +15126,7 @@
15121
15126
  },
15122
15127
  {
15123
15128
  "file": "packages/@ember/application/instance.ts",
15124
- "line": 165,
15129
+ "line": 166,
15125
15130
  "description": "Tells the router to start routing. The router will ask the location for the\ncurrent URL of the page to determine the initial URL to start routing to.\nTo start the app at a specific URL, call `handleURL` instead.",
15126
15131
  "access": "private",
15127
15132
  "tagname": "",
@@ -15130,7 +15135,7 @@
15130
15135
  },
15131
15136
  {
15132
15137
  "file": "packages/@ember/application/instance.ts",
15133
- "line": 176,
15138
+ "line": 177,
15134
15139
  "description": "Sets up the router, initializing the child router and configuring the\nlocation before routing begins.\n\nBecause setup should only occur once, multiple calls to `setupRouter`\nbeyond the first call have no effect.\n\nThis is commonly used in order to confirm things that rely on the router\nare functioning properly from tests that are primarily rendering related.\n\nFor example, from within [ember-qunit](https://github.com/emberjs/ember-qunit)'s\n`setupRenderingTest` calling `this.owner.setupRouter()` would allow that\nrendering test to confirm that any `<LinkTo></LinkTo>`'s that are rendered\nhave the correct URL.",
15135
15140
  "access": "public",
15136
15141
  "tagname": "",
@@ -15139,7 +15144,7 @@
15139
15144
  },
15140
15145
  {
15141
15146
  "file": "packages/@ember/application/instance.ts",
15142
- "line": 197,
15147
+ "line": 198,
15143
15148
  "description": "Directs the router to route to a particular URL. This is useful in tests,\nfor example, to tell the app to start at a particular URL.",
15144
15149
  "params": [
15145
15150
  {
@@ -15155,7 +15160,7 @@
15155
15160
  },
15156
15161
  {
15157
15162
  "file": "packages/@ember/application/instance.ts",
15158
- "line": 209,
15163
+ "line": 210,
15159
15164
  "access": "private",
15160
15165
  "tagname": "",
15161
15166
  "class": "ApplicationInstance",
@@ -15163,7 +15168,7 @@
15163
15168
  },
15164
15169
  {
15165
15170
  "file": "packages/@ember/application/instance.ts",
15166
- "line": 231,
15171
+ "line": 232,
15167
15172
  "description": "Returns the current URL of the app instance. This is useful when your\napp does not update the browsers URL bar (i.e. it uses the `'none'`\nlocation adapter).",
15168
15173
  "access": "public",
15169
15174
  "tagname": "",
@@ -15176,7 +15181,7 @@
15176
15181
  },
15177
15182
  {
15178
15183
  "file": "packages/@ember/application/instance.ts",
15179
- "line": 246,
15184
+ "line": 247,
15180
15185
  "description": "Navigate the instance to a particular URL. This is useful in tests, for\nexample, or to tell the app to start at a particular URL. This method\nreturns a promise that resolves with the app instance when the transition\nis complete, or rejects if the transion was aborted due to an error.",
15181
15186
  "access": "public",
15182
15187
  "tagname": "",
@@ -15196,7 +15201,7 @@
15196
15201
  },
15197
15202
  {
15198
15203
  "file": "packages/@ember/application/instance.ts",
15199
- "line": 305,
15204
+ "line": 306,
15200
15205
  "access": "private",
15201
15206
  "tagname": "",
15202
15207
  "itemtype": "method",
@@ -15218,7 +15223,7 @@
15218
15223
  },
15219
15224
  {
15220
15225
  "file": "packages/@ember/application/instance.ts",
15221
- "line": 348,
15226
+ "line": 349,
15222
15227
  "description": "Interactive mode: whether we need to set up event delegation and invoke\nlifecycle callbacks on Components.",
15223
15228
  "itemtype": "property",
15224
15229
  "name": "isInteractive",
@@ -15232,7 +15237,7 @@
15232
15237
  },
15233
15238
  {
15234
15239
  "file": "packages/@ember/application/instance.ts",
15235
- "line": 359,
15240
+ "line": 360,
15236
15241
  "itemtype": "property",
15237
15242
  "name": "_renderMode",
15238
15243
  "type": "string",
@@ -15245,7 +15250,7 @@
15245
15250
  },
15246
15251
  {
15247
15252
  "file": "packages/@ember/application/instance.ts",
15248
- "line": 367,
15253
+ "line": 368,
15249
15254
  "description": "Run in a full browser environment.\n\nWhen this flag is set to `false`, it will disable most browser-specific\nand interactive features. Specifically:\n\n* It does not use `jQuery` to append the root view; the `rootElement`\n (either specified as a subsequent option or on the application itself)\n must already be an `Element` in the given `document` (as opposed to a\n string selector).\n\n* It does not set up an `EventDispatcher`.\n\n* It does not run any `Component` lifecycle hooks (such as `didInsertElement`).\n\n* It sets the `location` option to `\"none\"`. (If you would like to use\n the location adapter specified in the app's router instead, you can also\n specify `{ location: null }` to specifically opt-out.)",
15250
15255
  "itemtype": "property",
15251
15256
  "name": "isBrowser",
@@ -15259,7 +15264,7 @@
15259
15264
  },
15260
15265
  {
15261
15266
  "file": "packages/@ember/application/instance.ts",
15262
- "line": 393,
15267
+ "line": 394,
15263
15268
  "description": "If present, overrides the router's `location` property with this\nvalue. This is useful for environments where trying to modify the\nURL would be inappropriate.",
15264
15269
  "itemtype": "property",
15265
15270
  "name": "location",
@@ -15273,7 +15278,7 @@
15273
15278
  },
15274
15279
  {
15275
15280
  "file": "packages/@ember/application/instance.ts",
15276
- "line": 405,
15281
+ "line": 406,
15277
15282
  "description": "Disable rendering completely.\n\nWhen this flag is set to `false`, it will disable the entire rendering\npipeline. Essentially, this puts the app into \"routing-only\" mode. No\ntemplates will be rendered, and no Components will be created.",
15278
15283
  "itemtype": "property",
15279
15284
  "name": "shouldRender",
@@ -15287,7 +15292,7 @@
15287
15292
  },
15288
15293
  {
15289
15294
  "file": "packages/@ember/application/instance.ts",
15290
- "line": 419,
15295
+ "line": 420,
15291
15296
  "description": "If present, render into the given `Document` object instead of the\nglobal `window.document` object.\n\nIn practice, this is only useful in non-browser environment or in\nnon-interactive mode, because Ember's `jQuery` dependency is\nimplicitly bound to the current document, causing event delegation\nto not work properly when the app is rendered into a foreign\ndocument object (such as an iframe's `contentDocument`).\n\nIn non-browser mode, this could be a \"`Document`-like\" object as\nEmber only interact with a small subset of the DOM API in non-\ninteractive mode. While the exact requirements have not yet been\nformalized, the `SimpleDOM` library's implementation is known to\nwork.",
15292
15297
  "itemtype": "property",
15293
15298
  "name": "document",
@@ -15301,7 +15306,7 @@
15301
15306
  },
15302
15307
  {
15303
15308
  "file": "packages/@ember/application/instance.ts",
15304
- "line": 442,
15309
+ "line": 443,
15305
15310
  "description": "If present, overrides the application's `rootElement` property on\nthe instance. This is useful for testing environment, where you\nmight want to append the root view to a fixture area.\n\nIn non-browser mode, because Ember does not have access to jQuery,\nthis options must be specified as a DOM `Element` object instead of\na selector string.\n\nSee the documentation on `Application`'s `rootElement` for\ndetails.",
15306
15311
  "itemtype": "property",
15307
15312
  "name": "rootElement",
@@ -15362,14 +15367,15 @@
15362
15367
  "module": "@ember/component/template-only"
15363
15368
  },
15364
15369
  {
15365
- "file": "packages/@ember/controller/lib/controller_mixin.d.ts",
15366
- "line": 11,
15370
+ "file": "packages/@ember/controller/lib/controller_mixin.ts",
15371
+ "line": 24,
15367
15372
  "class": "Ember.ControllerMixin",
15368
- "module": "@ember/component/template-only"
15373
+ "module": "ember",
15374
+ "namespace": "Ember"
15369
15375
  },
15370
15376
  {
15371
- "file": "packages/@ember/controller/lib/controller_mixin.js",
15372
- "line": 21,
15377
+ "file": "packages/@ember/controller/lib/controller_mixin.ts",
15378
+ "line": 43,
15373
15379
  "description": "The object to which actions from the view should be sent.\n\nFor example, when a Handlebars template uses the `{{action}}` helper,\nit will attempt to send the action to the view's controller's `target`.\n\nBy default, the value of the target property is set to the router, and\nis injected when a controller is instantiated. This injection is applied\nas part of the application's initialization process. In most cases the\n`target` property will automatically be set to the logical consumer of\nactions for the controller.",
15374
15380
  "itemtype": "property",
15375
15381
  "name": "target",
@@ -15381,8 +15387,8 @@
15381
15387
  "namespace": "Ember"
15382
15388
  },
15383
15389
  {
15384
- "file": "packages/@ember/controller/lib/controller_mixin.js",
15385
- "line": 41,
15390
+ "file": "packages/@ember/controller/lib/controller_mixin.ts",
15391
+ "line": 63,
15386
15392
  "description": "The controller's current model. When retrieving or modifying a controller's\nmodel, this property should be used instead of the `content` property.",
15387
15393
  "itemtype": "property",
15388
15394
  "name": "model",
@@ -15438,7 +15444,7 @@
15438
15444
  },
15439
15445
  {
15440
15446
  "file": "packages/@ember/debug/lib/deprecate.ts",
15441
- "line": 36,
15447
+ "line": 37,
15442
15448
  "description": "Allows for runtime registration of handler functions that override the default deprecation behavior.\nDeprecations are invoked by calls to [@ember/debug/deprecate](/ember/release/classes/@ember%2Fdebug/methods/deprecate?anchor=deprecate).\nThe following example demonstrates its usage by registering a handler that throws an error if the\nmessage contains the word \"should\", otherwise defers to the default handler.\n\n```javascript\nimport { registerDeprecationHandler } from '@ember/debug';\n\nregisterDeprecationHandler((message, options, next) => {\n if (message.indexOf('should') !== -1) {\n throw new Error(`Deprecation message with should: ${message}`);\n } else {\n // defer to whatever handler was registered before this one\n next(message, options);\n }\n});\n```\n\nThe handler function takes the following arguments:\n\n<ul>\n <li> <code>message</code> - The message received from the deprecation call.</li>\n <li> <code>options</code> - An object passed in with the deprecation call containing additional information including:</li>\n <ul>\n <li> <code>id</code> - An id of the deprecation in the form of <code>package-name.specific-deprecation</code>.</li>\n <li> <code>until</code> - The Ember version number the feature and deprecation will be removed in.</li>\n </ul>\n <li> <code>next</code> - A function that calls into the previously registered handler.</li>\n</ul>",
15443
15449
  "access": "public",
15444
15450
  "tagname": "",
@@ -15458,7 +15464,7 @@
15458
15464
  },
15459
15465
  {
15460
15466
  "file": "packages/@ember/debug/lib/deprecate.ts",
15461
- "line": 181,
15467
+ "line": 182,
15462
15468
  "description": "Display a deprecation warning with the provided message and a stack trace\n(Chrome and Firefox only).\n\n* In a production build, this method is defined as an empty function (NOP).\nUses of this method in Ember itself are stripped from the ember.prod.js build.",
15463
15469
  "itemtype": "method",
15464
15470
  "name": "deprecate",
@@ -15516,7 +15522,7 @@
15516
15522
  },
15517
15523
  {
15518
15524
  "file": "packages/@ember/debug/lib/warn.ts",
15519
- "line": 23,
15525
+ "line": 24,
15520
15526
  "description": "Allows for runtime registration of handler functions that override the default warning behavior.\nWarnings are invoked by calls made to [@ember/debug/warn](/ember/release/classes/@ember%2Fdebug/methods/warn?anchor=warn).\nThe following example demonstrates its usage by registering a handler that does nothing overriding Ember's\ndefault warning behavior.\n\n```javascript\nimport { registerWarnHandler } from '@ember/debug';\n\n// next is not called, so no warnings get the default behavior\nregisterWarnHandler(() => {});\n```\n\nThe handler function takes the following arguments:\n\n<ul>\n <li> <code>message</code> - The message received from the warn call. </li>\n <li> <code>options</code> - An object passed in with the warn call containing additional information including:</li>\n <ul>\n <li> <code>id</code> - An id of the warning in the form of <code>package-name.specific-warning</code>.</li>\n </ul>\n <li> <code>next</code> - A function that calls into the previously registered handler.</li>\n</ul>",
15521
15527
  "access": "public",
15522
15528
  "tagname": "",
@@ -15536,7 +15542,7 @@
15536
15542
  },
15537
15543
  {
15538
15544
  "file": "packages/@ember/debug/lib/warn.ts",
15539
- "line": 70,
15545
+ "line": 71,
15540
15546
  "description": "Display a warning with the provided message.\n\n* In a production build, this method is defined as an empty function (NOP).\nUses of this method in Ember itself are stripped from the ember.prod.js build.\n\n```javascript\nimport { warn } from '@ember/debug';\nimport tomsterCount from './tomster-counter'; // a module in my project\n\n// Log a warning if we have more than 3 tomsters\nwarn('Too many tomsters!', tomsterCount <= 3, {\n id: 'ember-debug.too-many-tomsters'\n});\n```",
15541
15547
  "itemtype": "method",
15542
15548
  "name": "warn",
@@ -15566,7 +15572,7 @@
15566
15572
  },
15567
15573
  {
15568
15574
  "file": "packages/@ember/debug/index.ts",
15569
- "line": 134,
15575
+ "line": 136,
15570
15576
  "description": "Verify that a certain expectation is met, or throw a exception otherwise.\n\nThis is useful for communicating assumptions in the code to other human\nreaders as well as catching bugs that accidentally violates these\nexpectations.\n\nAssertions are removed from production builds, so they can be freely added\nfor documentation and debugging purposes without worries of incuring any\nperformance penalty. However, because of that, they should not be used for\nchecks that could reasonably fail during normal usage. Furthermore, care\nshould be taken to avoid accidentally relying on side-effects produced from\nevaluating the condition itself, since the code will not run in production.\n\n```javascript\nimport { assert } from '@ember/debug';\n\n// Test for truthiness\nassert('Must pass a string', typeof str === 'string');\n\n// Fail unconditionally\nassert('This code path should never be run');\n```",
15571
15577
  "itemtype": "method",
15572
15578
  "name": "assert",
@@ -15591,7 +15597,7 @@
15591
15597
  },
15592
15598
  {
15593
15599
  "file": "packages/@ember/debug/index.ts",
15594
- "line": 174,
15600
+ "line": 176,
15595
15601
  "description": "Display a debug notice.\n\nCalls to this function are not invoked in production builds.\n\n```javascript\nimport { debug } from '@ember/debug';\n\ndebug('I\\'m a debug notice!');\n```",
15596
15602
  "itemtype": "method",
15597
15603
  "name": "debug",
@@ -15610,7 +15616,7 @@
15610
15616
  },
15611
15617
  {
15612
15618
  "file": "packages/@ember/debug/index.ts",
15613
- "line": 201,
15619
+ "line": 203,
15614
15620
  "description": "Display an info notice.\n\nCalls to this function are removed from production builds, so they can be\nfreely added for documentation and debugging purposes without worries of\nincuring any performance penalty.",
15615
15621
  "itemtype": "method",
15616
15622
  "name": "info",
@@ -15621,7 +15627,7 @@
15621
15627
  },
15622
15628
  {
15623
15629
  "file": "packages/@ember/debug/index.ts",
15624
- "line": 220,
15630
+ "line": 222,
15625
15631
  "description": "Alias an old, deprecated method with its new counterpart.\n\nDisplay a deprecation warning with the provided message and a stack trace\n(Chrome and Firefox only) when the assigned method is called.\n\nCalls to this function are removed from production builds, so they can be\nfreely added for documentation and debugging purposes without worries of\nincuring any performance penalty.\n\n```javascript\nimport { deprecateFunc } from '@ember/debug';\n\nEmber.oldMethod = deprecateFunc('Please use the new, updated method', options, Ember.newMethod);\n```",
15626
15632
  "itemtype": "method",
15627
15633
  "name": "deprecateFunc",
@@ -15655,7 +15661,7 @@
15655
15661
  },
15656
15662
  {
15657
15663
  "file": "packages/@ember/debug/index.ts",
15658
- "line": 265,
15664
+ "line": 267,
15659
15665
  "description": "Run a function meant for debugging.\n\nCalls to this function are removed from production builds, so they can be\nfreely added for documentation and debugging purposes without worries of\nincuring any performance penalty.\n\n```javascript\nimport Component from '@ember/component';\nimport { runInDebug } from '@ember/debug';\n\nrunInDebug(() => {\n Component.reopen({\n didInsertElement() {\n console.log(\"I'm happy\");\n }\n });\n});\n```",
15660
15666
  "itemtype": "method",
15661
15667
  "name": "runInDebug",
@@ -15886,7 +15892,7 @@
15886
15892
  },
15887
15893
  {
15888
15894
  "file": "packages/@ember/engine/index.ts",
15889
- "line": 61,
15895
+ "line": 62,
15890
15896
  "description": "The goal of initializers should be to register dependencies and injections.\nThis phase runs once. Because these initializers may load code, they are\nallowed to defer application readiness and advance it. If you need to access\nthe container or store you should use an InstanceInitializer that will be run\nafter all initializers and therefore after all code is loaded and the app is\nready.\n\nInitializer receives an object which has the following attributes:\n`name`, `before`, `after`, `initialize`. The only required attribute is\n`initialize`, all others are optional.\n\n* `name` allows you to specify under which name the initializer is registered.\nThis must be a unique name, as trying to register two initializers with the\nsame name will result in an error.\n\n```app/initializer/named-initializer.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('Running namedInitializer!');\n}\n\nexport default {\n name: 'named-initializer',\n initialize\n};\n```\n\n* `before` and `after` are used to ensure that this initializer is ran prior\nor after the one identified by the value. This value can be a single string\nor an array of strings, referencing the `name` of other initializers.\n\nAn example of ordering initializers, we create an initializer named `first`:\n\n```app/initializer/first.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('First initializer!');\n}\n\nexport default {\n name: 'first',\n initialize\n};\n```\n\n```bash\n// DEBUG: First initializer!\n```\n\nWe add another initializer named `second`, specifying that it should run\nafter the initializer named `first`:\n\n```app/initializer/second.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('Second initializer!');\n}\n\nexport default {\n name: 'second',\n after: 'first',\n initialize\n};\n```\n\n```\n// DEBUG: First initializer!\n// DEBUG: Second initializer!\n```\n\nAfterwards we add a further initializer named `pre`, this time specifying\nthat it should run before the initializer named `first`:\n\n```app/initializer/pre.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('Pre initializer!');\n}\n\nexport default {\n name: 'pre',\n before: 'first',\n initialize\n};\n```\n\n```bash\n// DEBUG: Pre initializer!\n// DEBUG: First initializer!\n// DEBUG: Second initializer!\n```\n\nFinally we add an initializer named `post`, specifying it should run after\nboth the `first` and the `second` initializers:\n\n```app/initializer/post.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('Post initializer!');\n}\n\nexport default {\n name: 'post',\n after: ['first', 'second'],\n initialize\n};\n```\n\n```bash\n// DEBUG: Pre initializer!\n// DEBUG: First initializer!\n// DEBUG: Second initializer!\n// DEBUG: Post initializer!\n```\n\n* `initialize` is a callback function that receives one argument,\n `application`, on which you can operate.\n\nExample of using `application` to register an adapter:\n\n```app/initializer/api-adapter.js\nimport ApiAdapter from '../utils/api-adapter';\n\nexport function initialize(application) {\n application.register('api-adapter:main', ApiAdapter);\n}\n\nexport default {\n name: 'post',\n after: ['first', 'second'],\n initialize\n};\n```",
15891
15897
  "itemtype": "method",
15892
15898
  "name": "initializer",
@@ -15904,7 +15910,7 @@
15904
15910
  },
15905
15911
  {
15906
15912
  "file": "packages/@ember/engine/index.ts",
15907
- "line": 208,
15913
+ "line": 209,
15908
15914
  "description": "Instance initializers run after all initializers have run. Because\ninstance initializers run after the app is fully set up. We have access\nto the store, container, and other items. However, these initializers run\nafter code has loaded and are not allowed to defer readiness.\n\nInstance initializer receives an object which has the following attributes:\n`name`, `before`, `after`, `initialize`. The only required attribute is\n`initialize`, all others are optional.\n\n* `name` allows you to specify under which name the instanceInitializer is\nregistered. This must be a unique name, as trying to register two\ninstanceInitializer with the same name will result in an error.\n\n```app/initializer/named-instance-initializer.js\nimport { debug } from '@ember/debug';\n\nexport function initialize() {\n debug('Running named-instance-initializer!');\n}\n\nexport default {\n name: 'named-instance-initializer',\n initialize\n};\n```\n\n* `before` and `after` are used to ensure that this initializer is ran prior\nor after the one identified by the value. This value can be a single string\nor an array of strings, referencing the `name` of other initializers.\n\n* See Application.initializer for discussion on the usage of before\nand after.\n\nExample instanceInitializer to preload data into the store.\n\n```app/initializer/preload-data.js\n\nexport function initialize(application) {\n var userConfig, userConfigEncoded, store;\n // We have a HTML escaped JSON representation of the user's basic\n // configuration generated server side and stored in the DOM of the main\n // index.html file. This allows the app to have access to a set of data\n // without making any additional remote calls. Good for basic data that is\n // needed for immediate rendering of the page. Keep in mind, this data,\n // like all local models and data can be manipulated by the user, so it\n // should not be relied upon for security or authorization.\n\n // Grab the encoded data from the meta tag\n userConfigEncoded = document.querySelector('head meta[name=app-user-config]').attr('content');\n\n // Unescape the text, then parse the resulting JSON into a real object\n userConfig = JSON.parse(unescape(userConfigEncoded));\n\n // Lookup the store\n store = application.lookup('service:store');\n\n // Push the encoded JSON into the store\n store.pushPayload(userConfig);\n}\n\nexport default {\n name: 'named-instance-initializer',\n initialize\n};\n```",
15909
15915
  "itemtype": "method",
15910
15916
  "name": "instanceInitializer",
@@ -15921,7 +15927,7 @@
15921
15927
  },
15922
15928
  {
15923
15929
  "file": "packages/@ember/engine/index.ts",
15924
- "line": 284,
15930
+ "line": 285,
15925
15931
  "description": "This creates a registry with the default Ember naming conventions.\n\nIt also configures the registry:\n\n* registered views are created every time they are looked up (they are\n not singletons)\n* registered templates are not factories; the registered value is\n returned directly.\n* the router receives the application as its `namespace` property\n* all controllers receive the router as their `target` and `controllers`\n properties\n* all controllers receive the application as their `namespace` property\n* the application view receives the application controller as its\n `controller` property\n* the application view receives the application template as its\n `defaultTemplate` property",
15926
15932
  "itemtype": "method",
15927
15933
  "name": "buildRegistry",
@@ -15944,7 +15950,7 @@
15944
15950
  },
15945
15951
  {
15946
15952
  "file": "packages/@ember/engine/index.ts",
15947
- "line": 324,
15953
+ "line": 325,
15948
15954
  "description": "Set this to provide an alternate class to `DefaultResolver`",
15949
15955
  "itemtype": "property",
15950
15956
  "name": "resolver",
@@ -15955,7 +15961,7 @@
15955
15961
  },
15956
15962
  {
15957
15963
  "file": "packages/@ember/engine/index.ts",
15958
- "line": 337,
15964
+ "line": 338,
15959
15965
  "description": "A private flag indicating whether an engine's initializers have run yet.",
15960
15966
  "access": "private",
15961
15967
  "tagname": "",
@@ -15966,7 +15972,7 @@
15966
15972
  },
15967
15973
  {
15968
15974
  "file": "packages/@ember/engine/index.ts",
15969
- "line": 345,
15975
+ "line": 346,
15970
15976
  "description": "Ensure that initializers are run once, and only once, per engine.",
15971
15977
  "access": "private",
15972
15978
  "tagname": "",
@@ -15977,7 +15983,7 @@
15977
15983
  },
15978
15984
  {
15979
15985
  "file": "packages/@ember/engine/index.ts",
15980
- "line": 358,
15986
+ "line": 359,
15981
15987
  "description": "Create an EngineInstance for this engine.",
15982
15988
  "access": "public",
15983
15989
  "tagname": "",
@@ -15992,7 +15998,7 @@
15992
15998
  },
15993
15999
  {
15994
16000
  "file": "packages/@ember/engine/index.ts",
15995
- "line": 370,
16001
+ "line": 371,
15996
16002
  "description": "Build and configure the registry for the current engine.",
15997
16003
  "access": "private",
15998
16004
  "tagname": "",
@@ -16007,7 +16013,7 @@
16007
16013
  },
16008
16014
  {
16009
16015
  "file": "packages/@ember/engine/index.ts",
16010
- "line": 383,
16016
+ "line": 384,
16011
16017
  "access": "private",
16012
16018
  "tagname": "",
16013
16019
  "itemtype": "method",
@@ -16017,7 +16023,7 @@
16017
16023
  },
16018
16024
  {
16019
16025
  "file": "packages/@ember/engine/index.ts",
16020
- "line": 391,
16026
+ "line": 392,
16021
16027
  "access": "private",
16022
16028
  "tagname": "",
16023
16029
  "itemtype": "method",
@@ -16027,7 +16033,7 @@
16027
16033
  },
16028
16034
  {
16029
16035
  "file": "packages/@ember/engine/index.ts",
16030
- "line": 399,
16036
+ "line": 400,
16031
16037
  "access": "private",
16032
16038
  "tagname": "",
16033
16039
  "itemtype": "method",
@@ -16037,7 +16043,7 @@
16037
16043
  },
16038
16044
  {
16039
16045
  "file": "packages/@ember/engine/index.ts",
16040
- "line": 413,
16046
+ "line": 414,
16041
16047
  "access": "private",
16042
16048
  "tagname": "",
16043
16049
  "since": "1.12.0",
@@ -16048,7 +16054,7 @@
16048
16054
  },
16049
16055
  {
16050
16056
  "file": "packages/@ember/engine/index.ts",
16051
- "line": 447,
16057
+ "line": 448,
16052
16058
  "description": "This function defines the default lookup rules for container lookups:\n\n* templates are looked up on `Ember.TEMPLATES`\n* other names are looked up on the application after classifying the name.\n For example, `controller:post` looks up `App.PostController` by default.\n* if the default lookup fails, look for registered classes on the container\n\nThis allows the application to register default injections in the container\nthat could be overridden by the normal naming convention.",
16053
16059
  "access": "private",
16054
16060
  "tagname": "",
@@ -16374,8 +16380,8 @@
16374
16380
  "module": "@ember/instrumentation"
16375
16381
  },
16376
16382
  {
16377
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16378
- "line": 63,
16383
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16384
+ "line": 67,
16379
16385
  "description": "A computed property macro that returns true if the value of the dependent\nproperty is null, an empty string, empty array, or empty function.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { empty } from '@ember/object/computed';\n\nclass ToDoList {\n constructor(todos) {\n set(this, 'todos', todos);\n }\n\n @empty('todos') isDone;\n}\n\nlet todoList = new ToDoList(\n ['Unit Test', 'Documentation', 'Release']\n);\n\ntodoList.isDone; // false\nset(todoList, 'todos', []);\ntodoList.isDone; // true\n```",
16380
16386
  "since": "1.6.0",
16381
16387
  "itemtype": "method",
@@ -16398,8 +16404,8 @@
16398
16404
  "module": "@ember/object"
16399
16405
  },
16400
16406
  {
16401
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16402
- "line": 112,
16407
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16408
+ "line": 116,
16403
16409
  "description": "A computed property that returns true if the value of the dependent property\nis NOT null, an empty string, empty array, or empty function.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { notEmpty } from '@ember/object/computed';\n\nclass Hamster {\n constructor(backpack) {\n set(this, 'backpack', backpack);\n }\n\n @notEmpty('backpack') hasStuff\n}\n\nlet hamster = new Hamster(\n ['Food', 'Sleeping Bag', 'Tent']\n);\n\nhamster.hasStuff; // true\nset(hamster, 'backpack', []);\nhamster.hasStuff; // false\n```",
16404
16410
  "itemtype": "method",
16405
16411
  "name": "notEmpty",
@@ -16421,8 +16427,8 @@
16421
16427
  "module": "@ember/object"
16422
16428
  },
16423
16429
  {
16424
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16425
- "line": 158,
16430
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16431
+ "line": 162,
16426
16432
  "description": "A computed property that returns true if the value of the dependent property\nis null or undefined. This avoids errors from JSLint complaining about use of\n==, which can be technically confusing.\n\n```javascript\nimport { set } from '@ember/object';\nimport { none } from '@ember/object/computed';\n\nclass Hamster {\n @none('food') isHungry;\n}\n\nlet hamster = new Hamster();\n\nhamster.isHungry; // true\n\nset(hamster, 'food', 'Banana');\nhamster.isHungry; // false\n\nset(hamster, 'food', null);\nhamster.isHungry; // true\n```",
16427
16433
  "itemtype": "method",
16428
16434
  "name": "none",
@@ -16444,8 +16450,8 @@
16444
16450
  "module": "@ember/object"
16445
16451
  },
16446
16452
  {
16447
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16448
- "line": 201,
16453
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16454
+ "line": 205,
16449
16455
  "description": "A computed property that returns the inverse boolean value of the original\nvalue for the dependent property.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { not } from '@ember/object/computed';\n\nclass User {\n loggedIn = false;\n\n @not('loggedIn') isAnonymous;\n}\n\nlet user = new User();\n\nuser.isAnonymous; // true\nset(user, 'loggedIn', true);\nuser.isAnonymous; // false\n```",
16450
16456
  "itemtype": "method",
16451
16457
  "name": "not",
@@ -16467,8 +16473,8 @@
16467
16473
  "module": "@ember/object"
16468
16474
  },
16469
16475
  {
16470
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16471
- "line": 243,
16476
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16477
+ "line": 247,
16472
16478
  "description": "A computed property that converts the provided dependent property into a\nboolean value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { bool } from '@ember/object/computed';\n\n\nclass Hamster {\n @bool('numBananas') hasBananas\n}\n\nlet hamster = new Hamster();\n\nhamster.hasBananas; // false\n\nset(hamster, 'numBananas', 0);\nhamster.hasBananas; // false\n\nset(hamster, 'numBananas', 1);\nhamster.hasBananas; // true\n\nset(hamster, 'numBananas', null);\nhamster.hasBananas; // false\n```",
16473
16479
  "itemtype": "method",
16474
16480
  "name": "bool",
@@ -16490,8 +16496,8 @@
16490
16496
  "module": "@ember/object"
16491
16497
  },
16492
16498
  {
16493
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16494
- "line": 291,
16499
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16500
+ "line": 295,
16495
16501
  "description": "A computed property which matches the original value for the dependent\nproperty against a given RegExp, returning `true` if the value matches the\nRegExp and `false` if it does not.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { match } from '@ember/object/computed';\n\nclass User {\n @match('email', /^.+@.+\\..+$/) hasValidEmail;\n}\n\nlet user = new User();\n\nuser.hasValidEmail; // false\n\nset(user, 'email', '');\nuser.hasValidEmail; // false\n\nset(user, 'email', 'ember_hamster@example.com');\nuser.hasValidEmail; // true\n```",
16496
16502
  "itemtype": "method",
16497
16503
  "name": "match",
@@ -16518,8 +16524,8 @@
16518
16524
  "module": "@ember/object"
16519
16525
  },
16520
16526
  {
16521
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16522
- "line": 338,
16527
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16528
+ "line": 342,
16523
16529
  "description": "A computed property that returns true if the provided dependent property is\nequal to the given value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { equal } from '@ember/object/computed';\n\nclass Hamster {\n @equal('percentCarrotsEaten', 100) satisfied;\n}\n\nlet hamster = new Hamster();\n\nhamster.satisfied; // false\n\nset(hamster, 'percentCarrotsEaten', 100);\nhamster.satisfied; // true\n\nset(hamster, 'percentCarrotsEaten', 50);\nhamster.satisfied; // false\n```",
16524
16530
  "itemtype": "method",
16525
16531
  "name": "equal",
@@ -16546,8 +16552,8 @@
16546
16552
  "module": "@ember/object"
16547
16553
  },
16548
16554
  {
16549
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16550
- "line": 383,
16555
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16556
+ "line": 387,
16551
16557
  "description": "A computed property that returns true if the provided dependent property is\ngreater than the provided value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { gt } from '@ember/object/computed';\n\nclass Hamster {\n @gt('numBananas', 10) hasTooManyBananas;\n}\n\nlet hamster = new Hamster();\n\nhamster.hasTooManyBananas; // false\n\nset(hamster, 'numBananas', 3);\nhamster.hasTooManyBananas; // false\n\nset(hamster, 'numBananas', 11);\nhamster.hasTooManyBananas; // true\n```",
16552
16558
  "itemtype": "method",
16553
16559
  "name": "gt",
@@ -16574,8 +16580,8 @@
16574
16580
  "module": "@ember/object"
16575
16581
  },
16576
16582
  {
16577
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16578
- "line": 428,
16583
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16584
+ "line": 432,
16579
16585
  "description": "A computed property that returns true if the provided dependent property is\ngreater than or equal to the provided value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { gte } from '@ember/object/computed';\n\nclass Hamster {\n @gte('numBananas', 10) hasTooManyBananas;\n}\n\nlet hamster = new Hamster();\n\nhamster.hasTooManyBananas; // false\n\nset(hamster, 'numBananas', 3);\nhamster.hasTooManyBananas; // false\n\nset(hamster, 'numBananas', 10);\nhamster.hasTooManyBananas; // true\n```",
16580
16586
  "itemtype": "method",
16581
16587
  "name": "gte",
@@ -16602,8 +16608,8 @@
16602
16608
  "module": "@ember/object"
16603
16609
  },
16604
16610
  {
16605
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16606
- "line": 473,
16611
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16612
+ "line": 477,
16607
16613
  "description": "A computed property that returns true if the provided dependent property is\nless than the provided value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { lt } from '@ember/object/computed';\n\nclass Hamster {\n @lt('numBananas', 3) needsMoreBananas;\n}\n\nlet hamster = new Hamster();\n\nhamster.needsMoreBananas; // true\n\nset(hamster, 'numBananas', 3);\nhamster.needsMoreBananas; // false\n\nset(hamster, 'numBananas', 2);\nhamster.needsMoreBananas; // true\n```",
16608
16614
  "itemtype": "method",
16609
16615
  "name": "lt",
@@ -16630,8 +16636,8 @@
16630
16636
  "module": "@ember/object"
16631
16637
  },
16632
16638
  {
16633
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16634
- "line": 518,
16639
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16640
+ "line": 522,
16635
16641
  "description": "A computed property that returns true if the provided dependent property is\nless than or equal to the provided value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { lte } from '@ember/object/computed';\n\nclass Hamster {\n @lte('numBananas', 3) needsMoreBananas;\n}\n\nlet hamster = new Hamster();\n\nhamster.needsMoreBananas; // true\n\nset(hamster, 'numBananas', 5);\nhamster.needsMoreBananas; // false\n\nset(hamster, 'numBananas', 3);\nhamster.needsMoreBananas; // true\n```",
16636
16642
  "itemtype": "method",
16637
16643
  "name": "lte",
@@ -16658,8 +16664,8 @@
16658
16664
  "module": "@ember/object"
16659
16665
  },
16660
16666
  {
16661
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16662
- "line": 563,
16667
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16668
+ "line": 567,
16663
16669
  "description": "A computed property that performs a logical `and` on the original values for\nthe provided dependent properties.\n\nYou may pass in more than two properties and even use property brace\nexpansion. The computed property will return the first falsy value or last\ntruthy value just like JavaScript's `&&` operator.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { and } from '@ember/object/computed';\n\nclass Hamster {\n @and('hasTent', 'hasBackpack') readyForCamp;\n @and('hasWalkingStick', 'hasBackpack') readyForHike;\n}\n\nlet tomster = new Hamster();\n\ntomster.readyForCamp; // false\n\nset(tomster, 'hasTent', true);\ntomster.readyForCamp; // false\n\nset(tomster, 'hasBackpack', true);\ntomster.readyForCamp; // true\n\nset(tomster, 'hasBackpack', 'Yes');\ntomster.readyForCamp; // 'Yes'\n\nset(tomster, 'hasWalkingStick', null);\ntomster.readyForHike; // null\n```",
16664
16670
  "itemtype": "method",
16665
16671
  "name": "and",
@@ -16682,8 +16688,8 @@
16682
16688
  "module": "@ember/object"
16683
16689
  },
16684
16690
  {
16685
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16686
- "line": 609,
16691
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16692
+ "line": 613,
16687
16693
  "description": "A computed property which performs a logical `or` on the original values for\nthe provided dependent properties.\n\nYou may pass in more than two properties and even use property brace\nexpansion. The computed property will return the first truthy value or last\nfalsy value just like JavaScript's `||` operator.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { or } from '@ember/object/computed';\n\nclass Hamster {\n @or('hasJacket', 'hasUmbrella') readyForRain;\n @or('hasSunscreen', 'hasUmbrella') readyForBeach;\n}\n\nlet tomster = new Hamster();\n\ntomster.readyForRain; // undefined\n\nset(tomster, 'hasUmbrella', true);\ntomster.readyForRain; // true\n\nset(tomster, 'hasJacket', 'Yes');\ntomster.readyForRain; // 'Yes'\n\nset(tomster, 'hasSunscreen', 'Check');\ntomster.readyForBeach; // 'Check'\n```",
16688
16694
  "itemtype": "method",
16689
16695
  "name": "or",
@@ -16706,8 +16712,8 @@
16706
16712
  "module": "@ember/object"
16707
16713
  },
16708
16714
  {
16709
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16710
- "line": 652,
16715
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16716
+ "line": 656,
16711
16717
  "description": "Creates a new property that is an alias for another property on an object.\nCalls to `get` or `set` this property behave as though they were called on the\noriginal property.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { alias } from '@ember/object/computed';\n\nclass Person {\n name = 'Alex Matchneer';\n\n @alias('name') nomen;\n}\n\nlet alex = new Person();\n\nalex.nomen; // 'Alex Matchneer'\nalex.name; // 'Alex Matchneer'\n\nset(alex, 'nomen', '@machty');\nalex.name; // '@machty'\n```",
16712
16718
  "itemtype": "method",
16713
16719
  "name": "alias",
@@ -16729,8 +16735,8 @@
16729
16735
  "module": "@ember/object"
16730
16736
  },
16731
16737
  {
16732
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16733
- "line": 687,
16738
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16739
+ "line": 691,
16734
16740
  "description": "Where the `alias` computed macro aliases `get` and `set`, and allows for\nbidirectional data flow, the `oneWay` computed macro only provides an aliased\n`get`. The `set` will not mutate the upstream property, rather causes the\ncurrent property to become the value set. This causes the downstream property\nto permanently diverge from the upstream property.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { oneWay }from '@ember/object/computed';\n\nclass User {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @oneWay('firstName') nickName;\n}\n\nlet teddy = new User('Teddy', 'Zeenny');\n\nteddy.nickName; // 'Teddy'\n\nset(teddy, 'nickName', 'TeddyBear');\nteddy.firstName; // 'Teddy'\nteddy.nickName; // 'TeddyBear'\n```",
16735
16741
  "itemtype": "method",
16736
16742
  "name": "oneWay",
@@ -16752,8 +16758,8 @@
16752
16758
  "module": "@ember/object"
16753
16759
  },
16754
16760
  {
16755
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16756
- "line": 735,
16761
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16762
+ "line": 739,
16757
16763
  "description": "This is a more semantically meaningful alias of the `oneWay` computed macro,\nwhose name is somewhat ambiguous as to which direction the data flows.",
16758
16764
  "itemtype": "method",
16759
16765
  "name": "reads",
@@ -16775,8 +16781,8 @@
16775
16781
  "module": "@ember/object"
16776
16782
  },
16777
16783
  {
16778
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16779
- "line": 748,
16784
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16785
+ "line": 752,
16780
16786
  "description": "Where `oneWay` computed macro provides oneWay bindings, the `readOnly`\ncomputed macro provides a readOnly one way binding. Very often when using\nthe `oneWay` macro one does not also want changes to propagate back up, as\nthey will replace the value.\n\nThis prevents the reverse flow, and also throws an exception when it occurs.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { readOnly } from '@ember/object/computed';\n\nclass User {\n constructor(firstName, lastName) {\n set(this, 'firstName', firstName);\n set(this, 'lastName', lastName);\n }\n\n @readOnly('firstName') nickName;\n});\n\nlet teddy = new User('Teddy', 'Zeenny');\n\nteddy.nickName; // 'Teddy'\n\nset(teddy, 'nickName', 'TeddyBear'); // throws Exception\n// throw new EmberError('Cannot Set: nickName on: <User:ember27288>' );`\n\nteddy.firstName; // 'Teddy'\n```",
16781
16787
  "itemtype": "method",
16782
16788
  "name": "readOnly",
@@ -16799,8 +16805,8 @@
16799
16805
  "module": "@ember/object"
16800
16806
  },
16801
16807
  {
16802
- "file": "packages/@ember/object/lib/computed/computed_macros.js",
16803
- "line": 799,
16808
+ "file": "packages/@ember/object/lib/computed/computed_macros.ts",
16809
+ "line": 803,
16804
16810
  "description": "Creates a new property that is an alias for another property on an object.\nCalls to `get` or `set` this property behave as though they were called on the\noriginal property, but also print a deprecation warning.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { deprecatingAlias } from '@ember/object/computed';\n\nclass Hamster {\n @deprecatingAlias('cavendishCount', {\n id: 'hamster.deprecate-banana',\n until: '3.0.0'\n })\n bananaCount;\n}\n\nlet hamster = new Hamster();\n\nset(hamster, 'bananaCount', 5); // Prints a deprecation warning.\nhamster.cavendishCount; // 5\n```",
16805
16811
  "itemtype": "method",
16806
16812
  "name": "deprecatingAlias",
@@ -16828,8 +16834,8 @@
16828
16834
  "module": "@ember/object"
16829
16835
  },
16830
16836
  {
16831
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16832
- "line": 56,
16837
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16838
+ "line": 75,
16833
16839
  "description": "A computed property that returns the sum of the values in the dependent array.\n\nExample:\n\n```javascript\nimport { sum } from '@ember/object/computed';\n\nclass Invoice {\n lineItems = [1.00, 2.50, 9.99];\n\n @sum('lineItems') total;\n}\n\nlet invoice = new Invoice();\n\ninvoice.total; // 13.49\n```",
16834
16840
  "itemtype": "method",
16835
16841
  "name": "sum",
@@ -16852,8 +16858,8 @@
16852
16858
  "module": "@ember/object"
16853
16859
  },
16854
16860
  {
16855
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16856
- "line": 93,
16861
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16862
+ "line": 112,
16857
16863
  "description": "A computed property that calculates the maximum value in the dependent array.\nThis will return `-Infinity` when the dependent array is empty.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { mapBy, max } from '@ember/object/computed';\n\nclass Person {\n children = [];\n\n @mapBy('children', 'age') childAges;\n @max('childAges') maxChildAge;\n}\n\nlet lordByron = new Person();\n\nlordByron.maxChildAge; // -Infinity\n\nset(lordByron, 'children', [\n {\n name: 'Augusta Ada Byron',\n age: 7\n }\n]);\nlordByron.maxChildAge; // 7\n\nset(lordByron, 'children', [\n ...lordByron.children,\n {\n name: 'Allegra Byron',\n age: 5\n }, {\n name: 'Elizabeth Medora Leigh',\n age: 8\n }\n]);\nlordByron.maxChildAge; // 8\n```\n\nIf the types of the arguments are not numbers, they will be converted to\nnumbers and the type of the return value will always be `Number`. For example,\nthe max of a list of Date objects will be the highest timestamp as a `Number`.\nThis behavior is consistent with `Math.max`.",
16858
16864
  "itemtype": "method",
16859
16865
  "name": "max",
@@ -16875,8 +16881,8 @@
16875
16881
  "module": "@ember/object"
16876
16882
  },
16877
16883
  {
16878
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16879
- "line": 157,
16884
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16885
+ "line": 176,
16880
16886
  "description": "A computed property that calculates the minimum value in the dependent array.\nThis will return `Infinity` when the dependent array is empty.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { mapBy, min } from '@ember/object/computed';\n\nclass Person {\n children = [];\n\n @mapBy('children', 'age') childAges;\n @min('childAges') minChildAge;\n}\n\nlet lordByron = Person.create({ children: [] });\n\nlordByron.minChildAge; // Infinity\n\nset(lordByron, 'children', [\n {\n name: 'Augusta Ada Byron',\n age: 7\n }\n]);\nlordByron.minChildAge; // 7\n\nset(lordByron, 'children', [\n ...lordByron.children,\n {\n name: 'Allegra Byron',\n age: 5\n }, {\n name: 'Elizabeth Medora Leigh',\n age: 8\n }\n]);\nlordByron.minChildAge; // 5\n```\n\nIf the types of the arguments are not numbers, they will be converted to\nnumbers and the type of the return value will always be `Number`. For example,\nthe min of a list of Date objects will be the lowest timestamp as a `Number`.\nThis behavior is consistent with `Math.min`.",
16881
16887
  "itemtype": "method",
16882
16888
  "name": "min",
@@ -16898,8 +16904,8 @@
16898
16904
  "module": "@ember/object"
16899
16905
  },
16900
16906
  {
16901
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16902
- "line": 220,
16907
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16908
+ "line": 239,
16903
16909
  "description": "Returns an array mapped via the callback\n\nThe callback method you provide should have the following signature:\n- `item` is the current item in the iteration.\n- `index` is the integer index of the current item in the iteration.\n\n```javascript\nfunction mapCallback(item, index);\n```\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { map } from '@ember/object/computed';\n\nclass Hamster {\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n @map('chores', function(chore, index) {\n return `${chore.toUpperCase()}!`;\n })\n excitingChores;\n});\n\nlet hamster = new Hamster(['clean', 'write more unit tests']);\n\nhamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']\n```\n\nYou can optionally pass an array of additional dependent keys as the second\nparameter to the macro, if your map function relies on any external values:\n\n```javascript\nimport { set } from '@ember/object';\nimport { map } from '@ember/object/computed';\n\nclass Hamster {\n shouldUpperCase = false;\n\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n @map('chores', ['shouldUpperCase'], function(chore, index) {\n if (this.shouldUpperCase) {\n return `${chore.toUpperCase()}!`;\n } else {\n return `${chore}!`;\n }\n })\n excitingChores;\n}\n\nlet hamster = new Hamster(['clean', 'write more unit tests']);\n\nhamster.excitingChores; // ['clean!', 'write more unit tests!']\n\nset(hamster, 'shouldUpperCase', true);\nhamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']\n```",
16904
16910
  "itemtype": "method",
16905
16911
  "name": "map",
@@ -16932,8 +16938,8 @@
16932
16938
  "module": "@ember/object"
16933
16939
  },
16934
16940
  {
16935
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16936
- "line": 321,
16941
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16942
+ "line": 363,
16937
16943
  "description": "Returns an array mapped to the specified key.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { mapBy } from '@ember/object/computed';\n\nclass Person {\n children = [];\n\n @mapBy('children', 'age') childAges;\n}\n\nlet lordByron = new Person();\n\nlordByron.childAges; // []\n\nset(lordByron, 'children', [\n {\n name: 'Augusta Ada Byron',\n age: 7\n }\n]);\nlordByron.childAges; // [7]\n\nset(lordByron, 'children', [\n ...lordByron.children,\n {\n name: 'Allegra Byron',\n age: 5\n }, {\n name: 'Elizabeth Medora Leigh',\n age: 8\n }\n]);\nlordByron.childAges; // [7, 5, 8]\n```",
16938
16944
  "itemtype": "method",
16939
16945
  "name": "mapBy",
@@ -16960,8 +16966,8 @@
16960
16966
  "module": "@ember/object"
16961
16967
  },
16962
16968
  {
16963
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16964
- "line": 388,
16969
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
16970
+ "line": 430,
16965
16971
  "description": "Filters the array by the callback.\n\nThe callback method you provide should have the following signature:\n- `item` is the current item in the iteration.\n- `index` is the integer index of the current item in the iteration.\n- `array` is the dependant array itself.\n\n```javascript\nfunction filterCallback(item, index, array);\n```\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { filter } from '@ember/object/computed';\n\nclass Hamster {\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n @filter('chores', function(chore, index, array) {\n return !chore.done;\n })\n remainingChores;\n}\n\nlet hamster = Hamster.create([\n { name: 'cook', done: true },\n { name: 'clean', done: true },\n { name: 'write more unit tests', done: false }\n]);\n\nhamster.remainingChores; // [{name: 'write more unit tests', done: false}]\n```\n\nYou can also use `@each.property` in your dependent key, the callback will\nstill use the underlying array:\n\n```javascript\nimport { set } from '@ember/object';\nimport { filter } from '@ember/object/computed';\n\nclass Hamster {\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n @filter('chores.@each.done', function(chore, index, array) {\n return !chore.done;\n })\n remainingChores;\n}\n\nlet hamster = new Hamster([\n { name: 'cook', done: true },\n { name: 'clean', done: true },\n { name: 'write more unit tests', done: false }\n]);\nhamster.remainingChores; // [{name: 'write more unit tests', done: false}]\n\nset(hamster.chores[2], 'done', true);\nhamster.remainingChores; // []\n```\n\nFinally, you can optionally pass an array of additional dependent keys as the\nsecond parameter to the macro, if your filter function relies on any external\nvalues:\n\n```javascript\nimport { filter } from '@ember/object/computed';\n\nclass Hamster {\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n doneKey = 'finished';\n\n @filter('chores', ['doneKey'], function(chore, index, array) {\n return !chore[this.doneKey];\n })\n remainingChores;\n}\n\nlet hamster = new Hamster([\n { name: 'cook', finished: true },\n { name: 'clean', finished: true },\n { name: 'write more unit tests', finished: false }\n]);\n\nhamster.remainingChores; // [{name: 'write more unit tests', finished: false}]\n```",
16966
16972
  "itemtype": "method",
16967
16973
  "name": "filter",
@@ -16994,8 +17000,8 @@
16994
17000
  "module": "@ember/object"
16995
17001
  },
16996
17002
  {
16997
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
16998
- "line": 519,
17003
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17004
+ "line": 597,
16999
17005
  "description": "Filters the array by the property and value.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { filterBy } from '@ember/object/computed';\n\nclass Hamster {\n constructor(chores) {\n set(this, 'chores', chores);\n }\n\n @filterBy('chores', 'done', false) remainingChores;\n}\n\nlet hamster = new Hamster([\n { name: 'cook', done: true },\n { name: 'clean', done: true },\n { name: 'write more unit tests', done: false }\n]);\n\nhamster.remainingChores; // [{ name: 'write more unit tests', done: false }]\n```",
17000
17006
  "itemtype": "method",
17001
17007
  "name": "filterBy",
@@ -17027,8 +17033,8 @@
17027
17033
  "module": "@ember/object"
17028
17034
  },
17029
17035
  {
17030
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17031
- "line": 575,
17036
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17037
+ "line": 653,
17032
17038
  "description": "A computed property which returns a new array with all the unique elements\nfrom one or more dependent arrays.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { uniq } from '@ember/object/computed';\n\nclass Hamster {\n constructor(fruits) {\n set(this, 'fruits', fruits);\n }\n\n @uniq('fruits') uniqueFruits;\n}\n\nlet hamster = new Hamster([\n 'banana',\n 'grape',\n 'kale',\n 'banana'\n]);\n\nhamster.uniqueFruits; // ['banana', 'grape', 'kale']\n```",
17033
17039
  "itemtype": "method",
17034
17040
  "name": "uniq",
@@ -17051,8 +17057,8 @@
17051
17057
  "module": "@ember/object"
17052
17058
  },
17053
17059
  {
17054
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17055
- "line": 641,
17060
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17061
+ "line": 724,
17056
17062
  "description": "A computed property which returns a new array with all the unique elements\nfrom an array, with uniqueness determined by specific key.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { uniqBy } from '@ember/object/computed';\n\nclass Hamster {\n constructor(fruits) {\n set(this, 'fruits', fruits);\n }\n\n @uniqBy('fruits', 'id') uniqueFruits;\n}\n\nlet hamster = new Hamster([\n { id: 1, 'banana' },\n { id: 2, 'grape' },\n { id: 3, 'peach' },\n { id: 1, 'banana' }\n]);\n\nhamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]\n```",
17057
17063
  "itemtype": "method",
17058
17064
  "name": "uniqBy",
@@ -17079,8 +17085,8 @@
17079
17085
  "module": "@ember/object"
17080
17086
  },
17081
17087
  {
17082
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17083
- "line": 695,
17088
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17089
+ "line": 778,
17084
17090
  "description": "A computed property which returns a new array with all the unique elements\nfrom one or more dependent arrays.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { union } from '@ember/object/computed';\n\nclass Hamster {\n constructor(fruits, vegetables) {\n set(this, 'fruits', fruits);\n set(this, 'vegetables', vegetables);\n }\n\n @union('fruits', 'vegetables') uniqueFruits;\n});\n\nlet hamster = new, Hamster(\n [\n 'banana',\n 'grape',\n 'kale',\n 'banana',\n 'tomato'\n ],\n [\n 'tomato',\n 'carrot',\n 'lettuce'\n ]\n);\n\nhamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']\n```",
17085
17091
  "itemtype": "method",
17086
17092
  "name": "union",
@@ -17103,8 +17109,8 @@
17103
17109
  "module": "@ember/object"
17104
17110
  },
17105
17111
  {
17106
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17107
- "line": 742,
17112
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17113
+ "line": 825,
17108
17114
  "description": "A computed property which returns a new array with all the elements\ntwo or more dependent arrays have in common.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { intersect } from '@ember/object/computed';\n\nclass FriendGroups {\n constructor(adaFriends, charlesFriends) {\n set(this, 'adaFriends', adaFriends);\n set(this, 'charlesFriends', charlesFriends);\n }\n\n @intersect('adaFriends', 'charlesFriends') friendsInCommon;\n}\n\nlet groups = new FriendGroups(\n ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],\n ['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']\n);\n\ngroups.friendsInCommon; // ['William King', 'Mary Somerville']\n```",
17109
17115
  "itemtype": "method",
17110
17116
  "name": "intersect",
@@ -17127,8 +17133,8 @@
17127
17133
  "module": "@ember/object"
17128
17134
  },
17129
17135
  {
17130
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17131
- "line": 816,
17136
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17137
+ "line": 906,
17132
17138
  "description": "A computed property which returns a new array with all the properties from the\nfirst dependent array that are not in the second dependent array.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { setDiff } from '@ember/object/computed';\n\nclass Hamster {\n constructor(likes, fruits) {\n set(this, 'likes', likes);\n set(this, 'fruits', fruits);\n }\n\n @setDiff('likes', 'fruits') wants;\n}\n\nlet hamster = new Hamster(\n [\n 'banana',\n 'grape',\n 'kale'\n ],\n [\n 'grape',\n 'kale',\n ]\n);\n\nhamster.wants; // ['banana']\n```",
17133
17139
  "itemtype": "method",
17134
17140
  "name": "setDiff",
@@ -17155,8 +17161,8 @@
17155
17161
  "module": "@ember/object"
17156
17162
  },
17157
17163
  {
17158
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17159
- "line": 886,
17164
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17165
+ "line": 976,
17160
17166
  "description": "A computed property that returns the array of values for the provided\ndependent properties.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { collect } from '@ember/object/computed';\n\nclass Hamster {\n @collect('hat', 'shirt') clothes;\n}\n\nlet hamster = new Hamster();\n\nhamster.clothes; // [null, null]\n\nset(hamster, 'hat', 'Camp Hat');\nset(hamster, 'shirt', 'Camp Shirt');\nhamster.clothes; // ['Camp Hat', 'Camp Shirt']\n```",
17161
17167
  "itemtype": "method",
17162
17168
  "name": "collect",
@@ -17179,8 +17185,8 @@
17179
17185
  "module": "@ember/object"
17180
17186
  },
17181
17187
  {
17182
- "file": "packages/@ember/object/lib/computed/reduce_computed_macros.js",
17183
- "line": 937,
17188
+ "file": "packages/@ember/object/lib/computed/reduce_computed_macros.ts",
17189
+ "line": 1031,
17184
17190
  "description": "A computed property which returns a new array with all the properties from the\nfirst dependent array sorted based on a property or sort function. The sort\nmacro can be used in two different ways:\n\n1. By providing a sort callback function\n2. By providing an array of keys to sort the array\n\nIn the first form, the callback method you provide should have the following\nsignature:\n\n```javascript\nfunction sortCallback(itemA, itemB);\n```\n\n- `itemA` the first item to compare.\n- `itemB` the second item to compare.\n\nThis function should return negative number (e.g. `-1`) when `itemA` should\ncome before `itemB`. It should return positive number (e.g. `1`) when `itemA`\nshould come after `itemB`. If the `itemA` and `itemB` are equal this function\nshould return `0`.\n\nTherefore, if this function is comparing some numeric values, simple `itemA -\nitemB` or `itemA.get( 'foo' ) - itemB.get( 'foo' )` can be used instead of\nseries of `if`.\n\nExample:\n\n```javascript\nimport { set } from '@ember/object';\nimport { sort } from '@ember/object/computed';\n\nclass ToDoList {\n constructor(todos) {\n set(this, 'todos', todos);\n }\n\n // using a custom sort function\n @sort('todos', function(a, b){\n if (a.priority > b.priority) {\n return 1;\n } else if (a.priority < b.priority) {\n return -1;\n }\n\n return 0;\n })\n priorityTodos;\n}\n\nlet todoList = new ToDoList([\n { name: 'Unit Test', priority: 2 },\n { name: 'Documentation', priority: 3 },\n { name: 'Release', priority: 1 }\n]);\n\ntodoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]\n```\n\nYou can also optionally pass an array of additional dependent keys as the\nsecond parameter, if your sort function is dependent on additional values that\ncould changes:\n\n```js\nimport EmberObject, { set } from '@ember/object';\nimport { sort } from '@ember/object/computed';\n\nclass ToDoList {\n sortKey = 'priority';\n\n constructor(todos) {\n set(this, 'todos', todos);\n }\n\n // using a custom sort function\n @sort('todos', ['sortKey'], function(a, b){\n if (a[this.sortKey] > b[this.sortKey]) {\n return 1;\n } else if (a[this.sortKey] < b[this.sortKey]) {\n return -1;\n }\n\n return 0;\n })\n sortedTodos;\n});\n\nlet todoList = new ToDoList([\n { name: 'Unit Test', priority: 2 },\n { name: 'Documentation', priority: 3 },\n { name: 'Release', priority: 1 }\n]);\n\ntodoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]\n```\n\nIn the second form, you should provide the key of the array of sort values as\nthe second parameter:\n\n```javascript\nimport { set } from '@ember/object';\nimport { sort } from '@ember/object/computed';\n\nclass ToDoList {\n constructor(todos) {\n set(this, 'todos', todos);\n }\n\n // using standard ascending sort\n todosSorting = ['name'];\n @sort('todos', 'todosSorting') sortedTodos;\n\n // using descending sort\n todosSortingDesc = ['name:desc'];\n @sort('todos', 'todosSortingDesc') sortedTodosDesc;\n}\n\nlet todoList = new ToDoList([\n { name: 'Unit Test', priority: 2 },\n { name: 'Documentation', priority: 3 },\n { name: 'Release', priority: 1 }\n]);\n\ntodoList.sortedTodos; // [{ name:'Documentation', priority:3 }, { name:'Release', priority:1 }, { name:'Unit Test', priority:2 }]\ntodoList.sortedTodosDesc; // [{ name:'Unit Test', priority:2 }, { name:'Release', priority:1 }, { name:'Documentation', priority:3 }]\n```",
17185
17191
  "itemtype": "method",
17186
17192
  "name": "sort",
@@ -17335,7 +17341,7 @@
17335
17341
  },
17336
17342
  {
17337
17343
  "file": "packages/@ember/runloop/index.ts",
17338
- "line": 61,
17344
+ "line": 62,
17339
17345
  "description": "Array of named queues. This array determines the order in which queues\nare flushed at the end of the RunLoop. You can define your own queues by\nsimply adding the queue name to this array. Normally you should not need\nto inspect or modify this property.",
17340
17346
  "itemtype": "property",
17341
17347
  "name": "queues",
@@ -17348,7 +17354,7 @@
17348
17354
  },
17349
17355
  {
17350
17356
  "file": "packages/@ember/runloop/index.ts",
17351
- "line": 104,
17357
+ "line": 105,
17352
17358
  "description": "Runs the passed target and method inside of a RunLoop, ensuring any\ndeferred actions including bindings and views updates are flushed at the\nend.\n\nNormally you should not need to invoke this method yourself. However if\nyou are implementing raw event handlers when interfacing with other\nlibraries or plugins, you should probably wrap all of your code inside this\ncall.\n\n```javascript\nimport { run } from '@ember/runloop';\n\nrun(function() {\n // code to be executed within a RunLoop\n});\n```",
17353
17359
  "itemtype": "method",
17354
17360
  "name": "run",
@@ -17383,7 +17389,7 @@
17383
17389
  },
17384
17390
  {
17385
17391
  "file": "packages/@ember/runloop/index.ts",
17386
- "line": 149,
17392
+ "line": 150,
17387
17393
  "description": "If no run-loop is present, it creates a new one. If a run loop is\npresent it will queue itself to run on the existing run-loops action\nqueue.\n\nPlease note: This is not for normal usage, and should be used sparingly.\n\nIf invoked when not within a run loop:\n\n```javascript\nimport { join } from '@ember/runloop';\n\njoin(function() {\n // creates a new run-loop\n});\n```\n\nAlternatively, if called within an existing run loop:\n\n```javascript\nimport { run, join } from '@ember/runloop';\n\nrun(function() {\n // creates a new run-loop\n\n join(function() {\n // joins with the existing run-loop, and queues for invocation on\n // the existing run-loops action queue.\n });\n});\n```",
17388
17394
  "itemtype": "method",
17389
17395
  "name": "join",
@@ -17418,7 +17424,7 @@
17418
17424
  },
17419
17425
  {
17420
17426
  "file": "packages/@ember/runloop/index.ts",
17421
- "line": 208,
17427
+ "line": 209,
17422
17428
  "description": "Allows you to specify which context to call the specified function in while\nadding the execution of that function to the Ember run loop. This ability\nmakes this method a great way to asynchronously integrate third-party libraries\ninto your Ember application.\n\n`bind` takes two main arguments, the desired context and the function to\ninvoke in that context. Any additional arguments will be supplied as arguments\nto the function that is passed in.\n\nLet's use the creation of a TinyMCE component as an example. Currently,\nTinyMCE provides a setup configuration option we can use to do some processing\nafter the TinyMCE instance is initialized but before it is actually rendered.\nWe can use that setup option to do some additional setup for our component.\nThe component itself could look something like the following:\n\n```app/components/rich-text-editor.js\nimport Component from '@ember/component';\nimport { on } from '@ember/object/evented';\nimport { bind } from '@ember/runloop';\n\nexport default Component.extend({\n initializeTinyMCE: on('didInsertElement', function() {\n tinymce.init({\n selector: '#' + this.$().prop('id'),\n setup: bind(this, this.setupEditor)\n });\n }),\n\n didInsertElement() {\n tinymce.init({\n selector: '#' + this.$().prop('id'),\n setup: bind(this, this.setupEditor)\n });\n }\n\n setupEditor(editor) {\n this.set('editor', editor);\n\n editor.on('change', function() {\n console.log('content changed!');\n });\n }\n});\n```\n\nIn this example, we use `bind` to bind the setupEditor method to the\ncontext of the RichTextEditor component and to have the invocation of that\nmethod be safely handled and executed by the Ember run loop.",
17423
17429
  "itemtype": "method",
17424
17430
  "name": "bind",
@@ -17454,7 +17460,7 @@
17454
17460
  },
17455
17461
  {
17456
17462
  "file": "packages/@ember/runloop/index.ts",
17457
- "line": 322,
17463
+ "line": 323,
17458
17464
  "description": "Begins a new RunLoop. Any deferred actions invoked after the begin will\nbe buffered until you invoke a matching call to `end()`. This is\na lower-level way to use a RunLoop instead of using `run()`.\n\n```javascript\nimport { begin, end } from '@ember/runloop';\n\nbegin();\n// code to be executed within a RunLoop\nend();\n```",
17459
17465
  "itemtype": "method",
17460
17466
  "name": "begin",
@@ -17470,7 +17476,7 @@
17470
17476
  },
17471
17477
  {
17472
17478
  "file": "packages/@ember/runloop/index.ts",
17473
- "line": 345,
17479
+ "line": 346,
17474
17480
  "description": "Ends a RunLoop. This must be called sometime after you call\n`begin()` to flush any deferred actions. This is a lower-level way\nto use a RunLoop instead of using `run()`.\n\n```javascript\nimport { begin, end } from '@ember/runloop';\n\nbegin();\n// code to be executed within a RunLoop\nend();\n```",
17475
17481
  "itemtype": "method",
17476
17482
  "name": "end",
@@ -17486,7 +17492,7 @@
17486
17492
  },
17487
17493
  {
17488
17494
  "file": "packages/@ember/runloop/index.ts",
17489
- "line": 368,
17495
+ "line": 369,
17490
17496
  "description": "Adds the passed target/method and any optional arguments to the named\nqueue to be executed at the end of the RunLoop. If you have not already\nstarted a RunLoop when calling this method one will be started for you\nautomatically.\n\nAt the end of a RunLoop, any methods scheduled in this way will be invoked.\nMethods will be invoked in an order matching the named queues defined in\nthe `queues` property.\n\n```javascript\nimport { schedule } from '@ember/runloop';\n\nschedule('afterRender', this, function() {\n // this will be executed in the 'afterRender' queue\n console.log('scheduled on afterRender queue');\n});\n\nschedule('actions', this, function() {\n // this will be executed in the 'actions' queue\n console.log('scheduled on actions queue');\n});\n\n// Note the functions will be run in order based on the run queues order.\n// Output would be:\n// scheduled on actions queue\n// scheduled on afterRender queue\n```",
17491
17497
  "itemtype": "method",
17492
17498
  "name": "schedule",
@@ -17526,7 +17532,7 @@
17526
17532
  },
17527
17533
  {
17528
17534
  "file": "packages/@ember/runloop/index.ts",
17529
- "line": 441,
17535
+ "line": 442,
17530
17536
  "description": "Invokes the passed target/method and optional arguments after a specified\nperiod of time. The last parameter of this method must always be a number\nof milliseconds.\n\nYou should use this method whenever you need to run some action after a\nperiod of time instead of using `setTimeout()`. This method will ensure that\nitems that expire during the same script execution cycle all execute\ntogether, which is often more efficient than using a real setTimeout.\n\n```javascript\nimport { later } from '@ember/runloop';\n\nlater(myContext, function() {\n // code here will execute within a RunLoop in about 500ms with this == myContext\n}, 500);\n```",
17531
17537
  "itemtype": "method",
17532
17538
  "name": "later",
@@ -17566,7 +17572,7 @@
17566
17572
  },
17567
17573
  {
17568
17574
  "file": "packages/@ember/runloop/index.ts",
17569
- "line": 489,
17575
+ "line": 490,
17570
17576
  "description": "Schedule a function to run one time during the current RunLoop. This is equivalent\n to calling `scheduleOnce` with the \"actions\" queue.",
17571
17577
  "itemtype": "method",
17572
17578
  "name": "once",
@@ -17601,7 +17607,7 @@
17601
17607
  },
17602
17608
  {
17603
17609
  "file": "packages/@ember/runloop/index.ts",
17604
- "line": 520,
17610
+ "line": 521,
17605
17611
  "description": "Schedules a function to run one time in a given queue of the current RunLoop.\nCalling this method with the same queue/target/method combination will have\nno effect (past the initial call).\n\nNote that although you can pass optional arguments these will not be\nconsidered when looking for duplicates. New arguments will replace previous\ncalls.\n\n```javascript\nimport { run, scheduleOnce } from '@ember/runloop';\n\nfunction sayHi() {\n console.log('hi');\n}\n\nrun(function() {\n scheduleOnce('afterRender', myContext, sayHi);\n scheduleOnce('afterRender', myContext, sayHi);\n // sayHi will only be executed once, in the afterRender queue of the RunLoop\n});\n```\n\nAlso note that for `scheduleOnce` to prevent additional calls, you need to\npass the same function instance. The following case works as expected:\n\n```javascript\nfunction log() {\n console.log('Logging only once');\n}\n\nfunction scheduleIt() {\n scheduleOnce('actions', myContext, log);\n}\n\nscheduleIt();\nscheduleIt();\n```\n\nBut this other case will schedule the function multiple times:\n\n```javascript\nimport { scheduleOnce } from '@ember/runloop';\n\nfunction scheduleIt() {\n scheduleOnce('actions', myContext, function() {\n console.log('Closure');\n });\n}\n\nscheduleIt();\nscheduleIt();\n\n// \"Closure\" will print twice, even though we're using `scheduleOnce`,\n// because the function we pass to it won't match the\n// previously scheduled operation.\n```\n\nAvailable queues, and their order, can be found at `queues`",
17606
17612
  "itemtype": "method",
17607
17613
  "name": "scheduleOnce",
@@ -17642,7 +17648,7 @@
17642
17648
  },
17643
17649
  {
17644
17650
  "file": "packages/@ember/runloop/index.ts",
17645
- "line": 614,
17651
+ "line": 615,
17646
17652
  "description": "Schedules an item to run from within a separate run loop, after\ncontrol has been returned to the system. This is equivalent to calling\n`later` with a wait time of 1ms.\n\n```javascript\nimport { next } from '@ember/runloop';\n\nnext(myContext, function() {\n // code to be executed in the next run loop,\n // which will be scheduled after the current one\n});\n```\n\nMultiple operations scheduled with `next` will coalesce\ninto the same later run loop, along with any other operations\nscheduled by `later` that expire right around the same\ntime that `next` operations will fire.\n\nNote that there are often alternatives to using `next`.\nFor instance, if you'd like to schedule an operation to happen\nafter all DOM element operations have completed within the current\nrun loop, you can make use of the `afterRender` run loop queue (added\nby the `ember-views` package, along with the preceding `render` queue\nwhere all the DOM element operations happen).\n\nExample:\n\n```app/components/my-component.js\nimport Component from '@ember/component';\nimport { scheduleOnce } from '@ember/runloop';\n\nexport Component.extend({\n didInsertElement() {\n this._super(...arguments);\n scheduleOnce('afterRender', this, 'processChildElements');\n },\n\n processChildElements() {\n // ... do something with component's child component\n // elements after they've finished rendering, which\n // can't be done within this component's\n // `didInsertElement` hook because that gets run\n // before the child elements have been added to the DOM.\n }\n});\n```\n\nOne benefit of the above approach compared to using `next` is\nthat you will be able to perform DOM/CSS operations before unprocessed\nelements are rendered to the screen, which may prevent flickering or\nother artifacts caused by delaying processing until after rendering.\n\nThe other major benefit to the above approach is that `next`\nintroduces an element of non-determinism, which can make things much\nharder to test, due to its reliance on `setTimeout`; it's much harder\nto guarantee the order of scheduled operations when they are scheduled\noutside of the current run loop, i.e. with `next`.",
17647
17653
  "itemtype": "method",
17648
17654
  "name": "next",
@@ -17677,7 +17683,7 @@
17677
17683
  },
17678
17684
  {
17679
17685
  "file": "packages/@ember/runloop/index.ts",
17680
- "line": 699,
17686
+ "line": 700,
17681
17687
  "description": "Cancels a scheduled item. Must be a value returned by `later()`,\n`once()`, `scheduleOnce()`, `next()`, `debounce()`, or\n`throttle()`.\n\n```javascript\nimport {\n next,\n cancel,\n later,\n scheduleOnce,\n once,\n throttle,\n debounce\n} from '@ember/runloop';\n\nlet runNext = next(myContext, function() {\n // will not be executed\n});\n\ncancel(runNext);\n\nlet runLater = later(myContext, function() {\n // will not be executed\n}, 500);\n\ncancel(runLater);\n\nlet runScheduleOnce = scheduleOnce('afterRender', myContext, function() {\n // will not be executed\n});\n\ncancel(runScheduleOnce);\n\nlet runOnce = once(myContext, function() {\n // will not be executed\n});\n\ncancel(runOnce);\n\nlet throttle = throttle(myContext, function() {\n // will not be executed\n}, 1, false);\n\ncancel(throttle);\n\nlet debounce = debounce(myContext, function() {\n // will not be executed\n}, 1);\n\ncancel(debounce);\n\nlet debounceImmediate = debounce(myContext, function() {\n // will be executed since we passed in true (immediate)\n}, 100, true);\n\n// the 100ms delay until this method can be called again will be canceled\ncancel(debounceImmediate);\n```",
17682
17688
  "itemtype": "method",
17683
17689
  "name": "cancel",
@@ -17700,7 +17706,7 @@
17700
17706
  },
17701
17707
  {
17702
17708
  "file": "packages/@ember/runloop/index.ts",
17703
- "line": 770,
17709
+ "line": 771,
17704
17710
  "description": "Delay calling the target method until the debounce period has elapsed\nwith no additional debounce calls. If `debounce` is called again before\nthe specified time has elapsed, the timer is reset and the entire period\nmust pass again before the target method is called.\n\nThis method should be used when an event may be called multiple times\nbut the action should only be called once when the event is done firing.\nA common example is for scroll events where you only want updates to\nhappen once scrolling has ceased.\n\n```javascript\nimport { debounce } from '@ember/runloop';\n\nfunction whoRan() {\n console.log(this.name + ' ran.');\n}\n\nlet myContext = { name: 'debounce' };\n\ndebounce(myContext, whoRan, 150);\n\n// less than 150ms passes\ndebounce(myContext, whoRan, 150);\n\n// 150ms passes\n// whoRan is invoked with context myContext\n// console logs 'debounce ran.' one time.\n```\n\nImmediate allows you to run the function immediately, but debounce\nother calls for this function until the wait time has elapsed. If\n`debounce` is called again before the specified time has elapsed,\nthe timer is reset and the entire period must pass again before\nthe method can be called again.\n\n```javascript\nimport { debounce } from '@ember/runloop';\n\nfunction whoRan() {\n console.log(this.name + ' ran.');\n}\n\nlet myContext = { name: 'debounce' };\n\ndebounce(myContext, whoRan, 150, true);\n\n// console logs 'debounce ran.' one time immediately.\n// 100ms passes\ndebounce(myContext, whoRan, 150, true);\n\n// 150ms passes and nothing else is logged to the console and\n// the debouncee is no longer being watched\ndebounce(myContext, whoRan, 150, true);\n\n// console logs 'debounce ran.' one time immediately.\n// 150ms passes and nothing else is logged to the console and\n// the debouncee is no longer being watched\n```",
17705
17711
  "itemtype": "method",
17706
17712
  "name": "debounce",
@@ -17745,7 +17751,7 @@
17745
17751
  },
17746
17752
  {
17747
17753
  "file": "packages/@ember/runloop/index.ts",
17748
- "line": 867,
17754
+ "line": 868,
17749
17755
  "description": "Ensure that the target method is never called more frequently than\nthe specified spacing period. The target method is called immediately.\n\n```javascript\nimport { throttle } from '@ember/runloop';\n\nfunction whoRan() {\n console.log(this.name + ' ran.');\n}\n\nlet myContext = { name: 'throttle' };\n\nthrottle(myContext, whoRan, 150);\n// whoRan is invoked with context myContext\n// console logs 'throttle ran.'\n\n// 50ms passes\nthrottle(myContext, whoRan, 150);\n\n// 50ms passes\nthrottle(myContext, whoRan, 150);\n\n// 150ms passes\nthrottle(myContext, whoRan, 150);\n// whoRan is invoked with context myContext\n// console logs 'throttle ran.'\n```",
17750
17756
  "itemtype": "method",
17751
17757
  "name": "throttle",
@@ -17790,7 +17796,7 @@
17790
17796
  },
17791
17797
  {
17792
17798
  "file": "packages/@ember/service/index.ts",
17793
- "line": 13,
17799
+ "line": 10,
17794
17800
  "itemtype": "method",
17795
17801
  "name": "inject",
17796
17802
  "static": 1,
@@ -17813,7 +17819,7 @@
17813
17819
  },
17814
17820
  {
17815
17821
  "file": "packages/@ember/service/index.ts",
17816
- "line": 33,
17822
+ "line": 30,
17817
17823
  "description": "Creates a property that lazily looks up a service in the container. There are\nno restrictions as to what objects a service can be injected into.\n\nExample:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\nexport default class ApplicationRoute extends Route {\n @service('auth') authManager;\n\n model() {\n return this.authManager.findCurrentUser();\n }\n}\n```\n\nClassic Class Example:\n\n```app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { service } from '@ember/service';\n\nexport default Route.extend({\n authManager: service('auth'),\n\n model() {\n return this.get('authManager').findCurrentUser();\n }\n});\n```\n\nThis example will create an `authManager` property on the application route\nthat looks up the `auth` service in the container, making it easily accessible\nin the `model` hook.",
17818
17824
  "itemtype": "method",
17819
17825
  "name": "service",
@@ -17991,7 +17997,7 @@
17991
17997
  },
17992
17998
  {
17993
17999
  "file": "packages/ember-testing/lib/adapters/adapter.js",
17994
- "line": 19,
18000
+ "line": 15,
17995
18001
  "description": "This callback will be called whenever an async operation is about to start.\n\nOverride this to call your framework's methods that handle async\noperations.",
17996
18002
  "access": "public",
17997
18003
  "tagname": "",
@@ -18002,7 +18008,7 @@
18002
18008
  },
18003
18009
  {
18004
18010
  "file": "packages/ember-testing/lib/adapters/adapter.js",
18005
- "line": 30,
18011
+ "line": 26,
18006
18012
  "description": "This callback will be called whenever an async operation has completed.",
18007
18013
  "access": "public",
18008
18014
  "tagname": "",
@@ -18013,7 +18019,7 @@
18013
18019
  },
18014
18020
  {
18015
18021
  "file": "packages/ember-testing/lib/adapters/adapter.js",
18016
- "line": 38,
18022
+ "line": 34,
18017
18023
  "description": "Override this method with your testing framework's false assertion.\nThis function is called whenever an exception occurs causing the testing\npromise to fail.\n\nQUnit example:\n\n```javascript\n exception: function(error) {\n ok(false, error);\n };\n```",
18018
18024
  "access": "public",
18019
18025
  "tagname": "",
@@ -18486,23 +18492,23 @@
18486
18492
  "warnings": [
18487
18493
  {
18488
18494
  "message": "replacing incorrect tag: returns with return",
18489
- "line": " packages/@ember/-internals/container/lib/container.ts:183"
18495
+ "line": " packages/@ember/-internals/container/lib/container.ts:185"
18490
18496
  },
18491
18497
  {
18492
18498
  "message": "unknown tag: internal",
18493
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:604"
18499
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:601"
18494
18500
  },
18495
18501
  {
18496
18502
  "message": "unknown tag: internal",
18497
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:627"
18503
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:624"
18498
18504
  },
18499
18505
  {
18500
18506
  "message": "unknown tag: internal",
18501
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:648"
18507
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:645"
18502
18508
  },
18503
18509
  {
18504
18510
  "message": "unknown tag: decorator",
18505
- "line": " packages/@ember/-internals/metal/lib/tracked.ts:17"
18511
+ "line": " packages/@ember/-internals/metal/lib/tracked.ts:12"
18506
18512
  },
18507
18513
  {
18508
18514
  "message": "replacing incorrect tag: returns with return",
@@ -18514,7 +18520,7 @@
18514
18520
  },
18515
18521
  {
18516
18522
  "message": "replacing incorrect tag: returns with return",
18517
- "line": " packages/@ember/-internals/routing/lib/system/route.ts:2437"
18523
+ "line": " packages/@ember/-internals/routing/lib/system/route.ts:2436"
18518
18524
  },
18519
18525
  {
18520
18526
  "message": "replacing incorrect tag: function with method",
@@ -18542,11 +18548,11 @@
18542
18548
  },
18543
18549
  {
18544
18550
  "message": "Missing item type\nThis is deprecated in favor of explicit injection of dependencies.\n\nReference: https://deprecations.emberjs.com/v3.x#toc_implicit-injections\n```\n\n@private\n@method injection\n@param {String} factoryName\n@param {String} property\n@param {String} injectionName\n@deprecated",
18545
- "line": " packages/@ember/-internals/container/lib/registry.ts:440"
18551
+ "line": " packages/@ember/-internals/container/lib/registry.ts:441"
18546
18552
  },
18547
18553
  {
18548
18554
  "message": "Missing item type\nThe `change` and `input` actions need to be overridden in the `Input`\nsubclass. Unfortunately, some ember-source builds currently uses babel\nloose mode to transpile its classes. Having the `@action` decorator on the\nsuper class creates a getter on the prototype, and when the subclass\noverrides the method, the loose mode transpilation would emit something\nlike `Subclass.prototype['change'] = function change() { ... }`, which\nfails because `prototype['change']` is getter-only/readonly. The correct\nsolution is to use `Object.defineProperty(prototype, 'change', ...)` but\nthat requires disabling loose mode. For now, the workaround is to add the\ndecorator only on the subclass. This is more of a configuration issue on\nour own builds and doesn't really affect apps.",
18549
- "line": " packages/@ember/-internals/glimmer/lib/components/abstract-input.ts:125"
18555
+ "line": " packages/@ember/-internals/glimmer/lib/components/abstract-input.ts:127"
18550
18556
  },
18551
18557
  {
18552
18558
  "message": "Missing item type\nThe HTML class attribute.",
@@ -18558,11 +18564,11 @@
18558
18564
  },
18559
18565
  {
18560
18566
  "message": "Missing item type\nThe default HTML id attribute. We don't really _need_ one, this is just\nadded for compatibility as it's hard to tell if people rely on it being\npresent, and it doens't really hurt.\n\nHowever, don't rely on this internally, like passing it to `getElementId`.\nThis can be (and often is) overriden by passing an `id` attribute on the\ninvocation, which shadows this default id via `...attributes`.",
18561
- "line": " packages/@ember/-internals/glimmer/lib/components/internal.ts:37"
18567
+ "line": " packages/@ember/-internals/glimmer/lib/components/internal.ts:39"
18562
18568
  },
18563
18569
  {
18564
18570
  "message": "Missing item type\nThe default HTML class attribute. Similar to the above, we don't _need_\nthem, they are just added for compatibility as it's similarly hard to tell\nif people rely on it in their CSS etc, and it doens't really hurt.",
18565
- "line": " packages/@ember/-internals/glimmer/lib/components/internal.ts:50"
18571
+ "line": " packages/@ember/-internals/glimmer/lib/components/internal.ts:52"
18566
18572
  },
18567
18573
  {
18568
18574
  "message": "Missing item type\nThis reference is used to get the `[]` tag of iterables, so we can trigger\nupdates to `{{each}}` when it changes. It is put into place by a template\ntransform at build time, similar to the (-each-in) helper",
@@ -18606,11 +18612,11 @@
18606
18612
  },
18607
18613
  {
18608
18614
  "message": "Missing item type",
18609
- "line": " packages/@ember/-internals/glimmer/lib/views/outlet.ts:109"
18615
+ "line": " packages/@ember/-internals/glimmer/lib/views/outlet.ts:111"
18610
18616
  },
18611
18617
  {
18612
18618
  "message": "Missing item type",
18613
- "line": " packages/@ember/-internals/glimmer/lib/views/outlet.ts:117"
18619
+ "line": " packages/@ember/-internals/glimmer/lib/views/outlet.ts:119"
18614
18620
  },
18615
18621
  {
18616
18622
  "message": "Missing item type",
@@ -18782,11 +18788,15 @@
18782
18788
  },
18783
18789
  {
18784
18790
  "message": "Missing item type",
18785
- "line": " packages/@ember/-internals/metal/lib/computed.ts:713"
18791
+ "line": " packages/@ember/-internals/metal/lib/computed.ts:716"
18786
18792
  },
18787
18793
  {
18788
18794
  "message": "Missing item type",
18789
- "line": " packages/@ember/-internals/metal/lib/computed.ts:719"
18795
+ "line": " packages/@ember/-internals/metal/lib/computed.ts:722"
18796
+ },
18797
+ {
18798
+ "message": "Missing item type",
18799
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:525"
18790
18800
  },
18791
18801
  {
18792
18802
  "message": "Missing item type",
@@ -18806,39 +18816,35 @@
18806
18816
  },
18807
18817
  {
18808
18818
  "message": "Missing item type",
18809
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:540"
18810
- },
18811
- {
18812
- "message": "Missing item type",
18813
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:545"
18819
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:542"
18814
18820
  },
18815
18821
  {
18816
18822
  "message": "Missing item type",
18817
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:586"
18823
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:583"
18818
18824
  },
18819
18825
  {
18820
18826
  "message": "Missing item type",
18821
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:643"
18827
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:640"
18822
18828
  },
18823
18829
  {
18824
18830
  "message": "Missing item type",
18825
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:669"
18831
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:666"
18826
18832
  },
18827
18833
  {
18828
18834
  "message": "Missing item type",
18829
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:676"
18835
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:673"
18830
18836
  },
18831
18837
  {
18832
18838
  "message": "Missing item type",
18833
- "line": " packages/@ember/-internals/metal/lib/mixin.ts:681"
18839
+ "line": " packages/@ember/-internals/metal/lib/mixin.ts:678"
18834
18840
  },
18835
18841
  {
18836
18842
  "message": "Missing item type\nPrimarily used for cases where we are redefining a class, e.g. mixins/reopen\nbeing applied later. Revalidates all the observers, resetting their tags.",
18837
- "line": " packages/@ember/-internals/metal/lib/observer.ts:154"
18843
+ "line": " packages/@ember/-internals/metal/lib/observer.ts:155"
18838
18844
  },
18839
18845
  {
18840
18846
  "message": "Missing item type",
18841
- "line": " packages/@ember/-internals/metal/lib/tracked.ts:17"
18847
+ "line": " packages/@ember/-internals/metal/lib/tracked.ts:12"
18842
18848
  },
18843
18849
  {
18844
18850
  "message": "Missing item type",
@@ -18870,19 +18876,19 @@
18870
18876
  },
18871
18877
  {
18872
18878
  "message": "Missing item type\nFinds the name of the substate route if it exists for the given route. A\nsubstate route is of the form `route_state`, such as `foo_loading`.",
18873
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1650"
18879
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1646"
18874
18880
  },
18875
18881
  {
18876
18882
  "message": "Missing item type\nFinds the name of the state route if it exists for the given route. A state\nroute is of the form `route.state`, such as `foo.loading`. Properly Handles\n`application` named routes.",
18877
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1671"
18883
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1667"
18878
18884
  },
18879
18885
  {
18880
18886
  "message": "Missing item type\nDetermines whether or not a route has been defined by checking that the route\nis in the Router's map and the owner has a registration for that route.",
18881
- "line": " packages/@ember/-internals/routing/lib/system/router.ts:1693"
18887
+ "line": " packages/@ember/-internals/routing/lib/system/router.ts:1689"
18882
18888
  },
18883
18889
  {
18884
18890
  "message": "Missing item type",
18885
- "line": " packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts:26"
18891
+ "line": " packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts:27"
18886
18892
  },
18887
18893
  {
18888
18894
  "message": "Missing item type\nSubscribes to a named event with given function.",
@@ -18958,47 +18964,47 @@
18958
18964
  },
18959
18965
  {
18960
18966
  "message": "Missing item type",
18961
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:134"
18967
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:128"
18962
18968
  },
18963
18969
  {
18964
18970
  "message": "Missing item type",
18965
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:136"
18971
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:130"
18966
18972
  },
18967
18973
  {
18968
18974
  "message": "Missing item type",
18969
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:139"
18975
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:133"
18970
18976
  },
18971
18977
  {
18972
18978
  "message": "Missing item type",
18973
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:141"
18979
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:135"
18974
18980
  },
18975
18981
  {
18976
18982
  "message": "Missing item type",
18977
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:144"
18983
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:138"
18978
18984
  },
18979
18985
  {
18980
18986
  "message": "Missing item type",
18981
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:146"
18987
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:140"
18982
18988
  },
18983
18989
  {
18984
18990
  "message": "Missing item type",
18985
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:148"
18991
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:142"
18986
18992
  },
18987
18993
  {
18988
18994
  "message": "Missing item type",
18989
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:150"
18995
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:144"
18990
18996
  },
18991
18997
  {
18992
18998
  "message": "Missing item type",
18993
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:152"
18999
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:146"
18994
19000
  },
18995
19001
  {
18996
19002
  "message": "Missing item type",
18997
- "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:154"
19003
+ "line": " packages/@ember/-internals/runtime/lib/system/array_proxy.ts:148"
18998
19004
  },
18999
19005
  {
19000
19006
  "message": "Missing item type",
19001
- "line": " packages/@ember/-internals/runtime/lib/system/core_object.ts:236"
19007
+ "line": " packages/@ember/-internals/runtime/lib/system/core_object.ts:235"
19002
19008
  },
19003
19009
  {
19004
19010
  "message": "Missing item type",
@@ -19018,43 +19024,43 @@
19018
19024
  },
19019
19025
  {
19020
19026
  "message": "Missing item type\nUnfortunately, a lot of existing code assumes the booting process is\n\"synchronous\". Specifically, a lot of tests assumes the last call to\n`app.advanceReadiness()` or `app.reset()` will result in the app being\nfully-booted when the current runloop completes.\n\nWe would like new code (like the `visit` API) to stop making this assumption,\nso we created the asynchronous version above that returns a promise. But until\nwe have migrated all the code, we would have to expose this method for use\n*internally* in places where we need to boot an app \"synchronously\".",
19021
- "line": " packages/@ember/application/lib/application.ts:735"
19027
+ "line": " packages/@ember/application/lib/application.ts:737"
19022
19028
  },
19023
19029
  {
19024
19030
  "message": "Missing item type\nOverrides the base `EngineInstance._bootSync` method with concerns relevant\nto booting application (instead of engine) instances.\n\nThis method should only contain synchronous boot concerns. Asynchronous\nboot concerns should eventually be moved to the `boot` method, which\nreturns a promise.\n\nUntil all boot code has been made asynchronous, we need to continue to\nexpose this method for use *internally* in places where we need to boot an\ninstance synchronously.",
19025
- "line": " packages/@ember/application/instance.ts:88"
19031
+ "line": " packages/@ember/application/instance.ts:89"
19026
19032
  },
19027
19033
  {
19028
19034
  "message": "Missing item type\nThis hook is called by the root-most Route (a.k.a. the ApplicationRoute)\nwhen it has finished creating the root View. By default, we simply take the\nview and append it to the `rootElement` specified on the Application.\n\nIn cases like FastBoot and testing, we can override this hook and implement\ncustom behavior, such as serializing to a string and sending over an HTTP\nsocket rather than appending to DOM.",
19029
- "line": " packages/@ember/application/instance.ts:148"
19035
+ "line": " packages/@ember/application/instance.ts:149"
19030
19036
  },
19031
19037
  {
19032
19038
  "message": "Missing item type\nTells the router to start routing. The router will ask the location for the\ncurrent URL of the page to determine the initial URL to start routing to.\nTo start the app at a specific URL, call `handleURL` instead.",
19033
- "line": " packages/@ember/application/instance.ts:165"
19039
+ "line": " packages/@ember/application/instance.ts:166"
19034
19040
  },
19035
19041
  {
19036
19042
  "message": "Missing item type\nSets up the router, initializing the child router and configuring the\nlocation before routing begins.\n\nBecause setup should only occur once, multiple calls to `setupRouter`\nbeyond the first call have no effect.\n\nThis is commonly used in order to confirm things that rely on the router\nare functioning properly from tests that are primarily rendering related.\n\nFor example, from within [ember-qunit](https://github.com/emberjs/ember-qunit)'s\n`setupRenderingTest` calling `this.owner.setupRouter()` would allow that\nrendering test to confirm that any `<LinkTo></LinkTo>`'s that are rendered\nhave the correct URL.",
19037
- "line": " packages/@ember/application/instance.ts:176"
19043
+ "line": " packages/@ember/application/instance.ts:177"
19038
19044
  },
19039
19045
  {
19040
19046
  "message": "Missing item type\nDirects the router to route to a particular URL. This is useful in tests,\nfor example, to tell the app to start at a particular URL.",
19041
- "line": " packages/@ember/application/instance.ts:197"
19047
+ "line": " packages/@ember/application/instance.ts:198"
19042
19048
  },
19043
19049
  {
19044
19050
  "message": "Missing item type",
19045
- "line": " packages/@ember/application/instance.ts:209"
19051
+ "line": " packages/@ember/application/instance.ts:210"
19046
19052
  },
19047
19053
  {
19048
19054
  "message": "Missing item type\nReturns the current URL of the app instance. This is useful when your\napp does not update the browsers URL bar (i.e. it uses the `'none'`\nlocation adapter).",
19049
- "line": " packages/@ember/application/instance.ts:231"
19055
+ "line": " packages/@ember/application/instance.ts:232"
19050
19056
  },
19051
19057
  {
19052
19058
  "message": "Missing item type\nNavigate the instance to a particular URL. This is useful in tests, for\nexample, or to tell the app to start at a particular URL. This method\nreturns a promise that resolves with the app instance when the transition\nis complete, or rejects if the transion was aborted due to an error.",
19053
- "line": " packages/@ember/application/instance.ts:246"
19059
+ "line": " packages/@ember/application/instance.ts:247"
19054
19060
  },
19055
19061
  {
19056
19062
  "message": "Missing item type",
19057
- "line": " packages/@ember/controller/lib/controller_mixin.d.ts:11"
19063
+ "line": " packages/@ember/controller/lib/controller_mixin.ts:24"
19058
19064
  },
19059
19065
  {
19060
19066
  "message": "Missing item type\nUnfortunately, a lot of existing code assumes booting an instance is\nsynchronous – specifically, a lot of tests assume the last call to\n`app.advanceReadiness()` or `app.reset()` will result in a new instance\nbeing fully-booted when the current runloop completes.\n\nWe would like new code (like the `visit` API) to stop making this\nassumption, so we created the asynchronous version above that returns a\npromise. But until we have migrated all the code, we would have to expose\nthis method for use *internally* in places where we need to boot an instance\nsynchronously.",