diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c825bba6ad..f5f7aa8efd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [21.9.0] - 2021-11-08 +### Changed +- Misc a11y fixes +- Removed RIDIE from registries dashboard +- Replace help guide link on project registrations tab +- Hide link to wiki on Registration overview page if registration has wiki disabled +- Remove registration templates that are only for community oriented registries from the Registries Discover page registration-type facet +- Fix registration overview page subjects search + ## [21.8.0] - 2021-10-04 ### Added - bulk upload component `Branded::Moderation::-Components::UploadCsv` @@ -1801,7 +1810,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Quick Files -[Unreleased]: https://github.com/CenterForOpenScience/ember-osf-web/compare/21.7.0...develop +[21.8.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.9.0 +[21.8.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.8.0 [21.7.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.7.0 [21.6.3]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.6.3 [21.6.2]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/21.6.2 diff --git a/app/guid-node/registrations/controller.ts b/app/guid-node/registrations/controller.ts index 764ac1b785a..74f2947a4e8 100644 --- a/app/guid-node/registrations/controller.ts +++ b/app/guid-node/registrations/controller.ts @@ -55,20 +55,15 @@ export default class GuidNodeRegistrations extends Controller { this.set('schemas', schemas); } - @computed('tab') - get activeTab() { - return this.tab ? this.tab : 'registrations'; - } - @computed('node.{id,root.id,root.userHasAdminPermission}') get isComponentRootAdmin() { return this.node && this.node.id !== this.node.root.get('id') && this.node.root.get('userHasAdminPermission'); } @action - changeTab(activeId: string) { - this.set('tab', activeId === 'registrations' ? undefined : activeId); - this.analytics.click('tab', `Registrations tab - Change tab to: ${activeId}`); + changeTab(activeId: number) { + const tabName = activeId === 0 ? 'registrations' : 'drafts'; + this.analytics.click('tab', `Registrations tab - Change tab to: ${tabName}`); } @action diff --git a/app/guid-node/registrations/styles.scss b/app/guid-node/registrations/styles.scss index e005378ff47..d88d4769385 100644 --- a/app/guid-node/registrations/styles.scss +++ b/app/guid-node/registrations/styles.scss @@ -69,3 +69,43 @@ h4:global(.NewRegistrationModal__header) { :global(.PreRegChallengeModal__consent) { font-weight: normal; } + +.Tabs { + /* stylelint-disable selector-no-qualifying-type */ + ul.TabList { + margin-bottom: 10px; + border-bottom: 1px solid #ddd; + box-sizing: border-box; + color: rgb(51, 51, 51); + display: block; + line-height: 20px; + list-style-image: none; + list-style-position: outside; + list-style-type: none; + height: 41px; + padding: 0; + } + /* stylelint-enable selector-no-qualifying-type */ + .TabList { + li { + display: block; + position: relative; + margin-bottom: -1px; + float: left; + height: 41px; + padding: 10px 15px; + } + + li:global(.ember-tabs__tab--selected) { + background-color: #f8f8f8; + border-bottom: 2px solid #204762; + } + + li:hover { + border-color: transparent; + text-decoration: none; + background-color: #f8f8f8; + color: var(--primary-color); + } + } +} diff --git a/app/guid-node/registrations/template.hbs b/app/guid-node/registrations/template.hbs index 103c81ef1f1..882bfc0e99e 100644 --- a/app/guid-node/registrations/template.hbs +++ b/app/guid-node/registrations/template.hbs @@ -8,16 +8,25 @@ >
- - + {{t 'node.registrations.registrations'}} + {{#if this.node.userHasReadPermission}} + + {{t 'node.registrations.draft_registrations'}} + + {{/if}} + +
{{t 'node.registrations.learn_more' - learnMoreLink='https://openscience.zendesk.com/hc/en-us/articles/360019930893' + learnMoreLink='https://help.osf.io/hc/en-us/categories/360001550953-Registrations' htmlSafe=true }}

-
+ {{#if this.node.userHasReadPermission}} - +
{{t 'node.registrations.learn_more' - learnMoreLink='https://openscience.zendesk.com/hc/en-us/articles/360019930893' + learnMoreLink='https://help.osf.io/hc/en-us/categories/360001550953-Registrations' htmlSafe=true }}

-
+ {{/if}} -
+
{{#if this.node.userHasAdminPermission}}
diff --git a/app/institutions/index/template.hbs b/app/institutions/index/template.hbs index d5202082892..f9f84683373 100644 --- a/app/institutions/index/template.hbs +++ b/app/institutions/index/template.hbs @@ -3,6 +3,7 @@
@@ -64,6 +65,7 @@
{{#if submission.links.download}} -
+
{{t 'meetings.index.meetings-hero-banner.conference_organizers_register_panel_texts' htmlSafe=true}}
diff --git a/app/meetings/index/-components/meetings-list/template.hbs b/app/meetings/index/-components/meetings-list/template.hbs index 9460dd4e6b0..95f17dce282 100644 --- a/app/meetings/index/-components/meetings-list/template.hbs +++ b/app/meetings/index/-components/meetings-list/template.hbs @@ -5,6 +5,7 @@
- - +
{{! Remove }} diff --git a/lib/app-components/addon/components/project-contributors/search/template.hbs b/lib/app-components/addon/components/project-contributors/search/template.hbs index 7264bee1182..294ced6d181 100644 --- a/lib/app-components/addon/components/project-contributors/search/template.hbs +++ b/lib/app-components/addon/components/project-contributors/search/template.hbs @@ -5,6 +5,7 @@ class='input-group' > - - + - - - + {{t 'registries.my_registrations.submitted'}} + +
{{t 'registries.my_registrations.sorted'}}
- - - + - - + + {{/if}} diff --git a/lib/registries/addon/overview/-components/overview-topbar/template.hbs b/lib/registries/addon/overview/-components/overview-topbar/template.hbs index 2ef7bd8df64..9f74d29024c 100644 --- a/lib/registries/addon/overview/-components/overview-topbar/template.hbs +++ b/lib/registries/addon/overview/-components/overview-topbar/template.hbs @@ -25,6 +25,7 @@ @@ -71,6 +72,11 @@ @type='link' @onClick={{action (perform this.bookmark)}} local-class='ActionButton' + aria-label={{if + this.isBookmarked + (t 'registries.overview.tooltips.remove_bookmark') + (t 'registries.overview.tooltips.bookmark') + }} > - + {{#if this.registration.wikiEnabled}} + + {{/if}} ({ registeredFrom: association(), registeredBy: association(), reviewsState: RegistrationReviewStates.Accepted, + wikiEnabled: true, index(i: number) { return i; diff --git a/package.json b/package.json index fca7fde25e2..6a6bdb66299 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-osf-web", - "version": "21.8.0", + "version": "21.9.0", "description": "Ember front-end for the Open Science Framework", "license": "Apache-2.0", "author": "Center for Open Science ", @@ -112,6 +112,7 @@ "ember-ajax": "^5.0.0", "ember-angle-bracket-invocation-polyfill": "^2.0.2", "ember-animated": "^0.9.0", + "ember-aria-tabs": "^4.0.0", "ember-auto-import": "^1.11.2", "ember-bootstrap": "^4.6.3", "ember-bootstrap-datepicker": "^2.0.9", diff --git a/tests/acceptance/guid-node/registrations-test.ts b/tests/acceptance/guid-node/registrations-test.ts index b7677c70982..28039c43f1e 100644 --- a/tests/acceptance/guid-node/registrations-test.ts +++ b/tests/acceptance/guid-node/registrations-test.ts @@ -42,7 +42,7 @@ module('Acceptance | guid-node/registrations', hooks => { 'There have been no completed registrations of this project.', ); - assert.dom('[data-test-registrations-container] a[href="#drafts"]').doesNotExist( + assert.dom('[data-test-drafts-tab]').doesNotExist( 'Logged out users cannot access draft registrations tab', ); }); @@ -91,11 +91,11 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-node-card]').exists({ count: 1 }, 'One registration card shown'); - assert.dom('[data-test-registrations-container] a[href="#drafts"]').exists( + assert.dom('[data-test-drafts-tab]').exists( 'read-permission contributors can see drafts tab', ); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-registrations-pane]').isNotVisible(); @@ -139,7 +139,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-node-card]').exists({ count: 1 }); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-registrations-pane]').isNotVisible(); assert.dom('[data-test-draft-registrations-pane]').isVisible(); @@ -177,7 +177,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-new-registration-button]').exists(); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-registrations-pane]').isNotVisible(); assert.dom('[data-test-draft-registrations-pane]').isVisible(); @@ -227,7 +227,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-node-card-body]').includesText(registrationSchemaName); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-registrations-pane]').isNotVisible(); assert.dom('[data-test-draft-registrations-pane]').isVisible(); @@ -272,7 +272,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-node-card]').includesText(node.title); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-registrations-pane]').isNotVisible(); assert.dom('[data-test-draft-registrations-pane]').isVisible(); @@ -320,7 +320,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-new-registration-button]').exists({ count: 1 }); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-draft-registrations-pane]').isVisible(); @@ -355,7 +355,7 @@ module('Acceptance | guid-node/registrations', hooks => { assert.dom('[data-test-new-registration-button]').exists({ count: 1 }); - await untrackedClick('[data-test-registrations-container] a[href="#drafts"]'); + await untrackedClick('[data-test-drafts-tab]'); assert.dom('[data-test-draft-registrations-pane]').isVisible(); diff --git a/tests/engines/registries/acceptance/draft/draft-test.ts b/tests/engines/registries/acceptance/draft/draft-test.ts index 5c01ac9665e..6f01cd5ec41 100644 --- a/tests/engines/registries/acceptance/draft/draft-test.ts +++ b/tests/engines/registries/acceptance/draft/draft-test.ts @@ -887,7 +887,7 @@ module('Registries | Acceptance | draft form', hooks => { .exists('error appears for unedited, required fields after returning to metadata page: license'); // Choose a subject - await click('[data-test-subject="1"] > input'); + await click('[data-test-subject-browse-label="1"] > input'); assert.dom('[data-test-validation-errors="subjects"]') .doesNotExist('validation error for subjects gone when user makes a selection'); diff --git a/tests/engines/registries/acceptance/my-registrations-page-test.ts b/tests/engines/registries/acceptance/my-registrations-page-test.ts index 37157610836..9c0155ffe29 100644 --- a/tests/engines/registries/acceptance/my-registrations-page-test.ts +++ b/tests/engines/registries/acceptance/my-registrations-page-test.ts @@ -26,18 +26,21 @@ module('Registries | Acceptance | my-registrations page', hooks => { await visit('/registries/my-registrations'); assert.dom('[data-test-my-registrations-sort-description]').exists('Sort description shown'); assert.notOk(currentURL().includes('tab'), 'Tab query param not visible on submitted'); - assert.dom('[data-test-my-registrations-nav="submitted"]').hasClass('active', 'Submitted tab is active'); - assert.dom('[data-test-my-registrations-nav="drafts"]').doesNotHaveClass('active', 'Draft tab is not active'); + assert.dom('[data-test-my-registrations-nav="submitted"]') + .hasClass('ember-tabs__tab--selected', 'Submitted tab is active'); + assert.dom('[data-test-my-registrations-nav="drafts"]') + .doesNotHaveClass('ember-tabs__tab--selected', 'Draft tab is not active'); assert.dom('[data-test-my-registrations-pane="submitted"]').isVisible('Submitted pane is shown'); assert.dom('[data-test-my-registrations-pane="drafts"]').isNotVisible('Drafts pane is not shown'); assert.dom('[data-test-node-card]').exists({ count: 3 }, 'All submitted registrations shown'); await percySnapshot(assert); - await click('[data-test-my-registrations-nav-button="drafts"]'); + await click('[data-test-my-registrations-nav="drafts"]'); assert.ok(currentURL().includes('tab=drafts'), 'Tab query param visible on drafts'); - assert.dom('[data-test-my-registrations-nav="drafts"]').hasClass('active', 'Drafts tab is active'); - assert.dom('[data-test-my-registrations-nav="submitted"]').doesNotHaveClass('active', - 'Submitted tab is not active'); + assert.dom('[data-test-my-registrations-nav="drafts"]') + .hasClass('ember-tabs__tab--selected', 'Drafts tab is active'); + assert.dom('[data-test-my-registrations-nav="submitted"]') + .doesNotHaveClass('ember-tabs__tab--selected', 'Submitted tab is not active'); assert.dom('[data-test-my-registrations-pane="drafts"]').isVisible('Drafts pane is shown'); assert.dom('[data-test-my-registrations-pane="submitted"]').isNotVisible('Submitted pane is not shown'); assert.dom('[data-test-draft-registration-card]').exists({ count: 2 }, 'All drafts shown'); diff --git a/tests/engines/registries/acceptance/overview/index-test.ts b/tests/engines/registries/acceptance/overview/index-test.ts index e5d265e010b..8373cbfe22d 100644 --- a/tests/engines/registries/acceptance/overview/index-test.ts +++ b/tests/engines/registries/acceptance/overview/index-test.ts @@ -86,7 +86,7 @@ module('Registries | Acceptance | overview.index', hooks => { selector: '[data-analytics-name="Files"]', href: `/${this.registration.id}/files/`, }, { - selector: '[data-analytics-name="Wiki"]', + selector: '[data-test-wiki-link]', href: `/${this.registration.id}/wiki/`, }]; @@ -97,6 +97,20 @@ module('Registries | Acceptance | overview.index', hooks => { } }); + test('wiki link hidden if wiki not enabled', async function(this: OverviewTestContext, assert: Assert){ + this.set('registration', server.create('registration', { + archiving: false, + withdrawn: false, + wikiEnabled: false, + registrationSchema: server.schema.registrationSchemas.find('prereg_challenge'), + provider: server.create('registration-provider'), + }, 'withContributors', 'currentUserAdmin')); + + await visit(`/${this.registration.id}`); + + assert.dom('[data-test-wiki-link]').doesNotExist('Wiki link hidden because wiki disabled'); + }); + test('withdrawn tombstone', async function(this: OverviewTestContext, assert: Assert) { this.set('registration', server.create('registration', { registrationSchema: server.schema.registrationSchemas.find('prereg_challenge'), diff --git a/tests/engines/registries/acceptance/overview/overview-test.ts b/tests/engines/registries/acceptance/overview/overview-test.ts index f28a8af7b65..cdbf16b008e 100644 --- a/tests/engines/registries/acceptance/overview/overview-test.ts +++ b/tests/engines/registries/acceptance/overview/overview-test.ts @@ -1,5 +1,5 @@ import { capitalize } from '@ember/string'; -import { click as untrackedClick, fillIn } from '@ember/test-helpers'; +import { click as untrackedClick, fillIn, settled, triggerKeyEvent } from '@ember/test-helpers'; import { ModelInstance } from 'ember-cli-mirage'; import { setupMirage } from 'ember-cli-mirage/test-support'; import config from 'ember-get-config'; @@ -249,7 +249,7 @@ module('Registries | Acceptance | overview.overview', hooks => { ) && displayText); await visit(`/${reg.id}/`); - assert.dom('[data-test-toggle-anchor-nav-button]').isVisible(); + assert.dom('[data-test-toggle-anchor-nav-button] div').isVisible(); assert.dom('[data-test-page-anchor]').isNotVisible(); await click('[data-test-toggle-anchor-nav-button]'); @@ -453,6 +453,44 @@ module('Registries | Acceptance | overview.overview', hooks => { assert.dom('[data-test-editable-field="doi"]').doesNotExist('DOIs are only available for public registrations'); }); + test('Editable subjects', async assert => { + const subjects = [server.create('subject', { text: 'Candy and confection studies' }), + server.create('subject', { text: 'Soda and soft drink studies' })]; + const provider = server.create('registration-provider'); + provider.update({ subjects }); + const reg = server.create('registration', { + currentUserPermissions: Object.values(Permission), + provider, + }); + + await visit(`/${reg.id}/`); + + await click('[data-test-edit-button="subjects"]'); + assert.dom('[data-test-subject-widget-browse-tab]').hasAttribute('aria-selected', 'true'); + assert.dom('[data-test-selected-subject]').doesNotExist('No subjects selected'); + assert.dom('[data-test-selected-subject-placeholder]') + .hasText(t('osf-components.subjects.display.placeholder'), 'Placeholder text shown'); + assert.dom('[data-test-subject-browse-label]').exists({ count: 2 }, 'All toplevel subjects are listed'); + + await untrackedClick('[data-test-subject-browse-label="1"]'); + assert.dom('[data-test-selected-subject="Candy and confection studies"]') + .containsText('Candy and confection studies', 'One subject selected'); + + await untrackedClick('[data-test-subject-widget-search-tab]'); + assert.dom('[data-test-subject-widget-search-tab]').hasAttribute('aria-selected', 'true'); + assert.dom('[data-test-subject-search-result-label]').doesNotExist('No search results'); + + await fillIn('[data-test-subject-searchbox]', 'Soda'); + triggerKeyEvent('[data-test-subject-searchbox]', 'keyup', 'Shift'); + await settled(); + assert.dom('[data-test-subject-search-result-label]').exists('Search finds subjects'); + + await untrackedClick('[data-test-subject-search-result-checkbox="Soda and soft drink studies"]'); + assert.dom('[data-test-selected-subject="Soda and soft drink studies"]').exists('Proper subject selected'); + await click('[data-test-save-edits]'); + assert.dom('[data-test-selected-subject]').exists({ count: 2 }, 'Subjects saved'); + }); + test('Editable provider metadata', async assert => { server.create('user', 'loggedIn'); diff --git a/translations/en-us.yml b/translations/en-us.yml index 6819ba20f94..710da2fefdf 100644 --- a/translations/en-us.yml +++ b/translations/en-us.yml @@ -659,6 +659,7 @@ institutions: contact_us: 'Contact us' title: Institutions search_placeholder: 'Search institutions' + load_more: 'Load more institutions' dashboard: title: '{institutionName} Dashboard' last_update: 'Updated every 24 hours' @@ -778,6 +779,7 @@ app_components: add: Add add_contributor_success: 'Project contributor added!' add_contributor_error: 'Could not add contributor.' + perform_search: 'Perform search' project_metadata: field_title_label: 'Title:' field_title_placeholder: "" @@ -1220,6 +1222,8 @@ registries: linkText2: 'requirements and road map' line3: '. Input welcome!' contact: 'Contact us' + egap: 'EGAP' + prereg: 'Preregistration Challenge' advisory: heading: 'Advisory Group' paragraph: 'Our advisory group includes leaders in registrations across disciplines' diff --git a/yarn.lock b/yarn.lock index 0407830de5a..5e5ecb111bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4328,7 +4328,7 @@ babel-plugin-ember-modules-api-polyfill@^3.2.0: dependencies: ember-rfc176-data "^0.3.16" -babel-plugin-ember-modules-api-polyfill@^3.5.0: +babel-plugin-ember-modules-api-polyfill@^3.3.0, babel-plugin-ember-modules-api-polyfill@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-3.5.0.tgz#27b6087fac75661f779f32e60f94b14d0e9f6965" integrity sha512-pJajN/DkQUnStw0Az8c6khVcMQHgzqWr61lLNtVeu0g61LRW0k9jyK7vaedrHDWGe/Qe8sxG5wpiyW9NsMqFzA== @@ -7929,6 +7929,15 @@ ember-animated@^0.9.0: ember-maybe-import-regenerator "^0.1.5" ember-named-arguments-polyfill "^1.0.0" +ember-aria-tabs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ember-aria-tabs/-/ember-aria-tabs-4.0.0.tgz#01f9aaf98468ff21e254fdfaff7747972228cadc" + integrity sha512-hqQEXdzUMRA0RD6oMYJfkZzWngZfcFgYFBwbL4WSudBgnPSz0DrJgMtwvys0qjcP0Gs/16Jr1VAUQW8Y//lyQw== + dependencies: + ember-cached-decorator-polyfill "^0.1.1" + ember-cli-babel "7.24.0" + ember-cli-htmlbars "^5.3.1" + ember-asset-loader@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/ember-asset-loader/-/ember-asset-loader-0.6.1.tgz#2eb81221406164d19127eba5b3d10f908df89a17" @@ -8061,7 +8070,7 @@ ember-bootstrap@^4.6.3: silent-error "^1.0.1" tracked-toolbox "^1.2.1" -ember-cache-primitive-polyfill@^1.0.0: +ember-cache-primitive-polyfill@^1.0.0, ember-cache-primitive-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ember-cache-primitive-polyfill/-/ember-cache-primitive-polyfill-1.0.1.tgz#a27075443bd87e5af286c1cd8a7df24e3b9f6715" integrity sha512-hSPcvIKarA8wad2/b6jDd/eU+OtKmi6uP+iYQbzi5TQpjsqV6b4QdRqrLk7ClSRRKBAtdTuutx+m+X+WlEd2lw== @@ -8071,6 +8080,16 @@ ember-cache-primitive-polyfill@^1.0.0: ember-compatibility-helpers "^1.2.1" silent-error "^1.1.1" +ember-cached-decorator-polyfill@^0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/ember-cached-decorator-polyfill/-/ember-cached-decorator-polyfill-0.1.4.tgz#f1e2c65cc78d0d9c4ac0e047e643af477eb85ace" + integrity sha512-JOK7kBCWsTVCzmCefK4nr9BACDJk0owt9oIUaVt6Q0UtQ4XeAHmoK5kQ/YtDcxQF1ZevHQFdGhsTR3JLaHNJgA== + dependencies: + "@glimmer/tracking" "^1.0.4" + ember-cache-primitive-polyfill "^1.0.1" + ember-cli-babel "^7.21.0" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-changeset-validations@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/ember-changeset-validations/-/ember-changeset-validations-3.14.2.tgz#bb2a326d03a11d1dc3347c35c455d2e091a88176" @@ -8113,6 +8132,39 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879" integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw== +ember-cli-babel@7.24.0: + version "7.24.0" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.24.0.tgz#d58670d0f214c63a46f44f86e7c407799d77fc45" + integrity sha512-IpqMqOS1VI2wVLIREdEXG9WG05YBulg20t0K27yl2aBjmShvLMRIodcNiKataTgf/dDiU0EWQBGl7VLBLBkFgQ== + dependencies: + "@babel/core" "^7.12.0" + "@babel/helper-compilation-targets" "^7.12.0" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-decorators" "^7.10.5" + "@babel/plugin-transform-modules-amd" "^7.10.5" + "@babel/plugin-transform-runtime" "^7.12.0" + "@babel/plugin-transform-typescript" "^7.12.0" + "@babel/polyfill" "^7.11.5" + "@babel/preset-env" "^7.12.0" + "@babel/runtime" "^7.12.0" + amd-name-resolver "^1.3.1" + babel-plugin-debug-macros "^0.3.4" + babel-plugin-ember-data-packages-polyfill "^0.1.2" + babel-plugin-ember-modules-api-polyfill "^3.3.0" + babel-plugin-module-resolver "^3.2.0" + broccoli-babel-transpiler "^7.8.0" + broccoli-debug "^0.6.4" + broccoli-funnel "^2.0.2" + broccoli-source "^2.1.2" + clone "^2.1.2" + ember-cli-babel-plugin-helpers "^1.1.1" + ember-cli-version-checker "^4.1.0" + ensure-posix-path "^1.0.2" + fixturify-project "^1.10.0" + resolve-package-path "^3.1.0" + rimraf "^3.0.1" + semver "^5.5.0" + ember-cli-babel@7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.5.0.tgz#af654dcef23630391d2efe85aaa3bdf8b6ca17b7"