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|}}
    1. - {{#link-to 'project-version.namespaces.namespace' version namespaceID}}{{namespaceID}}{{/link-to}} + {{namespaceID}}
    2. {{/each}}
    @@ -32,13 +32,13 @@
      {{#each classesIDs as |classID|}}
    1. - {{#link-to 'project-version.classes.class' version classID}}{{classID}}{{/link-to}} + {{classID}}
    2. {{/each}}
    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 --}} - - {{#if model.module}} + {{#if this.model.module}}
      Module: - {{model.module}} + {{this.model.module}}
      {{/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")}}
      1. - {{moduleID}} + {{moduleID}}
      2. {{/if}} @@ -14,13 +14,13 @@
    • - {{#if isShowingNamespaces}} + {{#if this.isShowingNamespaces}}
    • Namespaces
        - {{#each namespaceIDs as |namespaceID|}} + {{#each this.namespaceIDs as |namespaceID|}}
      1. - {{namespaceID}} + {{namespaceID}}
      2. {{/each}}
      @@ -30,15 +30,15 @@
    • Classes
        - {{#each classesIDs as |classID|}} + {{#each this.classesIDs as |classID|}}
      1. - {{classID}} + {{classID}}
      2. {{/each}}
    • 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
        -
      1. Ember
      2. -
      3. Ember Data
      4. -
      5. Ember CLI
      6. +
      7. Ember
      8. +
      9. Ember Data
      10. +
      11. 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
        -
      1. Ember
      2. -
      3. Ember Data
      4. -
      5. Ember CLI
      6. +
      7. Ember
      8. +
      9. Ember Data
      10. +
      11. 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)}}