` tag for views.\n\nIf the tagName is `''`, the view will be tagless, with no outer element.\nComponent properties that depend on the presence of an outer element, such\nas `classNameBindings` and `attributeBindings`, do not work with tagless\ncomponents. Tagless components cannot implement methods to handle events,\nand their `element` property has a `null` value.",
+ "itemtype": "property",
+ "name": "tagName",
+ "type": "String",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "@ember/component"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
+ "line": 38,
+ "description": "If the view is currently inserted into the DOM of a parent view, this\nproperty will point to the parent of the view.",
+ "itemtype": "property",
+ "name": "parentView",
+ "type": "Ember.View",
+ "default": "null",
+ "access": "private",
+ "tagname": "",
+ "class": "Component",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.CoreView"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 27,
+ "description": "The collection of functions, keyed by name, available on this\n`ActionHandler` as action targets.\n\nThese functions will be invoked when a matching `{{action}}` is triggered\nfrom within a template and the application's current route is this route.\n\nActions can also be invoked from other parts of your application\nvia `ActionHandler#send`.\n\nThe `actions` hash will inherit action handlers from\nthe `actions` hash defined on extended parent classes\nor mixins rather than just replace the entire hash, e.g.:\n\n```js {data-filename=app/mixins/can-display-banner.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n displayBanner(msg) {\n // ...\n }\n }\n});\n```\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\nimport CanDisplayBanner from '../mixins/can-display-banner';\n\nexport default Route.extend(CanDisplayBanner, {\n actions: {\n playMusic() {\n // ...\n }\n }\n});\n\n// `WelcomeRoute`, when active, will be able to respond\n// to both actions, since the actions hash is merged rather\n// then replaced when extending mixins / parent classes.\nthis.send('displayBanner');\nthis.send('playMusic');\n```\n\nWithin a Controller, Route or Component's action handler,\nthe value of the `this` context is the Controller, Route or\nComponent object:\n\n```js {data-filename=app/routes/song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n myAction() {\n this.controllerFor(\"song\");\n this.transitionTo(\"other.route\");\n ...\n }\n }\n});\n```\n\nIt is also possible to call `this._super(...arguments)` from within an\naction handler if it overrides a handler defined on a parent\nclass or mixin:\n\nTake for example the following routes:\n\n```js {data-filename=app/mixins/debug-route.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n debugRouteInformation() {\n console.debug(\"It's a-me, console.debug!\");\n }\n }\n});\n```\n\n```js {data-filename=app/routes/annoying-debug.js}\nimport Route from '@ember/routing/route';\nimport DebugRoute from '../mixins/debug-route';\n\nexport default Route.extend(DebugRoute, {\n actions: {\n debugRouteInformation() {\n // also call the debugRouteInformation of mixed in DebugRoute\n this._super(...arguments);\n\n // show additional annoyance\n window.alert(...);\n }\n }\n});\n```\n\n## Bubbling\n\nBy default, an action will stop bubbling once a handler defined\non the `actions` hash handles it. To continue bubbling the action,\nyou must return `true` from the handler:\n\n```js {data-filename=app/router.js}\nRouter.map(function() {\n this.route(\"album\", function() {\n this.route(\"song\");\n });\n});\n```\n\n```js {data-filename=app/routes/album.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying: function() {\n }\n }\n});\n```\n\n```js {data-filename=app/routes/album-song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying() {\n // ...\n\n if (actionShouldAlsoBeTriggeredOnParentRoute) {\n return true;\n }\n }\n }\n});\n```",
+ "itemtype": "property",
+ "name": "actions",
+ "type": "Object",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Component",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-Ember.CoreView",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/component",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-ComponentStateBucket.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-ComponentStateBucket.json
new file mode 100644
index 000000000..e4627841a
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-ComponentStateBucket.json
@@ -0,0 +1,45 @@
+{
+ "data": {
+ "id": "ember-7.2.0-ComponentStateBucket",
+ "type": "class",
+ "attributes": {
+ "name": "ComponentStateBucket",
+ "shortname": "ComponentStateBucket",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "",
+ "file": "packages/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.ts",
+ "line": 23,
+ "description": "Represents the internal state of the component.",
+ "access": "private",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-ComputedProperty.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-ComputedProperty.json
new file mode 100644
index 000000000..4d2e877e7
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-ComputedProperty.json
@@ -0,0 +1,81 @@
+{
+ "data": {
+ "id": "ember-7.2.0-ComputedProperty",
+ "type": "class",
+ "attributes": {
+ "name": "ComputedProperty",
+ "shortname": "ComputedProperty",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/object",
+ "namespace": "",
+ "file": "packages/@ember/-internals/metal/lib/computed.ts",
+ "line": 74,
+ "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)",
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/metal/lib/computed.ts",
+ "line": 604,
+ "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```",
+ "itemtype": "method",
+ "name": "readOnly",
+ "return": {
+ "description": "this",
+ "type": "ComputedProperty"
+ },
+ "chainable": 1,
+ "access": "public",
+ "tagname": "",
+ "class": "ComputedProperty",
+ "module": "@ember/object"
+ },
+ {
+ "file": "packages/@ember/-internals/metal/lib/computed.ts",
+ "line": 654,
+ "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.",
+ "itemtype": "method",
+ "name": "meta",
+ "params": [
+ {
+ "name": "meta",
+ "description": "",
+ "type": "Object"
+ }
+ ],
+ "chainable": 1,
+ "access": "public",
+ "tagname": "",
+ "class": "ComputedProperty",
+ "module": "@ember/object"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/object",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Container.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Container.json
new file mode 100644
index 000000000..233762ab6
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Container.json
@@ -0,0 +1,175 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Container",
+ "type": "class",
+ "attributes": {
+ "name": "Container",
+ "shortname": "Container",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "rsvp",
+ "namespace": "",
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 63,
+ "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.",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 122,
+ "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```",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "lookup",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ },
+ {
+ "name": "options",
+ "description": "",
+ "type": "RegisterOptions",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Any"
+ },
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 164,
+ "description": "A depth first traversal, destroying the container, its descendant containers and all\ntheir managed objects.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "destroy",
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 181,
+ "description": "Clear either the entire cache or just the cache for a particular key.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "reset",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "optional key to reset; if missing, resets everything",
+ "type": "String"
+ }
+ ],
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 198,
+ "description": "Returns an object that can be used to provide an owner to a\nmanually created instance.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "ownerInjection",
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 211,
+ "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.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "factoryFor",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Any"
+ },
+ "class": "Container",
+ "module": "rsvp"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 103,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "registry",
+ "type": "Registry",
+ "since": "1.11.0",
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 110,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "cache",
+ "type": "InheritingDict",
+ "class": "Container",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/container/lib/container.ts",
+ "line": 116,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "validationCache",
+ "type": "InheritingDict",
+ "class": "Container",
+ "module": "rsvp"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-rsvp",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerDebugAdapter.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerDebugAdapter.json
new file mode 100644
index 000000000..2709a6bad
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerDebugAdapter.json
@@ -0,0 +1,592 @@
+{
+ "data": {
+ "id": "ember-7.2.0-ContainerDebugAdapter",
+ "type": "class",
+ "attributes": {
+ "name": "ContainerDebugAdapter",
+ "shortname": "ContainerDebugAdapter",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/debug/container-debug-adapter",
+ "namespace": "",
+ "file": "packages/@ember/debug/container-debug-adapter.ts",
+ "line": 13,
+ "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```",
+ "extends": "EmberObject",
+ "since": "1.5.0",
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/debug/container-debug-adapter.ts",
+ "line": 64,
+ "description": "Returns true if it is possible to catalog a list of available\nclasses in the resolver for a given type.",
+ "itemtype": "method",
+ "name": "canCatalogEntriesByType",
+ "params": [
+ {
+ "name": "type",
+ "description": "The type. e.g. \"model\", \"controller\", \"route\".",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "whether a list is available for this type.",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/debug/container-debug-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/container-debug-adapter.ts",
+ "line": 81,
+ "description": "Returns the available classes a given type.",
+ "itemtype": "method",
+ "name": "catalogEntriesByType",
+ "params": [
+ {
+ "name": "type",
+ "description": "The type. e.g. \"model\", \"controller\", \"route\".",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "An array of strings.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/debug/container-debug-adapter"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"
\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/debug/container-debug-adapter.ts",
+ "line": 54,
+ "description": "The resolver instance of the application\nbeing debugged. This property will be injected\non creation.",
+ "itemtype": "property",
+ "name": "resolver",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/debug/container-debug-adapter"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "ContainerDebugAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-EmberObject",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/debug/container-debug-adapter",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxy.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxy.json
new file mode 100644
index 000000000..c22f5f81d
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxy.json
@@ -0,0 +1,108 @@
+{
+ "data": {
+ "id": "ember-7.2.0-ContainerProxy",
+ "type": "class",
+ "attributes": {
+ "name": "ContainerProxy",
+ "shortname": "ContainerProxy",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/owner",
+ "namespace": "",
+ "file": "packages/@ember/-internals/owner/index.ts",
+ "line": 566,
+ "description": "The interface for a container proxy, which is itself a private API used\nby the private `ContainerProxyMixin` as part of the base definition of\n`EngineInstance`.",
+ "access": "private",
+ "tagname": "",
+ "extends": "BasicContainer",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/owner/index.ts",
+ "line": 198,
+ "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```",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "lookup",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ },
+ {
+ "name": "options",
+ "description": "",
+ "type": "RegisterOptions"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Any"
+ },
+ "class": "ContainerProxy",
+ "module": "@ember/owner",
+ "inherited": true,
+ "inheritedFrom": "BasicContainer"
+ },
+ {
+ "file": "packages/@ember/-internals/owner/index.ts",
+ "line": 247,
+ "description": "Given a `FullName`, of the form `\"type:name\"` return a `FactoryManager`.\n\nThis method returns a manager which can be used for introspection of the\nfactory's class or for the creation of factory instances with initial\nproperties. 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\nFor example:\n\n```javascript\nimport { getOwner } from '@ember/application';\n\nlet owner = getOwner(otherInstance);\n// the owner is commonly the `applicationInstance`, and can be accessed via\n// an instance initializer.\n\nlet factory = owner.factoryFor('service:bespoke');\n\nfactory.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\nlet 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\nAny instances created via the factory's `.create()` method *must* be destroyed\nmanually by the caller of `.create()`. Typically, this is done during the creating\nobjects own `destroy` or `willDestroy` methods.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "factoryFor",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "FactoryManager"
+ },
+ "class": "ContainerProxy",
+ "module": "@ember/owner",
+ "inherited": true,
+ "inheritedFrom": "BasicContainer"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-BasicContainer",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": [
+ {
+ "type": "class",
+ "id": "ember-7.2.0-ContainerProxyMixin"
+ }
+ ]
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/owner",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxyMixin.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxyMixin.json
new file mode 100644
index 000000000..5ef7644b7
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-ContainerProxyMixin.json
@@ -0,0 +1,118 @@
+{
+ "data": {
+ "id": "ember-7.2.0-ContainerProxyMixin",
+ "type": "class",
+ "attributes": {
+ "name": "ContainerProxyMixin",
+ "shortname": "ContainerProxyMixin",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "EngineInstance"
+ ],
+ "module": "ember",
+ "namespace": "",
+ "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
+ "line": 12,
+ "description": "ContainerProxyMixin is used to provide public access to specific\ncontainer functionality.",
+ "extends": "ContainerProxy",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/owner/index.ts",
+ "line": 198,
+ "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```",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "lookup",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ },
+ {
+ "name": "options",
+ "description": "",
+ "type": "RegisterOptions"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Any"
+ },
+ "class": "ContainerProxyMixin",
+ "module": "@ember/owner",
+ "inherited": true,
+ "inheritedFrom": "BasicContainer"
+ },
+ {
+ "file": "packages/@ember/-internals/owner/index.ts",
+ "line": 247,
+ "description": "Given a `FullName`, of the form `\"type:name\"` return a `FactoryManager`.\n\nThis method returns a manager which can be used for introspection of the\nfactory's class or for the creation of factory instances with initial\nproperties. 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\nFor example:\n\n```javascript\nimport { getOwner } from '@ember/application';\n\nlet owner = getOwner(otherInstance);\n// the owner is commonly the `applicationInstance`, and can be accessed via\n// an instance initializer.\n\nlet factory = owner.factoryFor('service:bespoke');\n\nfactory.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\nlet 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\nAny instances created via the factory's `.create()` method *must* be destroyed\nmanually by the caller of `.create()`. Typically, this is done during the creating\nobjects own `destroy` or `willDestroy` methods.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "factoryFor",
+ "params": [
+ {
+ "name": "fullName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "FactoryManager"
+ },
+ "class": "ContainerProxyMixin",
+ "module": "@ember/owner",
+ "inherited": true,
+ "inheritedFrom": "BasicContainer"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/container_proxy.ts",
+ "line": 25,
+ "description": "The container stores state.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "__container__",
+ "type": "Ember.Container",
+ "class": "ContainerProxyMixin",
+ "module": "ember"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-ContainerProxy",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-CoreObject.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-CoreObject.json
new file mode 100644
index 000000000..902fb3d9b
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-CoreObject.json
@@ -0,0 +1,158 @@
+{
+ "data": {
+ "id": "ember-7.2.0-CoreObject",
+ "type": "class",
+ "attributes": {
+ "name": "CoreObject",
+ "shortname": "CoreObject",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/object/core",
+ "namespace": "",
+ "file": "packages/@ember/object/core.ts",
+ "line": 171,
+ "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.",
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "CoreObject",
+ "module": "@ember/object/core"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": [
+ {
+ "type": "class",
+ "id": "ember-7.2.0-Helper"
+ },
+ {
+ "type": "class",
+ "id": "ember-7.2.0-EmberObject"
+ }
+ ]
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/object/core",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-DataAdapter.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-DataAdapter.json
new file mode 100644
index 000000000..8dc52e801
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-DataAdapter.json
@@ -0,0 +1,935 @@
+{
+ "data": {
+ "id": "ember-7.2.0-DataAdapter",
+ "type": "class",
+ "attributes": {
+ "name": "DataAdapter",
+ "shortname": "DataAdapter",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/debug/data-adapter",
+ "namespace": "",
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 183,
+ "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```",
+ "extends": "EmberObject",
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 310,
+ "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.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getFilters",
+ "return": {
+ "description": "List of objects defining filters.\n The object should have a `name` and `desc` property.",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 327,
+ "description": "Fetch the model types and observe them for changes.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "watchModelTypes",
+ "params": [
+ {
+ "name": "typesAdded",
+ "description": "Callback to call to add types.\nTakes an array of objects containing wrapped types (returned from `wrapModelType`).",
+ "type": "Function"
+ },
+ {
+ "name": "typesUpdated",
+ "description": "Callback to call when a type has changed.\nTakes an array of objects containing wrapped types.",
+ "type": "Function"
+ }
+ ],
+ "return": {
+ "description": "Method to call to remove all observers",
+ "type": "Function"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 375,
+ "description": "Fetch the records of a given type and observe them for changes.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "watchRecords",
+ "params": [
+ {
+ "name": "modelName",
+ "description": "The model name.",
+ "type": "String"
+ },
+ {
+ "name": "recordsAdded",
+ "description": "Callback to call to add records.\nTakes an array of objects containing wrapped records.\nThe object should have the following properties:\n columnValues: {Object} The key and value of a table cell.\n object: {Object} The actual record object.",
+ "type": "Function"
+ },
+ {
+ "name": "recordsUpdated",
+ "description": "Callback to call when a record has changed.\nTakes an array of objects containing wrapped records.",
+ "type": "Function"
+ },
+ {
+ "name": "recordsRemoved",
+ "description": "Callback to call when a record has removed.\nTakes an array of objects containing wrapped records.",
+ "type": "Function"
+ }
+ ],
+ "return": {
+ "description": "Method to call to remove all observers.",
+ "type": "Function"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 447,
+ "description": "Clear all observers before destruction",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 465,
+ "description": "Detect whether a class is a model.\n\nTest that against the model class\nof your persistence library.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "detect",
+ "return": {
+ "description": "boolean Whether the class is a model class or not."
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 479,
+ "description": "Get the columns for a given model type.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "columnsForType",
+ "return": {
+ "description": "An array of columns of the following format:\n name: {String} The name of the column.\n desc: {String} Humanized description (what would show in a table column name).",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 492,
+ "description": "Adds observers to a model type class.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "observeModelType",
+ "params": [
+ {
+ "name": "modelName",
+ "description": "The model type name.",
+ "type": "String"
+ },
+ {
+ "name": "typesUpdated",
+ "description": "Called when a type is modified.",
+ "type": "Function"
+ }
+ ],
+ "return": {
+ "description": "The function to call to remove observers.",
+ "type": "Function"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 529,
+ "description": "Wraps a given model type and observes changes to it.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "wrapModelType",
+ "params": [
+ {
+ "name": "klass",
+ "description": "A model class.",
+ "type": "Class"
+ },
+ {
+ "name": "modelName",
+ "description": "Name of the class.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The wrapped type has the following format:\n name: {String} The name of the type.\n count: {Integer} The number of records available.\n columns: {Columns} An array of columns to describe the record.\n object: {Class} The actual Model type class.",
+ "type": "Object"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 553,
+ "description": "Fetches all models defined in the application.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getModelTypes",
+ "return": {
+ "description": "Array of model types.",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 578,
+ "description": "Loops over all namespaces and all objects\nattached to them.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "_getObjectsOnNamespaces",
+ "return": {
+ "description": "Array of model type strings.",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 607,
+ "description": "Fetches all loaded records for a given type.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRecords",
+ "return": {
+ "description": "An array of records.\n This array will be observed for changes,\n so it should update when new records are added/removed.",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 620,
+ "description": "Wraps a record and observers changes to it.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "wrapRecord",
+ "params": [
+ {
+ "name": "record",
+ "description": "The record instance.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The wrapped record. Format:\ncolumnValues: {Array}\nsearchKeywords: {Array}",
+ "type": "Object"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 640,
+ "description": "Gets the values for each column.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRecordColumnValues",
+ "return": {
+ "description": "Keys should match column names defined\nby the model type.",
+ "type": "Object"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 652,
+ "description": "Returns keywords to match when searching records.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRecordKeywords",
+ "return": {
+ "description": "Relevant keywords for search.",
+ "type": "Array"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 663,
+ "description": "Returns the values of filters defined by `getFilters`.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRecordFilterValues",
+ "params": [
+ {
+ "name": "record",
+ "description": "The record instance.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The filter values.",
+ "type": "Object"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 675,
+ "description": "Each record can have a color that represents its state.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRecordColor",
+ "params": [
+ {
+ "name": "record",
+ "description": "The record instance",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The records color.\n Possible options: black, red, blue, green.",
+ "type": "String"
+ },
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 239,
+ "description": "The container-debug-adapter which is used\nto list all models.",
+ "itemtype": "property",
+ "name": "containerDebugAdapter",
+ "default": "undefined",
+ "since": "1.5.0",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 249,
+ "description": "The number of attributes to send\nas columns. (Enough to make the record\nidentifiable).",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "attributeLimit",
+ "default": "3",
+ "since": "1.3.0",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 261,
+ "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.",
+ "access": "public",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "acceptsModelName",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 275,
+ "description": "Map from records arrays to RecordsWatcher instances",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "recordsWatchers",
+ "since": "3.26.0",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 283,
+ "description": "Map from records arrays to TypeWatcher instances",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "typeWatchers",
+ "since": "3.26.0",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 291,
+ "description": "Callback that is currently scheduled on backburner end to flush and check\nall active watchers.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "flushWatchers",
+ "since": "3.26.0",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/debug/data-adapter.ts",
+ "line": 301,
+ "description": "Stores all methods that clear observers.\nThese methods will be called on destruction.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "releaseMethods",
+ "since": "1.3.0",
+ "class": "DataAdapter",
+ "module": "@ember/debug/data-adapter"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "DataAdapter",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-EmberObject",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/debug/data-adapter",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Descriptor.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Descriptor.json
new file mode 100644
index 000000000..b9101d172
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Descriptor.json
@@ -0,0 +1,113 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Descriptor",
+ "type": "class",
+ "attributes": {
+ "name": "Descriptor",
+ "shortname": "Descriptor",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/object",
+ "namespace": "",
+ "file": "packages/@ember/-internals/metal/lib/decorator.ts",
+ "line": 49,
+ "description": "Objects of this type can implement an interface to respond to requests to\nget and set. The default implementation handles simple properties.",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/metal/lib/decorator.ts",
+ "line": 156,
+ "description": "Returns the CP descriptor associated with `obj` and `keyName`, if any.",
+ "itemtype": "method",
+ "name": "descriptorForProperty",
+ "params": [
+ {
+ "name": "obj",
+ "description": "the object to check",
+ "type": "Object"
+ },
+ {
+ "name": "keyName",
+ "description": "the key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Descriptor"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Descriptor",
+ "module": "@ember/object"
+ },
+ {
+ "file": "packages/@ember/-internals/metal/lib/decorator.ts",
+ "line": 184,
+ "description": "Check whether a value is a decorator",
+ "itemtype": "method",
+ "name": "isClassicDecorator",
+ "params": [
+ {
+ "name": "possibleDesc",
+ "description": "the value to check",
+ "type": "Any"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Descriptor",
+ "module": "@ember/object"
+ },
+ {
+ "file": "packages/@ember/-internals/metal/lib/decorator.ts",
+ "line": 196,
+ "description": "Set a value as a decorator",
+ "itemtype": "method",
+ "name": "setClassicDecorator",
+ "params": [
+ {
+ "name": "decorator",
+ "description": "the value to mark as a decorator",
+ "type": "Function"
+ }
+ ],
+ "access": "private",
+ "tagname": "",
+ "class": "Descriptor",
+ "module": "@ember/object"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/object",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.@ember/controller.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.@ember/controller.json
new file mode 100644
index 000000000..e6d99ccd1
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.@ember/controller.json
@@ -0,0 +1,65 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.@ember/controller",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.@ember/controller",
+ "shortname": "@ember/controller",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "methods": [
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 320,
+ "description": "Creates a property that lazily looks up another controller in the container.\nCan only be used when defining another controller.\n\nExample:\n\n```js {data-filename=app/controllers/post.js}\nimport Controller, {\n inject as controller\n} from '@ember/controller';\n\nexport default class PostController extends Controller {\n @controller posts;\n}\n```\n\nClassic Class Example:\n\n```js {data-filename=app/controllers/post.js}\nimport Controller, {\n inject as controller\n} from '@ember/controller';\n\nexport default Controller.extend({\n posts: controller()\n});\n```\n\nThis example will create a `posts` property on the `post` controller that\nlooks up the `posts` controller in the container, making it easy to reference\nother controllers.",
+ "itemtype": "method",
+ "name": "inject",
+ "static": 1,
+ "since": "1.10.0",
+ "params": [
+ {
+ "name": "name",
+ "description": "(optional) name of the controller to inject, defaults to\n the property's name",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "injection decorator instance",
+ "type": "ComputedDecorator"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.@ember/controller",
+ "module": "@ember/controller"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/controller",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionHandler.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionHandler.json
new file mode 100644
index 000000000..364eb96db
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionHandler.json
@@ -0,0 +1,88 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.ActionHandler",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.ActionHandler",
+ "shortname": "Ember.ActionHandler",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "Ember.CoreView",
+ "Ember.ControllerMixin"
+ ],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 9,
+ "description": "`ActionHandler` is available on some familiar classes including\n`Route`, `Component`, and `Controller`.\n(Internally the mixin is used by `CoreView`, `ControllerMixin`,\nand `Route` and available to the above classes through\ninheritance.)",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 172,
+ "description": "Triggers a named action on the `ActionHandler`. Any parameters\nsupplied after the `actionName` string will be passed as arguments\nto the action target function.\n\nIf the `ActionHandler` has its `target` property set, actions may\nbubble to the `target`. Bubbling happens when an `actionName` can\nnot be found in the `ActionHandler`'s `actions` hash or if the\naction target function returns `true`.\n\nExample\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n playTheme() {\n this.send('playMusic', 'theme.mp3');\n },\n playMusic(track) {\n // ...\n }\n }\n});\n```",
+ "itemtype": "method",
+ "name": "send",
+ "params": [
+ {
+ "name": "actionName",
+ "description": "The action to trigger",
+ "type": "String"
+ },
+ {
+ "name": "context",
+ "description": "a context to send with the action",
+ "type": "*"
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ActionHandler",
+ "module": "ember",
+ "namespace": "Ember"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 27,
+ "description": "The collection of functions, keyed by name, available on this\n`ActionHandler` as action targets.\n\nThese functions will be invoked when a matching `{{action}}` is triggered\nfrom within a template and the application's current route is this route.\n\nActions can also be invoked from other parts of your application\nvia `ActionHandler#send`.\n\nThe `actions` hash will inherit action handlers from\nthe `actions` hash defined on extended parent classes\nor mixins rather than just replace the entire hash, e.g.:\n\n```js {data-filename=app/mixins/can-display-banner.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n displayBanner(msg) {\n // ...\n }\n }\n});\n```\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\nimport CanDisplayBanner from '../mixins/can-display-banner';\n\nexport default Route.extend(CanDisplayBanner, {\n actions: {\n playMusic() {\n // ...\n }\n }\n});\n\n// `WelcomeRoute`, when active, will be able to respond\n// to both actions, since the actions hash is merged rather\n// then replaced when extending mixins / parent classes.\nthis.send('displayBanner');\nthis.send('playMusic');\n```\n\nWithin a Controller, Route or Component's action handler,\nthe value of the `this` context is the Controller, Route or\nComponent object:\n\n```js {data-filename=app/routes/song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n myAction() {\n this.controllerFor(\"song\");\n this.transitionTo(\"other.route\");\n ...\n }\n }\n});\n```\n\nIt is also possible to call `this._super(...arguments)` from within an\naction handler if it overrides a handler defined on a parent\nclass or mixin:\n\nTake for example the following routes:\n\n```js {data-filename=app/mixins/debug-route.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n debugRouteInformation() {\n console.debug(\"It's a-me, console.debug!\");\n }\n }\n});\n```\n\n```js {data-filename=app/routes/annoying-debug.js}\nimport Route from '@ember/routing/route';\nimport DebugRoute from '../mixins/debug-route';\n\nexport default Route.extend(DebugRoute, {\n actions: {\n debugRouteInformation() {\n // also call the debugRouteInformation of mixed in DebugRoute\n this._super(...arguments);\n\n // show additional annoyance\n window.alert(...);\n }\n }\n});\n```\n\n## Bubbling\n\nBy default, an action will stop bubbling once a handler defined\non the `actions` hash handles it. To continue bubbling the action,\nyou must return `true` from the handler:\n\n```js {data-filename=app/router.js}\nRouter.map(function() {\n this.route(\"album\", function() {\n this.route(\"song\");\n });\n});\n```\n\n```js {data-filename=app/routes/album.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying: function() {\n }\n }\n});\n```\n\n```js {data-filename=app/routes/album-song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying() {\n // ...\n\n if (actionShouldAlsoBeTriggeredOnParentRoute) {\n return true;\n }\n }\n }\n});\n```",
+ "itemtype": "property",
+ "name": "actions",
+ "type": "Object",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ActionHandler",
+ "module": "ember",
+ "namespace": "Ember"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionSupport.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionSupport.json
new file mode 100644
index 000000000..3333b5245
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ActionSupport.json
@@ -0,0 +1,46 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.ActionSupport",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.ActionSupport",
+ "shortname": "Ember.ActionSupport",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "Component"
+ ],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/views/lib/mixins/action_support.ts",
+ "line": 9,
+ "access": "private",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Comparable.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Comparable.json
new file mode 100644
index 000000000..ada369a08
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Comparable.json
@@ -0,0 +1,75 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.Comparable",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.Comparable",
+ "shortname": "Ember.Comparable",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/runtime/lib/mixins/comparable.ts",
+ "line": 7,
+ "description": "Implements some standard methods for comparing objects. Add this mixin to\nany class you create that can compare its instances.\n\nYou should implement the `compare()` method.",
+ "since": "Ember 0.9",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/comparable.ts",
+ "line": 22,
+ "description": "__Required.__ You must implement this method to apply this mixin.\n\nOverride to return the result of the comparison of the two parameters. The\ncompare method should return:\n\n- `-1` if `a < b`\n- `0` if `a == b`\n- `1` if `a > b`\n\nDefault implementation raises an exception.",
+ "itemtype": "method",
+ "name": "compare",
+ "params": [
+ {
+ "name": "a",
+ "description": "the first object to compare",
+ "type": "Object"
+ },
+ {
+ "name": "b",
+ "description": "the second object to compare",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "the result of the comparison",
+ "type": "Number"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Comparable",
+ "module": "ember",
+ "namespace": "Ember"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Controller.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Controller.json
new file mode 100644
index 000000000..c683af075
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Controller.json
@@ -0,0 +1,729 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.Controller",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.Controller",
+ "shortname": "Controller",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "file": "packages/@ember/controller/index.ts",
+ "line": 311,
+ "extends": "EmberObject",
+ "uses": [
+ "Ember.ControllerMixin"
+ ],
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 94,
+ "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```js {data-filename=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).",
+ "itemtype": "method",
+ "name": "transitionToRoute",
+ "deprecated": true,
+ "deprecationMessage": "Use transitionTo from the Router service instead.",
+ "params": [
+ {
+ "name": "name",
+ "description": "the name of the route or a URL",
+ "type": "String",
+ "optional": true
+ },
+ {
+ "name": "models",
+ "description": "the model(s) or identifier(s) to be used\n while transitioning to the route.",
+ "type": "...Object"
+ },
+ {
+ "name": "options",
+ "description": "optional hash with a queryParams property\n containing a mapping of query parameters",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "the transition object associated with this\n attempted transition",
+ "type": "Transition"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 172,
+ "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```js {data-filename=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```",
+ "itemtype": "method",
+ "name": "replaceRoute",
+ "deprecated": true,
+ "deprecationMessage": "Use replaceWith from the Router service instead.",
+ "params": [
+ {
+ "name": "name",
+ "description": "the name of the route or a URL",
+ "type": "String",
+ "optional": true
+ },
+ {
+ "name": "models",
+ "description": "the model(s) or identifier(s) to be used\nwhile transitioning to the route.",
+ "type": "...Object"
+ },
+ {
+ "name": "options",
+ "description": "optional hash with a queryParams property\ncontaining a mapping of query parameters",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "the transition object associated with this\n attempted transition",
+ "type": "Transition"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 267,
+ "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).",
+ "itemtype": "method",
+ "name": "_qpDelegate",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 288,
+ "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.",
+ "itemtype": "method",
+ "name": "_qpChanged",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 172,
+ "description": "Triggers a named action on the `ActionHandler`. Any parameters\nsupplied after the `actionName` string will be passed as arguments\nto the action target function.\n\nIf the `ActionHandler` has its `target` property set, actions may\nbubble to the `target`. Bubbling happens when an `actionName` can\nnot be found in the `ActionHandler`'s `actions` hash or if the\naction target function returns `true`.\n\nExample\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n playTheme() {\n this.send('playMusic', 'theme.mp3');\n },\n playMusic(track) {\n // ...\n }\n }\n});\n```",
+ "itemtype": "method",
+ "name": "send",
+ "params": [
+ {
+ "name": "actionName",
+ "description": "The action to trigger",
+ "type": "String"
+ },
+ {
+ "name": "context",
+ "description": "a context to send with the action",
+ "type": "*"
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 39,
+ "description": "The object to which actions from the view should be sent.\n\nFor example, when a 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.",
+ "itemtype": "property",
+ "name": "target",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 57,
+ "description": "The controller's current model. When retrieving or modifying a controller's\nmodel, this property should be used instead of the `content` property.",
+ "itemtype": "property",
+ "name": "model",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 66,
+ "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'`.",
+ "itemtype": "property",
+ "name": "queryParams",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ControllerMixin"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 27,
+ "description": "The collection of functions, keyed by name, available on this\n`ActionHandler` as action targets.\n\nThese functions will be invoked when a matching `{{action}}` is triggered\nfrom within a template and the application's current route is this route.\n\nActions can also be invoked from other parts of your application\nvia `ActionHandler#send`.\n\nThe `actions` hash will inherit action handlers from\nthe `actions` hash defined on extended parent classes\nor mixins rather than just replace the entire hash, e.g.:\n\n```js {data-filename=app/mixins/can-display-banner.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n displayBanner(msg) {\n // ...\n }\n }\n});\n```\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\nimport CanDisplayBanner from '../mixins/can-display-banner';\n\nexport default Route.extend(CanDisplayBanner, {\n actions: {\n playMusic() {\n // ...\n }\n }\n});\n\n// `WelcomeRoute`, when active, will be able to respond\n// to both actions, since the actions hash is merged rather\n// then replaced when extending mixins / parent classes.\nthis.send('displayBanner');\nthis.send('playMusic');\n```\n\nWithin a Controller, Route or Component's action handler,\nthe value of the `this` context is the Controller, Route or\nComponent object:\n\n```js {data-filename=app/routes/song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n myAction() {\n this.controllerFor(\"song\");\n this.transitionTo(\"other.route\");\n ...\n }\n }\n});\n```\n\nIt is also possible to call `this._super(...arguments)` from within an\naction handler if it overrides a handler defined on a parent\nclass or mixin:\n\nTake for example the following routes:\n\n```js {data-filename=app/mixins/debug-route.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n debugRouteInformation() {\n console.debug(\"It's a-me, console.debug!\");\n }\n }\n});\n```\n\n```js {data-filename=app/routes/annoying-debug.js}\nimport Route from '@ember/routing/route';\nimport DebugRoute from '../mixins/debug-route';\n\nexport default Route.extend(DebugRoute, {\n actions: {\n debugRouteInformation() {\n // also call the debugRouteInformation of mixed in DebugRoute\n this._super(...arguments);\n\n // show additional annoyance\n window.alert(...);\n }\n }\n});\n```\n\n## Bubbling\n\nBy default, an action will stop bubbling once a handler defined\non the `actions` hash handles it. To continue bubbling the action,\nyou must return `true` from the handler:\n\n```js {data-filename=app/router.js}\nRouter.map(function() {\n this.route(\"album\", function() {\n this.route(\"song\");\n });\n});\n```\n\n```js {data-filename=app/routes/album.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying: function() {\n }\n }\n});\n```\n\n```js {data-filename=app/routes/album-song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying() {\n // ...\n\n if (actionShouldAlsoBeTriggeredOnParentRoute) {\n return true;\n }\n }\n }\n});\n```",
+ "itemtype": "property",
+ "name": "actions",
+ "type": "Object",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.Controller",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-EmberObject",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/controller",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ControllerMixin.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ControllerMixin.json
new file mode 100644
index 000000000..a67ac1124
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ControllerMixin.json
@@ -0,0 +1,228 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.ControllerMixin",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.ControllerMixin",
+ "shortname": "Ember.ControllerMixin",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "Ember.Controller"
+ ],
+ "module": "@ember/controller",
+ "namespace": "Ember",
+ "file": "packages/@ember/controller/index.ts",
+ "line": 27,
+ "uses": [
+ "Ember.ActionHandler"
+ ],
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 94,
+ "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```js {data-filename=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).",
+ "itemtype": "method",
+ "name": "transitionToRoute",
+ "deprecated": true,
+ "deprecationMessage": "Use transitionTo from the Router service instead.",
+ "params": [
+ {
+ "name": "name",
+ "description": "the name of the route or a URL",
+ "type": "String",
+ "optional": true
+ },
+ {
+ "name": "models",
+ "description": "the model(s) or identifier(s) to be used\n while transitioning to the route.",
+ "type": "...Object"
+ },
+ {
+ "name": "options",
+ "description": "optional hash with a queryParams property\n containing a mapping of query parameters",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "the transition object associated with this\n attempted transition",
+ "type": "Transition"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 172,
+ "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```js {data-filename=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```",
+ "itemtype": "method",
+ "name": "replaceRoute",
+ "deprecated": true,
+ "deprecationMessage": "Use replaceWith from the Router service instead.",
+ "params": [
+ {
+ "name": "name",
+ "description": "the name of the route or a URL",
+ "type": "String",
+ "optional": true
+ },
+ {
+ "name": "models",
+ "description": "the model(s) or identifier(s) to be used\nwhile transitioning to the route.",
+ "type": "...Object"
+ },
+ {
+ "name": "options",
+ "description": "optional hash with a queryParams property\ncontaining a mapping of query parameters",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "the transition object associated with this\n attempted transition",
+ "type": "Transition"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 267,
+ "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).",
+ "itemtype": "method",
+ "name": "_qpDelegate",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 288,
+ "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.",
+ "itemtype": "method",
+ "name": "_qpChanged",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 172,
+ "description": "Triggers a named action on the `ActionHandler`. Any parameters\nsupplied after the `actionName` string will be passed as arguments\nto the action target function.\n\nIf the `ActionHandler` has its `target` property set, actions may\nbubble to the `target`. Bubbling happens when an `actionName` can\nnot be found in the `ActionHandler`'s `actions` hash or if the\naction target function returns `true`.\n\nExample\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n playTheme() {\n this.send('playMusic', 'theme.mp3');\n },\n playMusic(track) {\n // ...\n }\n }\n});\n```",
+ "itemtype": "method",
+ "name": "send",
+ "params": [
+ {
+ "name": "actionName",
+ "description": "The action to trigger",
+ "type": "String"
+ },
+ {
+ "name": "context",
+ "description": "a context to send with the action",
+ "type": "*"
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 39,
+ "description": "The object to which actions from the view should be sent.\n\nFor example, when a 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.",
+ "itemtype": "property",
+ "name": "target",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 57,
+ "description": "The controller's current model. When retrieving or modifying a controller's\nmodel, this property should be used instead of the `content` property.",
+ "itemtype": "property",
+ "name": "model",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/controller/index.ts",
+ "line": 66,
+ "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'`.",
+ "itemtype": "property",
+ "name": "queryParams",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "@ember/controller",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 27,
+ "description": "The collection of functions, keyed by name, available on this\n`ActionHandler` as action targets.\n\nThese functions will be invoked when a matching `{{action}}` is triggered\nfrom within a template and the application's current route is this route.\n\nActions can also be invoked from other parts of your application\nvia `ActionHandler#send`.\n\nThe `actions` hash will inherit action handlers from\nthe `actions` hash defined on extended parent classes\nor mixins rather than just replace the entire hash, e.g.:\n\n```js {data-filename=app/mixins/can-display-banner.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n displayBanner(msg) {\n // ...\n }\n }\n});\n```\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\nimport CanDisplayBanner from '../mixins/can-display-banner';\n\nexport default Route.extend(CanDisplayBanner, {\n actions: {\n playMusic() {\n // ...\n }\n }\n});\n\n// `WelcomeRoute`, when active, will be able to respond\n// to both actions, since the actions hash is merged rather\n// then replaced when extending mixins / parent classes.\nthis.send('displayBanner');\nthis.send('playMusic');\n```\n\nWithin a Controller, Route or Component's action handler,\nthe value of the `this` context is the Controller, Route or\nComponent object:\n\n```js {data-filename=app/routes/song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n myAction() {\n this.controllerFor(\"song\");\n this.transitionTo(\"other.route\");\n ...\n }\n }\n});\n```\n\nIt is also possible to call `this._super(...arguments)` from within an\naction handler if it overrides a handler defined on a parent\nclass or mixin:\n\nTake for example the following routes:\n\n```js {data-filename=app/mixins/debug-route.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n debugRouteInformation() {\n console.debug(\"It's a-me, console.debug!\");\n }\n }\n});\n```\n\n```js {data-filename=app/routes/annoying-debug.js}\nimport Route from '@ember/routing/route';\nimport DebugRoute from '../mixins/debug-route';\n\nexport default Route.extend(DebugRoute, {\n actions: {\n debugRouteInformation() {\n // also call the debugRouteInformation of mixed in DebugRoute\n this._super(...arguments);\n\n // show additional annoyance\n window.alert(...);\n }\n }\n});\n```\n\n## Bubbling\n\nBy default, an action will stop bubbling once a handler defined\non the `actions` hash handles it. To continue bubbling the action,\nyou must return `true` from the handler:\n\n```js {data-filename=app/router.js}\nRouter.map(function() {\n this.route(\"album\", function() {\n this.route(\"song\");\n });\n});\n```\n\n```js {data-filename=app/routes/album.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying: function() {\n }\n }\n});\n```\n\n```js {data-filename=app/routes/album-song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying() {\n // ...\n\n if (actionShouldAlsoBeTriggeredOnParentRoute) {\n return true;\n }\n }\n }\n});\n```",
+ "itemtype": "property",
+ "name": "actions",
+ "type": "Object",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ControllerMixin",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/controller",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.CoreView.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.CoreView.json
new file mode 100644
index 000000000..74b911b20
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.CoreView.json
@@ -0,0 +1,910 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.CoreView",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.CoreView",
+ "shortname": "Ember.CoreView",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
+ "line": 9,
+ "description": "`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.",
+ "extends": "EmberObject",
+ "deprecated": true,
+ "deprecationMessage": "Use `Component` instead.",
+ "uses": [
+ "Evented",
+ "Ember.ActionHandler"
+ ],
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 37,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getRootViews",
+ "params": [
+ {
+ "name": "owner",
+ "description": "",
+ "type": "Object"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 59,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewId",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 79,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewElement",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 111,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getChildViews",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 154,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewBounds",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 163,
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewRange",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 178,
+ "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.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewClientRects",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/utils.ts",
+ "line": 193,
+ "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.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "getViewBoundingClientRect",
+ "params": [
+ {
+ "name": "view",
+ "description": "",
+ "type": "Ember.View"
+ }
+ ],
+ "class": "Ember.CoreView",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
+ "line": 77,
+ "description": "Override the default event firing from `Evented` to\nalso call methods with the given name.",
+ "itemtype": "method",
+ "name": "trigger",
+ "params": [
+ {
+ "name": "name",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/object/evented.ts",
+ "line": 56,
+ "description": "Subscribes to a named event with given function.\n\n```javascript\nperson.on('didLoad', function() {\n // fired once the person has loaded\n});\n```\n\nAn optional target can be passed in as the 2nd argument that will\nbe set as the \"this\" for the callback. This is a good way to give your\nfunction access to the object triggering the event. When the target\nparameter is used the callback method becomes the third argument.",
+ "itemtype": "method",
+ "name": "on",
+ "params": [
+ {
+ "name": "name",
+ "description": "The name of the event",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The \"this\" binding for the callback",
+ "type": "Object",
+ "optional": true
+ },
+ {
+ "name": "method",
+ "description": "A function or the name of a function to be called on `target`",
+ "type": "Function|String"
+ }
+ ],
+ "return": {
+ "description": "this"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/evented",
+ "inherited": true,
+ "inheritedFrom": "Evented"
+ },
+ {
+ "file": "packages/@ember/object/evented.ts",
+ "line": 83,
+ "description": "Subscribes a function to a named event and then cancels the subscription\nafter the first time the event is triggered. It is good to use ``one`` when\nyou only care about the first time an event has taken place.\n\nThis function takes an optional 2nd argument that will become the \"this\"\nvalue for the callback. When the target parameter is used the callback method\nbecomes the third argument.",
+ "itemtype": "method",
+ "name": "one",
+ "params": [
+ {
+ "name": "name",
+ "description": "The name of the event",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The \"this\" binding for the callback",
+ "type": "Object",
+ "optional": true
+ },
+ {
+ "name": "method",
+ "description": "A function or the name of a function to be called on `target`",
+ "type": "Function|String"
+ }
+ ],
+ "return": {
+ "description": "this"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/evented",
+ "inherited": true,
+ "inheritedFrom": "Evented"
+ },
+ {
+ "file": "packages/@ember/object/evented.ts",
+ "line": 105,
+ "description": "Triggers a named event for the object. Any additional arguments\nwill be passed as parameters to the functions that are subscribed to the\nevent.\n\n```javascript\nperson.on('didEat', function(food) {\n console.log('person ate some ' + food);\n});\n\nperson.trigger('didEat', 'broccoli');\n\n// outputs: person ate some broccoli\n```",
+ "itemtype": "method",
+ "name": "trigger",
+ "params": [
+ {
+ "name": "name",
+ "description": "The name of the event",
+ "type": "String"
+ },
+ {
+ "name": "args",
+ "description": "Optional arguments to pass on",
+ "type": "Object..."
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/evented",
+ "inherited": true,
+ "inheritedFrom": "Evented"
+ },
+ {
+ "file": "packages/@ember/object/evented.ts",
+ "line": 126,
+ "description": "Cancels subscription for given name, target, and method.",
+ "itemtype": "method",
+ "name": "off",
+ "params": [
+ {
+ "name": "name",
+ "description": "The name of the event",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target of the subscription",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The function or the name of a function of the subscription",
+ "type": "Function|String"
+ }
+ ],
+ "return": {
+ "description": "this"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/evented",
+ "inherited": true,
+ "inheritedFrom": "Evented"
+ },
+ {
+ "file": "packages/@ember/object/evented.ts",
+ "line": 142,
+ "description": "Checks to see if object has any subscriptions for named event.",
+ "itemtype": "method",
+ "name": "has",
+ "params": [
+ {
+ "name": "name",
+ "description": "The name of the event",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "does the object have a subscription for event",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/evented",
+ "inherited": true,
+ "inheritedFrom": "Evented"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 172,
+ "description": "Triggers a named action on the `ActionHandler`. Any parameters\nsupplied after the `actionName` string will be passed as arguments\nto the action target function.\n\nIf the `ActionHandler` has its `target` property set, actions may\nbubble to the `target`. Bubbling happens when an `actionName` can\nnot be found in the `ActionHandler`'s `actions` hash or if the\naction target function returns `true`.\n\nExample\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n playTheme() {\n this.send('playMusic', 'theme.mp3');\n },\n playMusic(track) {\n // ...\n }\n }\n});\n```",
+ "itemtype": "method",
+ "name": "send",
+ "params": [
+ {
+ "name": "actionName",
+ "description": "The action to trigger",
+ "type": "String"
+ },
+ {
+ "name": "context",
+ "description": "a context to send with the action",
+ "type": "*"
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/views/lib/views/core_view.ts",
+ "line": 38,
+ "description": "If the view is currently inserted into the DOM of a parent view, this\nproperty will point to the parent of the view.",
+ "itemtype": "property",
+ "name": "parentView",
+ "type": "Ember.View",
+ "default": "null",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/action_handler.ts",
+ "line": 27,
+ "description": "The collection of functions, keyed by name, available on this\n`ActionHandler` as action targets.\n\nThese functions will be invoked when a matching `{{action}}` is triggered\nfrom within a template and the application's current route is this route.\n\nActions can also be invoked from other parts of your application\nvia `ActionHandler#send`.\n\nThe `actions` hash will inherit action handlers from\nthe `actions` hash defined on extended parent classes\nor mixins rather than just replace the entire hash, e.g.:\n\n```js {data-filename=app/mixins/can-display-banner.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n displayBanner(msg) {\n // ...\n }\n }\n});\n```\n\n```js {data-filename=app/routes/welcome.js}\nimport Route from '@ember/routing/route';\nimport CanDisplayBanner from '../mixins/can-display-banner';\n\nexport default Route.extend(CanDisplayBanner, {\n actions: {\n playMusic() {\n // ...\n }\n }\n});\n\n// `WelcomeRoute`, when active, will be able to respond\n// to both actions, since the actions hash is merged rather\n// then replaced when extending mixins / parent classes.\nthis.send('displayBanner');\nthis.send('playMusic');\n```\n\nWithin a Controller, Route or Component's action handler,\nthe value of the `this` context is the Controller, Route or\nComponent object:\n\n```js {data-filename=app/routes/song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n myAction() {\n this.controllerFor(\"song\");\n this.transitionTo(\"other.route\");\n ...\n }\n }\n});\n```\n\nIt is also possible to call `this._super(...arguments)` from within an\naction handler if it overrides a handler defined on a parent\nclass or mixin:\n\nTake for example the following routes:\n\n```js {data-filename=app/mixins/debug-route.js}\nimport Mixin from '@ember/object/mixin';\n\nexport default Mixin.create({\n actions: {\n debugRouteInformation() {\n console.debug(\"It's a-me, console.debug!\");\n }\n }\n});\n```\n\n```js {data-filename=app/routes/annoying-debug.js}\nimport Route from '@ember/routing/route';\nimport DebugRoute from '../mixins/debug-route';\n\nexport default Route.extend(DebugRoute, {\n actions: {\n debugRouteInformation() {\n // also call the debugRouteInformation of mixed in DebugRoute\n this._super(...arguments);\n\n // show additional annoyance\n window.alert(...);\n }\n }\n});\n```\n\n## Bubbling\n\nBy default, an action will stop bubbling once a handler defined\non the `actions` hash handles it. To continue bubbling the action,\nyou must return `true` from the handler:\n\n```js {data-filename=app/router.js}\nRouter.map(function() {\n this.route(\"album\", function() {\n this.route(\"song\");\n });\n});\n```\n\n```js {data-filename=app/routes/album.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying: function() {\n }\n }\n});\n```\n\n```js {data-filename=app/routes/album-song.js}\nimport Route from '@ember/routing/route';\n\nexport default Route.extend({\n actions: {\n startPlaying() {\n // ...\n\n if (actionShouldAlsoBeTriggeredOnParentRoute) {\n return true;\n }\n }\n }\n});\n```",
+ "itemtype": "property",
+ "name": "actions",
+ "type": "Object",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "ember",
+ "namespace": "Ember",
+ "inherited": true,
+ "inheritedFrom": "Ember.ActionHandler"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.CoreView",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-EmberObject",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": [
+ {
+ "type": "class",
+ "id": "ember-7.2.0-Component"
+ }
+ ]
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.EventDispatcher.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.EventDispatcher.json
new file mode 100644
index 000000000..d06693328
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.EventDispatcher.json
@@ -0,0 +1,647 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.EventDispatcher",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.EventDispatcher",
+ "shortname": "Ember.EventDispatcher",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 17,
+ "description": "`EventDispatcher` handles delegating browser events to their\ncorresponding `Ember.Views.` For example, when you click on a view,\n`EventDispatcher` ensures that that view's `mouseDown` method gets\ncalled.",
+ "access": "private",
+ "tagname": "",
+ "extends": "EmberObject",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 112,
+ "description": "Sets up event listeners for standard browser events.\n\nThis will be called after the browser sends a `DOMContentReady` event. By\ndefault, it will set up all of the listeners on the document body. If you\nwould like to register the listeners on a different element, set the event\ndispatcher's `root` property.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "setup",
+ "params": [
+ {
+ "name": "addedEvents",
+ "description": "",
+ "type": "Object"
+ }
+ ],
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 206,
+ "description": "Setup event listeners for the given browser event name",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "setupHandlerForBrowserEvent",
+ "params": [
+ {
+ "name": "event",
+ "description": "the name of the event in the browser"
+ }
+ ],
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 219,
+ "description": "Setup event listeners for the given Ember event name (camel case)",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "setupHandlerForEmberEvent",
+ "params": [
+ {
+ "name": "eventName",
+ "description": ""
+ }
+ ],
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 236,
+ "description": "Registers an event listener on the rootElement. If the given event is\ntriggered, the provided event handler will be triggered on the target view.\n\nIf the target view does not implement the event handler, or if the handler\nreturns `false`, the parent view will be called. The event will continue to\nbubble to each successive parent view until it reaches the top.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "setupHandler",
+ "params": [
+ {
+ "name": "rootElement",
+ "description": "",
+ "type": "Element"
+ },
+ {
+ "name": "event",
+ "description": "the name of the event in the browser",
+ "type": "String"
+ },
+ {
+ "name": "eventName",
+ "description": "the name of the method to call on the view",
+ "type": "String"
+ }
+ ],
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 317,
+ "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.",
+ "itemtype": "method",
+ "name": "init",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 536,
+ "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.",
+ "itemtype": "method",
+ "name": "destroy",
+ "return": {
+ "description": "receiver",
+ "type": "EmberObject"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 563,
+ "description": "Override to implement teardown.",
+ "itemtype": "method",
+ "name": "willDestroy",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 571,
+ "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(); //=> \"\"\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(); //=> \"\"\n```",
+ "itemtype": "method",
+ "name": "toString",
+ "return": {
+ "description": "string representation",
+ "type": "String"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 29,
+ "description": "The set of events names (and associated handler function names) to be setup\nand dispatched by the `EventDispatcher`. Modifications to this list can be done\nat setup time, generally via the `Application.customEvents` hash.\n\nTo add new events to be listened to:\n\n```javascript\nimport Application from '@ember/application';\n\nlet App = Application.create({\n customEvents: {\n paste: 'paste'\n }\n});\n```\n\nTo prevent default events from being listened to:\n\n```javascript\nimport Application from '@ember/application';\n\nlet App = Application.create({\n customEvents: {\n mouseenter: null,\n mouseleave: null\n }\n});\n```",
+ "itemtype": "property",
+ "name": "events",
+ "type": "Object",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/views/lib/system/event_dispatcher.ts",
+ "line": 89,
+ "description": "The root DOM element to which event listeners should be attached. Event\nlisteners will be attached to the document unless this is overridden.\n\nCan be specified as a DOMElement or a selector string.\n\nThe default body is a string since this may be evaluated before document.body\nexists in the DOM.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "rootElement",
+ "type": "DOMElement",
+ "default": "'body'",
+ "class": "Ember.EventDispatcher",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 351,
+ "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).",
+ "itemtype": "property",
+ "name": "concatenatedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 425,
+ "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).",
+ "itemtype": "property",
+ "name": "mergedProperties",
+ "type": "Array",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 500,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroyed",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ },
+ {
+ "file": "packages/@ember/object/core.ts",
+ "line": 518,
+ "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.",
+ "itemtype": "property",
+ "name": "isDestroying",
+ "default": "false",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.EventDispatcher",
+ "module": "@ember/object/core",
+ "inherited": true,
+ "inheritedFrom": "CoreObject"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-EmberObject",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.InjectedProperty.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.InjectedProperty.json
new file mode 100644
index 000000000..5b1bffae9
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.InjectedProperty.json
@@ -0,0 +1,58 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.InjectedProperty",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.InjectedProperty",
+ "shortname": "Ember.InjectedProperty",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/metal/lib/injected_property.ts",
+ "line": 20,
+ "description": "Read-only property that returns the result of a container lookup.",
+ "is_constructor": 1,
+ "params": [
+ {
+ "name": "type",
+ "description": "The container type the property will lookup",
+ "type": "String"
+ },
+ {
+ "name": "nameOrDesc",
+ "description": "(optional) The name the property will lookup, defaults\n to the property's name",
+ "type": "String"
+ }
+ ],
+ "access": "private",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.MutableEnumerable.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.MutableEnumerable.json
new file mode 100644
index 000000000..cf3666409
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.MutableEnumerable.json
@@ -0,0 +1,48 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.MutableEnumerable",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.MutableEnumerable",
+ "shortname": "Ember.MutableEnumerable",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/enumerable/mutable.ts",
+ "line": 8,
+ "description": "The methods in this mixin have been moved to MutableArray. This mixin has\nbeen intentionally preserved to avoid breaking MutableEnumerable.detect\nchecks until the community migrates away from them.",
+ "uses": [
+ "Enumerable"
+ ],
+ "access": "private",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.NativeArray.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.NativeArray.json
new file mode 100644
index 000000000..21d5bee02
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.NativeArray.json
@@ -0,0 +1,1636 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.NativeArray",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.NativeArray",
+ "shortname": "Ember.NativeArray",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "",
+ "file": "packages/@ember/array/index.ts",
+ "line": 2015,
+ "description": "The NativeArray mixin contains the properties needed to make the native\nArray support MutableArray and all of its dependent APIs.",
+ "uses": [
+ "Observable",
+ "MutableArray"
+ ],
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 96,
+ "description": "Retrieves the value of a property from the object.\n\nThis method is usually similar to using `object[keyName]` or `object.keyName`,\nhowever it supports both computed properties and the unknownProperty\nhandler.\n\nBecause `get` unifies the syntax for accessing all these kinds\nof properties, it can make many refactorings easier, such as replacing a\nsimple property with a computed property, or vice versa.\n\n### Computed Properties\n\nComputed properties are methods defined with the `property` modifier\ndeclared at the end, such as:\n\n```javascript\nimport { computed } from '@ember/object';\n\nfullName: computed('firstName', 'lastName', function() {\n return this.get('firstName') + ' ' + this.get('lastName');\n})\n```\n\nWhen you call `get` on a computed property, the function will be\ncalled and the return value will be returned instead of the function\nitself.\n\n### Unknown Properties\n\nLikewise, if you try to call `get` on a property whose value is\n`undefined`, the `unknownProperty()` method will be called on the object.\nIf this method returns any value other than `undefined`, it will be returned\ninstead. This allows you to implement \"virtual\" properties that are\nnot defined upfront.",
+ "itemtype": "method",
+ "name": "get",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to retrieve",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The property value or undefined.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 140,
+ "description": "To get the values of multiple properties at once, call `getProperties`\nwith a list of strings or an array:\n\n```javascript\nrecord.getProperties('firstName', 'lastName', 'zipCode');\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```\n\nis equivalent to:\n\n```javascript\nrecord.getProperties(['firstName', 'lastName', 'zipCode']);\n// { firstName: 'John', lastName: 'Doe', zipCode: '10011' }\n```",
+ "itemtype": "method",
+ "name": "getProperties",
+ "params": [
+ {
+ "name": "list",
+ "description": "of keys to get",
+ "type": "String...|Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 167,
+ "description": "Sets the provided key or path to the value.\n\n```javascript\nrecord.set(\"key\", value);\n```\n\nThis method is generally very similar to calling `object[\"key\"] = value` or\n`object.key = value`, except that it provides support for computed\nproperties, the `setUnknownProperty()` method and property observers.\n\n### Computed Properties\n\nIf you try to set a value on a key that has a computed property handler\ndefined (see the `get()` method for an example), then `set()` will call\nthat method, passing both the value and key instead of simply changing\nthe value itself. This is useful for those times when you need to\nimplement a property that is composed of one or more member\nproperties.\n\n### Unknown Properties\n\nIf you try to set a value on a key that is undefined in the target\nobject, then the `setUnknownProperty()` handler will be called instead. This\ngives you an opportunity to implement complex \"virtual\" properties that\nare not predefined on the object. If `setUnknownProperty()` returns\nundefined, then `set()` will simply set the value on the object.\n\n### Property Observers\n\nIn addition to changing the property, `set()` will also register a property\nchange with the object. Unless you have placed this call inside of a\n`beginPropertyChanges()` and `endPropertyChanges(),` any \"local\" observers\n(i.e. observer methods declared on the same object), will be called\nimmediately. Any \"remote\" observers (i.e. observer methods declared on\nanother object) will be placed in a queue and called at a later time in a\ncoalesced manner.",
+ "itemtype": "method",
+ "name": "set",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The value to set or `null`.",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed value",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 215,
+ "description": "Sets a list of properties at once. These properties are set inside\na single `beginPropertyChanges` and `endPropertyChanges` batch, so\nobservers will be buffered.\n\n```javascript\nrecord.setProperties({ firstName: 'Charles', lastName: 'Jolley' });\n```",
+ "itemtype": "method",
+ "name": "setProperties",
+ "params": [
+ {
+ "name": "hash",
+ "description": "the hash of keys and values to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The passed in hash",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 232,
+ "description": "Convenience method to call `propertyWillChange` and `propertyDidChange` in\nsuccession.\n\nNotify the observer system that a property has just changed.\n\nSometimes you need to change a value directly or indirectly without\nactually calling `get()` or `set()` on it. In this case, you can use this\nmethod instead. Calling this method will notify all observers that the\nproperty has potentially changed value.",
+ "itemtype": "method",
+ "name": "notifyPropertyChange",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The property key to be notified about.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 250,
+ "description": "Adds an observer on a property.\n\nThis is the core method used to register an observer for a property.\n\nOnce you call this method, any time the key's value is set, your observer\nwill be notified. Note that the observers are triggered any time the\nvalue is set, regardless of whether it has actually changed. Your\nobserver should be prepared to handle that.\n\nThere are two common invocation patterns for `.addObserver()`:\n\n- Passing two arguments:\n - the name of the property to observe (as a string)\n - the function to invoke (an actual function)\n- Passing three arguments:\n - the name of the property to observe (as a string)\n - the target object (will be used to look up and invoke a\n function on)\n - the name of the function to invoke on the target object\n (as a string).\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n\n // the following are equivalent:\n\n // using three arguments\n this.addObserver('foo', this, 'fooDidChange');\n\n // using two arguments\n this.addObserver('foo', (...args) => {\n this.fooDidChange(...args);\n });\n },\n\n fooDidChange() {\n // your custom logic code\n }\n});\n```\n\n### Observer Methods\n\nObserver methods have the following signature:\n\n```js {data-filename=app/components/my-component.js}\nimport Component from '@ember/component';\n\nexport default Component.extend({\n init() {\n this._super(...arguments);\n this.addObserver('foo', this, 'fooDidChange');\n },\n\n fooDidChange(sender, key, value, rev) {\n // your code\n }\n});\n```\n\nThe `sender` is the object that changed. The `key` is the property that\nchanges. The `value` property is currently reserved and unused. The `rev`\nis the last property revision of the object when it changed, which you can\nuse to detect if the key value has really changed or not.\n\nUsually you will not need the value or revision parameters at\nthe end. In this case, it is common to write observer methods that take\nonly a sender and key value as parameters or, if you aren't interested in\nany of these values, to write an observer that has no parameters at all.\n\nWhile observers are still supported, there are [plans to deprecate them](https://github.com/emberjs/rfcs/pull/1115)\nSee the [in-progress deprecation guide](https://github.com/ember-learn/deprecation-app/pull/1407)\nfor guidance on how to avoid using observers.",
+ "itemtype": "method",
+ "name": "addObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is sync or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 340,
+ "description": "Remove an observer you have previously registered on this object. Pass\nthe same key, target, and method you passed to `addObserver()` and your\ntarget will no longer receive notifications.",
+ "itemtype": "method",
+ "name": "removeObserver",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to observe",
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "description": "The target object to invoke",
+ "type": "Object"
+ },
+ {
+ "name": "method",
+ "description": "The method to invoke",
+ "type": "String|Function"
+ },
+ {
+ "name": "sync",
+ "description": "Whether the observer is async or not",
+ "type": "Boolean"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 361,
+ "description": "Set the value of a property to the current value plus some amount.\n\n```javascript\nperson.incrementProperty('age');\nteam.incrementProperty('score', 2);\n```",
+ "itemtype": "method",
+ "name": "incrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to increment",
+ "type": "String"
+ },
+ {
+ "name": "increment",
+ "description": "The amount to increment by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 378,
+ "description": "Set the value of a property to the current value minus some amount.\n\n```javascript\nplayer.decrementProperty('lives');\norc.decrementProperty('health', 5);\n```",
+ "itemtype": "method",
+ "name": "decrementProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to decrement",
+ "type": "String"
+ },
+ {
+ "name": "decrement",
+ "description": "The amount to decrement by. Defaults to 1",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 395,
+ "description": "Set the value of a boolean property to the opposite of its\ncurrent value.\n\n```javascript\nstarship.toggleProperty('warpDriveEngaged');\n```",
+ "itemtype": "method",
+ "name": "toggleProperty",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "The name of the property to toggle",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The new property value",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 410,
+ "description": "Returns the cached value of a computed property, if it exists.\nThis allows you to inspect the value of a computed property\nwithout accidentally invoking it if it is intended to be\ngenerated lazily.",
+ "itemtype": "method",
+ "name": "cacheFor",
+ "params": [
+ {
+ "name": "keyName",
+ "description": "",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The cached value of the computed property, if any",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 440,
+ "description": "Begins a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call this\nmethod at the beginning of the changes to begin deferring change\nnotifications. When you are done making changes, call\n`endPropertyChanges()` to deliver the deferred change notifications and end\ndeferring.",
+ "itemtype": "method",
+ "name": "beginPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 460,
+ "description": "Ends a grouping of property changes.\n\nYou can use this method to group property changes so that notifications\nwill not be sent until the changes are finished. If you plan to make a\nlarge number of changes to an object at one time, you should call\n`beginPropertyChanges()` at the beginning of the changes to defer change\nnotifications. When you are done making changes, call this method to\ndeliver the deferred change notifications and end deferring.",
+ "itemtype": "method",
+ "name": "endPropertyChanges",
+ "return": {
+ "description": "",
+ "type": "Observable"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/object/observable.ts",
+ "line": 504,
+ "description": "Returns `true` if the object currently has observers registered for a\nparticular key. You can use this method to potentially defer performing\nan expensive action until someone begins observing a particular property\non the object.",
+ "itemtype": "method",
+ "name": "hasObserverFor",
+ "params": [
+ {
+ "name": "key",
+ "description": "Key to check",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/object/observable",
+ "inherited": true,
+ "inheritedFrom": "Observable"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1435,
+ "description": "__Required.__ You must implement this method to apply this mixin.\n\nThis is one of the primitives you must implement to support `Array`.\nYou should replace amt objects started at idx with the objects in the\npassed array.\n\nNote that this method is expected to validate the type(s) of objects that it expects.",
+ "itemtype": "method",
+ "name": "replace",
+ "params": [
+ {
+ "name": "idx",
+ "description": "Starting index in the array to replace. If\n idx >= length, then append to the end of the array.",
+ "type": "Number"
+ },
+ {
+ "name": "amt",
+ "description": "Number of elements that should be removed from\n the array, starting at *idx*.",
+ "type": "Number"
+ },
+ {
+ "name": "objects",
+ "description": "An optional array of zero or more objects that should be\n inserted into the array at *idx*",
+ "type": "EmberArray",
+ "optional": true
+ }
+ ],
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1454,
+ "description": "Remove all elements from the array. This is useful if you\nwant to reuse an existing array without having to recreate it.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.length; // 3\ncolors.clear(); // []\ncolors.length; // 0\n```",
+ "itemtype": "method",
+ "name": "clear",
+ "return": {
+ "description": "An empty Array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1471,
+ "description": "This will use the primitive `replace()` method to insert an object at the\nspecified index.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.insertAt(2, 'yellow'); // ['red', 'green', 'yellow', 'blue']\ncolors.insertAt(5, 'orange'); // Error: Index out of range\n```",
+ "itemtype": "method",
+ "name": "insertAt",
+ "params": [
+ {
+ "name": "idx",
+ "description": "index of insert the object at.",
+ "type": "Number"
+ },
+ {
+ "name": "object",
+ "description": "object to insert",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1489,
+ "description": "Remove an object at the specified index using the `replace()` primitive\nmethod. You can pass either a single index, or a start and a length.\n\nIf you pass a start and length that is beyond the\nlength this method will throw an assertion.\n\n```javascript\nlet colors = ['red', 'green', 'blue', 'yellow', 'orange'];\n\ncolors.removeAt(0); // ['green', 'blue', 'yellow', 'orange']\ncolors.removeAt(2, 2); // ['green', 'blue']\ncolors.removeAt(4, 2); // Error: Index out of range\n```",
+ "itemtype": "method",
+ "name": "removeAt",
+ "params": [
+ {
+ "name": "start",
+ "description": "index, start of range",
+ "type": "Number"
+ },
+ {
+ "name": "len",
+ "description": "length of passing range",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1511,
+ "description": "Push the object onto the end of the array. Works just like `push()` but it\nis KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green'];\n\ncolors.pushObject('black'); // ['red', 'green', 'black']\ncolors.pushObject(['yellow']); // ['red', 'green', ['yellow']]\n```",
+ "itemtype": "method",
+ "name": "pushObject",
+ "params": [
+ {
+ "name": "obj",
+ "description": "object to push",
+ "type": "*"
+ }
+ ],
+ "return": {
+ "description": "object same object passed as a param"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1528,
+ "description": "Add the objects in the passed array to the end of the array. Defers\nnotifying observers of the change until all objects are added.\n\n```javascript\nlet colors = ['red'];\n\ncolors.pushObjects(['yellow', 'orange']); // ['red', 'yellow', 'orange']\n```",
+ "itemtype": "method",
+ "name": "pushObjects",
+ "params": [
+ {
+ "name": "objects",
+ "description": "the objects to add",
+ "type": "Array"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "MutableArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1544,
+ "description": "Pop object from array or nil if none are left. Works just like `pop()` but\nit is KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.popObject(); // 'blue'\nconsole.log(colors); // ['red', 'green']\n```",
+ "itemtype": "method",
+ "name": "popObject",
+ "return": {
+ "description": "object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1560,
+ "description": "Shift an object from start of array or nil if none are left. Works just\nlike `shift()` but it is KVO-compliant.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.shiftObject(); // 'red'\nconsole.log(colors); // ['green', 'blue']\n```",
+ "itemtype": "method",
+ "name": "shiftObject",
+ "return": {
+ "description": "object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1576,
+ "description": "Unshift an object to start of array. Works just like `unshift()` but it is\nKVO-compliant.\n\n```javascript\nlet colors = ['red'];\n\ncolors.unshiftObject('yellow'); // ['yellow', 'red']\ncolors.unshiftObject(['black']); // [['black'], 'yellow', 'red']\n```",
+ "itemtype": "method",
+ "name": "unshiftObject",
+ "params": [
+ {
+ "name": "obj",
+ "description": "object to unshift",
+ "type": "*"
+ }
+ ],
+ "return": {
+ "description": "object same object passed as a param"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1593,
+ "description": "Adds the named objects to the beginning of the array. Defers notifying\nobservers until all objects have been added.\n\n```javascript\nlet colors = ['red'];\n\ncolors.unshiftObjects(['black', 'white']); // ['black', 'white', 'red']\ncolors.unshiftObjects('yellow'); // Type Error: 'undefined' is not a function\n```",
+ "itemtype": "method",
+ "name": "unshiftObjects",
+ "params": [
+ {
+ "name": "objects",
+ "description": "the objects to add",
+ "type": "Enumerable"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1610,
+ "description": "Reverse objects in the array. Works just like `reverse()` but it is\nKVO-compliant.",
+ "itemtype": "method",
+ "name": "reverseObjects",
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1619,
+ "description": "Replace all the receiver's content with content of the argument.\nIf argument is an empty array receiver will be cleared.\n\n```javascript\nlet colors = ['red', 'green', 'blue'];\n\ncolors.setObjects(['black', 'white']); // ['black', 'white']\ncolors.setObjects([]); // []\n```",
+ "itemtype": "method",
+ "name": "setObjects",
+ "params": [
+ {
+ "name": "objects",
+ "description": "array whose content will be used for replacing\n the content of the receiver",
+ "type": "EmberArray"
+ }
+ ],
+ "return": {
+ "description": "receiver with the new content",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1637,
+ "description": "Remove all occurrences of an object in the array.\n\n```javascript\nlet cities = ['Chicago', 'Berlin', 'Lima', 'Chicago'];\n\ncities.removeObject('Chicago'); // ['Berlin', 'Lima']\ncities.removeObject('Lima'); // ['Berlin']\ncities.removeObject('Tokyo') // ['Berlin']\n```",
+ "itemtype": "method",
+ "name": "removeObject",
+ "params": [
+ {
+ "name": "obj",
+ "description": "object to remove",
+ "type": "*"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1654,
+ "description": "Removes each object in the passed array from the receiver.",
+ "itemtype": "method",
+ "name": "removeObjects",
+ "params": [
+ {
+ "name": "objects",
+ "description": "the objects to remove",
+ "type": "EmberArray"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1663,
+ "description": "Push the object onto the end of the array if it is not already\npresent in the array.\n\n```javascript\nlet cities = ['Chicago', 'Berlin'];\n\ncities.addObject('Lima'); // ['Chicago', 'Berlin', 'Lima']\ncities.addObject('Berlin'); // ['Chicago', 'Berlin', 'Lima']\n```",
+ "itemtype": "method",
+ "name": "addObject",
+ "params": [
+ {
+ "name": "obj",
+ "description": "object to add, if not already present",
+ "type": "*"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1680,
+ "description": "Adds each object in the passed array to the receiver.",
+ "itemtype": "method",
+ "name": "addObjects",
+ "params": [
+ {
+ "name": "objects",
+ "description": "the objects to add.",
+ "type": "EmberArray"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "MutableArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 200,
+ "description": "Returns the object at the given `index`. If the given `index` is negative\nor is greater or equal than the array length, returns `undefined`.\n\nThis is one of the primitives you must implement to support `EmberArray`.\nIf your object supports retrieving the value of an array item using `get()`\n(i.e. `myArray.get(0)`), then you do not need to implement this method\nyourself.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectAt(0); // 'a'\narr.objectAt(3); // 'd'\narr.objectAt(-1); // undefined\narr.objectAt(4); // undefined\narr.objectAt(5); // undefined\n```",
+ "itemtype": "method",
+ "name": "objectAt",
+ "params": [
+ {
+ "name": "idx",
+ "description": "The index of the item to return.",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "item at index or undefined",
+ "type": "*"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 225,
+ "description": "This returns the objects at the specified indexes, using `objectAt`.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectsAt([0, 1, 2]); // ['a', 'b', 'c']\narr.objectsAt([2, 3, 4]); // ['c', 'd', undefined]\n```",
+ "itemtype": "method",
+ "name": "objectsAt",
+ "params": [
+ {
+ "name": "indexes",
+ "description": "An array of indexes of items to return.",
+ "type": "Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 291,
+ "description": "Returns a new array that is a slice of the receiver. This implementation\nuses the observable array methods to retrieve the objects for the new\nslice.\n\n```javascript\nlet arr = ['red', 'green', 'blue'];\n\narr.slice(0); // ['red', 'green', 'blue']\narr.slice(0, 2); // ['red', 'green']\narr.slice(1, 100); // ['green', 'blue']\n```",
+ "itemtype": "method",
+ "name": "slice",
+ "params": [
+ {
+ "name": "beginIndex",
+ "description": "(Optional) index to begin slicing from.",
+ "type": "Number"
+ },
+ {
+ "name": "endIndex",
+ "description": "(Optional) index to end the slice at (but not included).",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "New array with specified slice",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 311,
+ "description": "Used to determine the passed object's first occurrence in the array.\nReturns the index if found, -1 if no match is found.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.indexOf('a'); // 0\narr.indexOf('z'); // -1\narr.indexOf('a', 2); // 4\narr.indexOf('a', -1); // 4, equivalent to indexOf('a', 4)\narr.indexOf('a', -100); // 0, searches entire array\narr.indexOf('b', 3); // -1\narr.indexOf('a', 100); // -1\n\nlet people = [{ name: 'Zoey' }, { name: 'Bob' }]\nlet newPerson = { name: 'Tom' };\npeople = [newPerson, ...people, newPerson];\n\npeople.indexOf(newPerson); // 0\npeople.indexOf(newPerson, 1); // 3\npeople.indexOf(newPerson, -4); // 0\npeople.indexOf(newPerson, 10); // -1\n```",
+ "itemtype": "method",
+ "name": "indexOf",
+ "params": [
+ {
+ "name": "object",
+ "description": "the item to search for",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search, default 0",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "index or -1 if not found",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 349,
+ "description": "Returns the index of the given `object`'s last occurrence.\n\n- If no `startAt` argument is given, the search starts from\nthe last position.\n- If it's greater than or equal to the length of the array,\nthe search starts from the last position.\n- If it's negative, it is taken as the offset from the end\nof the array i.e. `startAt + array.length`.\n- If it's any other positive number, will search backwards\nfrom that index of the array.\n\nReturns -1 if no match is found.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.lastIndexOf('a'); // 4\narr.lastIndexOf('z'); // -1\narr.lastIndexOf('a', 2); // 0\narr.lastIndexOf('a', -1); // 4\narr.lastIndexOf('a', -3); // 0\narr.lastIndexOf('b', 3); // 1\narr.lastIndexOf('a', 100); // 4\n```",
+ "itemtype": "method",
+ "name": "lastIndexOf",
+ "params": [
+ {
+ "name": "object",
+ "description": "the item to search for",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search from\nbackwards, defaults to `(array.length - 1)`",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The last index of the `object` in the array or -1\nif not found",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 384,
+ "description": "Iterates through the array, calling the passed function on each\nitem. This method corresponds to the `forEach()` method defined in\nJavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet foods = [\n { name: 'apple', eaten: false },\n { name: 'banana', eaten: false },\n { name: 'carrot', eaten: false }\n];\n\nfoods.forEach((food) => food.eaten = true);\n\nlet output = '';\nfoods.forEach((item, index, array) =>\n output += `${index + 1}/${array.length} ${item.name}\\n`;\n);\nconsole.log(output);\n// 1/3 apple\n// 2/3 banana\n// 3/3 carrot\n```",
+ "itemtype": "method",
+ "name": "forEach",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 435,
+ "description": "Alias for `mapBy`.\n\nReturns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.getEach('name');\n// ['Joe', 'Matt'];\n\npeople.getEach('nonexistentProperty');\n// [undefined, undefined];\n```",
+ "itemtype": "method",
+ "name": "getEach",
+ "params": [
+ {
+ "name": "key",
+ "description": "name of the property",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 457,
+ "description": "Sets the value on the named property for each member. This is more\nergonomic than using other methods defined on this helper. If the object\nimplements Observable, the value will be changed to `set(),` otherwise\nit will be set directly. `null` objects are skipped.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.setEach('zipCode', '10011');\n// [{name: 'Joe', zipCode: '10011'}, {name: 'Matt', zipCode: '10011'}];\n```",
+ "itemtype": "method",
+ "name": "setEach",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The object to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 477,
+ "description": "Maps all of the items in the enumeration to another value, returning\na new array. This method corresponds to `map()` defined in JavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\nlet arr = [1, 2, 3, 4, 5, 6];\n\narr.map(element => element * element);\n// [1, 4, 9, 16, 25, 36];\n\narr.map((element, index) => element + index);\n// [1, 3, 5, 7, 9, 11];\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nIt should return the mapped value.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.",
+ "itemtype": "method",
+ "name": "map",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 515,
+ "description": "Similar to map, this specialized function returns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.mapBy('name');\n// ['Joe', 'Matt'];\n\npeople.mapBy('unknownProperty');\n// [undefined, undefined];\n```",
+ "itemtype": "method",
+ "name": "mapBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "name of the property",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 536,
+ "description": "Returns a new array with all of the items in the enumeration that the provided\ncallback function returns true for. This method corresponds to [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter).\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nAll parameters are optional. The function should return `true` to include the item\nin the results, and `false` otherwise.\n\nExample:\n\n```javascript\nimport { A } from '@ember/array';\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nlet people = A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n\npeople.filter(isAdult); // returns [{ name: 'Joan', age: 45 }];\n```\n\nNote that in addition to a callback, you can pass an optional target object\nthat will be set as `this` on the context. This is a good way to give your\niterator function access to the current object. For example:\n\n```javascript\nfunction isAdultAndEngineer(person) {\n return person.age > 18 && this.engineering;\n}\n\nclass AdultsCollection {\n engineering = false;\n\n constructor(opts = {}) {\n super(...arguments);\n\n this.engineering = opts.engineering;\n this.people = A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n }\n}\n\nlet collection = new AdultsCollection({ engineering: true });\ncollection.people.filter(isAdultAndEngineer, { target: collection });\n```",
+ "itemtype": "method",
+ "name": "filter",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "A filtered array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 600,
+ "description": "Returns an array with all of the items in the enumeration where the passed\nfunction returns false. This method is the inverse of filter().\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- *item* is the current item in the iteration.\n- *index* is the current index in the iteration\n- *array* is the array itself.\n\nIt should return a falsey value to include the item in the results.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as \"this\" on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\nconst nonFruits = food.reject(function(thing) {\n return thing.isFruit;\n}); // [{food: 'bread', isFruit: false}]\n```",
+ "itemtype": "method",
+ "name": "reject",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "A rejected array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 644,
+ "description": "Filters the array by the property and an optional value. If a value is given, it returns\nthe items that have said value for the property. If not, it returns all the items that\nhave a truthy value for the property.\n\nExample Usage:\n\n```javascript\nimport { A } from '@ember/array';\nlet things = A([{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }]);\n\nthings.filterBy('food', 'beans'); // [{ food: 'beans', isFruit: false }]\nthings.filterBy('isFruit'); // [{ food: 'apple', isFruit: true }]\n```",
+ "itemtype": "method",
+ "name": "filterBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "*",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "filtered array",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 666,
+ "description": "Returns an array with the items that do not have truthy values for the provided key.\nYou can pass an optional second argument with a target value to reject for the key.\nOtherwise this will reject objects where the provided property evaluates to false.\n\nExample Usage:\n\n```javascript\n let food = [\n { name: \"apple\", isFruit: true },\n { name: \"carrot\", isFruit: false },\n { name: \"bread\", isFruit: false },\n ];\n food.rejectBy('isFruit'); // [{ name: \"carrot\", isFruit: false }, { name: \"bread\", isFruit: false }]\n food.rejectBy('name', 'carrot'); // [{ name: \"apple\", isFruit: true }}, { name: \"bread\", isFruit: false }]\n```",
+ "itemtype": "method",
+ "name": "rejectBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "*",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "rejected array",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 690,
+ "description": "Returns the first item in the array for which the callback returns true.\nThis method is similar to the `find()` method defined in ECMAScript 2015.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nIt should return the `true` to include the item in the results, `false`\notherwise.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda' },\n { id: 2, name: 'Tom' },\n { id: 3, name: 'Melanie' },\n { id: 4, name: 'Leah' }\n];\n\nusers.find((user) => user.name == 'Tom'); // [{ id: 2, name: 'Tom' }]\nusers.find(({ id }) => id == 3); // [{ id: 3, name: 'Melanie' }]\n```",
+ "itemtype": "method",
+ "name": "find",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "Found item or `undefined`.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 740,
+ "description": "Returns the first item with a property matching the passed value. You\ncan pass an optional second argument with the target value. Otherwise\nthis will match any property that evaluates to `true`.\n\nThis method works much like the more generic `find()` method.\n\nUsage Example:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda', isTom: false },\n { id: 2, name: 'Tom', isTom: true },\n { id: 3, name: 'Melanie', isTom: false },\n { id: 4, name: 'Leah', isTom: false }\n];\n\nusers.findBy('id', 4); // { id: 4, name: 'Leah', isTom: false }\nusers.findBy('name', 'Melanie'); // { id: 3, name: 'Melanie', isTom: false }\nusers.findBy('isTom'); // { id: 2, name: 'Tom', isTom: true }\n```",
+ "itemtype": "method",
+ "name": "findBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "found item or `undefined`",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 770,
+ "description": "Returns `true` if the passed function returns true for every item in the\nenumeration. This corresponds with the `Array.prototype.every()` method defined in ES5.\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nAll params are optional. The method should return `true` or `false`.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nUsage example:\n\n```javascript\nimport { A } from '@ember/array';\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nconst people = A([{ name: 'John', age: 24 }, { name: 'Joan', age: 45 }]);\nconst areAllAdults = people.every(isAdult);\n```",
+ "itemtype": "method",
+ "name": "every",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 812,
+ "description": "Returns `true` if the passed property resolves to the value of the second\nargument for all items in the array. This method is often simpler/faster\nthan using a callback.\n\nNote that like the native `Array.every`, `isEvery` will return true when called\non any empty array.\n```javascript\nclass Language {\n constructor(name, isProgrammingLanguage) {\n this.name = name;\n this.programmingLanguage = isProgrammingLanguage;\n }\n}\n\nconst compiledLanguages = [\n new Language('Java', true),\n new Language('Go', true),\n new Language('Rust', true)\n]\n\nconst languagesKnownByMe = [\n new Language('Javascript', true),\n new Language('English', false),\n new Language('Ruby', true)\n]\n\ncompiledLanguages.isEvery('programmingLanguage'); // true\nlanguagesKnownByMe.isEvery('programmingLanguage'); // false\n```",
+ "itemtype": "method",
+ "name": "isEvery",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against. Defaults to `true`",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "since": "1.3.0",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 852,
+ "description": "The any() method executes the callback function once for each element\npresent in the array until it finds the one where callback returns a truthy\nvalue (i.e. `true`). If such an element is found, any() immediately returns\ntrue. Otherwise, any() returns false.\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array object itself.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. It can be a good way\nto give your iterator function access to an object in cases where an ES6\narrow function would not be appropriate.\n\nUsage Example:\n\n```javascript\nlet includesManager = people.any(this.findPersonInManagersList, this);\n\nlet includesStockHolder = people.any(person => {\n return this.findPersonInStockHoldersList(person)\n});\n\nif (includesManager || includesStockHolder) {\n Paychecks.addBiggerBonus();\n}\n```",
+ "itemtype": "method",
+ "name": "any",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "`true` if the passed function returns `true` for any item",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 895,
+ "description": "Returns `true` if the passed property resolves to the value of the second\nargument for any item in the array. This method is often simpler/faster\nthan using a callback.\n\nExample usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\n\nfood.isAny('isFruit'); // true\n```",
+ "itemtype": "method",
+ "name": "isAny",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against. Defaults to `true`",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "since": "1.3.0",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 921,
+ "description": "This will combine the values of the array into a single value. It\nis a useful way to collect a summary value from an array. This\ncorresponds to the `reduce()` method defined in JavaScript 1.8.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(previousValue, item, index, array);\n```\n\n- `previousValue` is the value returned by the last call to the iterator.\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nReturn the new cumulative value.\n\nIn addition to the callback you can also pass an `initialValue`. An error\nwill be raised if you do not pass an initial value and the enumerator is\nempty.\n\nNote that unlike the other methods, this method does not allow you to\npass a target object to set as this for the callback. It's part of the\nspec. Sorry.\n\nExample Usage:\n\n```javascript\n let numbers = [1, 2, 3, 4, 5];\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }); // 15 (1 + 2 + 3 + 4 + 5)\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }, -15); // 0 (-15 + 1 + 2 + 3 + 4 + 5)\n\n\n let binaryValues = [true, false, false];\n\n binaryValues.reduce(function(truthValue, current) {\n return truthValue && current;\n }); // false (true && false && false)\n```",
+ "itemtype": "method",
+ "name": "reduce",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "initialValue",
+ "description": "Initial value for the reduce",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The reduced value.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 979,
+ "description": "Invokes the named method on every object in the receiver that\nimplements it. This method corresponds to the implementation in\nPrototype 1.6.\n\n```javascript\nclass Person {\n name = null;\n\n constructor(name) {\n this.name = name;\n }\n\n greet(prefix='Hello') {\n return `${prefix} ${this.name}`;\n }\n}\n\nlet people = [new Person('Joe'), new Person('Matt')];\n\npeople.invoke('greet'); // ['Hello Joe', 'Hello Matt']\npeople.invoke('greet', 'Bonjour'); // ['Bonjour Joe', 'Bonjour Matt']\n```",
+ "itemtype": "method",
+ "name": "invoke",
+ "params": [
+ {
+ "name": "methodName",
+ "description": "the name of the method",
+ "type": "String"
+ },
+ {
+ "name": "args",
+ "description": "optional arguments to pass as well.",
+ "type": "Object..."
+ }
+ ],
+ "return": {
+ "description": "return values from calling invoke.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1013,
+ "description": "Simply converts the object into a genuine array. The order is not\nguaranteed. Corresponds to the method implemented by Prototype.",
+ "itemtype": "method",
+ "name": "toArray",
+ "return": {
+ "description": "the object as an array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1022,
+ "description": "Returns a copy of the array with all `null` and `undefined` elements removed.\n\n```javascript\nlet arr = ['a', null, 'c', undefined];\narr.compact(); // ['a', 'c']\n```",
+ "itemtype": "method",
+ "name": "compact",
+ "return": {
+ "description": "the array without null and undefined elements.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1035,
+ "description": "Used to determine if the array contains the passed object.\nReturns `true` if found, `false` otherwise.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\nThis method has the same behavior of JavaScript's [Array.includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes).\n\n```javascript\n[1, 2, 3].includes(2); // true\n[1, 2, 3].includes(4); // false\n[1, 2, 3].includes(3, 2); // true\n[1, 2, 3].includes(3, 3); // false\n[1, 2, 3].includes(3, -1); // true\n[1, 2, 3].includes(1, -1); // false\n[1, 2, 3].includes(1, -4); // true\n[1, 2, NaN].includes(NaN); // true\n```",
+ "itemtype": "method",
+ "name": "includes",
+ "params": [
+ {
+ "name": "object",
+ "description": "The object to search for.",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search, default 0",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "`true` if object is found in the array.",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1065,
+ "description": "Sorts the array by the keys specified in the argument.\n\nYou may provide multiple arguments to sort by multiple properties.\n\n```javascript\n let colors = [\n { name: 'red', weight: 500 },\n { name: 'green', weight: 600 },\n { name: 'blue', weight: 500 }\n];\n\n colors.sortBy('name');\n // [{name: 'blue', weight: 500}, {name: 'green', weight: 600}, {name: 'red', weight: 500}]\n\n colors.sortBy('weight', 'name');\n // [{name: 'blue', weight: 500}, {name: 'red', weight: 500}, {name: 'green', weight: 600}]\n ```",
+ "itemtype": "method",
+ "name": "sortBy",
+ "params": [
+ {
+ "name": "property",
+ "description": "name(s) to sort on",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The sorted array.",
+ "type": "Array"
+ },
+ "since": "1.2.0",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1090,
+ "description": "Returns a new array that contains only unique values. The default\nimplementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = ['a', 'a', 'b', 'b'];\narr.uniq(); // ['a', 'b']\n```\n\nThis only works on primitive data types, e.g. Strings, Numbers, etc.",
+ "itemtype": "method",
+ "name": "uniq",
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1106,
+ "description": "Returns a new array that contains only items containing a unique property value.\nThe default implementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];\narr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]\n\nlet arr = [2.2, 2.1, 3.2, 3.3];\narr.uniqBy(Math.floor); // [2.2, 3.2];\n```",
+ "itemtype": "method",
+ "name": "uniqBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "",
+ "type": "String,Function"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1125,
+ "description": "Returns a new array that excludes the passed value. The default\nimplementation returns an array regardless of the receiver type.\nIf the receiver does not contain the value it returns the original array.\n\n```javascript\nlet arr = ['a', 'b', 'a', 'c'];\narr.without('a'); // ['b', 'c']\n```",
+ "itemtype": "method",
+ "name": "without",
+ "params": [
+ {
+ "name": "value",
+ "description": "",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 190,
+ "description": "__Required.__ You must implement this method to apply this mixin.\n\nYour array must support the `length` property. Your replace methods should\nset this property whenever it changes.",
+ "itemtype": "property",
+ "name": "length",
+ "type": "Number",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 241,
+ "description": "This is the handler for the special array content property. If you get\nthis property, it will return this. If you set this property to a new\narray, it will replace the current content.\n\n```javascript\nlet peopleToMoon = ['Armstrong', 'Aldrin'];\n\npeopleToMoon.get('[]'); // ['Armstrong', 'Aldrin']\n\npeopleToMoon.set('[]', ['Collins']); // ['Collins']\npeopleToMoon.get('[]'); // ['Collins']\n```",
+ "itemtype": "property",
+ "name": "[]",
+ "return": {
+ "description": "this"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 261,
+ "description": "The first object in the array, or `undefined` if the array is empty.\n\n```javascript\nlet vowels = ['a', 'e', 'i', 'o', 'u'];\nvowels.firstObject; // 'a'\n\nvowels.shiftObject();\nvowels.firstObject; // 'e'\n\nvowels.reverseObjects();\nvowels.firstObject; // 'u'\n\nvowels.clear();\nvowels.firstObject; // undefined\n```",
+ "itemtype": "property",
+ "name": "firstObject",
+ "return": {
+ "description": "The first object in the array",
+ "type": "Object | undefined"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 283,
+ "description": "The last object in the array, or `undefined` if the array is empty.",
+ "itemtype": "property",
+ "name": "lastObject",
+ "return": {
+ "description": "The last object in the array",
+ "type": "Object | undefined"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.NativeArray",
+ "module": "@ember/array",
+ "inherited": true,
+ "inheritedFrom": "EmberArray"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ProxyMixin.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ProxyMixin.json
new file mode 100644
index 000000000..b2894ce08
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.ProxyMixin.json
@@ -0,0 +1,76 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.ProxyMixin",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.ProxyMixin",
+ "shortname": "Ember.ProxyMixin",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "ObjectProxy"
+ ],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
+ "line": 63,
+ "description": "`ProxyMixin` forwards all properties not defined by the proxy itself\nto a proxied `content` object. See ObjectProxy for more details.",
+ "access": "private",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
+ "line": 72,
+ "description": "The object whose properties will be forwarded.",
+ "itemtype": "property",
+ "name": "content",
+ "type": "{unknown}",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ProxyMixin",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/-proxy.ts",
+ "line": 94,
+ "description": "The object whose properties will be forwarded.",
+ "itemtype": "property",
+ "name": "content",
+ "type": "{unknown}",
+ "default": "null",
+ "access": "public",
+ "tagname": "",
+ "class": "Ember.ProxyMixin",
+ "module": "ember",
+ "namespace": "Ember"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.String.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.String.json
new file mode 100644
index 000000000..3056f67f2
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.String.json
@@ -0,0 +1,92 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.String",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.String",
+ "shortname": "String",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/string/index.ts",
+ "line": 42,
+ "description": "Defines string helper methods used internally in ember-source.",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/string/index.ts",
+ "line": 49,
+ "description": "Replaces underscores, spaces, or camelCase with dashes.\n\n```javascript\nimport { dasherize } from '@ember/-internals/string';\n\ndasherize('innerHTML'); // 'inner-html'\ndasherize('action_name'); // 'action-name'\ndasherize('css-class-name'); // 'css-class-name'\ndasherize('my favorite items'); // 'my-favorite-items'\ndasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n```",
+ "itemtype": "method",
+ "name": "dasherize",
+ "params": [
+ {
+ "name": "str",
+ "description": "The string to dasherize.",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "the dasherized string.",
+ "type": "String"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.String",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/-internals/string/index.ts",
+ "line": 71,
+ "description": "Returns the UpperCamelCase form of a string.\n\n```javascript\nimport { classify } from '@ember/string';\n\nclassify('innerHTML'); // 'InnerHTML'\nclassify('action_name'); // 'ActionName'\nclassify('css-class-name'); // 'CssClassName'\nclassify('my favorite items'); // 'MyFavoriteItems'\nclassify('private-docs/owner-invoice'); // 'PrivateDocs/OwnerInvoice'\n```",
+ "itemtype": "method",
+ "name": "classify",
+ "params": [
+ {
+ "name": "str",
+ "description": "the string to classify",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "the classified string",
+ "type": "String"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.String",
+ "module": "ember",
+ "namespace": "Ember"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.TargetActionSupport.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.TargetActionSupport.json
new file mode 100644
index 000000000..d4ffe5296
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.TargetActionSupport.json
@@ -0,0 +1,101 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.TargetActionSupport",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.TargetActionSupport",
+ "shortname": "Ember.TargetActionSupport",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "Component"
+ ],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts",
+ "line": 12,
+ "description": "`TargetActionSupport` is a mixin that can be included in a class\nto add a `triggerAction` method with semantics similar to the\n`{{action}}` helper. In normal Ember usage, the `{{action}}` helper is\nusually the best choice. This mixin is most often useful when you are\ndoing more complex event handling in Components.",
+ "extends": "Mixin",
+ "access": "private",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/runtime/lib/mixins/target_action_support.ts",
+ "line": 53,
+ "description": "The following is private and vestigial.\nSend an `action` with an `actionContext` to a `target`. The action, actionContext\nand target will be retrieved from properties of the object. For example:\n\n```javascript\nimport { alias } from '@ember/object/computed';\n\nApp.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {\n target: alias('controller'),\n action: 'save',\n actionContext: alias('context'),\n click() {\n this.triggerAction(); // Sends the `save` action, along with the current context\n // to the current controller\n }\n});\n```\n\nThe `target`, `action`, and `actionContext` can be provided as properties of\nan optional object argument to `triggerAction` as well.\n\n```javascript\nApp.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {\n click() {\n this.triggerAction({\n action: 'save',\n target: this.get('controller'),\n actionContext: this.get('context')\n }); // Sends the `save` action, along with the current context\n // to the current controller\n }\n});\n```\n\nThe `actionContext` defaults to the object you are mixing `TargetActionSupport` into.\nBut `target` and `action` must be specified either as properties or with the argument\nto `triggerAction`, or a combination:\n\n```javascript\nimport { alias } from '@ember/object/computed';\n\nApp.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, {\n target: alias('controller'),\n click() {\n this.triggerAction({\n action: 'save'\n }); // Sends the `save` action, along with a reference to `this`,\n // to the current controller\n }\n});\n```",
+ "itemtype": "method",
+ "name": "triggerAction",
+ "params": [
+ {
+ "name": "opts",
+ "description": "(optional, with the optional keys action, target and/or actionContext)",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "true if the action was sent successfully and did not return false",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.TargetActionSupport",
+ "module": "ember",
+ "namespace": "Ember"
+ },
+ {
+ "file": "packages/@ember/object/mixin.ts",
+ "line": 440,
+ "itemtype": "method",
+ "name": "mixin",
+ "params": [
+ {
+ "name": "obj",
+ "description": ""
+ },
+ {
+ "name": "mixins",
+ "description": "",
+ "multiple": true
+ }
+ ],
+ "return": {
+ "description": "obj"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember.TargetActionSupport",
+ "module": "@ember/object/mixin",
+ "inherited": true,
+ "inheritedFrom": "Mixin"
+ }
+ ],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": {
+ "id": "ember-7.2.0-Mixin",
+ "type": "class"
+ }
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Templates.helpers.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Templates.helpers.json
new file mode 100644
index 000000000..1135ee0c3
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Templates.helpers.json
@@ -0,0 +1,45 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.Templates.helpers",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.Templates.helpers",
+ "shortname": "Ember.Templates.helpers",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "",
+ "file": "packages/@ember/-internals/glimmer/index.ts",
+ "line": 104,
+ "description": "## Looking for template keywords and helpers? \n \n See [@ember/helper](../modules/@ember%2Fhelper).",
+ "access": "public",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Test.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Test.json
new file mode 100644
index 000000000..ca416446b
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.Test.json
@@ -0,0 +1,45 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember.Test",
+ "type": "class",
+ "attributes": {
+ "name": "Ember.Test",
+ "shortname": "Ember.Test",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "ember",
+ "namespace": "Ember",
+ "file": "packages/ember-testing/lib/test.ts",
+ "line": 6,
+ "description": "This is a container for an assortment of testing related functionality:\n\n* Choose your default test adapter (for your framework of choice).\n* Register/Unregister additional test helpers.\n* Setup callbacks to be fired when the test helpers are injected into\n your application.",
+ "access": "public",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": []
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-ember",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.json
new file mode 100644
index 000000000..d552b0346
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-Ember.json
@@ -0,0 +1,196 @@
+{
+ "data": {
+ "id": "ember-7.2.0-Ember",
+ "type": "class",
+ "attributes": {
+ "name": "Ember",
+ "shortname": "Ember",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "@ember/utils",
+ "namespace": "",
+ "methods": [
+ {
+ "file": "packages/@ember/-internals/meta/lib/meta.ts",
+ "line": 674,
+ "description": "Retrieves the meta hash for an object. If `writable` is true ensures the\nhash is writable for this object as well.\n\nThe meta object contains information about computed property descriptors as\nwell as any watched properties and other information. You generally will\nnot access this information directly but instead work with higher level\nmethods that manipulate this hash indirectly.",
+ "itemtype": "method",
+ "name": "meta",
+ "access": "private",
+ "tagname": "",
+ "params": [
+ {
+ "name": "obj",
+ "description": "The object to retrieve meta for",
+ "type": "Object"
+ },
+ {
+ "name": "writable",
+ "description": "Pass `false` if you do not intend to modify\n the meta hash, allowing the method to avoid making an unnecessary copy.",
+ "type": "Boolean",
+ "optional": true,
+ "optdefault": "true"
+ }
+ ],
+ "return": {
+ "description": "the meta hash for an object",
+ "type": "Object"
+ },
+ "class": "Ember",
+ "module": "ember"
+ },
+ {
+ "file": "packages/@ember/-internals/utils/lib/invoke.ts",
+ "line": 1,
+ "description": "Checks to see if the `methodName` exists on the `obj`.\n\n```javascript\nlet foo = { bar: function() { return 'bar'; }, baz: null };\n\nEmber.canInvoke(foo, 'bar'); // true\nEmber.canInvoke(foo, 'baz'); // false\nEmber.canInvoke(foo, 'bat'); // false\n```",
+ "itemtype": "method",
+ "name": "canInvoke",
+ "params": [
+ {
+ "name": "obj",
+ "description": "The object to check for the method",
+ "type": "Object"
+ },
+ {
+ "name": "methodName",
+ "description": "The method name to check for",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "private",
+ "tagname": "",
+ "class": "Ember",
+ "module": "@ember/object"
+ },
+ {
+ "file": "packages/@ember/-internals/utils/lib/spec.ts",
+ "line": 1,
+ "description": "Returns whether Type(value) is Object.\n\nUseful for checking whether a value is a valid WeakMap key.\n\nRefs: https://tc39.github.io/ecma262/#sec-typeof-operator-runtime-semantics-evaluation\n https://tc39.github.io/ecma262/#sec-weakmap.prototype.set",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "isObject",
+ "class": "Ember",
+ "module": "@ember/utils"
+ },
+ {
+ "file": "packages/@ember/-internals/utils/lib/super.ts",
+ "line": 71,
+ "description": "Wraps the passed function so that `this._super` will point to the superFunc\nwhen the function is invoked. This is the primitive we use to implement\ncalls to super.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "method",
+ "name": "wrap",
+ "params": [
+ {
+ "name": "func",
+ "description": "The function to call",
+ "type": "Function"
+ },
+ {
+ "name": "superFunc",
+ "description": "The super function.",
+ "type": "Function"
+ }
+ ],
+ "return": {
+ "description": "wrapped function.",
+ "type": "Function"
+ },
+ "class": "Ember",
+ "module": "@ember/utils"
+ },
+ {
+ "file": "packages/@ember/routing/lib/controller_for.ts",
+ "line": 9,
+ "description": "Finds a controller instance.",
+ "itemtype": "method",
+ "name": "controllerFor",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember",
+ "module": "@ember/routing"
+ },
+ {
+ "file": "packages/@ember/routing/lib/generate_controller.ts",
+ "line": 11,
+ "description": "Generates a controller factory",
+ "itemtype": "method",
+ "name": "generateControllerFactory",
+ "access": "private",
+ "tagname": "",
+ "class": "Ember",
+ "module": "@ember/routing"
+ },
+ {
+ "file": "packages/@ember/routing/lib/generate_controller.ts",
+ "line": 55,
+ "description": "Generates and instantiates a controller extending from `controller:basic`\nif present, or `Controller` if not.",
+ "itemtype": "method",
+ "name": "generateController",
+ "access": "private",
+ "tagname": "",
+ "since": "1.3.0",
+ "class": "Ember",
+ "module": "@ember/routing"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/utils/lib/guid.ts",
+ "line": 26,
+ "description": "Prefix used for guids through out Ember.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "GUID_PREFIX",
+ "type": "String",
+ "final": 1,
+ "class": "Ember",
+ "module": "@ember/object"
+ },
+ {
+ "file": "packages/@ember/-internals/utils/lib/guid.ts",
+ "line": 39,
+ "description": "A unique key used to assign guids and other private metadata to objects.\nIf you inspect an object in your browser debugger you will often see these.\nThey can be safely ignored.\n\nOn browsers that support it, these properties are added with enumeration\ndisabled so they won't show up when you iterate over your properties.",
+ "access": "private",
+ "tagname": "",
+ "itemtype": "property",
+ "name": "GUID_KEY",
+ "type": "String",
+ "final": 1,
+ "class": "Ember",
+ "module": "@ember/object"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/utils",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberArray.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberArray.json
new file mode 100644
index 000000000..1f9a88daa
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberArray.json
@@ -0,0 +1,836 @@
+{
+ "data": {
+ "id": "ember-7.2.0-EmberArray",
+ "type": "class",
+ "attributes": {
+ "name": "EmberArray",
+ "shortname": "EmberArray",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [
+ "MutableArray"
+ ],
+ "module": "@ember/array",
+ "namespace": "",
+ "file": "packages/@ember/array/index.ts",
+ "line": 156,
+ "description": "This mixin implements Observer-friendly Array-like behavior. It is not a\nconcrete implementation, but it can be used up by other classes that want\nto appear like arrays.\n\nFor example, ArrayProxy is a concrete class that can be instantiated to\nimplement array-like behavior. This class uses the Array Mixin by way of\nthe MutableArray mixin, which allows observable changes to be made to the\nunderlying array.\n\nThis mixin defines methods specifically for collections that provide\nindex-ordered access to their contents. When you are designing code that\nneeds to accept any kind of Array-like object, you should use these methods\ninstead of Array primitives because these will properly notify observers of\nchanges to the array.\n\nAlthough these methods are efficient, they do add a layer of indirection to\nyour application so it is a good idea to use them only when you need the\nflexibility of using both true JavaScript arrays and \"virtual\" arrays such\nas controllers and collections.\n\nYou can use the methods defined in this module to access and modify array\ncontents in an observable-friendly way. You can also be notified whenever\nthe membership of an array changes by using `.observes('myArray.[]')`.\n\nTo support `EmberArray` in your own class, you must override two\nprimitives to use it: `length()` and `objectAt()`.",
+ "uses": [
+ "Enumerable"
+ ],
+ "since": "Ember 0.9.0",
+ "access": "public",
+ "tagname": "",
+ "methods": [
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 200,
+ "description": "Returns the object at the given `index`. If the given `index` is negative\nor is greater or equal than the array length, returns `undefined`.\n\nThis is one of the primitives you must implement to support `EmberArray`.\nIf your object supports retrieving the value of an array item using `get()`\n(i.e. `myArray.get(0)`), then you do not need to implement this method\nyourself.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectAt(0); // 'a'\narr.objectAt(3); // 'd'\narr.objectAt(-1); // undefined\narr.objectAt(4); // undefined\narr.objectAt(5); // undefined\n```",
+ "itemtype": "method",
+ "name": "objectAt",
+ "params": [
+ {
+ "name": "idx",
+ "description": "The index of the item to return.",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "item at index or undefined",
+ "type": "*"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 225,
+ "description": "This returns the objects at the specified indexes, using `objectAt`.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd'];\n\narr.objectsAt([0, 1, 2]); // ['a', 'b', 'c']\narr.objectsAt([2, 3, 4]); // ['c', 'd', undefined]\n```",
+ "itemtype": "method",
+ "name": "objectsAt",
+ "params": [
+ {
+ "name": "indexes",
+ "description": "An array of indexes of items to return.",
+ "type": "Array"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 291,
+ "description": "Returns a new array that is a slice of the receiver. This implementation\nuses the observable array methods to retrieve the objects for the new\nslice.\n\n```javascript\nlet arr = ['red', 'green', 'blue'];\n\narr.slice(0); // ['red', 'green', 'blue']\narr.slice(0, 2); // ['red', 'green']\narr.slice(1, 100); // ['green', 'blue']\n```",
+ "itemtype": "method",
+ "name": "slice",
+ "params": [
+ {
+ "name": "beginIndex",
+ "description": "(Optional) index to begin slicing from.",
+ "type": "Number"
+ },
+ {
+ "name": "endIndex",
+ "description": "(Optional) index to end the slice at (but not included).",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "New array with specified slice",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 311,
+ "description": "Used to determine the passed object's first occurrence in the array.\nReturns the index if found, -1 if no match is found.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.indexOf('a'); // 0\narr.indexOf('z'); // -1\narr.indexOf('a', 2); // 4\narr.indexOf('a', -1); // 4, equivalent to indexOf('a', 4)\narr.indexOf('a', -100); // 0, searches entire array\narr.indexOf('b', 3); // -1\narr.indexOf('a', 100); // -1\n\nlet people = [{ name: 'Zoey' }, { name: 'Bob' }]\nlet newPerson = { name: 'Tom' };\npeople = [newPerson, ...people, newPerson];\n\npeople.indexOf(newPerson); // 0\npeople.indexOf(newPerson, 1); // 3\npeople.indexOf(newPerson, -4); // 0\npeople.indexOf(newPerson, 10); // -1\n```",
+ "itemtype": "method",
+ "name": "indexOf",
+ "params": [
+ {
+ "name": "object",
+ "description": "the item to search for",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search, default 0",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "index or -1 if not found",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 349,
+ "description": "Returns the index of the given `object`'s last occurrence.\n\n- If no `startAt` argument is given, the search starts from\nthe last position.\n- If it's greater than or equal to the length of the array,\nthe search starts from the last position.\n- If it's negative, it is taken as the offset from the end\nof the array i.e. `startAt + array.length`.\n- If it's any other positive number, will search backwards\nfrom that index of the array.\n\nReturns -1 if no match is found.\n\n```javascript\nlet arr = ['a', 'b', 'c', 'd', 'a'];\n\narr.lastIndexOf('a'); // 4\narr.lastIndexOf('z'); // -1\narr.lastIndexOf('a', 2); // 0\narr.lastIndexOf('a', -1); // 4\narr.lastIndexOf('a', -3); // 0\narr.lastIndexOf('b', 3); // 1\narr.lastIndexOf('a', 100); // 4\n```",
+ "itemtype": "method",
+ "name": "lastIndexOf",
+ "params": [
+ {
+ "name": "object",
+ "description": "the item to search for",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search from\nbackwards, defaults to `(array.length - 1)`",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "The last index of the `object` in the array or -1\nif not found",
+ "type": "Number"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 384,
+ "description": "Iterates through the array, calling the passed function on each\nitem. This method corresponds to the `forEach()` method defined in\nJavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet foods = [\n { name: 'apple', eaten: false },\n { name: 'banana', eaten: false },\n { name: 'carrot', eaten: false }\n];\n\nfoods.forEach((food) => food.eaten = true);\n\nlet output = '';\nfoods.forEach((item, index, array) =>\n output += `${index + 1}/${array.length} ${item.name}\\n`;\n);\nconsole.log(output);\n// 1/3 apple\n// 2/3 banana\n// 3/3 carrot\n```",
+ "itemtype": "method",
+ "name": "forEach",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 435,
+ "description": "Alias for `mapBy`.\n\nReturns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.getEach('name');\n// ['Joe', 'Matt'];\n\npeople.getEach('nonexistentProperty');\n// [undefined, undefined];\n```",
+ "itemtype": "method",
+ "name": "getEach",
+ "params": [
+ {
+ "name": "key",
+ "description": "name of the property",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 457,
+ "description": "Sets the value on the named property for each member. This is more\nergonomic than using other methods defined on this helper. If the object\nimplements Observable, the value will be changed to `set(),` otherwise\nit will be set directly. `null` objects are skipped.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.setEach('zipCode', '10011');\n// [{name: 'Joe', zipCode: '10011'}, {name: 'Matt', zipCode: '10011'}];\n```",
+ "itemtype": "method",
+ "name": "setEach",
+ "params": [
+ {
+ "name": "key",
+ "description": "The key to set",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "The object to set",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "receiver",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 477,
+ "description": "Maps all of the items in the enumeration to another value, returning\na new array. This method corresponds to `map()` defined in JavaScript 1.6.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\nlet arr = [1, 2, 3, 4, 5, 6];\n\narr.map(element => element * element);\n// [1, 4, 9, 16, 25, 36];\n\narr.map((element, index) => element + index);\n// [1, 3, 5, 7, 9, 11];\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nIt should return the mapped value.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.",
+ "itemtype": "method",
+ "name": "map",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 515,
+ "description": "Similar to map, this specialized function returns the value of the named\nproperty on all items in the enumeration.\n\n```javascript\nlet people = [{name: 'Joe'}, {name: 'Matt'}];\n\npeople.mapBy('name');\n// ['Joe', 'Matt'];\n\npeople.mapBy('unknownProperty');\n// [undefined, undefined];\n```",
+ "itemtype": "method",
+ "name": "mapBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "name of the property",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The mapped array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 536,
+ "description": "Returns a new array with all of the items in the enumeration that the provided\ncallback function returns true for. This method corresponds to [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter).\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nAll parameters are optional. The function should return `true` to include the item\nin the results, and `false` otherwise.\n\nExample:\n\n```javascript\nimport { A } from '@ember/array';\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nlet people = A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n\npeople.filter(isAdult); // returns [{ name: 'Joan', age: 45 }];\n```\n\nNote that in addition to a callback, you can pass an optional target object\nthat will be set as `this` on the context. This is a good way to give your\niterator function access to the current object. For example:\n\n```javascript\nfunction isAdultAndEngineer(person) {\n return person.age > 18 && this.engineering;\n}\n\nclass AdultsCollection {\n engineering = false;\n\n constructor(opts = {}) {\n super(...arguments);\n\n this.engineering = opts.engineering;\n this.people = A([{ name: 'John', age: 14 }, { name: 'Joan', age: 45 }]);\n }\n}\n\nlet collection = new AdultsCollection({ engineering: true });\ncollection.people.filter(isAdultAndEngineer, { target: collection });\n```",
+ "itemtype": "method",
+ "name": "filter",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "A filtered array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 600,
+ "description": "Returns an array with all of the items in the enumeration where the passed\nfunction returns false. This method is the inverse of filter().\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- *item* is the current item in the iteration.\n- *index* is the current index in the iteration\n- *array* is the array itself.\n\nIt should return a falsey value to include the item in the results.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as \"this\" on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\nconst nonFruits = food.reject(function(thing) {\n return thing.isFruit;\n}); // [{food: 'bread', isFruit: false}]\n```",
+ "itemtype": "method",
+ "name": "reject",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "A rejected array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 644,
+ "description": "Filters the array by the property and an optional value. If a value is given, it returns\nthe items that have said value for the property. If not, it returns all the items that\nhave a truthy value for the property.\n\nExample Usage:\n\n```javascript\nimport { A } from '@ember/array';\nlet things = A([{ food: 'apple', isFruit: true }, { food: 'beans', isFruit: false }]);\n\nthings.filterBy('food', 'beans'); // [{ food: 'beans', isFruit: false }]\nthings.filterBy('isFruit'); // [{ food: 'apple', isFruit: true }]\n```",
+ "itemtype": "method",
+ "name": "filterBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "*",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "filtered array",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 666,
+ "description": "Returns an array with the items that do not have truthy values for the provided key.\nYou can pass an optional second argument with a target value to reject for the key.\nOtherwise this will reject objects where the provided property evaluates to false.\n\nExample Usage:\n\n```javascript\n let food = [\n { name: \"apple\", isFruit: true },\n { name: \"carrot\", isFruit: false },\n { name: \"bread\", isFruit: false },\n ];\n food.rejectBy('isFruit'); // [{ name: \"carrot\", isFruit: false }, { name: \"bread\", isFruit: false }]\n food.rejectBy('name', 'carrot'); // [{ name: \"apple\", isFruit: true }}, { name: \"bread\", isFruit: false }]\n```",
+ "itemtype": "method",
+ "name": "rejectBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "*",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "rejected array",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 690,
+ "description": "Returns the first item in the array for which the callback returns true.\nThis method is similar to the `find()` method defined in ECMAScript 2015.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nIt should return the `true` to include the item in the results, `false`\notherwise.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nExample Usage:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda' },\n { id: 2, name: 'Tom' },\n { id: 3, name: 'Melanie' },\n { id: 4, name: 'Leah' }\n];\n\nusers.find((user) => user.name == 'Tom'); // [{ id: 2, name: 'Tom' }]\nusers.find(({ id }) => id == 3); // [{ id: 3, name: 'Melanie' }]\n```",
+ "itemtype": "method",
+ "name": "find",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "Found item or `undefined`.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 740,
+ "description": "Returns the first item with a property matching the passed value. You\ncan pass an optional second argument with the target value. Otherwise\nthis will match any property that evaluates to `true`.\n\nThis method works much like the more generic `find()` method.\n\nUsage Example:\n\n```javascript\nlet users = [\n { id: 1, name: 'Yehuda', isTom: false },\n { id: 2, name: 'Tom', isTom: true },\n { id: 3, name: 'Melanie', isTom: false },\n { id: 4, name: 'Leah', isTom: false }\n];\n\nusers.findBy('id', 4); // { id: 4, name: 'Leah', isTom: false }\nusers.findBy('name', 'Melanie'); // { id: 3, name: 'Melanie', isTom: false }\nusers.findBy('isTom'); // { id: 2, name: 'Tom', isTom: true }\n```",
+ "itemtype": "method",
+ "name": "findBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against.",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "found item or `undefined`",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 770,
+ "description": "Returns `true` if the passed function returns true for every item in the\nenumeration. This corresponds with the `Array.prototype.every()` method defined in ES5.\n\nThe callback method should have the following signature:\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nAll params are optional. The method should return `true` or `false`.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. This is a good way\nto give your iterator function access to the current object.\n\nUsage example:\n\n```javascript\nimport { A } from '@ember/array';\nfunction isAdult(person) {\n return person.age > 18;\n};\n\nconst people = A([{ name: 'John', age: 24 }, { name: 'Joan', age: 45 }]);\nconst areAllAdults = people.every(isAdult);\n```",
+ "itemtype": "method",
+ "name": "every",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 812,
+ "description": "Returns `true` if the passed property resolves to the value of the second\nargument for all items in the array. This method is often simpler/faster\nthan using a callback.\n\nNote that like the native `Array.every`, `isEvery` will return true when called\non any empty array.\n```javascript\nclass Language {\n constructor(name, isProgrammingLanguage) {\n this.name = name;\n this.programmingLanguage = isProgrammingLanguage;\n }\n}\n\nconst compiledLanguages = [\n new Language('Java', true),\n new Language('Go', true),\n new Language('Rust', true)\n]\n\nconst languagesKnownByMe = [\n new Language('Javascript', true),\n new Language('English', false),\n new Language('Ruby', true)\n]\n\ncompiledLanguages.isEvery('programmingLanguage'); // true\nlanguagesKnownByMe.isEvery('programmingLanguage'); // false\n```",
+ "itemtype": "method",
+ "name": "isEvery",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against. Defaults to `true`",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "since": "1.3.0",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 852,
+ "description": "The any() method executes the callback function once for each element\npresent in the array until it finds the one where callback returns a truthy\nvalue (i.e. `true`). If such an element is found, any() immediately returns\ntrue. Otherwise, any() returns false.\n\n```javascript\nfunction(item, index, array);\n```\n\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array object itself.\n\nNote that in addition to a callback, you can also pass an optional target\nobject that will be set as `this` on the context. It can be a good way\nto give your iterator function access to an object in cases where an ES6\narrow function would not be appropriate.\n\nUsage Example:\n\n```javascript\nlet includesManager = people.any(this.findPersonInManagersList, this);\n\nlet includesStockHolder = people.any(person => {\n return this.findPersonInStockHoldersList(person)\n});\n\nif (includesManager || includesStockHolder) {\n Paychecks.addBiggerBonus();\n}\n```",
+ "itemtype": "method",
+ "name": "any",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "target",
+ "description": "The target object to use",
+ "type": "Object",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "`true` if the passed function returns `true` for any item",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 895,
+ "description": "Returns `true` if the passed property resolves to the value of the second\nargument for any item in the array. This method is often simpler/faster\nthan using a callback.\n\nExample usage:\n\n```javascript\nconst food = [\n { food: 'apple', isFruit: true },\n { food: 'bread', isFruit: false },\n { food: 'banana', isFruit: true }\n];\n\nfood.isAny('isFruit'); // true\n```",
+ "itemtype": "method",
+ "name": "isAny",
+ "params": [
+ {
+ "name": "key",
+ "description": "the property to test",
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "description": "optional value to test against. Defaults to `true`",
+ "type": "String",
+ "optional": true
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "Boolean"
+ },
+ "since": "1.3.0",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 921,
+ "description": "This will combine the values of the array into a single value. It\nis a useful way to collect a summary value from an array. This\ncorresponds to the `reduce()` method defined in JavaScript 1.8.\n\nThe callback method you provide should have the following signature (all\nparameters are optional):\n\n```javascript\nfunction(previousValue, item, index, array);\n```\n\n- `previousValue` is the value returned by the last call to the iterator.\n- `item` is the current item in the iteration.\n- `index` is the current index in the iteration.\n- `array` is the array itself.\n\nReturn the new cumulative value.\n\nIn addition to the callback you can also pass an `initialValue`. An error\nwill be raised if you do not pass an initial value and the enumerator is\nempty.\n\nNote that unlike the other methods, this method does not allow you to\npass a target object to set as this for the callback. It's part of the\nspec. Sorry.\n\nExample Usage:\n\n```javascript\n let numbers = [1, 2, 3, 4, 5];\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }); // 15 (1 + 2 + 3 + 4 + 5)\n\n numbers.reduce(function(summation, current) {\n return summation + current;\n }, -15); // 0 (-15 + 1 + 2 + 3 + 4 + 5)\n\n\n let binaryValues = [true, false, false];\n\n binaryValues.reduce(function(truthValue, current) {\n return truthValue && current;\n }); // false (true && false && false)\n```",
+ "itemtype": "method",
+ "name": "reduce",
+ "params": [
+ {
+ "name": "callback",
+ "description": "The callback to execute",
+ "type": "Function"
+ },
+ {
+ "name": "initialValue",
+ "description": "Initial value for the reduce",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "The reduced value.",
+ "type": "Object"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 979,
+ "description": "Invokes the named method on every object in the receiver that\nimplements it. This method corresponds to the implementation in\nPrototype 1.6.\n\n```javascript\nclass Person {\n name = null;\n\n constructor(name) {\n this.name = name;\n }\n\n greet(prefix='Hello') {\n return `${prefix} ${this.name}`;\n }\n}\n\nlet people = [new Person('Joe'), new Person('Matt')];\n\npeople.invoke('greet'); // ['Hello Joe', 'Hello Matt']\npeople.invoke('greet', 'Bonjour'); // ['Bonjour Joe', 'Bonjour Matt']\n```",
+ "itemtype": "method",
+ "name": "invoke",
+ "params": [
+ {
+ "name": "methodName",
+ "description": "the name of the method",
+ "type": "String"
+ },
+ {
+ "name": "args",
+ "description": "optional arguments to pass as well.",
+ "type": "Object..."
+ }
+ ],
+ "return": {
+ "description": "return values from calling invoke.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1013,
+ "description": "Simply converts the object into a genuine array. The order is not\nguaranteed. Corresponds to the method implemented by Prototype.",
+ "itemtype": "method",
+ "name": "toArray",
+ "return": {
+ "description": "the object as an array.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1022,
+ "description": "Returns a copy of the array with all `null` and `undefined` elements removed.\n\n```javascript\nlet arr = ['a', null, 'c', undefined];\narr.compact(); // ['a', 'c']\n```",
+ "itemtype": "method",
+ "name": "compact",
+ "return": {
+ "description": "the array without null and undefined elements.",
+ "type": "Array"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1035,
+ "description": "Used to determine if the array contains the passed object.\nReturns `true` if found, `false` otherwise.\n\nThe optional `startAt` argument can be used to pass a starting\nindex to search from, effectively slicing the searchable portion\nof the array. If it's negative it will add the array length to\nthe startAt value passed in as the index to search from. If less\nthan or equal to `-1 * array.length` the entire array is searched.\n\nThis method has the same behavior of JavaScript's [Array.includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes).\n\n```javascript\n[1, 2, 3].includes(2); // true\n[1, 2, 3].includes(4); // false\n[1, 2, 3].includes(3, 2); // true\n[1, 2, 3].includes(3, 3); // false\n[1, 2, 3].includes(3, -1); // true\n[1, 2, 3].includes(1, -1); // false\n[1, 2, 3].includes(1, -4); // true\n[1, 2, NaN].includes(NaN); // true\n```",
+ "itemtype": "method",
+ "name": "includes",
+ "params": [
+ {
+ "name": "object",
+ "description": "The object to search for.",
+ "type": "Object"
+ },
+ {
+ "name": "startAt",
+ "description": "optional starting location to search, default 0",
+ "type": "Number"
+ }
+ ],
+ "return": {
+ "description": "`true` if object is found in the array.",
+ "type": "Boolean"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1065,
+ "description": "Sorts the array by the keys specified in the argument.\n\nYou may provide multiple arguments to sort by multiple properties.\n\n```javascript\n let colors = [\n { name: 'red', weight: 500 },\n { name: 'green', weight: 600 },\n { name: 'blue', weight: 500 }\n];\n\n colors.sortBy('name');\n // [{name: 'blue', weight: 500}, {name: 'green', weight: 600}, {name: 'red', weight: 500}]\n\n colors.sortBy('weight', 'name');\n // [{name: 'blue', weight: 500}, {name: 'red', weight: 500}, {name: 'green', weight: 600}]\n ```",
+ "itemtype": "method",
+ "name": "sortBy",
+ "params": [
+ {
+ "name": "property",
+ "description": "name(s) to sort on",
+ "type": "String"
+ }
+ ],
+ "return": {
+ "description": "The sorted array.",
+ "type": "Array"
+ },
+ "since": "1.2.0",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1090,
+ "description": "Returns a new array that contains only unique values. The default\nimplementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = ['a', 'a', 'b', 'b'];\narr.uniq(); // ['a', 'b']\n```\n\nThis only works on primitive data types, e.g. Strings, Numbers, etc.",
+ "itemtype": "method",
+ "name": "uniq",
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1106,
+ "description": "Returns a new array that contains only items containing a unique property value.\nThe default implementation returns an array regardless of the receiver type.\n\n```javascript\nlet arr = [{ value: 'a' }, { value: 'a' }, { value: 'b' }, { value: 'b' }];\narr.uniqBy('value'); // [{ value: 'a' }, { value: 'b' }]\n\nlet arr = [2.2, 2.1, 3.2, 3.3];\narr.uniqBy(Math.floor); // [2.2, 3.2];\n```",
+ "itemtype": "method",
+ "name": "uniqBy",
+ "params": [
+ {
+ "name": "key",
+ "description": "",
+ "type": "String,Function"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 1125,
+ "description": "Returns a new array that excludes the passed value. The default\nimplementation returns an array regardless of the receiver type.\nIf the receiver does not contain the value it returns the original array.\n\n```javascript\nlet arr = ['a', 'b', 'a', 'c'];\narr.without('a'); // ['b', 'c']\n```",
+ "itemtype": "method",
+ "name": "without",
+ "params": [
+ {
+ "name": "value",
+ "description": "",
+ "type": "Object"
+ }
+ ],
+ "return": {
+ "description": "",
+ "type": "EmberArray"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ }
+ ],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 190,
+ "description": "__Required.__ You must implement this method to apply this mixin.\n\nYour array must support the `length` property. Your replace methods should\nset this property whenever it changes.",
+ "itemtype": "property",
+ "name": "length",
+ "type": "Number",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 241,
+ "description": "This is the handler for the special array content property. If you get\nthis property, it will return this. If you set this property to a new\narray, it will replace the current content.\n\n```javascript\nlet peopleToMoon = ['Armstrong', 'Aldrin'];\n\npeopleToMoon.get('[]'); // ['Armstrong', 'Aldrin']\n\npeopleToMoon.set('[]', ['Collins']); // ['Collins']\npeopleToMoon.get('[]'); // ['Collins']\n```",
+ "itemtype": "property",
+ "name": "[]",
+ "return": {
+ "description": "this"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 261,
+ "description": "The first object in the array, or `undefined` if the array is empty.\n\n```javascript\nlet vowels = ['a', 'e', 'i', 'o', 'u'];\nvowels.firstObject; // 'a'\n\nvowels.shiftObject();\nvowels.firstObject; // 'e'\n\nvowels.reverseObjects();\nvowels.firstObject; // 'u'\n\nvowels.clear();\nvowels.firstObject; // undefined\n```",
+ "itemtype": "property",
+ "name": "firstObject",
+ "return": {
+ "description": "The first object in the array",
+ "type": "Object | undefined"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ },
+ {
+ "file": "packages/@ember/array/index.ts",
+ "line": 283,
+ "description": "The last object in the array, or `undefined` if the array is empty.",
+ "itemtype": "property",
+ "name": "lastObject",
+ "return": {
+ "description": "The last object in the array",
+ "type": "Object | undefined"
+ },
+ "access": "public",
+ "tagname": "",
+ "class": "EmberArray",
+ "module": "@ember/array"
+ }
+ ]
+ },
+ "relationships": {
+ "parent-class": {
+ "data": null
+ },
+ "descendants": {
+ "data": []
+ },
+ "module": {
+ "data": {
+ "id": "ember-7.2.0-@ember/array",
+ "type": "module"
+ }
+ },
+ "project-version": {
+ "data": {
+ "id": "ember-7.2.0",
+ "type": "project-version"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberENV.json b/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberENV.json
new file mode 100644
index 000000000..82560ff2f
--- /dev/null
+++ b/json-docs/ember/7.2.0/classes/ember-7.2.0-EmberENV.json
@@ -0,0 +1,166 @@
+{
+ "data": {
+ "id": "ember-7.2.0-EmberENV",
+ "type": "class",
+ "attributes": {
+ "name": "EmberENV",
+ "shortname": "EmberENV",
+ "classitems": [],
+ "plugins": [],
+ "extensions": [],
+ "plugin_for": [],
+ "extension_for": [],
+ "module": "rsvp",
+ "namespace": "",
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 3,
+ "description": "The hash of environment variables used to control various configuration\nsettings. To specify your own or override default settings, add the\ndesired properties to a global hash named `EmberENV` (or `ENV` for\nbackwards compatibility with earlier versions of Ember). The `EmberENV`\nhash must be created before loading Ember.",
+ "type": "Object",
+ "access": "public",
+ "tagname": "",
+ "methods": [],
+ "events": [],
+ "properties": [
+ {
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 17,
+ "description": "Determines whether Ember should add to `Array`\nnative object prototypes, a few extra methods in order to provide a more\nfriendly API.\n\nThe behavior from setting this option to `true` was deprecated in Ember 5.10.",
+ "itemtype": "property",
+ "name": "EXTEND_PROTOTYPES",
+ "type": "Boolean",
+ "default": "true",
+ "access": "private",
+ "tagname": "",
+ "deprecated": true,
+ "deprecationMessage": "in v5.10",
+ "class": "EmberENV",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 35,
+ "description": "The `LOG_STACKTRACE_ON_DEPRECATION` property, when true, tells Ember to log\na full stack trace during deprecation warnings.",
+ "itemtype": "property",
+ "name": "LOG_STACKTRACE_ON_DEPRECATION",
+ "type": "Boolean",
+ "default": "true",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberENV",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 47,
+ "description": "The `LOG_VERSION` property, when true, tells Ember to log versions of all\ndependent libraries in use.",
+ "itemtype": "property",
+ "name": "LOG_VERSION",
+ "type": "Boolean",
+ "default": "true",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberENV",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 59,
+ "description": "The `LOG_INSPECTOR_HINT` property, when true, tells Ember to log a hint\nsuggesting the Ember Inspector browser extension when it is not detected.",
+ "itemtype": "property",
+ "name": "LOG_INSPECTOR_HINT",
+ "type": "Boolean",
+ "default": "true",
+ "access": "public",
+ "tagname": "",
+ "class": "EmberENV",
+ "module": "rsvp"
+ },
+ {
+ "file": "packages/@ember/-internals/environment/lib/env.ts",
+ "line": 75,
+ "description": "Whether to perform extra bookkeeping needed to make the `captureRenderTree`\nAPI work.\n\nThis has to be set before the ember JavaScript code is evaluated. This is\nusually done by setting `window.EmberENV = { _DEBUG_RENDER_TREE: true };`\nbefore the \"vendor\" `