From c9c9fd2b57d925c2b5ac777eb715da623b060b28 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 22 Jun 2021 19:28:06 -0400
Subject: [PATCH 01/14] Run Octanify
---
package.json | 10 +++++-----
yarn.lock | 52 +++++++++++++++++++++++++++++++++++++++++-----------
2 files changed, 46 insertions(+), 16 deletions(-)
diff --git a/package.json b/package.json
index 107dd56d..680881ca 100644
--- a/package.json
+++ b/package.json
@@ -28,8 +28,8 @@
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.2.5",
- "@glimmer/component": "^1.0.4",
- "@glimmer/tracking": "^1.0.4",
+ "@glimmer/component": "^1.0.0",
+ "@glimmer/tracking": "^1.0.0",
"@percy/cli": "^1.0.0-beta.54",
"@percy/ember": "^3.0.0",
"algoliasearch": "^3.32.1",
@@ -119,12 +119,12 @@
"npm": "7",
"yarn": "1.22.11"
},
- "ember": {
- "edition": "octane"
- },
"cacheDirectories": [
"node_modules"
],
+ "ember": {
+ "edition": "octane"
+ },
"fastbootDependencies": [
"algoliasearch",
"node-fetch",
diff --git a/yarn.lock b/yarn.lock
index b00da863..8acfa63e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1299,7 +1299,7 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
-"@glimmer/component@^1.0.2", "@glimmer/component@^1.0.4":
+"@glimmer/component@^1.0.0", "@glimmer/component@^1.0.2", "@glimmer/component@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.0.4.tgz#1c85a5181615a6647f6acfaaed68e28ad7e9626e"
integrity sha512-sS4N8wtcKfYdUJ6O3m8nbTut6NjErdz94Ap8VB1ekcg4WSD+7sI7Nmv6kt2rdPoe363nUdjUbRBzHNWhLzraBw==
@@ -4505,6 +4505,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -8084,6 +8092,13 @@ follow-redirects@^1.0.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -9075,7 +9090,7 @@ inquirer@^6:
strip-ansi "^5.1.0"
through "^2.3.6"
-inquirer@^7.3.3:
+inquirer@^7.0.1:
version "7.3.3"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
@@ -9171,10 +9186,10 @@ is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-callable@^1.1.4, is-callable@^1.2.3:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
- integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
+is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+ integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
is-core-module@^2.2.0:
version "2.5.0"
@@ -10580,11 +10595,6 @@ mkdirp@^0.3.5:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7"
integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
-mkdirp@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
- integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-
mktemp@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b"
@@ -11032,6 +11042,15 @@ object.assign@^4.1.0, object.assign@^4.1.2:
has-symbols "^1.0.1"
object-keys "^1.1.1"
+object.getownpropertydescriptors@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
+ integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.2"
+
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -13989,6 +14008,17 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+util.promisify@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b"
+ integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ for-each "^0.3.3"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.1"
+
util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
From 65d0c4203c9ae334325eab761d7d3b35048eafe6 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 22 Jun 2021 19:30:11 -0400
Subject: [PATCH 02/14] Update Percy Token usage in GH Actions
---
.github/workflows/ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 035cc7d3..1fadb5cb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -82,5 +82,5 @@ jobs:
env:
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }}
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }}
- PERCY_TOKEN: 5ad6687f6b1ad3dec2b964f94d3d59ff3880baccf1492c0663e85c1ce79c1a52
+ PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
run: yarn run percy exec -- yarn test:ember
From d25f6b26d9ec94f45ba3ea956d093f5c521a0ce7 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 22 Jun 2021 20:07:02 -0400
Subject: [PATCH 03/14] Run codemods
---
app/adapters/application.js | 35 +--
app/components/api-index-filter.js | 68 +++---
app/components/api-index.js | 9 +-
app/components/class-field-description.js | 18 +-
app/components/ember-anchor.js | 6 +-
app/components/import-example.js | 16 +-
app/components/loading-spinner.js | 6 +-
.../search-input/dropdown-header.js | 6 +-
app/components/search-input/dropdown.js | 32 +--
app/components/table-of-contents.js | 16 +-
app/controllers/application.js | 6 +-
app/controllers/class.js | 6 +-
app/controllers/events.js | 12 +-
app/controllers/methods.js | 14 +-
app/controllers/project-version.js | 172 +++++++-------
.../project-version/classes/class.js | 78 ++++---
.../project-version/classes/class/index.js | 9 +-
.../project-version/functions/function.js | 13 +-
.../project-version/modules/module.js | 87 ++++---
.../project-version/namespaces/namespace.js | 2 +-
.../namespaces/namespace/index.js | 2 +-
app/controllers/properties.js | 22 +-
app/models/class.js | 96 +++++---
app/models/missing.js | 7 +-
app/models/module.js | 35 ++-
app/models/namespace.js | 7 +-
app/models/project.js | 15 +-
app/routes/application.js | 20 +-
app/routes/class.js | 13 +-
app/routes/data-class.js | 13 +-
app/routes/data-module.js | 13 +-
app/routes/ember-cli.js | 6 +-
app/routes/index.js | 6 +-
app/routes/module.js | 13 +-
app/routes/project-version.js | 212 +++++++++---------
app/routes/project-version/classes/class.js | 27 ++-
.../project-version/classes/class/events.js | 6 +-
.../project-version/classes/class/index.js | 6 +-
.../project-version/classes/class/methods.js | 6 +-
.../classes/class/properties.js | 6 +-
.../project-version/functions/function.js | 31 +--
app/routes/project-version/index.js | 6 +-
app/routes/project-version/modules/module.js | 8 +-
.../project-version/modules/module/events.js | 6 +-
.../project-version/modules/module/methods.js | 6 +-
.../modules/module/properties.js | 6 +-
.../project-version/namespaces/namespace.js | 10 +-
.../namespaces/namespace/events.js | 6 +-
.../namespaces/namespace/index.js | 6 +-
.../namespaces/namespace/methods.js | 6 +-
.../namespaces/namespace/properties.js | 6 +-
app/routes/project.js | 8 +-
app/serializers/application.js | 13 +-
app/services/algolia.js | 12 +-
app/services/filter-data.js | 18 +-
app/services/legacy-module-mappings.js | 20 +-
app/services/meta-store.js | 22 +-
app/services/project.js | 12 +-
app/services/search.js | 2 +-
app/templates/404.hbs | 2 +-
app/templates/class-index.hbs | 17 +-
.../components/class-field-description.hbs | 4 +-
app/templates/components/import-example.hbs | 4 +-
app/templates/components/search-input.hbs | 16 +-
.../search-input/dropdown-result.hbs | 18 +-
.../components/search-input/dropdown.hbs | 14 +-
.../components/table-of-contents.hbs | 8 +-
app/templates/ember-cli.hbs | 8 +-
app/templates/error.hbs | 2 +-
app/templates/events.hbs | 8 +-
app/templates/loading.hbs | 2 +-
app/templates/methods.hbs | 8 +-
app/templates/project-version.hbs | 18 +-
.../project-version/classes/class.hbs | 57 +----
.../project-version/functions/function.hbs | 2 +-
.../project-version/modules/module.hbs | 19 +-
app/templates/properties.hbs | 8 +-
77 files changed, 788 insertions(+), 773 deletions(-)
diff --git a/app/adapters/application.js b/app/adapters/application.js
index e812534e..7e0f056d 100644
--- a/app/adapters/application.js
+++ b/app/adapters/application.js
@@ -1,21 +1,22 @@
-import JSONAPIAdapter from '@ember-data/adapter/json-api';
import { inject as service } from '@ember/service';
+import JSONAPIAdapter from '@ember-data/adapter/json-api';
import fetch from 'fetch';
import ENV from 'ember-api-docs/config/environment';
import { pluralize } from 'ember-inflector';
import { isBlank } from '@ember/utils';
-export default JSONAPIAdapter.extend({
- host: ENV.API_HOST,
-
- currentProject: '',
+export default class Application extends JSONAPIAdapter {
+ host = ENV.API_HOST;
+ currentProject = '';
+ currentProjectVersion = '';
- currentProjectVersion: '',
+ @service
+ metaStore;
- metaStore: service(),
- projectService: service('project'),
+ @service('project')
+ projectService;
- ids: null,
+ ids = null;
shouldReloadRecord(store, { modelName, id }) {
if (modelName === 'project') {
@@ -24,10 +25,12 @@ export default JSONAPIAdapter.extend({
this.currentProjectVersion = id;
}
return; // return undefined so auto determinated
- },
+ }
+
shouldBackgroundReloadAll() {
return false;
- },
+ }
+
shouldBackgroundReloadRecord(store, { modelName, id }) {
let key = `${modelName}-${id}`;
let hasId = this.ids[key];
@@ -35,12 +38,12 @@ export default JSONAPIAdapter.extend({
this.ids[key] = true;
}
return !hasId;
- },
+ }
init() {
- this._super(...arguments);
+ super.init(...arguments);
this.ids = {};
- },
+ }
async findRecord(store, { modelName }, id) {
let url;
@@ -87,5 +90,5 @@ export default JSONAPIAdapter.extend({
let response = await fetch(url);
let json = await response.json();
return json;
- },
-});
+ }
+}
diff --git a/app/components/api-index-filter.js b/app/components/api-index-filter.js
index 82641b6c..ee4b5b9f 100644
--- a/app/components/api-index-filter.js
+++ b/app/components/api-index-filter.js
@@ -1,3 +1,4 @@
+import { classNames } from '@ember-decorators/component';
import { computed } from '@ember/object';
import Component from '@ember/component';
import sortBy from 'lodash.sortby';
@@ -5,32 +6,22 @@ import sortBy from 'lodash.sortby';
const filterDataComputedParams =
'filterData.{showInherited,showProtected,showPrivate,showDeprecated}';
-export default Component.extend({
- classNames: ['api-index-filter'],
+@classNames('api-index-filter')
+export default class ApiIndexFilter extends Component {
+ @computed('model.methods.[]', filterDataComputedParams)
+ get filteredMethods() {
+ return this.filterItems('methods');
+ }
- filteredMethods: computed(
- 'model.methods.[]',
- filterDataComputedParams,
- function () {
- return this.filterItems('methods');
- }
- ),
-
- filteredEvents: computed(
- 'model.events.[]',
- filterDataComputedParams,
- function () {
- return this.filterItems('events');
- }
- ),
+ @computed('model.events.[]', filterDataComputedParams)
+ get filteredEvents() {
+ return this.filterItems('events');
+ }
- filteredProperties: computed(
- 'model.properties.[]',
- filterDataComputedParams,
- function () {
- return this.filterItems('properties');
- }
- ),
+ @computed('model.properties.[]', filterDataComputedParams)
+ get filteredProperties() {
+ return this.filterItems('properties');
+ }
filterItems(itemType) {
let items =
@@ -52,20 +43,16 @@ export default Component.extend({
let sortedItems = sortBy(items, (item) => item.name);
return this.filterMultipleInheritance(sortedItems);
- },
+ }
- filteredData: computed(
- 'filteredMethods',
- 'filteredProperties',
- 'filteredEvents',
- function () {
- return {
- methods: this.filteredMethods,
- properties: this.filteredProperties,
- events: this.filteredEvents,
- };
- }
- ),
+ @computed('filteredMethods', 'filteredProperties', 'filteredEvents')
+ get filteredData() {
+ return {
+ methods: this.filteredMethods,
+ properties: this.filteredProperties,
+ events: this.filteredEvents,
+ };
+ }
/**
* Returns an array where duplicate methods (by name) are removed.
@@ -94,7 +81,8 @@ export default Component.extend({
}
}
return dedupedArray;
- },
+ }
+
/**
* Returns whichever item is most local.
* What is "most local" is determined by looking at the file path for the
@@ -114,5 +102,5 @@ export default Component.extend({
// otherwise, the next item must be "more local"
return nextItem;
}
- },
-});
+ }
+}
diff --git a/app/components/api-index.js b/app/components/api-index.js
index efab75bb..4babd9c7 100644
--- a/app/components/api-index.js
+++ b/app/components/api-index.js
@@ -1,8 +1,9 @@
import { computed } from '@ember/object';
import Component from '@ember/component';
-export default Component.extend({
- sections: computed('itemData.{methods,properties,events}', function () {
+export default class ApiIndex extends Component {
+ @computed('itemData.{methods,properties,events}')
+ get sections() {
return [
{
title: 'Methods',
@@ -26,5 +27,5 @@ export default Component.extend({
routeSuffix: '.events.event',
},
];
- }),
-});
+ }
+}
diff --git a/app/components/class-field-description.js b/app/components/class-field-description.js
index 74be7e6c..efb6c584 100644
--- a/app/components/class-field-description.js
+++ b/app/components/class-field-description.js
@@ -1,16 +1,18 @@
-import Component from '@ember/component';
-import { inject as service } from '@ember/service';
import { computed } from '@ember/object';
+import { inject as service } from '@ember/service';
+import Component from '@ember/component';
-export default Component.extend({
- legacyModuleMappings: service(),
+export default class ClassFieldDescription extends Component {
+ @service
+ legacyModuleMappings;
- hasImportExample: computed('field.{name,class}', function () {
+ @computed('field.{name,class}')
+ get hasImportExample() {
return this.legacyModuleMappings.hasFunctionMapping(
this.get('field.name'),
this.get('field.class')
);
- }),
+ }
/**
* Callback for updating the anchor with the field name that was clicked by a user.
@@ -18,5 +20,5 @@ export default Component.extend({
* @method updateAnchor
* @method fieldName String The name representing the field that was clicked.
*/
- updateAnchor() {},
-});
+ updateAnchor() {}
+}
diff --git a/app/components/ember-anchor.js b/app/components/ember-anchor.js
index 43f41ab7..e79b949e 100644
--- a/app/components/ember-anchor.js
+++ b/app/components/ember-anchor.js
@@ -3,7 +3,7 @@ import AnchorComponent from 'ember-anchor/components/ember-anchor';
import config from 'ember-api-docs/config/environment';
import getOffset from 'ember-api-docs/utils/get-offset';
-export default AnchorComponent.extend({
+export default class EmberAnchor extends AnchorComponent {
// This overrides Ember Anchor to support scrolling within a fixed position element
_scrollToElemPosition() {
let qp = this.anchorQueryParam;
@@ -25,5 +25,5 @@ export default AnchorComponent.extend({
scrollContainer.scrollTop = offsetToScroll;
}
}
- },
-});
+ }
+}
diff --git a/app/components/import-example.js b/app/components/import-example.js
index 82372a4a..eadd734e 100644
--- a/app/components/import-example.js
+++ b/app/components/import-example.js
@@ -1,11 +1,11 @@
+import { action } from '@ember/object';
import Component from '@ember/component';
import { later } from '@ember/runloop';
-export default Component.extend({
- actions: {
- showSuccess() {
- this.toggleProperty('showClipboardSuccessIcon');
- later(this, () => this.toggleProperty('showClipboardSuccessIcon'), 950);
- },
- },
-});
+export default class ImportExample extends Component {
+ @action
+ showSuccess() {
+ this.toggleProperty('showClipboardSuccessIcon');
+ later(this, () => this.toggleProperty('showClipboardSuccessIcon'), 950);
+ }
+}
diff --git a/app/components/loading-spinner.js b/app/components/loading-spinner.js
index 3e885803..45bf5962 100644
--- a/app/components/loading-spinner.js
+++ b/app/components/loading-spinner.js
@@ -1,5 +1,5 @@
+import { classNames } from '@ember-decorators/component';
import Component from '@ember/component';
-export default Component.extend({
- classNames: ['loading-spinner'],
-});
+@classNames('loading-spinner')
+export default class LoadingSpinner extends Component {}
diff --git a/app/components/search-input/dropdown-header.js b/app/components/search-input/dropdown-header.js
index b9b88f15..9879c9ac 100644
--- a/app/components/search-input/dropdown-header.js
+++ b/app/components/search-input/dropdown-header.js
@@ -1,5 +1,5 @@
+import { classNames } from '@ember-decorators/component';
import Component from '@ember/component';
-export default Component.extend({
- classNames: ['ds-suggestion'],
-});
+@classNames('ds-suggestion')
+export default class DropdownHeader extends Component {}
diff --git a/app/components/search-input/dropdown.js b/app/components/search-input/dropdown.js
index aa125e4f..40078263 100644
--- a/app/components/search-input/dropdown.js
+++ b/app/components/search-input/dropdown.js
@@ -1,22 +1,25 @@
-import { set } from '@ember/object';
+import {
+ classNames,
+ attributeBindings,
+ tagName,
+} from '@ember-decorators/component';
+import { set, get, computed } from '@ember/object';
import Component from '@ember/component';
-import { get, computed } from '@ember/object';
import { A } from '@ember/array';
-export default Component.extend({
+@tagName('span')
+@classNames('ds-dropdown-menu', 'ds-with-1')
+@attributeBindings('role')
+export default class Dropdown extends Component {
// Public API
- role: 'listbox',
- isVisible: false,
+ role = 'listbox';
- // Private API
- tagName: 'span',
- classNames: ['ds-dropdown-menu', 'ds-with-1'],
- attributeBindings: ['role'],
+ isVisible = false;
init() {
- this._super(...arguments);
+ super.init(...arguments);
set(this, 'results', A());
- },
+ }
// show
// Massage data to make it easier for displaying on the template
@@ -28,7 +31,8 @@ export default Component.extend({
* }
* }
*/
- _groupedResults: computed('results.[]', function () {
+ @computed('results.[]')
+ get _groupedResults() {
if (!get(this, 'results.length')) {
return {};
}
@@ -72,5 +76,5 @@ export default Component.extend({
return lvl0Result;
}, {});
- }),
-});
+ }
+}
diff --git a/app/components/table-of-contents.js b/app/components/table-of-contents.js
index fcd82040..4ad98d43 100644
--- a/app/components/table-of-contents.js
+++ b/app/components/table-of-contents.js
@@ -1,10 +1,10 @@
+import { action } from '@ember/object';
import Component from '@ember/component';
-export default Component.extend({
- actions: {
- toggle(type) {
- const tableElement = document.querySelector(`ol.toc-level-1.${type}`);
- tableElement.classList.toggle('selected');
- },
- },
-});
+export default class TableOfContents extends Component {
+ @action
+ toggle(type) {
+ const tableElement = document.querySelector(`ol.toc-level-1.${type}`);
+ tableElement.classList.toggle('selected');
+ }
+}
diff --git a/app/controllers/application.js b/app/controllers/application.js
index 2e7ef0f5..b89f2f29 100644
--- a/app/controllers/application.js
+++ b/app/controllers/application.js
@@ -169,6 +169,6 @@ const links = [
},
];
-export default Controller.extend({
- links,
-});
+export default class ApplicationController extends Controller {
+ links = links;
+}
diff --git a/app/controllers/class.js b/app/controllers/class.js
index e29069c4..17751523 100644
--- a/app/controllers/class.js
+++ b/app/controllers/class.js
@@ -1,5 +1,5 @@
import Controller from '@ember/controller';
-export default Controller.extend({
- queryParams: ['anchor', 'type'],
-});
+export default class ClassController extends Controller {
+ queryParams = ['anchor', 'type'];
+}
diff --git a/app/controllers/events.js b/app/controllers/events.js
index 9d0e4a2e..1f953be9 100644
--- a/app/controllers/events.js
+++ b/app/controllers/events.js
@@ -2,7 +2,11 @@ import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import AnchorControllerSupport from 'ember-anchor/mixins/controller-support';
-export default Controller.extend(AnchorControllerSupport, {
- filterData: service(),
- queryParams: ['anchor'],
-});
+export default class EventsController extends Controller.extend(
+ AnchorControllerSupport
+) {
+ @service
+ filterData;
+
+ queryParams = ['anchor'];
+}
diff --git a/app/controllers/methods.js b/app/controllers/methods.js
index d0e8d4d0..fc5edcd3 100644
--- a/app/controllers/methods.js
+++ b/app/controllers/methods.js
@@ -2,11 +2,15 @@ import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import AnchorControllerSupport from 'ember-anchor/mixins/controller-support';
-export default Controller.extend(AnchorControllerSupport, {
- filterData: service(),
- queryParams: ['anchor'],
+export default class MethodsController extends Controller.extend(
+ AnchorControllerSupport
+) {
+ @service
+ filterData;
+
+ queryParams = ['anchor'];
updateAnchor(fieldName) {
this.set('anchor', fieldName);
- },
-});
+ }
+}
diff --git a/app/controllers/project-version.js b/app/controllers/project-version.js
index 09797e70..0810844d 100644
--- a/app/controllers/project-version.js
+++ b/app/controllers/project-version.js
@@ -1,45 +1,55 @@
-import Controller from '@ember/controller';
import { computed } from '@ember/object';
-import { alias, readOnly } from '@ember/object/computed';
-import { A } from '@ember/array';
import { inject as service } from '@ember/service';
+import { readOnly, alias } from '@ember/object/computed';
+import Controller from '@ember/controller';
+import { A } from '@ember/array';
import values from 'lodash.values';
import groupBy from 'lodash.groupby';
import semverCompare from 'semver-compare';
import getCompactVersion from '../utils/get-compact-version';
-export default Controller.extend({
- filterData: service(),
+export default class ProjectVersionController extends Controller {
+ @service
+ filterData;
- metaStore: service(),
+ @service
+ metaStore;
- project: service(),
+ @service
+ project;
- showPrivateClasses: alias('filterData.sideNav.showPrivate'),
+ @alias('filterData.sideNav.showPrivate')
+ showPrivateClasses;
- classesIDs: computed('model', function () {
+ @computed('model')
+ get classesIDs() {
return this.getRelationshipIDs('classes');
- }),
+ }
- publicClassesIDs: computed('model', function () {
+ @computed('model')
+ get publicClassesIDs() {
return this.getRelationshipIDs('public-classes');
- }),
+ }
- namespaceIDs: computed('model', function () {
+ @computed('model')
+ get namespaceIDs() {
return this.getRelationshipIDs('namespaces');
- }),
+ }
- publicNamespaceIDs: computed('model', function () {
+ @computed('model')
+ get publicNamespaceIDs() {
return this.getRelationshipIDs('public-namespaces');
- }),
+ }
- moduleIDs: computed('model.id', function () {
+ @computed('model.id')
+ get moduleIDs() {
return this.getModuleRelationships(this.get('model.id'), 'modules');
- }),
+ }
- publicModuleIDs: computed('model.id', function () {
+ @computed('model.id')
+ get publicModuleIDs() {
return this.getModuleRelationships(this.get('model.id'), 'public-modules');
- }),
+ }
getModuleRelationships(versionId, moduleType) {
let relations = this.getRelations(moduleType);
@@ -47,11 +57,11 @@ export default Controller.extend({
return relations
.map((id) => id.substring(versionId.length + 1))
.filter((id) => id !== 'ember-data-overview');
- },
+ }
getRelations(relationship) {
return this.model.hasMany(relationship).ids().sort();
- },
+ }
getRelationshipIDs(relationship) {
const splitPoint = 2 + this.get('model.project.id').split('-').length - 1;
@@ -62,70 +72,54 @@ export default Controller.extend({
return A(sorted)
.toArray()
.map((id) => id.split('-').slice(splitPoint).join('-'));
- },
-
- shownClassesIDs: computed(
- 'showPrivateClasses',
- 'classesIDs',
- 'publicClassesIDs',
- function () {
- return this.showPrivateClasses ? this.classesIDs : this.publicClassesIDs;
- }
- ),
-
- shownModuleIDs: computed(
- 'showPrivateClasses',
- 'moduleIDs',
- 'publicModuleIDs',
- function () {
- return this.showPrivateClasses ? this.moduleIDs : this.publicModuleIDs;
- }
- ),
-
- shownNamespaceIDs: computed(
- 'showPrivateClasses',
- 'namespaceIDs',
- 'publicNamespaceIDs',
- function () {
- return this.showPrivateClasses
- ? this.namespaceIDs
- : this.publicNamespaceIDs;
- }
- ),
-
- projectVersions: computed(
- 'metaStore.availableProjectVersions',
- 'model.project.id',
- function () {
- const projectVersions = this.get('metaStore.availableProjectVersions')[
- this.get('model.project.id')
- ];
- let versions = projectVersions.sort((a, b) => semverCompare(b, a));
-
- versions = versions.map((version) => {
- const compactVersion = getCompactVersion(version);
- return { id: version, compactVersion };
- });
- let groupedVersions = groupBy(
- versions,
- (version) => version.compactVersion
- );
-
- return values(groupedVersions).map((groupedVersion) => groupedVersion[0]);
- }
- ),
-
- urlVersion: alias('project.urlVersion'),
-
- selectedProjectVersion: computed(
- 'projectVersions.[]',
- 'model.version',
- function () {
- return this.projectVersions.filter(
- (pV) => pV.id === this.get('model.version')
- )[0];
- }
- ),
-
- activeProject: readOnly('model.project.id'),
-});
+ }
+
+ @computed('showPrivateClasses', 'classesIDs', 'publicClassesIDs')
+ get shownClassesIDs() {
+ return this.showPrivateClasses ? this.classesIDs : this.publicClassesIDs;
+ }
+
+ @computed('showPrivateClasses', 'moduleIDs', 'publicModuleIDs')
+ get shownModuleIDs() {
+ return this.showPrivateClasses ? this.moduleIDs : this.publicModuleIDs;
+ }
+
+ @computed('showPrivateClasses', 'namespaceIDs', 'publicNamespaceIDs')
+ get shownNamespaceIDs() {
+ return this.showPrivateClasses
+ ? this.namespaceIDs
+ : this.publicNamespaceIDs;
+ }
+
+ @computed('metaStore.availableProjectVersions', 'model.project.id')
+ get projectVersions() {
+ const projectVersions = this.get('metaStore.availableProjectVersions')[
+ this.get('model.project.id')
+ ];
+ let versions = projectVersions.sort((a, b) => semverCompare(b, a));
+
+ versions = versions.map((version) => {
+ const compactVersion = getCompactVersion(version);
+ return { id: version, compactVersion };
+ });
+ let groupedVersions = groupBy(
+ versions,
+ (version) => version.compactVersion
+ );
+
+ return values(groupedVersions).map((groupedVersion) => groupedVersion[0]);
+ }
+
+ @alias('project.urlVersion')
+ urlVersion;
+
+ @computed('projectVersions.[]', 'model.version')
+ get selectedProjectVersion() {
+ return this.projectVersions.filter(
+ (pV) => pV.id === this.get('model.version')
+ )[0];
+ }
+
+ @readOnly('model.project.id')
+ activeProject;
+}
diff --git a/app/controllers/project-version/classes/class.js b/app/controllers/project-version/classes/class.js
index 3ea58ae1..3d107e15 100644
--- a/app/controllers/project-version/classes/class.js
+++ b/app/controllers/project-version/classes/class.js
@@ -1,49 +1,47 @@
+import { action, computed } from '@ember/object';
import { inject as service } from '@ember/service';
-import { computed } from '@ember/object';
import Controller from '@ember/controller';
import ParentNameMixin from 'ember-api-docs/mixins/parent-name';
import FilterParams from 'ember-api-docs/mixins/filter-params';
-export default Controller.extend(ParentNameMixin, FilterParams, {
- filterData: service(),
- legacyModuleMappings: service(),
- metaStore: service(),
+export default class ClassController extends Controller.extend(
+ ParentNameMixin,
+ FilterParams
+) {
+ @service
+ filterData;
- hasImportExample: computed(
- 'legacyModuleMappings.mappings',
- 'model.{module,name}',
- function () {
- return this.legacyModuleMappings.hasClassMapping(
- this.get('model.name'),
- this.get('model.module')
- );
- }
- ),
+ @service
+ legacyModuleMappings;
- module: computed(
- 'legacyModulemappings.mappings',
- 'model.{module,name}',
- function () {
- return this.legacyModuleMappings.getModule(
- this.get('model.name'),
- this.get('model.module')
- );
- }
- ),
+ @service
+ metaStore;
- allVersions: computed(
- 'metaStore.availableProjectVersions',
- 'model.project.id',
- function () {
- return this.get('metaStore.availableProjectVersions')[
- this.get('model.project.id')
- ];
- }
- ),
+ @computed('legacyModuleMappings.mappings', 'model.{module,name}')
+ get hasImportExample() {
+ return this.legacyModuleMappings.hasClassMapping(
+ this.get('model.name'),
+ this.get('model.module')
+ );
+ }
- actions: {
- updateFilter(filter) {
- this.toggleProperty(`filterData.${filter}`);
- },
- },
-});
+ @computed('legacyModulemappings.mappings', 'model.{module,name}')
+ get module() {
+ return this.legacyModuleMappings.getModule(
+ this.get('model.name'),
+ this.get('model.module')
+ );
+ }
+
+ @computed('metaStore.availableProjectVersions', 'model.project.id')
+ get allVersions() {
+ return this.get('metaStore.availableProjectVersions')[
+ this.get('model.project.id')
+ ];
+ }
+
+ @action
+ updateFilter(filter) {
+ this.toggleProperty(`filterData.${filter}`);
+ }
+}
diff --git a/app/controllers/project-version/classes/class/index.js b/app/controllers/project-version/classes/class/index.js
index 520f4482..27c0a863 100644
--- a/app/controllers/project-version/classes/class/index.js
+++ b/app/controllers/project-version/classes/class/index.js
@@ -2,6 +2,9 @@ import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import ParentNameMixin from 'ember-api-docs/mixins/parent-name';
-export default Controller.extend(ParentNameMixin, {
- filterData: service(),
-});
+export default class IndexController extends Controller.extend(
+ ParentNameMixin
+) {
+ @service
+ filterData;
+}
diff --git a/app/controllers/project-version/functions/function.js b/app/controllers/project-version/functions/function.js
index 3910d17d..c20df634 100644
--- a/app/controllers/project-version/functions/function.js
+++ b/app/controllers/project-version/functions/function.js
@@ -1,7 +1,10 @@
-import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
+import Controller from '@ember/controller';
+
+export default class FunctionController extends Controller {
+ @alias('model.fn')
+ fn;
-export default Controller.extend({
- fn: alias('model.fn'),
- fnModule: alias('model.fnModule'),
-});
+ @alias('model.fnModule')
+ fnModule;
+}
diff --git a/app/controllers/project-version/modules/module.js b/app/controllers/project-version/modules/module.js
index 5273bbcb..0558d803 100644
--- a/app/controllers/project-version/modules/module.js
+++ b/app/controllers/project-version/modules/module.js
@@ -1,60 +1,57 @@
-import { alias } from '@ember/object/computed';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';
+import { alias } from '@ember/object/computed';
import ClassController from '../classes/class';
import uniq from 'lodash.uniq';
import union from 'lodash.union';
-export default ClassController.extend({
- filterData: service(),
- showPrivateClasses: alias('filterData.sideNav.showPrivate'),
+export default class ModuleController extends ClassController {
+ @service
+ filterData;
+
+ @alias('filterData.sideNav.showPrivate')
+ showPrivateClasses;
- submodules: computed('model.submodules', function () {
+ @computed('model.submodules')
+ get submodules() {
return Object.keys(this.get('model.submodules'));
- }),
+ }
- namespaces: computed('model.namespaces', function () {
+ @computed('model.namespaces')
+ get namespaces() {
return Object.keys(this.get('model.namespaces'));
- }),
-
- classes: computed(
- 'model.{privateclasses,publicclasses}',
- 'showPrivateClasses',
- function () {
- if (this.showPrivateClasses) {
- return this.get('model.publicclasses').concat(
- this.get('model.privateclasses')
- );
- }
- return this.get('model.publicclasses');
+ }
+
+ @computed('model.{privateclasses,publicclasses}', 'showPrivateClasses')
+ get classes() {
+ if (this.showPrivateClasses) {
+ return this.get('model.publicclasses').concat(
+ this.get('model.privateclasses')
+ );
}
- ),
+ return this.get('model.publicclasses');
+ }
- classesAndNamespaces: computed('classes', 'namespaces', function () {
+ @computed('classes', 'namespaces')
+ get classesAndNamespaces() {
return uniq(union(this.namespaces, this.classes).sort(), true);
- }),
-
- functionHeadings: computed(
- 'model.{allstaticfunctions,staticfunctions}',
- 'showPrivateClasses',
- function () {
- if (this.get('model.allstaticfunctions') && this.showPrivateClasses) {
- return Object.keys(this.get('model.allstaticfunctions')).sort();
- } else if (this.get('model.staticfunctions')) {
- return Object.keys(this.get('model.staticfunctions')).sort();
- }
- return {};
+ }
+
+ @computed('model.{allstaticfunctions,staticfunctions}', 'showPrivateClasses')
+ get functionHeadings() {
+ if (this.get('model.allstaticfunctions') && this.showPrivateClasses) {
+ return Object.keys(this.get('model.allstaticfunctions')).sort();
+ } else if (this.get('model.staticfunctions')) {
+ return Object.keys(this.get('model.staticfunctions')).sort();
}
- ),
-
- functions: computed(
- 'model.{allstaticfunctions,staticfunctions}',
- 'showPrivateClasses',
- function () {
- if (this.showPrivateClasses && this.get('model.allstaticfunctions')) {
- return this.get('model.allstaticfunctions');
- }
- return this.get('model.staticfunctions');
+ return {};
+ }
+
+ @computed('model.{allstaticfunctions,staticfunctions}', 'showPrivateClasses')
+ get functions() {
+ if (this.showPrivateClasses && this.get('model.allstaticfunctions')) {
+ return this.get('model.allstaticfunctions');
}
- ),
-});
+ return this.get('model.staticfunctions');
+ }
+}
diff --git a/app/controllers/project-version/namespaces/namespace.js b/app/controllers/project-version/namespaces/namespace.js
index 9623bc1f..76760e40 100644
--- a/app/controllers/project-version/namespaces/namespace.js
+++ b/app/controllers/project-version/namespaces/namespace.js
@@ -1,3 +1,3 @@
import ClassController from '../classes/class';
-export default ClassController.extend();
+export default class NamespaceController extends ClassController {}
diff --git a/app/controllers/project-version/namespaces/namespace/index.js b/app/controllers/project-version/namespaces/namespace/index.js
index c764a8f1..ba6f71f5 100644
--- a/app/controllers/project-version/namespaces/namespace/index.js
+++ b/app/controllers/project-version/namespaces/namespace/index.js
@@ -1,3 +1,3 @@
import ClassIndexController from '../../classes/class/index';
-export default ClassIndexController.extend();
+export default class IndexController extends ClassIndexController {}
diff --git a/app/controllers/properties.js b/app/controllers/properties.js
index babbe778..9a70470a 100644
--- a/app/controllers/properties.js
+++ b/app/controllers/properties.js
@@ -1,14 +1,18 @@
+import { action } from '@ember/object';
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import AnchorControllerSupport from 'ember-anchor/mixins/controller-support';
-export default Controller.extend(AnchorControllerSupport, {
- filterData: service(),
- queryParams: ['anchor'],
+export default class PropertiesController extends Controller.extend(
+ AnchorControllerSupport
+) {
+ @service
+ filterData;
- actions: {
- updateAnchor(fieldName) {
- this.set('anchor', fieldName);
- },
- },
-});
+ queryParams = ['anchor'];
+
+ @action
+ updateAnchor(fieldName) {
+ this.set('anchor', fieldName);
+ }
+}
diff --git a/app/models/class.js b/app/models/class.js
index d4e6951f..c572d10c 100644
--- a/app/models/class.js
+++ b/app/models/class.js
@@ -1,5 +1,5 @@
-import Model, { belongsTo, attr } from '@ember-data/model';
import { computed } from '@ember/object';
+import Model, { belongsTo, attr } from '@ember-data/model';
const projectNameFromClassName = (key) => {
return computed(key, 'project.id', function () {
@@ -34,40 +34,80 @@ const guessVersionFor = (key) => {
);
};
-export default Model.extend({
- name: attr(),
- methods: attr(),
- properties: attr(),
- access: attr(),
- events: attr(),
- description: attr(),
- ogDescription: attr(),
- extends: attr(),
- uses: attr(),
- since: attr(),
- file: attr(),
- line: attr(),
- module: attr(),
- parentClass: belongsTo('class', { async: true, inverse: null }),
- projectVersion: belongsTo('project-version', { inverse: 'classes' }),
- project: computed('projectVersion.id', function () {
+export default class Class extends Model {
+ @attr()
+ name;
+
+ @attr()
+ methods;
+
+ @attr()
+ properties;
+
+ @attr()
+ access;
+
+ @attr()
+ events;
+
+ @attr()
+ description;
+
+ @attr()
+ ogDescription;
+
+ @attr()
+ extends;
+
+ @attr()
+ uses;
+
+ @attr()
+ since;
+
+ @attr()
+ file;
+
+ @attr()
+ line;
+
+ @attr()
+ module;
+
+ @belongsTo('class', { async: true, inverse: null })
+ parentClass;
+
+ @belongsTo('project-version', { inverse: 'classes' })
+ projectVersion;
+
+ @computed('projectVersion.id')
+ get project() {
return this.projectVersion.get('project');
- }),
+ }
+
+ @projectNameFromClassName('extends')
+ extendedClassProjectName;
+
+ @guessVersionFor('extends')
+ extendedClassVersion;
+
+ @projectNameFromClassName('uses')
+ usedClassProjectName;
- extendedClassProjectName: projectNameFromClassName('extends'),
- extendedClassVersion: guessVersionFor('extends'),
- usedClassProjectName: projectNameFromClassName('uses'),
- usedClassVersion: guessVersionFor('uses'),
+ @guessVersionFor('uses')
+ usedClassVersion;
- extendedClassShortName: computed('extends', function () {
+ @computed('extends')
+ get extendedClassShortName() {
let extendedClassName = this['extends'];
if (extendedClassName.substr(0, 6) === 'Ember.') {
return extendedClassName.substr(6);
}
return extendedClassName;
- }),
+ }
- usesObjects: computed('project.id', 'uses', function () {
+ @computed('project.id', 'uses')
+ get usesObjects() {
return this.uses.map((className) => ({
name: className,
shortName:
@@ -79,5 +119,5 @@ export default Model.extend({
? 'ember-data'
: this.get('project.id'),
}));
- }),
-});
+ }
+}
diff --git a/app/models/missing.js b/app/models/missing.js
index f08d5ead..0dba61b6 100644
--- a/app/models/missing.js
+++ b/app/models/missing.js
@@ -1,5 +1,6 @@
import Model, { attr } from '@ember-data/model';
-export default Model.extend({
- name: attr(),
-});
+export default class Missing extends Model {
+ @attr()
+ name;
+}
diff --git a/app/models/module.js b/app/models/module.js
index 71f52e94..e24b9ff1 100644
--- a/app/models/module.js
+++ b/app/models/module.js
@@ -1,13 +1,28 @@
import { belongsTo, attr } from '@ember-data/model';
import ClassModel from './class';
-export default ClassModel.extend({
- submodules: attr(),
- publicclasses: attr(),
- privateclasses: attr(),
- namespaces: attr(),
- parent: attr(),
- staticfunctions: attr(),
- allstaticfunctions: attr(),
- projectVersion: belongsTo('project-version', { inverse: 'modules' }),
-});
+export default class Module extends ClassModel {
+ @attr()
+ submodules;
+
+ @attr()
+ publicclasses;
+
+ @attr()
+ privateclasses;
+
+ @attr()
+ namespaces;
+
+ @attr()
+ parent;
+
+ @attr()
+ staticfunctions;
+
+ @attr()
+ allstaticfunctions;
+
+ @belongsTo('project-version', { inverse: 'modules' })
+ projectVersion;
+}
diff --git a/app/models/namespace.js b/app/models/namespace.js
index b8d54ae8..230dc866 100644
--- a/app/models/namespace.js
+++ b/app/models/namespace.js
@@ -1,6 +1,7 @@
import { belongsTo } from '@ember-data/model';
import ClassModel from './class';
-export default ClassModel.extend({
- projectVersion: belongsTo('project-version', { inverse: 'namespaces' }),
-});
+export default class Namespace extends ClassModel {
+ @belongsTo('project-version', { inverse: 'namespaces' })
+ projectVersion;
+}
diff --git a/app/models/project.js b/app/models/project.js
index 15adf957..93082b2b 100644
--- a/app/models/project.js
+++ b/app/models/project.js
@@ -1,7 +1,12 @@
import Model, { hasMany, attr } from '@ember-data/model';
-export default Model.extend({
- name: attr(),
- githubUrl: attr(),
- projectVersions: hasMany('project-version', { async: true }),
-});
+export default class Project extends Model {
+ @attr()
+ name;
+
+ @attr()
+ githubUrl;
+
+ @hasMany('project-version', { async: true })
+ projectVersions;
+}
diff --git a/app/routes/application.js b/app/routes/application.js
index c9558fae..db93918c 100644
--- a/app/routes/application.js
+++ b/app/routes/application.js
@@ -1,12 +1,15 @@
+import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { set } from '@ember/object';
-import { inject as service } from '@ember/service';
import ENV from 'ember-api-docs/config/environment';
import getCompactVersion from 'ember-api-docs/utils/get-compact-version';
-export default Route.extend({
- headData: service(),
- legacyModuleMappings: service(),
+export default class ApplicationRoute extends Route {
+ @service
+ headData;
+
+ @service
+ legacyModuleMappings;
title(tokens) {
let [version, entity] = tokens;
@@ -22,10 +25,11 @@ export default Route.extend({
return title;
}
return '';
- },
+ }
+
async afterModel() {
set(this, 'headData.cdnDomain', ENV.API_HOST);
await this.legacyModuleMappings.initMappings();
- return this._super(...arguments);
- },
-});
+ return super.afterModel(...arguments);
+ }
+}
diff --git a/app/routes/class.js b/app/routes/class.js
index 7c5ba8bf..c764cd0d 100644
--- a/app/routes/class.js
+++ b/app/routes/class.js
@@ -1,8 +1,9 @@
-import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
+import Route from '@ember/routing/route';
-export default Route.extend({
- legacyModuleMappings: service(),
+export default class ClassRoute extends Route {
+ @service
+ legacyModuleMappings;
model(params) {
return this.legacyModuleMappings
@@ -17,7 +18,7 @@ export default Route.extend({
),
};
});
- },
+ }
redirect(model) {
let mappedInfo = this.legacyModuleMappings.getNewClassFromOld(
@@ -44,5 +45,5 @@ export default Route.extend({
}
}
return this.transitionTo('project-version', 'ember', 'release');
- },
-});
+ }
+}
diff --git a/app/routes/data-class.js b/app/routes/data-class.js
index 4dec9381..9d698470 100644
--- a/app/routes/data-class.js
+++ b/app/routes/data-class.js
@@ -1,8 +1,9 @@
-import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
+import Route from '@ember/routing/route';
-export default Route.extend({
- legacyModuleMappings: service(),
+export default class DataClassRoute extends Route {
+ @service
+ legacyModuleMappings;
model(params) {
return this.legacyModuleMappings
@@ -17,7 +18,7 @@ export default Route.extend({
),
};
});
- },
+ }
redirect(model) {
let mappingInfo = this.legacyModuleMappings.getNewClassFromOld(
@@ -38,5 +39,5 @@ export default Route.extend({
} else {
return this.transitionTo('project-version', 'ember', 'release');
}
- },
-});
+ }
+}
diff --git a/app/routes/data-module.js b/app/routes/data-module.js
index 948f6188..97c35311 100644
--- a/app/routes/data-module.js
+++ b/app/routes/data-module.js
@@ -1,8 +1,9 @@
-import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
+import Route from '@ember/routing/route';
-export default Route.extend({
- legacyModuleMappings: service(),
+export default class DataModuleRoute extends Route {
+ @service
+ legacyModuleMappings;
model(params) {
return this.legacyModuleMappings
@@ -14,7 +15,7 @@ export default Route.extend({
mappings: this.legacyModuleMappings.buildMappings(mappings),
};
});
- },
+ }
redirect(model) {
let { moduleName, mappings } = model;
@@ -35,5 +36,5 @@ export default Route.extend({
mappingInfo.module
);
}
- },
-});
+ }
+}
diff --git a/app/routes/ember-cli.js b/app/routes/ember-cli.js
index c247d9f6..a5caef6f 100644
--- a/app/routes/ember-cli.js
+++ b/app/routes/ember-cli.js
@@ -1,7 +1,7 @@
import Route from '@ember/routing/route';
-export default Route.extend({
+export default class EmberCliRoute extends Route {
title() {
return 'Ember CLI - Ember API Documentation';
- },
-});
+ }
+}
diff --git a/app/routes/index.js b/app/routes/index.js
index 3b92e58f..5c937a9c 100644
--- a/app/routes/index.js
+++ b/app/routes/index.js
@@ -1,7 +1,7 @@
import Route from '@ember/routing/route';
-export default Route.extend({
+export default class IndexRoute extends Route {
redirect() {
return this.transitionTo('project', 'ember');
- },
-});
+ }
+}
diff --git a/app/routes/module.js b/app/routes/module.js
index ccfff4ef..d583b843 100644
--- a/app/routes/module.js
+++ b/app/routes/module.js
@@ -1,8 +1,9 @@
-import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
+import Route from '@ember/routing/route';
-export default Route.extend({
- legacyModuleMappings: service(),
+export default class ModuleRoute extends Route {
+ @service
+ legacyModuleMappings;
model(params) {
return this.legacyModuleMappings
@@ -14,7 +15,7 @@ export default Route.extend({
mappings: this.legacyModuleMappings.buildMappings(mappings),
};
});
- },
+ }
redirect(model) {
let mappingInfo = this.legacyModuleMappings.getNewModuleFromOld(
@@ -30,5 +31,5 @@ export default Route.extend({
);
}
return this.transitionTo('project-version', 'ember', 'release');
- },
-});
+ }
+}
diff --git a/app/routes/project-version.js b/app/routes/project-version.js
index 1f845830..3823e72e 100644
--- a/app/routes/project-version.js
+++ b/app/routes/project-version.js
@@ -1,3 +1,4 @@
+import { action } from '@ember/object';
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import semverCompare from 'semver-compare';
@@ -6,16 +7,25 @@ import getFullVersion from 'ember-api-docs/utils/get-full-version';
import getLastVersion from 'ember-api-docs/utils/get-last-version';
import config from 'ember-api-docs/config/environment';
-export default Route.extend({
- fastboot: service(),
- headData: service(),
- metaStore: service(),
- router: service(),
- projectService: service('project'),
+export default class ProjectVersionRoute extends Route {
+ @service
+ fastboot;
- titleToken: function (model) {
+ @service
+ headData;
+
+ @service
+ metaStore;
+
+ @service
+ router;
+
+ @service('project')
+ projectService;
+
+ titleToken(model) {
return model.get('version');
- },
+ }
async model({ project, project_version }) {
let projectObj = await this.store.findRecord('project', project);
@@ -31,7 +41,7 @@ export default Route.extend({
return this.store.findRecord('project-version', id, {
includes: 'project',
});
- },
+ }
// Using redirect instead of afterModel so transition succeeds and returns 307
redirect(model, transition) {
@@ -98,7 +108,7 @@ export default Route.extend({
);
}
}
- },
+ }
_gatherHeadDataFromVersion(model, projectVersion) {
this.set('headData.isRelease', projectVersion === 'release');
@@ -113,108 +123,108 @@ export default Route.extend({
let canonicalUrl = href.replace(version, 'release');
this.set('headData.canonicalUrl', canonicalUrl);
}
- },
+ }
_getEncodedNameForCurrentClass() {
// escape any reserved characters for url, like slashes
return encodeURIComponent(
this.modelFor('project-version.classes.class').get('name')
);
- },
+ }
serialize(model) {
return {
project: model.get('project.id'),
project_version: model.get('compactVersion'),
};
- },
-
- actions: {
- updateProject(project, ver /*, component */) {
- let projectVersionID = ver.compactVersion;
- let endingRoute;
- switch (this.router.currentRouteName) {
- case 'project-version.classes.class': {
- let className = this._getEncodedNameForCurrentClass();
- endingRoute = `classes/${className}`;
- break;
- }
- case 'project-version.classes.class.index': {
- let className = this._getEncodedNameForCurrentClass();
- endingRoute = `classes/${className}`;
- break;
- }
- case 'project-version.modules.module.index': {
- let moduleName = encodeURIComponent(
- this.paramsFor('project-version.modules.module').module
- );
- endingRoute = `modules/${moduleName}`;
- break;
- }
- case 'project-version.namespaces.namespace.index': {
- let namespaceName = this.paramsFor(
- 'project-version.namespaces.namespace'
- ).namespace;
- endingRoute = `namespaces/${namespaceName}`;
- break;
- }
- case 'project-version.classes.class.methods.index': {
- let className = this._getEncodedNameForCurrentClass();
- endingRoute = `classes/${className}/methods`;
- break;
- }
- case 'project-version.classes.class.events.index': {
- let className = this._getEncodedNameForCurrentClass();
- endingRoute = `classes/${className}/events`;
- break;
- }
- case 'project-version.classes.class.properties.index': {
- let className = this._getEncodedNameForCurrentClass();
- endingRoute = `classes/${className}/properties`;
- break;
- }
- case 'project-version.classes.class.methods.method': {
- let className = this._getEncodedNameForCurrentClass();
- let methodName = this.paramsFor(
- 'project-version.classes.class.methods.method'
- ).method;
- endingRoute = `classes/${className}/methods/${methodName}?anchor=${methodName}`;
- break;
- }
- case 'project-version.classes.class.events.event': {
- let className = this._getEncodedNameForCurrentClass();
- let eventName = this.paramsFor(
- 'project-version.classes.class.events.event'
- ).event;
- endingRoute = `classes/${className}/events/${eventName}?anchor=${eventName}`;
- break;
- }
- case 'project-version.classes.class.properties.property': {
- let className = this._getEncodedNameForCurrentClass();
- let propertyName = this.paramsFor(
- 'project-version.classes.class.properties.property'
- ).property;
- endingRoute = `classes/${className}/properties/${propertyName}?anchor=${propertyName}`;
- break;
- }
- default:
- endingRoute = '';
- break;
+ }
+
+ @action
+ updateProject(project, ver /*, component */) {
+ let projectVersionID = ver.compactVersion;
+ let endingRoute;
+ switch (this.router.currentRouteName) {
+ case 'project-version.classes.class': {
+ let className = this._getEncodedNameForCurrentClass();
+ endingRoute = `classes/${className}`;
+ break;
}
- // if the user is navigating to/from api versions >= 2.16, take them
- // to the home page instead of trying to translate the url
- let shouldConvertPackages = this.shouldConvertPackages(
- ver,
- this.get('projectService.version')
- );
- let isEmberProject = project === 'ember';
- if (!isEmberProject || !shouldConvertPackages) {
- this.transitionTo(`/${project}/${projectVersionID}/${endingRoute}`);
- } else {
- this.transitionTo(`/${project}/${projectVersionID}`);
+ case 'project-version.classes.class.index': {
+ let className = this._getEncodedNameForCurrentClass();
+ endingRoute = `classes/${className}`;
+ break;
+ }
+ case 'project-version.modules.module.index': {
+ let moduleName = encodeURIComponent(
+ this.paramsFor('project-version.modules.module').module
+ );
+ endingRoute = `modules/${moduleName}`;
+ break;
+ }
+ case 'project-version.namespaces.namespace.index': {
+ let namespaceName = this.paramsFor(
+ 'project-version.namespaces.namespace'
+ ).namespace;
+ endingRoute = `namespaces/${namespaceName}`;
+ break;
+ }
+ case 'project-version.classes.class.methods.index': {
+ let className = this._getEncodedNameForCurrentClass();
+ endingRoute = `classes/${className}/methods`;
+ break;
+ }
+ case 'project-version.classes.class.events.index': {
+ let className = this._getEncodedNameForCurrentClass();
+ endingRoute = `classes/${className}/events`;
+ break;
+ }
+ case 'project-version.classes.class.properties.index': {
+ let className = this._getEncodedNameForCurrentClass();
+ endingRoute = `classes/${className}/properties`;
+ break;
}
- },
- },
+ case 'project-version.classes.class.methods.method': {
+ let className = this._getEncodedNameForCurrentClass();
+ let methodName = this.paramsFor(
+ 'project-version.classes.class.methods.method'
+ ).method;
+ endingRoute = `classes/${className}/methods/${methodName}?anchor=${methodName}`;
+ break;
+ }
+ case 'project-version.classes.class.events.event': {
+ let className = this._getEncodedNameForCurrentClass();
+ let eventName = this.paramsFor(
+ 'project-version.classes.class.events.event'
+ ).event;
+ endingRoute = `classes/${className}/events/${eventName}?anchor=${eventName}`;
+ break;
+ }
+ case 'project-version.classes.class.properties.property': {
+ let className = this._getEncodedNameForCurrentClass();
+ let propertyName = this.paramsFor(
+ 'project-version.classes.class.properties.property'
+ ).property;
+ endingRoute = `classes/${className}/properties/${propertyName}?anchor=${propertyName}`;
+ break;
+ }
+ default:
+ endingRoute = '';
+ break;
+ }
+ // if the user is navigating to/from api versions >= 2.16, take them
+ // to the home page instead of trying to translate the url
+ let shouldConvertPackages = this.shouldConvertPackages(
+ ver,
+ this.get('projectService.version')
+ );
+ let isEmberProject = project === 'ember';
+ if (!isEmberProject || !shouldConvertPackages) {
+ this.transitionTo(`/${project}/${projectVersionID}/${endingRoute}`);
+ } else {
+ this.transitionTo(`/${project}/${projectVersionID}`);
+ }
+ }
+
// Input some version info, returns a boolean based on
// whether the user is switching versions for a 2.16 docs release or later.
// The urls for pre-2.16 classes and later packages are quite different
@@ -227,7 +237,7 @@ export default Route.extend({
(previousComparison < 0 && targetComparison >= 0) ||
(previousComparison >= 0 && targetComparison < 0)
);
- },
+ }
/**
splits the first encoded revision string in the list and takes the string after the version (which is the encoded name), then decodes the result.
@@ -242,5 +252,5 @@ export default Route.extend({
return result;
});
return decodeURIComponent(encodedModule);
- },
-});
+ }
+}
diff --git a/app/routes/project-version/classes/class.js b/app/routes/project-version/classes/class.js
index 09ede2de..a473aaae 100644
--- a/app/routes/project-version/classes/class.js
+++ b/app/routes/project-version/classes/class.js
@@ -1,19 +1,22 @@
+import { inject as service } from '@ember/service';
import { resolve, all } from 'rsvp';
import Route from '@ember/routing/route';
import { set } from '@ember/object';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
-import { inject as service } from '@ember/service';
import { pluralize } from 'ember-inflector';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
import createExcerpt from 'ember-api-docs/utils/create-excerpt';
-export default Route.extend(ScrollTracker, {
- headData: service(),
- metaStore: service(),
+export default class ClassRoute extends Route.extend(ScrollTracker) {
+ @service
+ headData;
+
+ @service
+ metaStore;
- titleToken: function (model) {
+ titleToken(model) {
return model.name;
- },
+ }
async model(params) {
const { project, project_version: compactVersion } =
@@ -27,7 +30,7 @@ export default Route.extend(ScrollTracker, {
);
const klass = params['class'];
return this.find('class', `${project}-${projectVersion}-${klass}`);
- },
+ }
find(typeName, param) {
return this.store.find(typeName, param).catch((e1) => {
@@ -50,7 +53,7 @@ export default Route.extend(ScrollTracker, {
status: 404,
});
});
- },
+ }
redirect(model, transition) {
const lookupParams = (routeName) => {
@@ -76,7 +79,7 @@ export default Route.extend(ScrollTracker, {
if (model.isError) {
this.transitionTo('404');
}
- },
+ }
afterModel(klass) {
if (!klass.isError) {
@@ -97,11 +100,11 @@ export default Route.extend(ScrollTracker, {
);
return all(promises);
}
- },
+ }
serialize(model) {
return {
class: model.name,
};
- },
-});
+ }
+}
diff --git a/app/routes/project-version/classes/class/events.js b/app/routes/project-version/classes/class/events.js
index 5b1d5bda..316783ff 100644
--- a/app/routes/project-version/classes/class/events.js
+++ b/app/routes/project-version/classes/class/events.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'events',
-});
+export default class EventsRoute extends Route {
+ templateName = 'events';
+}
diff --git a/app/routes/project-version/classes/class/index.js b/app/routes/project-version/classes/class/index.js
index 68b7f2d3..84cc3c0c 100644
--- a/app/routes/project-version/classes/class/index.js
+++ b/app/routes/project-version/classes/class/index.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'class-index',
-});
+export default class IndexRoute extends Route {
+ templateName = 'class-index';
+}
diff --git a/app/routes/project-version/classes/class/methods.js b/app/routes/project-version/classes/class/methods.js
index 439ce907..c7e69e92 100644
--- a/app/routes/project-version/classes/class/methods.js
+++ b/app/routes/project-version/classes/class/methods.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'methods',
-});
+export default class MethodsRoute extends Route {
+ templateName = 'methods';
+}
diff --git a/app/routes/project-version/classes/class/properties.js b/app/routes/project-version/classes/class/properties.js
index ed2133a7..8558fa9d 100644
--- a/app/routes/project-version/classes/class/properties.js
+++ b/app/routes/project-version/classes/class/properties.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'properties',
-});
+export default class PropertiesRoute extends Route {
+ templateName = 'properties';
+}
diff --git a/app/routes/project-version/functions/function.js b/app/routes/project-version/functions/function.js
index 8d7cdd5a..f0dd7cac 100644
--- a/app/routes/project-version/functions/function.js
+++ b/app/routes/project-version/functions/function.js
@@ -1,21 +1,26 @@
+import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
-import { inject as service } from '@ember/service';
import { set } from '@ember/object';
import createExcerpt from 'ember-api-docs/utils/create-excerpt';
-export default Route.extend({
- headData: service(),
- metaStore: service(),
- scrollPositionReset: service(),
+export default class FunctionRoute extends Route {
+ @service
+ headData;
+
+ @service
+ metaStore;
+
+ @service
+ scrollPositionReset;
titleToken(model) {
return model?.fn?.name;
- },
+ }
async model(params) {
- const { project, project_version: compactVersion } =
- this.paramsFor('project-version');
+ const pVParams = this.paramsFor('project-version');
+ const { project, project_version: compactVersion } = pVParams;
let projectObj = await this.store.findRecord('project', project);
let projectVersion = getFullVersion(
@@ -44,22 +49,22 @@ export default Route.extend({
fnModule,
fn: fnModule.get('methods').find((fn) => fn.name === functionName),
};
- },
+ }
afterModel(model) {
let description = model.fn.description;
if (description) {
set(this, 'headData.description', createExcerpt(description));
}
- },
+ }
getFunctionObjFromList(classObj, functionName) {
return classObj.get('methods').find((fn) => {
return fn.name === functionName;
});
- },
+ }
activate() {
this.scrollPositionReset.doReset();
- },
-});
+ }
+}
diff --git a/app/routes/project-version/index.js b/app/routes/project-version/index.js
index 9185a685..467ff0cc 100644
--- a/app/routes/project-version/index.js
+++ b/app/routes/project-version/index.js
@@ -1,9 +1,9 @@
import Route from '@ember/routing/route';
-export default Route.extend({
+export default class IndexRoute extends Route {
async model() {
const projectVersion = this.modelFor('project-version');
const project = await projectVersion.project;
return project;
- },
-});
+ }
+}
diff --git a/app/routes/project-version/modules/module.js b/app/routes/project-version/modules/module.js
index e4c2a118..f57093e5 100644
--- a/app/routes/project-version/modules/module.js
+++ b/app/routes/project-version/modules/module.js
@@ -2,7 +2,7 @@ import ClassRoute from '../classes/class';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
-export default ClassRoute.extend(ScrollTracker, {
+export default class ModuleRoute extends ClassRoute.extend(ScrollTracker) {
async model(params) {
const { project, project_version: compactVersion } =
this.paramsFor('project-version');
@@ -25,11 +25,11 @@ export default ClassRoute.extend(ScrollTracker, {
}
return this.find('module', `${project}-${projectVersion}-${klass}`);
- },
+ }
serialize(model) {
return {
module: model.get('name'),
};
- },
-});
+ }
+}
diff --git a/app/routes/project-version/modules/module/events.js b/app/routes/project-version/modules/module/events.js
index 5b1d5bda..316783ff 100644
--- a/app/routes/project-version/modules/module/events.js
+++ b/app/routes/project-version/modules/module/events.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'events',
-});
+export default class EventsRoute extends Route {
+ templateName = 'events';
+}
diff --git a/app/routes/project-version/modules/module/methods.js b/app/routes/project-version/modules/module/methods.js
index 439ce907..c7e69e92 100644
--- a/app/routes/project-version/modules/module/methods.js
+++ b/app/routes/project-version/modules/module/methods.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'methods',
-});
+export default class MethodsRoute extends Route {
+ templateName = 'methods';
+}
diff --git a/app/routes/project-version/modules/module/properties.js b/app/routes/project-version/modules/module/properties.js
index ed2133a7..8558fa9d 100644
--- a/app/routes/project-version/modules/module/properties.js
+++ b/app/routes/project-version/modules/module/properties.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'properties',
-});
+export default class PropertiesRoute extends Route {
+ templateName = 'properties';
+}
diff --git a/app/routes/project-version/namespaces/namespace.js b/app/routes/project-version/namespaces/namespace.js
index 20846fc1..dc8e31d0 100644
--- a/app/routes/project-version/namespaces/namespace.js
+++ b/app/routes/project-version/namespaces/namespace.js
@@ -2,8 +2,8 @@ import ClassRoute from '../classes/class';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
import getFullVersion from 'ember-api-docs/utils/get-full-version';
-export default ClassRoute.extend(ScrollTracker, {
- templateName: 'project-version/classes/class',
+export default class NamespaceRoute extends ClassRoute.extend(ScrollTracker) {
+ templateName = 'project-version/classes/class';
async model(params) {
const { project, project_version: compactVersion } =
@@ -18,11 +18,11 @@ export default ClassRoute.extend(ScrollTracker, {
);
const klass = params['namespace'];
return this.find('namespace', `${project}-${projectVersion}-${klass}`);
- },
+ }
serialize(model) {
return {
namespace: model.get('name'),
};
- },
-});
+ }
+}
diff --git a/app/routes/project-version/namespaces/namespace/events.js b/app/routes/project-version/namespaces/namespace/events.js
index 5b1d5bda..316783ff 100644
--- a/app/routes/project-version/namespaces/namespace/events.js
+++ b/app/routes/project-version/namespaces/namespace/events.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'events',
-});
+export default class EventsRoute extends Route {
+ templateName = 'events';
+}
diff --git a/app/routes/project-version/namespaces/namespace/index.js b/app/routes/project-version/namespaces/namespace/index.js
index 68b7f2d3..84cc3c0c 100644
--- a/app/routes/project-version/namespaces/namespace/index.js
+++ b/app/routes/project-version/namespaces/namespace/index.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'class-index',
-});
+export default class IndexRoute extends Route {
+ templateName = 'class-index';
+}
diff --git a/app/routes/project-version/namespaces/namespace/methods.js b/app/routes/project-version/namespaces/namespace/methods.js
index 439ce907..c7e69e92 100644
--- a/app/routes/project-version/namespaces/namespace/methods.js
+++ b/app/routes/project-version/namespaces/namespace/methods.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'methods',
-});
+export default class MethodsRoute extends Route {
+ templateName = 'methods';
+}
diff --git a/app/routes/project-version/namespaces/namespace/properties.js b/app/routes/project-version/namespaces/namespace/properties.js
index ed2133a7..8558fa9d 100644
--- a/app/routes/project-version/namespaces/namespace/properties.js
+++ b/app/routes/project-version/namespaces/namespace/properties.js
@@ -1,5 +1,5 @@
import Route from '@ember/routing/route';
-export default Route.extend({
- templateName: 'properties',
-});
+export default class PropertiesRoute extends Route {
+ templateName = 'properties';
+}
diff --git a/app/routes/project.js b/app/routes/project.js
index 4380af58..507933c5 100644
--- a/app/routes/project.js
+++ b/app/routes/project.js
@@ -1,7 +1,7 @@
import Route from '@ember/routing/route';
import ScrollTracker from 'ember-api-docs/mixins/scroll-tracker';
-export default Route.extend(ScrollTracker, {
+export default class ProjectRoute extends Route.extend(ScrollTracker) {
model({ project: projectName }) {
let projectNameToLookUp = 'ember';
@@ -17,10 +17,10 @@ export default Route.extend(ScrollTracker, {
return this.store.findRecord('project', projectNameToLookUp, {
includes: 'project-version',
});
- },
+ }
// Using redirect instead of afterModel so transition succeeds and returns 307 in fastboot
redirect(project /*, transition */) {
return this.transitionTo('project-version', project.get('id'), 'release');
- },
-});
+ }
+}
diff --git a/app/serializers/application.js b/app/serializers/application.js
index e6ba2104..2f6670a8 100644
--- a/app/serializers/application.js
+++ b/app/serializers/application.js
@@ -1,11 +1,12 @@
-import JSONAPISerializer from '@ember-data/serializer/json-api';
import { inject as service } from '@ember/service';
+import JSONAPISerializer from '@ember-data/serializer/json-api';
-export default JSONAPISerializer.extend({
- metaStore: service(),
+export default class Application extends JSONAPISerializer {
+ @service
+ metaStore;
normalizeFindRecordResponse(store, primaryModelClass, payload, id) {
- let normalizedDocument = this._super(...arguments);
+ let normalizedDocument = super.normalizeFindRecordResponse(...arguments);
// We do this because ember data doesn't handle meta data in accordance to json-api spec yet
if (primaryModelClass.modelName === 'project') {
@@ -16,5 +17,5 @@ export default JSONAPISerializer.extend({
}
return normalizedDocument;
- },
-});
+ }
+}
diff --git a/app/services/algolia.js b/app/services/algolia.js
index 2276d151..1e832cbf 100644
--- a/app/services/algolia.js
+++ b/app/services/algolia.js
@@ -3,7 +3,7 @@ import algoliasearch from 'algoliasearch';
import config from 'ember-api-docs/config/environment';
import { denodeify } from 'rsvp';
-export default Service.extend({
+export default class AlgoliaService extends Service {
_search(query, params, callback) {
if (!callback) {
callback = params;
@@ -23,22 +23,22 @@ export default Service.extend({
} else {
callback(new Error(`Could not search algolia for query "${query}"`));
}
- },
+ }
accessIndex(IndexName) {
if (!this._indices[IndexName]) {
this._indices[IndexName] = this._client.initIndex(IndexName);
}
return this._indices[IndexName];
- },
+ }
init() {
- this._super(...arguments);
+ super.init(...arguments);
this._client = algoliasearch(
config.algolia.algoliaId,
config.algolia.algoliaKey
);
this._indices = {};
this.search = denodeify(this._search.bind(this));
- },
-});
+ }
+}
diff --git a/app/services/filter-data.js b/app/services/filter-data.js
index b0f3572c..8ed777d9 100644
--- a/app/services/filter-data.js
+++ b/app/services/filter-data.js
@@ -1,16 +1,16 @@
import Service from '@ember/service';
-export default Service.extend({
- showInherited: false,
- showProtected: false,
- showPrivate: false,
- showDeprecated: false,
- sideNav: null,
+export default class FilterDataService extends Service {
+ showInherited = false;
+ showProtected = false;
+ showPrivate = false;
+ showDeprecated = false;
+ sideNav = null;
init() {
this.sideNav = {
showPrivate: false,
};
- this._super(...arguments);
- },
-});
+ super.init(...arguments);
+ }
+}
diff --git a/app/services/legacy-module-mappings.js b/app/services/legacy-module-mappings.js
index b035314f..f07e3087 100644
--- a/app/services/legacy-module-mappings.js
+++ b/app/services/legacy-module-mappings.js
@@ -7,7 +7,7 @@ const LOCALNAME_CONVERSIONS = {
Error: 'EmberError',
};
-export default Service.extend({
+export default class LegacyModuleMappingsService extends Service {
async initMappings() {
try {
let response = await this.fetch();
@@ -17,7 +17,7 @@ export default Service.extend({
} catch (e) {
this.set('mappings', []);
}
- },
+ }
buildMappings(mappings) {
return mappings.map((item) => {
@@ -27,11 +27,11 @@ export default Service.extend({
}
return newItem;
});
- },
+ }
fetch() {
return fetch('/assets/mappings.json');
- },
+ }
getModule(name, documentedModule) {
if (!this.mappings) {
@@ -39,7 +39,7 @@ export default Service.extend({
}
let matches = this.mappings.filter((element) => element.localName === name);
return matches.length > 0 ? matches[0].module : documentedModule;
- },
+ }
getNewClassFromOld(oldClassName, mappings) {
let matches = mappings.filter((element) => element.global === oldClassName);
@@ -63,7 +63,7 @@ export default Service.extend({
newName: oldClassName,
};
}
- },
+ }
getNewModuleFromOld(oldModuleName, mappings) {
let matches = mappings.filter(
@@ -78,7 +78,7 @@ export default Service.extend({
module: oldModuleName,
};
}
- },
+ }
hasFunctionMapping(name, module) {
if (!this.mappings) {
@@ -88,7 +88,7 @@ export default Service.extend({
(element) => element.export === name && element.module === module
);
return filtered.length > 0;
- },
+ }
hasClassMapping(name) {
if (!this.mappings) {
@@ -97,5 +97,5 @@ export default Service.extend({
return (
this.mappings.filter((element) => element.localName === name).length > 0
);
- },
-});
+ }
+}
diff --git a/app/services/meta-store.js b/app/services/meta-store.js
index 491cba49..33eb118c 100644
--- a/app/services/meta-store.js
+++ b/app/services/meta-store.js
@@ -5,9 +5,9 @@ import { A } from '@ember/array';
import getCompactVersion from 'ember-api-docs/utils/get-compact-version';
import getLastVersion from 'ember-api-docs/utils/get-last-version';
-export default Service.extend({
- availableProjectVersions: null,
- projectRevMap: null,
+export default class MetaStoreService extends Service {
+ availableProjectVersions = null;
+ projectRevMap = null;
init() {
this.availableProjectVersions = {
@@ -15,8 +15,8 @@ export default Service.extend({
'ember-data': A(),
};
this.projectRevMap = {};
- this._super(...arguments);
- },
+ super.init(...arguments);
+ }
addToProjectRevMap(projectVersionKey, projectRevDoc) {
let projectRevMap = this.projectRevMap;
@@ -24,16 +24,16 @@ export default Service.extend({
projectRevMap[projectVersionKey] = projectRevDoc;
set(this, 'projectRevMap', projectRevMap);
}
- },
+ }
getRevId(project, version, type, id) {
let encodedId = encodeURIComponent(id);
return this.projectRevMap[`${project}-${version}`][type][encodedId];
- },
+ }
getEncodedModulesFromProjectRev(id) {
return Object.keys(this.projectRevMap[id].module).sort();
- },
+ }
initializeStore(availableProjectVersions, projectRevMap) {
this.setProperties({
@@ -43,7 +43,7 @@ export default Service.extend({
},
projectRevMap: projectRevMap,
});
- },
+ }
getFullVersion(projectName, compactProjVersion) {
const availProjVersions = this.get(
@@ -57,5 +57,5 @@ export default Service.extend({
}
// since there can be multiple full versions that match the compact version, use the most recent one.
return getLastVersion(filtered);
- },
-});
+ }
+}
diff --git a/app/services/project.js b/app/services/project.js
index c22ec471..9cd7a577 100644
--- a/app/services/project.js
+++ b/app/services/project.js
@@ -1,17 +1,17 @@
import Service from '@ember/service';
-export default Service.extend({
- version: '0.0.0',
+export default class ProjectService extends Service {
+ version = '0.0.0';
setVersion(version) {
this.set('version', version);
- },
+ }
setUrlVersion(version) {
this.set('urlVersion', version);
- },
+ }
getUrlVersion() {
return this.urlVersion;
- },
-});
+ }
+}
diff --git a/app/services/search.js b/app/services/search.js
index 43ff4e10..03611348 100644
--- a/app/services/search.js
+++ b/app/services/search.js
@@ -30,7 +30,7 @@ export default Service.extend({
query,
};
- return set(this, 'results', yield this.doSearch(searchObj, params));
+ return set(this, 'results', (yield this.doSearch(searchObj, params)));
}).restartable(),
doSearch(searchObj, params) {
diff --git a/app/templates/404.hbs b/app/templates/404.hbs
index 3079cda3..9590124b 100644
--- a/app/templates/404.hbs
+++ b/app/templates/404.hbs
@@ -3,7 +3,7 @@
Ack! 404 friend, you're in the wrong place
- This page wasn't found. Please try the {{#link-to 'index'}}API docs page{{/link-to}}.
+ This page wasn't found. Please try the API docs page .
If you expected something else to be here, please file a ticket .
diff --git a/app/templates/class-index.hbs b/app/templates/class-index.hbs
index d2dc862f..1020fc70 100644
--- a/app/templates/class-index.hbs
+++ b/app/templates/class-index.hbs
@@ -1,19 +1,14 @@
-{{#api-index-filter model=model filterData=filterData as |filteredModel|}}
- {{#api-index itemData=filteredModel classNames="api__index__content" as |sectionData|}}
+
+
{{#each sectionData.sections as |section|}}
{{section.title}}
{{#if section.items}}
{{#each section.items as |item|}}
- {{#link-to (concat parentName section.routeSuffix)
- model.project.id
- model.projectVersion.compactVersion
- model.name
- item.name
- (query-params anchor=item.name)}}
+
{{item.name}}
- {{/link-to}}
+
{{/each}}
@@ -21,5 +16,5 @@
No documented items
{{/if}}
{{/each}}
- {{/api-index}}
-{{/api-index-filter}}
+
+
diff --git a/app/templates/components/class-field-description.hbs b/app/templates/components/class-field-description.hbs
index 3b071ffa..21f3e9ea 100644
--- a/app/templates/components/class-field-description.hbs
+++ b/app/templates/components/class-field-description.hbs
@@ -24,7 +24,7 @@
Module:
- {{#link-to 'project-version.modules.module' model.projectVersion.compactVersion model.module}}{{model.module}}{{/link-to}}
+ {{model.module}}
{{/if}}
@@ -47,7 +47,7 @@
{{/if}}
{{#if (and (eq field.static 1) (eq field.itemtype "method") hasImportExample)}}
- {{import-example item=(concat "{ " field.name " }") package=field.class}}
+
{{/if}}
{{#each field.params as |param|}}
diff --git a/app/templates/components/import-example.hbs b/app/templates/components/import-example.hbs
index 08efd36b..7d1b4aef 100644
--- a/app/templates/components/import-example.hbs
+++ b/app/templates/components/import-example.hbs
@@ -5,9 +5,9 @@
{{#if showClipboardSuccessIcon}}
{{svg-jar "success" width="24px" height="24px"}}
{{else}}
- {{#copy-button clipboardText=(concat "import " item " from '" package "';") title="Copy to clipboard" success=(action "showSuccess")}}
+
{{svg-jar "copy" width="24px" height="24px"}}
- {{/copy-button}}
+
{{/if}}
{{/if}}
diff --git a/app/templates/components/search-input.hbs b/app/templates/components/search-input.hbs
index 0dca877f..f001b1fe 100644
--- a/app/templates/components/search-input.hbs
+++ b/app/templates/components/search-input.hbs
@@ -8,16 +8,6 @@
placeholder="Search"
>
{{!-- Search results dropdown --}}
- {{#ember-tether
- target='#search-input'
- targetAttachment='bottom left'
- attachment='top left'
- constraints=_resultTetherConstraints
- class='ds-dropdown-results'
- }}
- {{search-input/dropdown
- isVisible=_focused
- results=searchService.results
- noResults=noResults
- }}
- {{/ember-tether}}
+
+
+
diff --git a/app/templates/components/search-input/dropdown-result.hbs b/app/templates/components/search-input/dropdown-result.hbs
index 1b89bb86..bcc04b0b 100644
--- a/app/templates/components/search-input/dropdown-result.hbs
+++ b/app/templates/components/search-input/dropdown-result.hbs
@@ -6,12 +6,7 @@
{{#if result.static}}
- {{#link-to "project-version.functions.function"
- module
- version
- result.class
- result.name
- }}
+
{{!-- Sometimes hierarchy lvl1 is null, fall-back to lvl0 --}}
{{#if result._highlightResult.hierarchy.lvl1}}
@@ -31,14 +26,9 @@
{{html-safe result._highlightResult.hierarchy.lvl4.value}}
{{/if}}
- {{/link-to}}
+
{{else}}
- {{#link-to "project-version.classes.class.methods.method"
- module
- version
- result.class
- result.name
- (query-params anchor=result.name)}}
+
{{!-- Sometimes hierarchy lvl1 is null, fall-back to lvl0 --}}
{{#if result._highlightResult.hierarchy.lvl1}}
@@ -58,7 +48,7 @@
{{html-safe result._highlightResult.hierarchy.lvl4.value}}
{{/if}}
- {{/link-to}}
+
{{/if}}
diff --git a/app/templates/components/search-input/dropdown.hbs b/app/templates/components/search-input/dropdown.hbs
index 48521460..b517b95b 100644
--- a/app/templates/components/search-input/dropdown.hbs
+++ b/app/templates/components/search-input/dropdown.hbs
@@ -1,8 +1,8 @@
{{#if noResults}}
- {{#search-input/dropdown-header}}
+
No results found
- {{/search-input/dropdown-header}}
+
Try searching the deprecations guide .
@@ -14,19 +14,15 @@
{{#each-in _groupedResults as |lvl0section _lvl0results|}}
{{!-- Dropdown header --}}
- {{#search-input/dropdown-header}}
+
{{lvl0section}}
- {{/search-input/dropdown-header}}
+
{{!-- Level 1 hierarchy --}}
{{#each-in _lvl0results as |lvl1section _lvl1results|}}
{{!-- Each result will be shown here --}}
{{#each _lvl1results as |result index|}}
- {{search-input/dropdown-result
- result=result
- groupName=lvl1section
- groupPosition=index
- }}
+
{{/each}}
{{/each-in}}
diff --git a/app/templates/components/table-of-contents.hbs b/app/templates/components/table-of-contents.hbs
index 5b5e8207..34a84fcc 100644
--- a/app/templates/components/table-of-contents.hbs
+++ b/app/templates/components/table-of-contents.hbs
@@ -6,7 +6,7 @@
{{#if (not-eq moduleID "@ember/object/computed")}}
- {{#link-to 'project-version.modules.module' version moduleID}}{{moduleID}}{{/link-to}}
+ {{moduleID}}
{{/if}}
@@ -20,7 +20,7 @@
{{#each namespaceIDs as |namespaceID|}}
- {{#link-to 'project-version.namespaces.namespace' version namespaceID}}{{namespaceID}}{{/link-to}}
+ {{namespaceID}}
{{/each}}
@@ -32,13 +32,13 @@
{{#each classesIDs as |classID|}}
- {{#link-to 'project-version.classes.class' version classID}}{{classID}}{{/link-to}}
+ {{classID}}
{{/each}}
- {{input type="checkbox" checked=showPrivateClasses class='private-deprecated-toggle'}}
+
Show Private / Deprecated
diff --git a/app/templates/ember-cli.hbs b/app/templates/ember-cli.hbs
index e008e043..01784f8a 100644
--- a/app/templates/ember-cli.hbs
+++ b/app/templates/ember-cli.hbs
@@ -2,14 +2,14 @@
- {{table-of-contents
- projectId=model.project.id
- version=urlVersion
- classesIDs=shownClassesIDs
- moduleIDs=shownModuleIDs
- namespaceIDs=shownNamespaceIDs
- showPrivateClasses=showPrivateClasses
- isShowingNamespaces=(version-lt selectedProjectVersion.compactVersion '2.16')
- }}
+
{{outlet}}
diff --git a/app/templates/project-version/classes/class.hbs b/app/templates/project-version/classes/class.hbs
index 12a7a228..ef204d56 100644
--- a/app/templates/project-version/classes/class.hbs
+++ b/app/templates/project-version/classes/class.hbs
@@ -34,7 +34,7 @@
{{#if model.module}}
Module:
- {{#link-to 'project-version.modules.module' model.projectVersion.compactVersion model.module}}{{model.module}}{{/link-to}}
+ {{model.module}}
{{/if}}
{{#if model.since}}
@@ -45,67 +45,30 @@
{{/if}}
{{#if (and (not (eq static 1)) hasImportExample)}}
- {{import-example item=model.name package=module}}
+
{{/if}}
{{html-safe model.description}}
{{#if (or model.methods model.properties model.events)}}
diff --git a/app/templates/project-version/functions/function.hbs b/app/templates/project-version/functions/function.hbs
index 941f6401..b9510585 100644
--- a/app/templates/project-version/functions/function.hbs
+++ b/app/templates/project-version/functions/function.hbs
@@ -1,2 +1,2 @@
Function
-{{class-field-description type="method" field=fn model=fnModule}}
+
diff --git a/app/templates/project-version/modules/module.hbs b/app/templates/project-version/modules/module.hbs
index 31190c3a..518e8f50 100644
--- a/app/templates/project-version/modules/module.hbs
+++ b/app/templates/project-version/modules/module.hbs
@@ -6,7 +6,7 @@
{{#if model.parent}}
Parent:
- {{#link-to 'project-version.modules.module' model.projectVersion.compactVersion model.parent}}{{model.parent}}{{/link-to}}
+ {{model.parent}}
{{/if}}
@@ -22,9 +22,9 @@
{{#each submodules as |module|}}
- {{#link-to 'project-version.modules.module' module}}
+
{{module}}
- {{/link-to}}
+
{{/each}}
@@ -41,9 +41,9 @@
{{#each classesAndNamespaces as |klass|}}
{{#if (not (and (eq model.name "ember-data") (eq klass "Ember")))}}
- {{#link-to 'project-version.classes.class' klass}}
+
{{klass}}
- {{/link-to}}
+
{{/if}}
{{/each}}
@@ -65,14 +65,9 @@
{{#each (better-get functions funcHeading) as |method|}}
- {{#link-to 'project-version.functions.function'
- model.project.id
- model.projectVersion.compactVersion
- funcHeading
- method.name
- }}
+
{{method.name}}
- {{/link-to}}
+
{{/each}}
diff --git a/app/templates/properties.hbs b/app/templates/properties.hbs
index 9d451b32..4f1540ed 100644
--- a/app/templates/properties.hbs
+++ b/app/templates/properties.hbs
@@ -1,6 +1,6 @@
-{{ember-anchor a=anchor}}
-{{#api-index-filter model=model filterData=filterData as |filteredModel|}}
+
+
{{#each filteredModel.properties as |property|}}
- {{class-field-description type="property" field=property model=model updateAnchor=(action 'updateAnchor')}}
+
{{/each}}
-{{/api-index-filter}}
+
From 0f3ddb90caafcd5e85c1efeb01ec62f30704e3ac Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 29 Jun 2021 18:48:13 -0400
Subject: [PATCH 04/14] Configure VSCode decorator linting
---
.gitignore | 1 -
jsconfig.json | 3 +++
2 files changed, 3 insertions(+), 1 deletion(-)
create mode 100644 jsconfig.json
diff --git a/.gitignore b/.gitignore
index 09aee3a3..994ee8b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,7 +31,6 @@ terraform.tfstate.backup
public/json-docs/
public/rev-index/
-jsconfig.json
package-lock.json
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 00000000..bafda8e2
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,3 @@
+{
+ "experimentalDecorators": true
+}
\ No newline at end of file
From c074eff601ea3fa69864d8f998dc7e685ce7dab2 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 29 Jun 2021 18:49:09 -0400
Subject: [PATCH 05/14] Recommit jsconfig
---
jsconfig.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/jsconfig.json b/jsconfig.json
index bafda8e2..2f41c046 100644
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -1,3 +1,5 @@
{
- "experimentalDecorators": true
+ "compilerOptions": {
+ "experimentalDecorators": true
+ },
}
\ No newline at end of file
From 5e0bd52a230cd9052d05ff014ed5f0b4d5574e12 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 29 Jun 2021 18:58:37 -0400
Subject: [PATCH 06/14] Remove alias causing name conflict with fn helper
---
app/controllers/project-version/functions/function.js | 10 ----------
app/templates/project-version/functions/function.hbs | 2 +-
2 files changed, 1 insertion(+), 11 deletions(-)
delete mode 100644 app/controllers/project-version/functions/function.js
diff --git a/app/controllers/project-version/functions/function.js b/app/controllers/project-version/functions/function.js
deleted file mode 100644
index c20df634..00000000
--- a/app/controllers/project-version/functions/function.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { alias } from '@ember/object/computed';
-import Controller from '@ember/controller';
-
-export default class FunctionController extends Controller {
- @alias('model.fn')
- fn;
-
- @alias('model.fnModule')
- fnModule;
-}
diff --git a/app/templates/project-version/functions/function.hbs b/app/templates/project-version/functions/function.hbs
index b9510585..51acaf4d 100644
--- a/app/templates/project-version/functions/function.hbs
+++ b/app/templates/project-version/functions/function.hbs
@@ -1,2 +1,2 @@
Function
-
+
From 0caa2300ceb6c67fd1b10dbf0d5ec4bf3b4216c0 Mon Sep 17 00:00:00 2001
From: Jen Weber
Date: Tue, 29 Jun 2021 20:19:26 -0400
Subject: [PATCH 07/14] Fix angle brackets mistake, and run no implict this
codemod
---
app/routes/class.js | 3 +-
app/templates/application.hbs | 2 +-
app/templates/class-index.hbs | 4 +-
app/templates/components/api-index-filter.hbs | 2 +-
app/templates/components/api-index.hbs | 2 +-
.../components/class-field-description.hbs | 54 ++++++++---------
app/templates/components/import-example.hbs | 6 +-
app/templates/components/search-input.hbs | 8 +--
.../search-input/dropdown-result.hbs | 42 ++++++-------
.../components/search-input/dropdown.hbs | 4 +-
.../components/table-of-contents.hbs | 16 ++---
app/templates/ember-cli.hbs | 6 +-
app/templates/error.hbs | 2 +-
app/templates/events.hbs | 6 +-
app/templates/head.hbs | 16 ++---
app/templates/methods.hbs | 6 +-
app/templates/project-version.hbs | 14 ++---
.../project-version/classes/class.hbs | 60 +++++++++----------
.../project-version/modules/module.hbs | 28 ++++-----
app/templates/properties.hbs | 6 +-
20 files changed, 144 insertions(+), 143 deletions(-)
diff --git a/app/routes/class.js b/app/routes/class.js
index c764cd0d..c9c3006b 100644
--- a/app/routes/class.js
+++ b/app/routes/class.js
@@ -10,13 +10,14 @@ export default class ClassRoute extends Route {
.fetch()
.then((response) => response.json())
.then((mappings) => {
- return {
+ let ret = {
mappings: this.legacyModuleMappings.buildMappings(mappings),
className: params['class'].substr(
0,
params['class'].lastIndexOf('.')
),
};
+ return ret;
});
}
diff --git a/app/templates/application.hbs b/app/templates/application.hbs
index 276b3556..1f355c5a 100644
--- a/app/templates/application.hbs
+++ b/app/templates/application.hbs
@@ -1,5 +1,5 @@
-
+
diff --git a/app/templates/class-index.hbs b/app/templates/class-index.hbs
index 1020fc70..7a169412 100644
--- a/app/templates/class-index.hbs
+++ b/app/templates/class-index.hbs
@@ -1,4 +1,4 @@
-
+
{{#each sectionData.sections as |section|}}
{{section.title}}
@@ -6,7 +6,7 @@
{{#each section.items as |item|}}
-
+
{{item.name}}
diff --git a/app/templates/components/api-index-filter.hbs b/app/templates/components/api-index-filter.hbs
index 3082cb50..5293704e 100644
--- a/app/templates/components/api-index-filter.hbs
+++ b/app/templates/components/api-index-filter.hbs
@@ -1 +1 @@
-{{yield filteredData}}
+{{yield this.filteredData}}
diff --git a/app/templates/components/api-index.hbs b/app/templates/components/api-index.hbs
index 1b638842..0d8d74c6 100644
--- a/app/templates/components/api-index.hbs
+++ b/app/templates/components/api-index.hbs
@@ -1,3 +1,3 @@
{{yield (hash
- sections=sections)
+ sections=this.sections)
}}
diff --git a/app/templates/components/class-field-description.hbs b/app/templates/components/class-field-description.hbs
index 21f3e9ea..f1e25788 100644
--- a/app/templates/components/class-field-description.hbs
+++ b/app/templates/components/class-field-description.hbs
@@ -1,69 +1,69 @@
-
+
{{!-- TODO: Fix this link for a11y --}}
-
+
{{svg-jar 'fa-link' class="class-field-description--link-hover" width="20px" height="20px"}}
- {{field.name}}
- {{#if field.params}}
+ {{this.field.name}}
+ {{#if this.field.params}}
- ({{join ", " (map-by "name" field.params)}})
+ ({{join ", " (map-by "name" this.field.params)}})
{{/if}}
- {{#if field.return}}
- {{field.return.type}}
+ {{#if this.field.return}}
+ {{this.field.return.type}}
{{/if}}
- {{#if field.access}}
- {{field.access}}
+ {{#if this.field.access}}
+ {{this.field.access}}
{{/if}}
- {{#if field.deprecated}}
+ {{#if this.field.deprecated}}
deprecated
{{/if}}
- {{#if model.module}}
+ {{#if this.model.module}}
Module:
- {{model.module}}
+ {{this.model.module}}
{{/if}}
-
- {{#if field.inherited}}
+
+ {{#if this.field.inherited}}
Inherited from
-
- {{field.inheritedFrom}} {{field.file}}:{{field.line}}
+
+ {{this.field.inheritedFrom}} {{this.field.file}}:{{this.field.line}}
{{else}}
Defined in
-
- {{field.file}}:{{field.line}}
+
+ {{this.field.file}}:{{this.field.line}}
{{/if}}
- {{#if field.since}}
+ {{#if this.field.since}}
- Available since v{{field.since}}
+ Available since v{{this.field.since}}
{{/if}}
- {{#if (and (eq field.static 1) (eq field.itemtype "method") hasImportExample)}}
-
+ {{#if (and (eq this.field.static 1) (eq this.field.itemtype "method") this.hasImportExample)}}
+
{{/if}}
- {{#each field.params as |param|}}
+ {{#each this.field.params as |param|}}
{{param.name}}
{{param.type}}
{{param.description}}
{{/each}}
- {{#if field.return}}
+ {{#if this.field.return}}
returns
- {{field.return.type}}
- {{field.return.description}}
+ {{this.field.return.type}}
+ {{this.field.return.description}}
{{/if}}
- {{html-safe field.description}}
+ {{html-safe this.field.description}}
diff --git a/app/templates/components/import-example.hbs b/app/templates/components/import-example.hbs
index 7d1b4aef..ca61cc40 100644
--- a/app/templates/components/import-example.hbs
+++ b/app/templates/components/import-example.hbs
@@ -2,10 +2,10 @@
{{#if (is-clipboard-supported)}}
- {{#if showClipboardSuccessIcon}}
+ {{#if this.showClipboardSuccessIcon}}
{{svg-jar "success" width="24px" height="24px"}}
{{else}}
-
+
{{svg-jar "copy" width="24px" height="24px"}}
{{/if}}
@@ -14,7 +14,7 @@
- import {{item}} from '{{package}}' ;
+ import {{item}} from '{{this.package}}' ;
diff --git a/app/templates/components/search-input.hbs b/app/templates/components/search-input.hbs
index f001b1fe..cc8e5856 100644
--- a/app/templates/components/search-input.hbs
+++ b/app/templates/components/search-input.hbs
@@ -1,13 +1,13 @@
{{!-- Search results dropdown --}}
-
-
+
+
diff --git a/app/templates/components/search-input/dropdown-result.hbs b/app/templates/components/search-input/dropdown-result.hbs
index bcc04b0b..fbd124df 100644
--- a/app/templates/components/search-input/dropdown-result.hbs
+++ b/app/templates/components/search-input/dropdown-result.hbs
@@ -1,51 +1,51 @@
+ {{unless this.isSecondary 'algolia-docsearch-suggestion__secondary'}}">
- {{_primaryColumn}}
+ {{this._primaryColumn}}
- {{#if result.static}}
-
+ {{#if this.result.static}}
+
{{!-- Sometimes hierarchy lvl1 is null, fall-back to lvl0 --}}
- {{#if result._highlightResult.hierarchy.lvl1}}
- {{html-safe result._highlightResult.hierarchy.lvl1.value}}
+ {{#if this.result._highlightResult.hierarchy.lvl1}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl1.value}}
{{else}}
- {{html-safe result._highlightResult.hierarchy.lvl0.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl0.value}}
{{/if}}
- {{html-safe result._highlightResult.hierarchy.lvl2.value}}
- {{#if result._highlightResult.hierarchy.lvl3}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl2.value}}
+ {{#if this.result._highlightResult.hierarchy.lvl3}}
›
- {{html-safe result._highlightResult.hierarchy.lvl3.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl3.value}}
{{/if}}
- {{#if result._highlightResult.hierarchy.lvl4}}
+ {{#if this.result._highlightResult.hierarchy.lvl4}}
›
- {{html-safe result._highlightResult.hierarchy.lvl4.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl4.value}}
{{/if}}
{{else}}
-
+
{{!-- Sometimes hierarchy lvl1 is null, fall-back to lvl0 --}}
- {{#if result._highlightResult.hierarchy.lvl1}}
- {{html-safe result._highlightResult.hierarchy.lvl1.value}}
+ {{#if this.result._highlightResult.hierarchy.lvl1}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl1.value}}
{{else}}
- {{html-safe result._highlightResult.hierarchy.lvl0.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl0.value}}
{{/if}}
- {{html-safe result._highlightResult.hierarchy.lvl2.value}}
- {{#if result._highlightResult.hierarchy.lvl3}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl2.value}}
+ {{#if this.result._highlightResult.hierarchy.lvl3}}
›
- {{html-safe result._highlightResult.hierarchy.lvl3.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl3.value}}
{{/if}}
- {{#if result._highlightResult.hierarchy.lvl4}}
+ {{#if this.result._highlightResult.hierarchy.lvl4}}
›
- {{html-safe result._highlightResult.hierarchy.lvl4.value}}
+ {{html-safe this.result._highlightResult.hierarchy.lvl4.value}}
{{/if}}
diff --git a/app/templates/components/search-input/dropdown.hbs b/app/templates/components/search-input/dropdown.hbs
index b517b95b..3f4cfc5e 100644
--- a/app/templates/components/search-input/dropdown.hbs
+++ b/app/templates/components/search-input/dropdown.hbs
@@ -1,5 +1,5 @@
- {{#if noResults}}
+ {{#if this.noResults}}
No results found
@@ -11,7 +11,7 @@
{{else}}
{{!-- Level 0 hierarchy --}}
- {{#each-in _groupedResults as |lvl0section _lvl0results|}}
+ {{#each-in this._groupedResults as |lvl0section _lvl0results|}}
{{!-- Dropdown header --}}
diff --git a/app/templates/components/table-of-contents.hbs b/app/templates/components/table-of-contents.hbs
index 34a84fcc..c0a36667 100644
--- a/app/templates/components/table-of-contents.hbs
+++ b/app/templates/components/table-of-contents.hbs
@@ -2,11 +2,11 @@
Packages
- {{#each moduleIDs as |moduleID|}}
+ {{#each this.moduleIDs as |moduleID|}}
{{#if (not-eq moduleID "@ember/object/computed")}}
- {{moduleID}}
+ {{moduleID}}
{{/if}}
@@ -14,13 +14,13 @@
- {{#if isShowingNamespaces}}
+ {{#if this.isShowingNamespaces}}
Namespaces
- {{#each namespaceIDs as |namespaceID|}}
+ {{#each this.namespaceIDs as |namespaceID|}}
- {{namespaceID}}
+ {{namespaceID}}
{{/each}}
@@ -30,15 +30,15 @@
Classes
- {{#each classesIDs as |classID|}}
+ {{#each this.classesIDs as |classID|}}
- {{classID}}
+ {{classID}}
{{/each}}
-
+
Show Private / Deprecated
diff --git a/app/templates/ember-cli.hbs b/app/templates/ember-cli.hbs
index 01784f8a..ceb14c5c 100644
--- a/app/templates/ember-cli.hbs
+++ b/app/templates/ember-cli.hbs
@@ -7,9 +7,9 @@
Projects
- Ember
- Ember Data
- Ember CLI
+ Ember
+ Ember Data
+ Ember CLI
diff --git a/app/templates/error.hbs b/app/templates/error.hbs
index 9b7ee6e9..7ee7d02a 100644
--- a/app/templates/error.hbs
+++ b/app/templates/error.hbs
@@ -1,5 +1,5 @@
- {{#if (eq model.status 404)}}
+ {{#if (eq this.model.status 404)}}
Ack! 404 friend, you're in the wrong place
diff --git a/app/templates/events.hbs b/app/templates/events.hbs
index 6d39c539..0b6dd173 100644
--- a/app/templates/events.hbs
+++ b/app/templates/events.hbs
@@ -1,6 +1,6 @@
-
-
+
+
{{#each filteredModel.events as |event|}}
-
+
{{/each}}
diff --git a/app/templates/head.hbs b/app/templates/head.hbs
index c77dd122..b67e03fa 100644
--- a/app/templates/head.hbs
+++ b/app/templates/head.hbs
@@ -1,12 +1,12 @@
-{{model.title}}
+{{this.model.title}}
-
-
+
+
-{{#if model.description}}
-
-
+{{#if this.model.description}}
+
+
{{/if}}
-{{#unless model.isRelease}}
-
+{{#unless this.model.isRelease}}
+
{{/unless}}
\ No newline at end of file
diff --git a/app/templates/methods.hbs b/app/templates/methods.hbs
index 41f6d544..85857029 100644
--- a/app/templates/methods.hbs
+++ b/app/templates/methods.hbs
@@ -1,6 +1,6 @@
-
-
+
+
{{#each filteredModel.methods as |method|}}
-
+
{{/each}}
diff --git a/app/templates/project-version.hbs b/app/templates/project-version.hbs
index 4ffa05f5..5973d0e1 100644
--- a/app/templates/project-version.hbs
+++ b/app/templates/project-version.hbs
@@ -6,18 +6,18 @@
Projects
- Ember
- Ember Data
- Ember CLI
+ Ember
+ Ember Data
+ Ember CLI
-
+
{{outlet}}
diff --git a/app/templates/project-version/classes/class.hbs b/app/templates/project-version/classes/class.hbs
index ef204d56..93260b7e 100644
--- a/app/templates/project-version/classes/class.hbs
+++ b/app/templates/project-version/classes/class.hbs
@@ -1,72 +1,72 @@
- {{#if (is-latest version=model.projectVersion.version allVersions=allVersions)}}
- {{svg-jar "fa-pencil"}}
+ {{#if (is-latest version=@model.projectVersion.version allVersions=this.allVersions)}}
+ {{svg-jar "fa-pencil"}}
{{/if}}
- Class {{model.name}}
- {{#if model.access}}{{model.access}} {{/if}}
+ Class {{@model.name}}
+ {{#if @model.access}}{{@model.access}} {{/if}}
- {{#if model.extends}}
+ {{#if @model.extends}}
Extends:
- {{#link-to data-test-extends-link 'project-version.classes.class' model.extendedClassProjectName model.projectVersion.compactVersion model.extendedClassShortName}}{{model.extends}}{{/link-to}}
+ {{#link-to 'project-version.classes.class' @model.extendedClassProjectName @model.projectVersion.compactVersion @model.extendedClassShortName data-test-extends-link=true}}{{@model.extends}}{{/link-to}}
{{/if}}
- {{#if model.uses}}
+ {{#if @model.uses}}
Uses:
- {{#each model.usesObjects as |parentClass idx|}}
+ {{#each @model.usesObjects as |parentClass idx|}}
{{#if (not-eq idx 0)}}, {{/if}}
- {{#link-to data-test-uses-link 'project-version.classes.class' parentClass.projectId model.projectVersion.compactVersion parentClass.shortName}}{{parentClass.name}}{{/link-to}}
+ {{#link-to 'project-version.classes.class' parentClass.projectId @model.projectVersion.compactVersion parentClass.shortName data-test-uses-link=true}}{{parentClass.name}}{{/link-to}}
{{/each}}
{{/if}}
- {{#if model.file}}
+ {{#if @model.file}}
{{/if}}
- {{#if model.module}}
+ {{#if @model.module}}
Module:
- {{model.module}}
+ {{@model.module}}
{{/if}}
- {{#if model.since}}
+ {{#if @model.since}}
Since:
- v{{model.since}}
+ v{{@model.since}}
{{/if}}
- {{#if (and (not (eq static 1)) hasImportExample)}}
-
+ {{#if (and (not (eq this.static 1)) this.hasImportExample)}}
+
{{/if}}
- {{html-safe model.description}}
+ {{html-safe @model.description}}
- {{#if (or model.methods model.properties model.events)}}
+ {{#if (or @model.methods @model.properties @model.events)}}