aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-web/.flowconfig1
-rw-r--r--server/sonar-web/package.json111
-rw-r--r--server/sonar-web/scripts/analyze.js2
-rw-r--r--server/sonar-web/scripts/start.js18
-rw-r--r--server/sonar-web/src/main/js/app/components/ComponentContainer.tsx16
-rw-r--r--server/sonar-web/src/main/js/app/components/GlobalFooterContainer.tsx (renamed from server/sonar-web/src/main/js/app/components/GlobalFooterContainer.js)3
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/Extension.js14
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/ExtensionContainer.tsx31
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/GlobalAdminPageExtension.js4
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/GlobalPageExtension.js4
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/OrganizationPageExtension.js4
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/ProjectAdminPageExtension.js4
-rw-r--r--server/sonar-web/src/main/js/app/components/extensions/ProjectPageExtension.tsx4
-rw-r--r--server/sonar-web/src/main/js/app/components/help/GlobalHelp.js3
-rw-r--r--server/sonar-web/src/main/js/app/components/help/__tests__/__snapshots__/GlobalHelp-test.js.snap10
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js10
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.tsx8
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap13
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenuItem-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBreadcrumbs-test.js.snap8
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.tsx.snap72
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavMenu-test.js.snap4
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavUser-test.js.snap12
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx14
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsNav-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/app/components/search/Search.js58
-rw-r--r--server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResult-test.js.snap29
-rw-r--r--server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResults-test.js.snap45
-rw-r--r--server/sonar-web/src/main/js/app/styles/components/search-navigator.css12
-rw-r--r--server/sonar-web/src/main/js/apps/about/components/AboutApp.js12
-rw-r--r--server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/GlobalNotifications-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Notifications-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/NotificationsList-test.js.snap24
-rw-r--r--server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/ProjectNotifications-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Projects-test.js.snap8
-rw-r--r--server/sonar-web/src/main/js/apps/account/profile/Profile.js10
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx46
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/ScannerContext-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Stacktrace-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/TaskActions-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/WorkersForm-test.tsx.snap10
-rw-r--r--server/sonar-web/src/main/js/apps/code/components/App.tsx26
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/App.js28
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js38
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.js38
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js12
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/App-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/MeasureViewSelect-test.js.snap15
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.js14
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.js2
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/DomainFacet-test.js.snap10
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/Sidebar-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/issues/components/App.js10
-rw-r--r--server/sonar-web/src/main/js/apps/issues/components/ComponentBreadcrumbs.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssueLocations-test.js.snap5
-rw-r--r--server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssuesList-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/EditionBoxes-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx64
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionForm-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/UninstallEditionForm-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/MembersList-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationDelete-test.js.snap7
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationEdit-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap5
-rw-r--r--server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap8
-rw-r--r--server/sonar-web/src/main/js/apps/overview/events/__tests__/__snapshots__/Analysis-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTagsSelector-test.js2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js10
-rw-r--r--server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGate-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGateProject-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/permissions/project/components/App.js6
-rw-r--r--server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js14
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/App.tsx16
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx26
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/WorstProjects.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/Effort-test.tsx.snap48
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/RatingFreshness-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/WorstProjects-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/GraphHistory.js26
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltips.js6
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphHistory-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsHistory-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendCustom-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendStatic-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltips-test.js.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContent-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentIssues-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap27
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap1
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js20
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPatternForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx28
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/App-test.tsx.snap7
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/DeleteBranchModal-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/LongBranchesPatternForm-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/RenameBranchModal-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/__snapshots__/Form-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/ProfileRow-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/Table-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.tsx42
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/PageSidebar-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap16
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PerspectiveSelect-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap32
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsList-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsSortingSelect-test.tsx.snap9
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterFooter.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/Filter-test.tsx.snap21
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx36
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/ChangeVisibilityForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx16
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/BulkApplyTemplateModal-test.tsx.snap28
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ChangeVisibilityForm-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/CreateProjectForm-test.tsx.snap30
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/DeleteModal-test.tsx.snap8
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Projects-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js8
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/changelog/ParameterChange.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx30
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx54
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.tsx12
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileDetails.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsFormSelect.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.tsx16
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx34
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissions-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsForm-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx31
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.tsx38
-rw-r--r--server/sonar-web/src/main/js/apps/sessions/components/__tests__/LoginForm-test.tsx14
-rw-r--r--server/sonar-web/src/main/js/apps/settings/components/Definition.js32
-rw-r--r--server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js12
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/ChangeLogLevelForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ChangeLogLevelForm-test.tsx.snap10
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ClusterSysInfos-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/StandaloneSysInfos-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthCard-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthItem-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/Section-test.tsx.snap16
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap358
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeIntermediate.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeForm-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeIntermediate-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeItem-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/system/utils.ts18
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js14
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/Onboarding-test.js.snap5
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap8
-rw-r--r--server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js14
-rw-r--r--server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UsersSelectSearch-test.js.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/Action.tsx16
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/Params.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/ActionChangelog-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Domain-test.tsx.snap5
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Menu-test.tsx.snap9
-rw-r--r--server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Params-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/Line.js14
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js26
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineCode-test.js.snap4
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineDuplicationBlock-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineIssuesList-test.js.snap2
-rw-r--r--server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap6
-rw-r--r--server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/Histogram-test.tsx.snap51
-rw-r--r--server/sonar-web/src/main/js/components/common/RestartForm.tsx5
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap10
-rw-r--r--server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/SelectList-test.js.snap6
-rw-r--r--server/sonar-web/src/main/js/components/controls/DateInput.tsx5
-rw-r--r--server/sonar-web/src/main/js/components/controls/SearchSelect.js8
-rw-r--r--server/sonar-web/src/main/js/components/controls/SimpleModal.tsx2
-rw-r--r--server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/RadioToggle-test.tsx.snap16
-rw-r--r--server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SearchSelect-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SimpleModal-test.tsx.snap8
-rw-r--r--server/sonar-web/src/main/js/components/issue/IssueView.js24
-rw-r--r--server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js8
-rw-r--r--server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/ChangelogPopup-test.js.snap5
-rw-r--r--server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetSeverityPopup-test.js.snap5
-rw-r--r--server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTransitionPopup-test.js.snap4
-rw-r--r--server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTypePopup-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/components/preview-graph/PreviewGraph.js26
-rw-r--r--server/sonar-web/src/main/js/components/preview-graph/__tests__/__snapshots__/PreviewGraphTooltips-test.js.snap3
-rw-r--r--server/sonar-web/src/main/js/helpers/urls.ts2
-rw-r--r--server/sonar-web/src/main/js/store/utils/configureStore.js2
-rw-r--r--server/sonar-web/yarn.lock1549
231 files changed, 2723 insertions, 1702 deletions
diff --git a/server/sonar-web/.flowconfig b/server/sonar-web/.flowconfig
index 77637514195..d5f3a8e2503 100644
--- a/server/sonar-web/.flowconfig
+++ b/server/sonar-web/.flowconfig
@@ -1,5 +1,6 @@
[ignore]
<PROJECT_ROOT>/node_modules/fbjs.*
+<PROJECT_ROOT>/node_modules/react-draggable
<PROJECT_ROOT>/node_modules/react-side-effect.*
<PROJECT_ROOT>/node/.*
<PROJECT_ROOT>/.vscode/.*
diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json
index 5bd751a3547..7d82399d2ad 100644
--- a/server/sonar-web/package.json
+++ b/server/sonar-web/package.json
@@ -5,110 +5,109 @@
"repository": "SonarSource/sonarqube",
"license": "LGPL-3.0",
"dependencies": {
- "babel-polyfill": "6.23.0",
+ "babel-polyfill": "6.26.0",
"backbone": "1.2.3",
"backbone.marionette": "2.4.3",
"blueimp-md5": "1.1.1",
- "classnames": "2.2.0",
- "clipboard": "1.5.5",
- "create-react-class": "15.6.0",
- "d3-array": "1.1.1",
- "d3-hierarchy": "1.1.4",
- "d3-scale": "1.0.5",
- "d3-selection": "1.0.5",
- "d3-shape": "1.0.6",
- "date-fns": "1.28.5",
+ "classnames": "2.2.5",
+ "clipboard": "1.7.1",
+ "create-react-class": "15.6.2",
+ "d3-array": "1.2.1",
+ "d3-hierarchy": "1.1.5",
+ "d3-scale": "1.0.6",
+ "d3-selection": "1.1.0",
+ "d3-shape": "1.2.0",
+ "date-fns": "1.29.0",
"escape-html": "1.0.3",
"handlebars": "2.0.0",
"history": "3.3.0",
- "intl-relativeformat": "2.0.0",
+ "intl-relativeformat": "2.1.0",
"jquery": "2.2.0",
"keymaster": "1.6.2",
"lodash": "4.17.4",
"numeral": "1.5.3",
- "prop-types": "15.5.10",
- "rc-tooltip": "3.4.7",
+ "prop-types": "15.6.0",
+ "rc-tooltip": "3.5.0",
"react": "15.6.2",
"react-dom": "15.6.2",
- "react-draggable": "2.2.6",
- "react-helmet": "5.1.3",
- "react-intl": "2.3.0",
- "react-modal": "2.2.2",
- "react-redux": "5.0.5",
+ "react-draggable": "3.0.3",
+ "react-helmet": "5.2.0",
+ "react-intl": "2.4.0",
+ "react-modal": "3.0.4",
+ "react-redux": "5.0.6",
"react-router": "3.0.5",
- "react-select": "1.0.0-rc.5",
- "react-virtualized": "9.9.0",
- "redux": "3.3.1",
- "redux-logger": "2.2.1",
- "redux-thunk": "1.0.2",
+ "react-select": "1.0.0-rc.10",
+ "react-virtualized": "9.12.0",
+ "redux": "3.7.2",
+ "redux-logger": "3.0.6",
+ "redux-thunk": "2.2.0",
"underscore": "1.8.3",
- "whatwg-fetch": "1.0.0"
+ "whatwg-fetch": "2.0.3"
},
"devDependencies": {
- "@types/classnames": "2.2.0",
+ "@types/classnames": "2.2.3",
"@types/d3-array": "1.2.1",
"@types/d3-scale": "1.0.10",
"@types/date-fns": "2.6.0",
"@types/enzyme": "2.8.6",
- "@types/escape-html": "0.0.19",
- "@types/jest": "20.0.7",
+ "@types/escape-html": "0.0.20",
+ "@types/jest": "21.1.5",
"@types/jquery": "3.2.11",
- "@types/lodash": "4.14.73",
+ "@types/lodash": "4.14.79",
"@types/numeral": "0.0.22",
- "@types/prop-types": "15.5.1",
+ "@types/prop-types": "15.5.2",
"@types/react": "16.0.2",
"@types/react-dom": "15.5.2",
"@types/react-helmet": "5.0.3",
- "@types/react-intl": "2.3.1",
- "@types/react-modal": "2.2.0",
- "@types/react-redux": "5.0.3",
+ "@types/react-intl": "2.3.2",
+ "@types/react-modal": "2.2.2",
+ "@types/react-redux": "5.0.10",
"@types/react-router": "3.0.5",
- "@types/react-select": "1.0.51",
+ "@types/react-select": "1.0.59",
"autoprefixer": "7.1.6",
"awesome-typescript-loader": "3.2.3",
- "babel-core": "^6.22.1",
- "babel-jest": "20.0.3",
- "babel-loader": "7.0.0",
- "babel-plugin-dynamic-import-node": "1.0.2",
+ "babel-core": "6.26.0",
+ "babel-jest": "21.2.0",
+ "babel-loader": "7.1.2",
+ "babel-plugin-dynamic-import-node": "1.1.0",
"babel-plugin-syntax-dynamic-import": "6.18.0",
"babel-plugin-transform-class-properties": "^6.22.0",
- "babel-plugin-transform-object-rest-spread": "^6.22.0",
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
"babel-plugin-transform-react-constant-elements": "^6.22.0",
"babel-plugin-transform-react-jsx-self": "^6.22.0",
"babel-plugin-transform-react-jsx-source": "^6.22.0",
- "babel-preset-env": "^1.1.8",
+ "babel-preset-env": "1.6.1",
"babel-preset-react": "^6.22.0",
- "chalk": "1.1.3",
- "css-loader": "0.28.4",
+ "chalk": "2.3.0",
+ "css-loader": "0.28.7",
"enzyme": "2.9.1",
- "enzyme-to-json": "1.5.1",
+ "enzyme-to-json": "2.0.1",
"eslint": "4.9.0",
- "eslint-loader": "1.8.0",
+ "eslint-loader": "1.9.0",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-jsx-a11y": "6.0.2",
"eslint-plugin-promise": "3.6.0",
"eslint-plugin-react": "7.4.0",
"expose-loader": "0.7.3",
- "extract-text-webpack-plugin": "2.1.2",
+ "extract-text-webpack-plugin": "3.0.1",
"flow-bin": "^0.52.0",
"fs-extra": "0.30.0",
- "handlebars-loader": "1.5.0",
- "html-webpack-plugin": "2.28.0",
- "jest": "20.0.4",
+ "handlebars-loader": "1.6.0",
+ "html-webpack-plugin": "2.30.1",
+ "jest": "21.2.1",
"postcss-custom-properties": "6.2.0",
"postcss-loader": "2.0.8",
- "prettier": "1.6.1",
- "react-dev-utils": "3.0.0",
+ "prettier": "1.7.4",
"react-error-overlay": "1.0.7",
"react-test-renderer": "15.6.2",
- "rimraf": "2.5.4",
- "style-loader": "0.18.2",
- "ts-jest": "20.0.10",
+ "rimraf": "2.6.2",
+ "style-loader": "0.19.0",
+ "ts-jest": "21.1.3",
"typescript": "2.5.3",
- "typescript-eslint-parser": "8.0.0",
- "webpack": "2.6.1",
- "webpack-bundle-analyzer": "2.8.2",
- "webpack-dev-server": "2.4.5"
+ "typescript-eslint-parser": "8.0.1",
+ "webpack": "3.8.1",
+ "webpack-bundle-analyzer": "2.9.0",
+ "webpack-dev-server": "2.9.3"
},
"scripts": {
"start": "node scripts/start.js",
diff --git a/server/sonar-web/scripts/analyze.js b/server/sonar-web/scripts/analyze.js
index dd1121b38c2..c821eb19790 100644
--- a/server/sonar-web/scripts/analyze.js
+++ b/server/sonar-web/scripts/analyze.js
@@ -21,7 +21,7 @@
process.env.NODE_ENV = 'production';
const webpack = require('webpack');
-const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
+const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const getConfig = require('../config/webpack.config');
const config = getConfig({ production: true });
diff --git a/server/sonar-web/scripts/start.js b/server/sonar-web/scripts/start.js
index c34df111987..21776e5036b 100644
--- a/server/sonar-web/scripts/start.js
+++ b/server/sonar-web/scripts/start.js
@@ -72,7 +72,6 @@ function setupCompiler(host, port, protocol) {
console.log(message);
console.log();
});
- return;
}
});
@@ -81,6 +80,14 @@ function setupCompiler(host, port, protocol) {
function runDevServer(compiler, host, port, protocol) {
const devServer = new WebpackDevServer(compiler, {
+ before(app) {
+ app.use(errorOverlayMiddleware());
+ app.get('/api/l10n/index', (req, res) => {
+ getMessages()
+ .then(messages => res.json({ effectiveLocale: 'en', messages }))
+ .catch(() => res.status(500));
+ });
+ },
compress: true,
clientLogLevel: 'none',
contentBase: paths.appPublic,
@@ -102,18 +109,13 @@ function runDevServer(compiler, host, port, protocol) {
'/fonts': proxy,
'/images': proxy,
'/static': proxy
- },
- setup(app) {
- app.use(errorOverlayMiddleware());
- app.get('/api/l10n/index', (req, res) => {
- getMessages().then(messages => res.json({ effectiveLocale: 'en', messages }));
- });
}
});
devServer.listen(port, err => {
if (err) {
- return console.log(err);
+ console.log(err);
+ return;
}
clearConsole();
diff --git a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
index b1b2ac07fad..f790ab376fe 100644
--- a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
+++ b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
@@ -144,14 +144,14 @@ export class ComponentContainer extends React.PureComponent<Props, State> {
return (
<div>
{component &&
- !['FIL', 'UTS'].includes(component.qualifier) && (
- <ComponentNav
- branches={branches}
- currentBranch={branch}
- component={component}
- location={this.props.location}
- />
- )}
+ !['FIL', 'UTS'].includes(component.qualifier) && (
+ <ComponentNav
+ branches={branches}
+ currentBranch={branch}
+ component={component}
+ location={this.props.location}
+ />
+ )}
{loading ? (
<div className="page page-limited">
<i className="spinner" />
diff --git a/server/sonar-web/src/main/js/app/components/GlobalFooterContainer.js b/server/sonar-web/src/main/js/app/components/GlobalFooterContainer.tsx
index 8d68f322369..e9b31253cdd 100644
--- a/server/sonar-web/src/main/js/app/components/GlobalFooterContainer.js
+++ b/server/sonar-web/src/main/js/app/components/GlobalFooterContainer.tsx
@@ -17,12 +17,11 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-// @flow
import { connect } from 'react-redux';
import { getAppState, getGlobalSettingValue } from '../../store/rootReducer';
import GlobalFooter from './GlobalFooter';
-const mapStateToProps = state => ({
+const mapStateToProps = (state: any) => ({
sonarqubeVersion: getAppState(state).version,
productionDatabase: getAppState(state).productionDatabase,
onSonarCloud: getGlobalSettingValue(state, 'sonar.sonarcloud.enabled')
diff --git a/server/sonar-web/src/main/js/app/components/extensions/Extension.js b/server/sonar-web/src/main/js/app/components/extensions/Extension.js
index d7657b83365..f1bfbf9756a 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/Extension.js
+++ b/server/sonar-web/src/main/js/app/components/extensions/Extension.js
@@ -93,8 +93,10 @@ class Extension extends React.PureComponent {
}
stopExtension() {
- this.stop && this.stop();
- this.stop = null;
+ if (this.stop) {
+ this.stop();
+ this.stop = null;
+ }
}
render() {
@@ -107,10 +109,4 @@ class Extension extends React.PureComponent {
}
}
-const mapStateToProps = state => ({
- currentUser: getCurrentUser(state)
-});
-
-const mapDispatchToProps = { onFail: addGlobalErrorMessage };
-
-export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(withRouter(Extension)));
+export default injectIntl(withRouter(Extension));
diff --git a/server/sonar-web/src/main/js/app/components/extensions/ExtensionContainer.tsx b/server/sonar-web/src/main/js/app/components/extensions/ExtensionContainer.tsx
new file mode 100644
index 00000000000..6e72ebb376d
--- /dev/null
+++ b/server/sonar-web/src/main/js/app/components/extensions/ExtensionContainer.tsx
@@ -0,0 +1,31 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2017 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+import { connect } from 'react-redux';
+import { getCurrentUser } from '../../../store/rootReducer';
+import { addGlobalErrorMessage } from '../../../store/globalMessages/duck';
+import Extension from './Extension';
+
+const mapStateToProps = (state: any) => ({
+ currentUser: getCurrentUser(state)
+});
+
+const mapDispatchToProps = { onFail: addGlobalErrorMessage };
+
+export default connect<any, any, any>(mapStateToProps, mapDispatchToProps)(Extension);
diff --git a/server/sonar-web/src/main/js/app/components/extensions/GlobalAdminPageExtension.js b/server/sonar-web/src/main/js/app/components/extensions/GlobalAdminPageExtension.js
index eff718d6168..ea9b2191b02 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/GlobalAdminPageExtension.js
+++ b/server/sonar-web/src/main/js/app/components/extensions/GlobalAdminPageExtension.js
@@ -20,7 +20,7 @@
// @flow
import React from 'react';
import { connect } from 'react-redux';
-import Extension from './Extension';
+import ExtensionContainer from './ExtensionContainer';
import ExtensionNotFound from './ExtensionNotFound';
import { getAppState } from '../../../store/rootReducer';
@@ -37,7 +37,7 @@ type Props = {
function GlobalAdminPageExtension(props /*: Props */) {
const { extensionKey, pluginKey } = props.params;
const extension = props.adminPages.find(p => p.key === `${pluginKey}/${extensionKey}`);
- return extension ? <Extension extension={extension} /> : <ExtensionNotFound />;
+ return extension ? <ExtensionContainer extension={extension} /> : <ExtensionNotFound />;
}
const mapStateToProps = state => ({
diff --git a/server/sonar-web/src/main/js/app/components/extensions/GlobalPageExtension.js b/server/sonar-web/src/main/js/app/components/extensions/GlobalPageExtension.js
index 5d82eae4917..acc4d25948c 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/GlobalPageExtension.js
+++ b/server/sonar-web/src/main/js/app/components/extensions/GlobalPageExtension.js
@@ -20,7 +20,7 @@
// @flow
import React from 'react';
import { connect } from 'react-redux';
-import Extension from './Extension';
+import ExtensionContainer from './ExtensionContainer';
import ExtensionNotFound from './ExtensionNotFound';
import { getAppState } from '../../../store/rootReducer';
@@ -37,7 +37,7 @@ type Props = {
function GlobalPageExtension(props /*: Props */) {
const { extensionKey, pluginKey } = props.params;
const extension = props.globalPages.find(p => p.key === `${pluginKey}/${extensionKey}`);
- return extension ? <Extension extension={extension} /> : <ExtensionNotFound />;
+ return extension ? <ExtensionContainer extension={extension} /> : <ExtensionNotFound />;
}
const mapStateToProps = state => ({
diff --git a/server/sonar-web/src/main/js/app/components/extensions/OrganizationPageExtension.js b/server/sonar-web/src/main/js/app/components/extensions/OrganizationPageExtension.js
index e5d38f46800..9236726d428 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/OrganizationPageExtension.js
+++ b/server/sonar-web/src/main/js/app/components/extensions/OrganizationPageExtension.js
@@ -20,7 +20,7 @@
// @flow
import React from 'react';
import { connect } from 'react-redux';
-import Extension from './Extension';
+import ExtensionContainer from './ExtensionContainer';
import ExtensionNotFound from './ExtensionNotFound';
import { getOrganizationByKey } from '../../../store/rootReducer';
import { fetchOrganization } from '../../../apps/organizations/actions';
@@ -55,7 +55,7 @@ class OrganizationPageExtension extends React.PureComponent {
const extension = pages.find(p => p.key === `${pluginKey}/${extensionKey}`);
return extension ? (
- <Extension
+ <ExtensionContainer
extension={extension}
location={this.props.location}
options={{ organization, refreshOrganization: this.refreshOrganization }}
diff --git a/server/sonar-web/src/main/js/app/components/extensions/ProjectAdminPageExtension.js b/server/sonar-web/src/main/js/app/components/extensions/ProjectAdminPageExtension.js
index 3881206d667..e2ce3c79d06 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/ProjectAdminPageExtension.js
+++ b/server/sonar-web/src/main/js/app/components/extensions/ProjectAdminPageExtension.js
@@ -20,7 +20,7 @@
// @flow
import React from 'react';
import { connect } from 'react-redux';
-import Extension from './Extension';
+import ExtensionContainer from './ExtensionContainer';
import ExtensionNotFound from './ExtensionNotFound';
import { addGlobalErrorMessage } from '../../../store/globalMessages/duck';
@@ -46,7 +46,7 @@ function ProjectAdminPageExtension(props /*: Props */) {
component.configuration &&
component.configuration.extensions.find(p => p.key === `${pluginKey}/${extensionKey}`);
return extension ? (
- <Extension extension={extension} options={{ component }} />
+ <ExtensionContainer extension={extension} options={{ component }} />
) : (
<ExtensionNotFound />
);
diff --git a/server/sonar-web/src/main/js/app/components/extensions/ProjectPageExtension.tsx b/server/sonar-web/src/main/js/app/components/extensions/ProjectPageExtension.tsx
index dc23ec8df22..4c76b21a7e7 100644
--- a/server/sonar-web/src/main/js/app/components/extensions/ProjectPageExtension.tsx
+++ b/server/sonar-web/src/main/js/app/components/extensions/ProjectPageExtension.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Extension from './Extension';
+import ExtensionContainer from './ExtensionContainer';
import ExtensionNotFound from './ExtensionNotFound';
import { Component } from '../../types';
@@ -38,7 +38,7 @@ export default function ProjectPageExtension(props: Props) {
component.extensions &&
component.extensions.find(p => p.key === `${pluginKey}/${extensionKey}`);
return extension ? (
- <Extension extension={extension} options={{ component }} />
+ <ExtensionContainer extension={extension} options={{ component }} />
) : (
<ExtensionNotFound />
);
diff --git a/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js b/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js
index 9df12c7801c..43f4616f8b8 100644
--- a/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js
+++ b/server/sonar-web/src/main/js/app/components/help/GlobalHelp.js
@@ -90,7 +90,8 @@ export default class GlobalHelp extends React.PureComponent {
<ul className="side-tabs-menu">
{(this.props.currentUser.isLoggedIn
? ['shortcuts', 'tutorials', 'links']
- : ['shortcuts', 'links']).map(this.renderMenuItem)}
+ : ['shortcuts', 'links']
+ ).map(this.renderMenuItem)}
</ul>
);
diff --git a/server/sonar-web/src/main/js/app/components/help/__tests__/__snapshots__/GlobalHelp-test.js.snap b/server/sonar-web/src/main/js/app/components/help/__tests__/__snapshots__/GlobalHelp-test.js.snap
index e9a2ed0ec03..5aaa41aa5f8 100644
--- a/server/sonar-web/src/main/js/app/components/help/__tests__/__snapshots__/GlobalHelp-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/help/__tests__/__snapshots__/GlobalHelp-test.js.snap
@@ -12,7 +12,9 @@ exports[`does not show tutorials for anonymous 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div
className="modal-head"
@@ -30,7 +32,9 @@ exports[`does not show tutorials for anonymous 1`] = `
<ul
className="side-tabs-menu"
>
- <li>
+ <li
+ key="shortcuts"
+ >
<a
className="active"
data-section="shortcuts"
@@ -40,7 +44,9 @@ exports[`does not show tutorials for anonymous 1`] = `
help.section.shortcuts
</a>
</li>
- <li>
+ <li
+ key="links"
+ >
<a
className=""
data-section="links"
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js
index 8bbd0a0c5ce..8129eeb98fd 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js
+++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBreadcrumbs.js
@@ -53,11 +53,11 @@ class ComponentNavBreadcrumbs extends React.PureComponent {
return (
<span key={item.key}>
{!displayOrganization &&
- index === 0 && (
- <span className="navbar-context-title-qualifier little-spacer-right">
- <QualifierIcon qualifier={lastItem.qualifier} />
- </span>
- )}
+ index === 0 && (
+ <span className="navbar-context-title-qualifier little-spacer-right">
+ <QualifierIcon qualifier={lastItem.qualifier} />
+ </span>
+ )}
<Link
title={item.name}
to={{ pathname: '/dashboard', query: { id: item.key } }}
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.tsx b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.tsx
index ef2234c896d..4f64dbba6ff 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.tsx
+++ b/server/sonar-web/src/main/js/app/components/nav/component/ComponentNavMenu.tsx
@@ -116,11 +116,9 @@ export default class ComponentNavMenu extends React.PureComponent<Props> {
}
}}
activeClassName="active">
- {this.isPortfolio() || this.isApplication() ? (
- translate('view_projects.page')
- ) : (
- translate('code.page')
- )}
+ {this.isPortfolio() || this.isApplication()
+ ? translate('view_projects.page')
+ : translate('code.page')}
</Link>
</li>
);
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap
index d7e28b0846b..7a01722ba4c 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenu-test.tsx.snap
@@ -39,14 +39,17 @@ exports[`renders list 1`] = `
"key": "component",
}
}
+ key="master"
onSelect={[Function]}
selected={true}
/>
<li
className="divider"
+ key="divider-baz"
/>
<li
className="dropdown-header"
+ key="orphans"
>
branches.orphan_branches
<Tooltip
@@ -78,6 +81,7 @@ exports[`renders list 1`] = `
"key": "component",
}
}
+ key="baz"
onSelect={[Function]}
selected={false}
/>
@@ -101,11 +105,13 @@ exports[`renders list 1`] = `
"key": "component",
}
}
+ key="foo"
onSelect={[Function]}
selected={false}
/>
<li
className="divider"
+ key="divider-bar"
/>
<ComponentNavBranchesMenuItem
branch={
@@ -120,14 +126,17 @@ exports[`renders list 1`] = `
"key": "component",
}
}
+ key="bar"
onSelect={[Function]}
selected={false}
/>
<li
className="divider"
+ key="divider-baz"
/>
<li
className="dropdown-header"
+ key="orphans"
>
branches.orphan_branches
<Tooltip
@@ -159,6 +168,7 @@ exports[`renders list 1`] = `
"key": "component",
}
}
+ key="baz"
onSelect={[Function]}
selected={false}
/>
@@ -213,11 +223,13 @@ exports[`searches 1`] = `
"key": "component",
}
}
+ key="foobar"
onSelect={[Function]}
selected={true}
/>
<li
className="divider"
+ key="divider-bar"
/>
<ComponentNavBranchesMenuItem
branch={
@@ -232,6 +244,7 @@ exports[`searches 1`] = `
"key": "component",
}
}
+ key="bar"
onSelect={[Function]}
selected={false}
/>
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenuItem-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenuItem-test.tsx.snap
index 1f6d81e9883..ceba812e99c 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenuItem-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBranchesMenuItem-test.tsx.snap
@@ -2,6 +2,7 @@
exports[`renders main branch 1`] = `
<li
+ key="master"
onMouseEnter={[Function]}
>
<Tooltip
@@ -61,6 +62,7 @@ exports[`renders main branch 1`] = `
exports[`renders short-living branch 1`] = `
<li
+ key="foo"
onMouseEnter={[Function]}
>
<Tooltip
@@ -131,6 +133,7 @@ exports[`renders short-living branch 1`] = `
exports[`renders short-living orhpan branch 1`] = `
<li
+ key="foo"
onMouseEnter={[Function]}
>
<Tooltip
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBreadcrumbs-test.js.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBreadcrumbs-test.js.snap
index 1588ae83e8a..259c976fd11 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBreadcrumbs-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavBreadcrumbs-test.js.snap
@@ -8,7 +8,9 @@ exports[`should not render breadcrumbs with one element 1`] = `
organization={null}
title="My Project"
/>
- <span>
+ <span
+ key="my-project"
+ >
<span
className="navbar-context-title-qualifier little-spacer-right"
>
@@ -74,7 +76,9 @@ exports[`should render organization 1`] = `
className="slash-separator"
/>
</span>
- <span>
+ <span
+ key="my-project"
+ >
<Link
className="link-base-color link-no-underline"
onlyActiveOnIndex={false}
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.tsx.snap
index 80521551658..56558732e74 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMenu-test.tsx.snap
@@ -111,7 +111,9 @@ exports[`should work for all qualifiers 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="settings"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -129,7 +131,9 @@ exports[`should work for all qualifiers 1`] = `
project_settings.page
</Link>
</li>
- <li>
+ <li
+ key="branches"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -146,7 +150,9 @@ exports[`should work for all qualifiers 1`] = `
project_branches.page
</Link>
</li>
- <li>
+ <li
+ key="project_delete"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -279,7 +285,9 @@ exports[`should work for all qualifiers 2`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="settings"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -413,7 +421,9 @@ exports[`should work for all qualifiers 3`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="project_delete"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -642,7 +652,9 @@ exports[`should work for all qualifiers 5`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="project_delete"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1009,7 +1021,9 @@ exports[`should work with extensions 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="settings"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1027,7 +1041,9 @@ exports[`should work with extensions 1`] = `
project_settings.page
</Link>
</li>
- <li>
+ <li
+ key="branches"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1044,7 +1060,9 @@ exports[`should work with extensions 1`] = `
project_branches.page
</Link>
</li>
- <li>
+ <li
+ key="foo"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1061,7 +1079,9 @@ exports[`should work with extensions 1`] = `
Foo
</Link>
</li>
- <li>
+ <li
+ key="project_delete"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1098,7 +1118,9 @@ exports[`should work with extensions 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="component-foo"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1231,7 +1253,9 @@ exports[`should work with multiple extensions 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="settings"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1249,7 +1273,9 @@ exports[`should work with multiple extensions 1`] = `
project_settings.page
</Link>
</li>
- <li>
+ <li
+ key="branches"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1266,7 +1292,9 @@ exports[`should work with multiple extensions 1`] = `
project_branches.page
</Link>
</li>
- <li>
+ <li
+ key="foo"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1283,7 +1311,9 @@ exports[`should work with multiple extensions 1`] = `
Foo
</Link>
</li>
- <li>
+ <li
+ key="bar"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1300,7 +1330,9 @@ exports[`should work with multiple extensions 1`] = `
Bar
</Link>
</li>
- <li>
+ <li
+ key="project_delete"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1337,7 +1369,9 @@ exports[`should work with multiple extensions 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="component-foo"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
@@ -1354,7 +1388,9 @@ exports[`should work with multiple extensions 1`] = `
ComponentFoo
</Link>
</li>
- <li>
+ <li
+ key="component-bar"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap
index a1dd339dfce..dea4abcd294 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/__snapshots__/ComponentNavMeta-test.tsx.snap
@@ -7,12 +7,16 @@ exports[`renders meta for long-living branch 1`] = `
<ul
className="list-inline"
>
- <li>
+ <li
+ key="analysisDate"
+ >
<DateTimeFormatter
date="2017-01-02T00:00:00.000Z"
/>
</li>
- <li>
+ <li
+ key="version"
+ >
<Tooltip
mouseEnterDelay={0.5}
overlay="version 0.0.1"
@@ -38,7 +42,9 @@ exports[`renders status of short-living branch 1`] = `
<ul
className="list-inline"
>
- <li>
+ <li
+ key="analysisDate"
+ >
<DateTimeFormatter
date="2017-01-02T00:00:00.000Z"
/>
diff --git a/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavMenu-test.js.snap b/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavMenu-test.js.snap
index c72f7259205..673cc003e3c 100644
--- a/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavMenu-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavMenu-test.js.snap
@@ -159,7 +159,9 @@ exports[`should work with extensions 1`] = `
<ul
className="dropdown-menu"
>
- <li>
+ <li
+ key="foo"
+ >
<Link
onlyActiveOnIndex={false}
style={Object {}}
diff --git a/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavUser-test.js.snap b/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavUser-test.js.snap
index 034d6700b8a..e77bc5d2d8d 100644
--- a/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavUser-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/global/__tests__/__snapshots__/GlobalNavUser-test.js.snap
@@ -197,7 +197,9 @@ exports[`should render the users organizations 1`] = `
my_organizations
</Link>
</li>
- <li>
+ <li
+ key="bar"
+ >
<OrganizationLink
onClick={[Function]}
organization={
@@ -215,7 +217,9 @@ exports[`should render the users organizations 1`] = `
</span>
</OrganizationLink>
</li>
- <li>
+ <li
+ key="foo"
+ >
<OrganizationLink
onClick={[Function]}
organization={
@@ -233,7 +237,9 @@ exports[`should render the users organizations 1`] = `
</span>
</OrganizationLink>
</li>
- <li>
+ <li
+ key="myorg"
+ >
<OrganizationLink
onClick={[Function]}
organization={
diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
index 527b8479ada..b0340d6730a 100644
--- a/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
+++ b/server/sonar-web/src/main/js/app/components/nav/settings/SettingsEditionsNotif.tsx
@@ -51,14 +51,12 @@ export default class SettingsEditionsNotif extends React.PureComponent<Props, St
return (
<NavBarNotif className="alert alert-success">
<span>
- {edition ? (
- translateWithParameters(
- 'marketplace.status_x.' + editionStatus.installationStatus,
- edition.name
- )
- ) : (
- translate('marketplace.status', editionStatus.installationStatus)
- )}
+ {edition
+ ? translateWithParameters(
+ 'marketplace.status_x.' + editionStatus.installationStatus,
+ edition.name
+ )
+ : translate('marketplace.status', editionStatus.installationStatus)}
</span>
{!preventRestart && (
<button className="js-restart spacer-left" onClick={this.handleOpenRestart}>
diff --git a/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsNav-test.tsx.snap b/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsNav-test.tsx.snap
index bded1f0a092..e33f8690286 100644
--- a/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsNav-test.tsx.snap
+++ b/server/sonar-web/src/main/js/app/components/nav/settings/__tests__/__snapshots__/SettingsNav-test.tsx.snap
@@ -55,7 +55,9 @@ exports[`should work with extensions 1`] = `
custom_metrics.page
</IndexLink>
</li>
- <li>
+ <li
+ key="foo"
+ >
<Link
activeClassName="active"
onlyActiveOnIndex={false}
diff --git a/server/sonar-web/src/main/js/app/components/search/Search.js b/server/sonar-web/src/main/js/app/components/search/Search.js
index 7f0e355d0ce..5ea8a0f915d 100644
--- a/server/sonar-web/src/main/js/app/components/search/Search.js
+++ b/server/sonar-web/src/main/js/app/components/search/Search.js
@@ -355,37 +355,37 @@ export default class Search extends React.PureComponent {
)}
{this.state.open &&
- Object.keys(this.state.results).length > 0 && (
- <div
- className="dropdown-menu dropdown-menu-right global-navbar-search-dropdown"
- ref={node => (this.node = node)}>
- <SearchResults
- allowMore={this.state.query.length !== 1}
- loadingMore={this.state.loadingMore}
- more={this.state.more}
- onMoreClick={this.searchMore}
- onSelect={this.handleSelect}
- renderNoResults={this.renderNoResults}
- renderResult={this.renderResult}
- results={this.state.results}
- selected={this.state.selected}
- />
- <div className="dropdown-bottom-hint">
- <div className="pull-right">
- <ClockIcon className="little-spacer-right" size={12} />
- {translate('recently_browsed')}
- </div>
- <div
- dangerouslySetInnerHTML={{
- __html: translateWithParameters(
- 'search.shortcut_hint',
- '<span class="shortcut-button shortcut-button-small">s</span>'
- )
- }}
+ Object.keys(this.state.results).length > 0 && (
+ <div
+ className="dropdown-menu dropdown-menu-right global-navbar-search-dropdown"
+ ref={node => (this.node = node)}>
+ <SearchResults
+ allowMore={this.state.query.length !== 1}
+ loadingMore={this.state.loadingMore}
+ more={this.state.more}
+ onMoreClick={this.searchMore}
+ onSelect={this.handleSelect}
+ renderNoResults={this.renderNoResults}
+ renderResult={this.renderResult}
+ results={this.state.results}
+ selected={this.state.selected}
/>
+ <div className="dropdown-bottom-hint">
+ <div className="pull-right">
+ <ClockIcon className="little-spacer-right" size={12} />
+ {translate('recently_browsed')}
+ </div>
+ <div
+ dangerouslySetInnerHTML={{
+ __html: translateWithParameters(
+ 'search.shortcut_hint',
+ '<span class="shortcut-button shortcut-button-small">s</span>'
+ )
+ }}
+ />
+ </div>
</div>
- </div>
- )}
+ )}
</li>
);
}
diff --git a/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResult-test.js.snap b/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResult-test.js.snap
index a99f95bc210..57349cfbdf5 100644
--- a/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResult-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResult-test.js.snap
@@ -1,7 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders favorite 1`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -48,7 +50,9 @@ exports[`renders favorite 1`] = `
`;
exports[`renders match 1`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -94,7 +98,9 @@ exports[`renders match 1`] = `
`;
exports[`renders organizations 1`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -145,7 +151,9 @@ exports[`renders organizations 1`] = `
`;
exports[`renders organizations 2`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -191,7 +199,9 @@ exports[`renders organizations 2`] = `
`;
exports[`renders projects 1`] = `
-<li>
+<li
+ key="qwe"
+>
<Tooltip
mouseEnterDelay={1}
overlay="qwe"
@@ -242,7 +252,9 @@ exports[`renders projects 1`] = `
`;
exports[`renders recently browsed 1`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -288,7 +300,9 @@ exports[`renders recently browsed 1`] = `
`;
exports[`renders selected 1`] = `
-<li>
+<li
+ key="foo"
+>
<Tooltip
mouseEnterDelay={1}
overlay="foo"
@@ -333,6 +347,7 @@ exports[`renders selected 1`] = `
exports[`renders selected 2`] = `
<li
className="active"
+ key="foo"
>
<Tooltip
mouseEnterDelay={1}
diff --git a/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResults-test.js.snap b/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResults-test.js.snap
index b93d9ef64b5..aa88bea94d8 100644
--- a/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResults-test.js.snap
+++ b/server/sonar-web/src/main/js/app/components/search/__tests__/__snapshots__/SearchResults-test.js.snap
@@ -6,17 +6,23 @@ exports[`renders "Show More" link 1`] = `
>
<li
className="dropdown-header"
+ key="header-TRK"
>
qualifiers.TRK
</li>
- <span>
+ <span
+ key="foo"
+ >
foo
</span>
- <span>
+ <span
+ key="bar"
+ >
bar
</span>
<SearchShowMore
allowMore={true}
+ key="more-TRK"
loadingMore={null}
onMoreClick={[Function]}
onSelect={[Function]}
@@ -25,16 +31,22 @@ exports[`renders "Show More" link 1`] = `
/>
<li
className="divider"
+ key="divider-BRC"
/>
<li
className="dropdown-header"
+ key="header-BRC"
>
qualifiers.BRC
</li>
- <span>
+ <span
+ key="qwe"
+ >
qwe
</span>
- <span>
+ <span
+ key="qux"
+ >
qux
</span>
</ul>
@@ -46,38 +58,53 @@ exports[`renders different components and dividers between them 1`] = `
>
<li
className="dropdown-header"
+ key="header-TRK"
>
qualifiers.TRK
</li>
- <span>
+ <span
+ key="foo"
+ >
foo
</span>
- <span>
+ <span
+ key="bar"
+ >
bar
</span>
<li
className="divider"
+ key="divider-BRC"
/>
<li
className="dropdown-header"
+ key="header-BRC"
>
qualifiers.BRC
</li>
- <span>
+ <span
+ key="qwe"
+ >
qwe
</span>
- <span>
+ <span
+ key="qux"
+ >
qux
</span>
<li
className="divider"
+ key="divider-FIL"
/>
<li
className="dropdown-header"
+ key="header-FIL"
>
qualifiers.FIL
</li>
- <span>
+ <span
+ key="zux"
+ >
zux
</span>
</ul>
diff --git a/server/sonar-web/src/main/js/app/styles/components/search-navigator.css b/server/sonar-web/src/main/js/app/styles/components/search-navigator.css
index b89d2bab0ce..8f9294c9b77 100644
--- a/server/sonar-web/src/main/js/app/styles/components/search-navigator.css
+++ b/server/sonar-web/src/main/js/app/styles/components/search-navigator.css
@@ -188,7 +188,11 @@ a.search-navigator-facet:focus .facet-stat {
bottom: 0;
right: 100%;
width: 10px;
- background-image: linear-gradient(to right, rgba(243, 243, 243, 0), var(--barBackgroundColor) 75%);
+ background-image: linear-gradient(
+ to right,
+ rgba(243, 243, 243, 0),
+ var(--barBackgroundColor) 75%
+ );
}
.search-navigator-facet .facet-toggle {
@@ -766,7 +770,11 @@ a.search-navigator-facet:focus .facet-stat {
bottom: 0;
right: 100%;
width: 10px;
- background-image: linear-gradient(to right, rgba(243, 243, 243, 0), var(--barBackgroundColor) 75%);
+ background-image: linear-gradient(
+ to right,
+ rgba(243, 243, 243, 0),
+ var(--barBackgroundColor) 75%
+ );
}
.search-navigator-header-pagination {
diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutApp.js b/server/sonar-web/src/main/js/apps/about/components/AboutApp.js
index cc3556ca910..267d0fc7cf1 100644
--- a/server/sonar-web/src/main/js/apps/about/components/AboutApp.js
+++ b/server/sonar-web/src/main/js/apps/about/components/AboutApp.js
@@ -156,12 +156,12 @@ class AboutApp extends React.PureComponent {
</div>
{customText != null &&
- customText.value && (
- <div
- className="about-page-section"
- dangerouslySetInnerHTML={{ __html: customText.value }}
- />
- )}
+ customText.value && (
+ <div
+ className="about-page-section"
+ dangerouslySetInnerHTML={{ __html: customText.value }}
+ />
+ )}
<AboutLanguages />
diff --git a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/GlobalNotifications-test.js.snap b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/GlobalNotifications-test.js.snap
index 2135246ecb6..4a7d7d10c5a 100644
--- a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/GlobalNotifications-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/GlobalNotifications-test.js.snap
@@ -15,6 +15,7 @@ exports[`should match snapshot 1`] = `
<th />
<th
className="text-center"
+ key="channel1"
>
<h4>
notification.channel.channel1
@@ -22,6 +23,7 @@ exports[`should match snapshot 1`] = `
</th>
<th
className="text-center"
+ key="channel2"
>
<h4>
notification.channel.channel2
diff --git a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Notifications-test.js.snap b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Notifications-test.js.snap
index 978e4038e91..8541cc01be7 100644
--- a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Notifications-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Notifications-test.js.snap
@@ -5,6 +5,7 @@ exports[`should match snapshot 1`] = `
className="account-body account-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="my_account.notifications"
/>
diff --git a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/NotificationsList-test.js.snap b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/NotificationsList-test.js.snap
index 3ca417ef0a0..13a18bff3c7 100644
--- a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/NotificationsList-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/NotificationsList-test.js.snap
@@ -2,12 +2,15 @@
exports[`renders project-specific labels 1`] = `
<tbody>
- <tr>
+ <tr
+ key="type1"
+ >
<td>
notification.dispatcher.type1.project
</td>
<td
className="text-center"
+ key="channel1"
>
<Checkbox
checked={true}
@@ -18,6 +21,7 @@ exports[`renders project-specific labels 1`] = `
</td>
<td
className="text-center"
+ key="channel2"
>
<Checkbox
checked={false}
@@ -27,12 +31,15 @@ exports[`renders project-specific labels 1`] = `
/>
</td>
</tr>
- <tr>
+ <tr
+ key="type2"
+ >
<td>
notification.dispatcher.type2.project
</td>
<td
className="text-center"
+ key="channel1"
>
<Checkbox
checked={true}
@@ -43,6 +50,7 @@ exports[`renders project-specific labels 1`] = `
</td>
<td
className="text-center"
+ key="channel2"
>
<Checkbox
checked={true}
@@ -57,12 +65,15 @@ exports[`renders project-specific labels 1`] = `
exports[`should match snapshot 1`] = `
<tbody>
- <tr>
+ <tr
+ key="type1"
+ >
<td>
notification.dispatcher.type1
</td>
<td
className="text-center"
+ key="channel1"
>
<Checkbox
checked={true}
@@ -73,6 +84,7 @@ exports[`should match snapshot 1`] = `
</td>
<td
className="text-center"
+ key="channel2"
>
<Checkbox
checked={false}
@@ -82,12 +94,15 @@ exports[`should match snapshot 1`] = `
/>
</td>
</tr>
- <tr>
+ <tr
+ key="type2"
+ >
<td>
notification.dispatcher.type2
</td>
<td
className="text-center"
+ key="channel1"
>
<Checkbox
checked={true}
@@ -98,6 +113,7 @@ exports[`should match snapshot 1`] = `
</td>
<td
className="text-center"
+ key="channel2"
>
<Checkbox
checked={true}
diff --git a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/ProjectNotifications-test.js.snap b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/ProjectNotifications-test.js.snap
index 3a5f1bb6f42..2fb0f7c15d1 100644
--- a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/ProjectNotifications-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/ProjectNotifications-test.js.snap
@@ -3,6 +3,7 @@
exports[`should match snapshot 1`] = `
<table
className="form big-spacer-bottom"
+ key="foo"
>
<thead>
<tr>
@@ -34,6 +35,7 @@ exports[`should match snapshot 1`] = `
</th>
<th
className="text-center"
+ key="channel1"
>
<h4>
notification.channel.channel1
@@ -41,6 +43,7 @@ exports[`should match snapshot 1`] = `
</th>
<th
className="text-center"
+ key="channel2"
>
<h4>
notification.channel.channel2
diff --git a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Projects-test.js.snap b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Projects-test.js.snap
index 0a6bbf5f267..ed54ae19c4d 100644
--- a/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Projects-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/account/notifications/__tests__/__snapshots__/Projects-test.js.snap
@@ -8,6 +8,7 @@ exports[`should render projects 1`] = `
my_profile.per_project_notifications.title
</h2>
<Connect(ProjectNotifications)
+ key="foo"
project={
Object {
"key": "foo",
@@ -16,6 +17,7 @@ exports[`should render projects 1`] = `
}
/>
<Connect(ProjectNotifications)
+ key="bar"
project={
Object {
"key": "bar",
@@ -64,6 +66,7 @@ exports[`should render projects 2`] = `
my_profile.per_project_notifications.title
</h2>
<Connect(ProjectNotifications)
+ key="foo"
project={
Object {
"key": "foo",
@@ -72,6 +75,7 @@ exports[`should render projects 2`] = `
}
/>
<Connect(ProjectNotifications)
+ key="bar"
project={
Object {
"key": "bar",
@@ -80,6 +84,7 @@ exports[`should render projects 2`] = `
}
/>
<Connect(ProjectNotifications)
+ key="qux"
project={
Object {
"key": "qux",
@@ -128,6 +133,7 @@ exports[`should render projects 3`] = `
my_profile.per_project_notifications.title
</h2>
<Connect(ProjectNotifications)
+ key="foo"
project={
Object {
"key": "foo",
@@ -136,6 +142,7 @@ exports[`should render projects 3`] = `
}
/>
<Connect(ProjectNotifications)
+ key="bar"
project={
Object {
"key": "bar",
@@ -144,6 +151,7 @@ exports[`should render projects 3`] = `
}
/>
<Connect(ProjectNotifications)
+ key="qux"
project={
Object {
"key": "qux",
diff --git a/server/sonar-web/src/main/js/apps/account/profile/Profile.js b/server/sonar-web/src/main/js/apps/account/profile/Profile.js
index 1022a377f33..4996bfcd124 100644
--- a/server/sonar-web/src/main/js/apps/account/profile/Profile.js
+++ b/server/sonar-web/src/main/js/apps/account/profile/Profile.js
@@ -50,11 +50,11 @@ function Profile(props /*: Props */) {
</div>
{!user.local &&
- user.externalProvider !== 'sonarqube' && (
- <div id="identity-provider" className="spacer-bottom">
- <UserExternalIdentity user={user} />
- </div>
- )}
+ user.externalProvider !== 'sonarqube' && (
+ <div id="identity-provider" className="spacer-bottom">
+ <UserExternalIdentity user={user} />
+ </div>
+ )}
{!!user.email && (
<div className="spacer-bottom">
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx
index c5fa551f142..1e01f0ce5a2 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { getTask } from '../../../api/ce';
import { translate } from '../../../helpers/l10n';
import { Task } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
index 7156099b54c..56c5a82e0da 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { getTask } from '../../../api/ce';
import { translate } from '../../../helpers/l10n';
import { Task } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx
index 285e7a4d50f..d6510541fc2 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskActions.tsx
@@ -86,17 +86,17 @@ export default class TaskActions extends React.PureComponent<Props, State> {
</button>
<ul className="dropdown-menu dropdown-menu-right">
{canFilter &&
- task.componentName && (
- <li>
- <a className="js-task-filter" href="#" onClick={this.handleFilterClick}>
- <i className="spacer-right icon-filter icon-gray" />
- {translateWithParameters(
- 'background_tasks.filter_by_component_x',
- task.componentName
- )}
- </a>
- </li>
- )}
+ task.componentName && (
+ <li>
+ <a className="js-task-filter" href="#" onClick={this.handleFilterClick}>
+ <i className="spacer-right icon-filter icon-gray" />
+ {translateWithParameters(
+ 'background_tasks.filter_by_component_x',
+ task.componentName
+ )}
+ </a>
+ </li>
+ )}
{canCancel && (
<li>
<a className="js-task-cancel" href="#" onClick={this.handleCancelClick}>
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.tsx
index d94228bde20..8d297463b7e 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskComponent.tsx
@@ -47,11 +47,11 @@ export default function TaskComponent({ task }: Props) {
{task.branchType === 'LONG' && <LongLivingBranchIcon className="little-spacer-right" />}
{!task.branchType &&
- task.componentQualifier && (
- <span className="little-spacer-right">
- <QualifierIcon qualifier={task.componentQualifier} />
- </span>
- )}
+ task.componentQualifier && (
+ <span className="little-spacer-right">
+ <QualifierIcon qualifier={task.componentQualifier} />
+ </span>
+ )}
{task.organization && <Organization organizationKey={task.organization} />}
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
index a3da79ab51f..60312ec8927 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
@@ -97,11 +97,11 @@ export default class Workers extends React.PureComponent<{}, State> {
return (
<div>
{!loading &&
- workerCount > 1 && (
- <Tooltip overlay={translate('background_tasks.number_of_workers.warning')}>
- <i className="icon-alert-warn little-spacer-right bt-workers-warning-icon" />
- </Tooltip>
- )}
+ workerCount > 1 && (
+ <Tooltip overlay={translate('background_tasks.number_of_workers.warning')}>
+ <i className="icon-alert-warn little-spacer-right bt-workers-warning-icon" />
+ </Tooltip>
+ )}
{translate('background_tasks.number_of_workers')}
@@ -112,26 +112,26 @@ export default class Workers extends React.PureComponent<{}, State> {
)}
{!loading &&
- canSetWorkerCount && (
- <Tooltip overlay={translate('background_tasks.change_number_of_workers')}>
- <a className="icon-edit spacer-left" href="#" onClick={this.handleChangeClick} />
- </Tooltip>
- )}
+ canSetWorkerCount && (
+ <Tooltip overlay={translate('background_tasks.change_number_of_workers')}>
+ <a className="icon-edit spacer-left" href="#" onClick={this.handleChangeClick} />
+ </Tooltip>
+ )}
{!loading &&
- !canSetWorkerCount && (
- <span className="spacer-left">
- <a className="link-no-underline" href="#" onClick={this.handleHelpClick}>
- <HelpIcon className="text-text-bottom" fill={theme.gray80} />
- </a>
- <BubblePopupHelper
- isOpen={this.state.noSupportPopup}
- position="bottomright"
- popup={<NoWorkersSupportPopup />}
- togglePopup={this.toggleNoSupportPopup}
- />
- </span>
- )}
+ !canSetWorkerCount && (
+ <span className="spacer-left">
+ <a className="link-no-underline" href="#" onClick={this.handleHelpClick}>
+ <HelpIcon className="text-text-bottom" fill={theme.gray80} />
+ </a>
+ <BubblePopupHelper
+ isOpen={this.state.noSupportPopup}
+ position="bottomright"
+ popup={<NoWorkersSupportPopup />}
+ togglePopup={this.toggleNoSupportPopup}
+ />
+ </span>
+ )}
{formOpen && <WorkersForm onClose={this.closeForm} workerCount={this.state.workerCount} />}
</div>
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx
index 1d4854b74d2..b0849315a4e 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx
@@ -18,8 +18,8 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
-import * as Select from 'react-select';
+import * as Modal from 'react-modal';
+import Select from 'react-select';
import { times } from 'lodash';
import { setWorkerCount } from '../../../api/ce';
import { translate } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
index 940fe3341da..4c86aa33142 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskActions-test.tsx
@@ -35,7 +35,7 @@ it('shows stack trace', () => {
click(wrapper.find('.js-task-show-stacktrace'));
expect(wrapper.find('Stacktrace')).toMatchSnapshot();
wrapper.find('Stacktrace').prop<Function>('onClose')();
- expect(wrapper.find('Stacktrace')).toMatchSnapshot();
+ expect(wrapper.find('Stacktrace').exists()).toBeFalsy();
});
it('shows scanner context', () => {
@@ -43,7 +43,7 @@ it('shows scanner context', () => {
click(wrapper.find('.js-task-show-scanner-context'));
expect(wrapper.find('ScannerContext')).toMatchSnapshot();
wrapper.find('ScannerContext').prop<Function>('onClose')();
- expect(wrapper.find('ScannerContext')).toMatchSnapshot();
+ expect(wrapper.find('ScannerContext').exists()).toBeFalsy();
});
function shallowRender(fields?: any, props?: any) {
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/ScannerContext-test.tsx.snap b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/ScannerContext-test.tsx.snap
index 791da5f3492..d456c84d89e 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/ScannerContext-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/ScannerContext-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Stacktrace-test.tsx.snap b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Stacktrace-test.tsx.snap
index 983e455792a..77022e03f21 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Stacktrace-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Stacktrace-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/TaskActions-test.tsx.snap b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/TaskActions-test.tsx.snap
index 9de3ec891a0..aabe0783b3d 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/TaskActions-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/TaskActions-test.tsx.snap
@@ -251,8 +251,6 @@ exports[`shows scanner context 1`] = `
/>
`;
-exports[`shows scanner context 2`] = `undefined`;
-
exports[`shows stack trace 1`] = `
<Stacktrace
onClose={[Function]}
@@ -268,5 +266,3 @@ exports[`shows stack trace 1`] = `
}
/>
`;
-
-exports[`shows stack trace 2`] = `undefined`;
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/WorkersForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/WorkersForm-test.tsx.snap
index 8ff615ea5e0..379c4e1d9b1 100644
--- a/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/WorkersForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/WorkersForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`changes select 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -38,6 +40,7 @@ exports[`changes select 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -58,6 +61,8 @@ exports[`changes select 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -155,7 +160,9 @@ exports[`changes select 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -181,6 +188,7 @@ exports[`changes select 2`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -201,6 +209,8 @@ exports[`changes select 2`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
diff --git a/server/sonar-web/src/main/js/apps/code/components/App.tsx b/server/sonar-web/src/main/js/apps/code/components/App.tsx
index 2fd66d70ad7..13718a6f520 100644
--- a/server/sonar-web/src/main/js/apps/code/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/code/components/App.tsx
@@ -223,21 +223,21 @@ export default class App extends React.PureComponent<Props, State> {
)}
{sourceViewer === undefined &&
- components !== undefined && (
- <div className={componentsClassName}>
- <Components
- baseComponent={baseComponent}
- branch={branchName}
- components={components}
- rootComponent={component}
- />
- </div>
- )}
+ components !== undefined && (
+ <div className={componentsClassName}>
+ <Components
+ baseComponent={baseComponent}
+ branch={branchName}
+ components={components}
+ rootComponent={component}
+ />
+ </div>
+ )}
{sourceViewer === undefined &&
- components !== undefined && (
- <ListFooter count={components.length} total={total} loadMore={this.handleLoadMore} />
- )}
+ components !== undefined && (
+ <ListFooter count={components.length} total={total} loadMore={this.handleLoadMore} />
+ )}
{sourceViewer !== undefined && (
<div className="spacer-top">
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/App.js b/server/sonar-web/src/main/js/apps/component-measures/components/App.js
index a33340530ea..e5a483dcac8 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/App.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/App.js
@@ -182,20 +182,20 @@ export default class App extends React.PureComponent {
/>
)}
{metric == null &&
- hasBubbleChart(query.metric) && (
- <MeasureOverviewContainer
- branch={branch && getBranchName(branch)}
- className="layout-page-main"
- rootComponent={component}
- currentUser={this.props.currentUser}
- domain={query.metric}
- leakPeriod={leakPeriod}
- metrics={metrics}
- router={this.props.router}
- selected={query.selected}
- updateQuery={this.updateQuery}
- />
- )}
+ hasBubbleChart(query.metric) && (
+ <MeasureOverviewContainer
+ branch={branch && getBranchName(branch)}
+ className="layout-page-main"
+ rootComponent={component}
+ currentUser={this.props.currentUser}
+ domain={query.metric}
+ leakPeriod={leakPeriod}
+ metrics={metrics}
+ router={this.props.router}
+ selected={query.selected}
+ updateQuery={this.updateQuery}
+ />
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js
index 12f3616697d..b27e5ad74c6 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.js
@@ -295,12 +295,12 @@ export default class MeasureContent extends React.PureComponent {
rootComponent={rootComponent}
/>
{component.key !== rootComponent.key &&
- isLoggedIn && (
- <MeasureFavoriteContainer
- component={component.key}
- className="measure-favorite spacer-right"
- />
- )}
+ isLoggedIn && (
+ <MeasureFavoriteContainer
+ component={component.key}
+ className="measure-favorite spacer-right"
+ />
+ )}
{!isFile && (
<MeasureViewSelect
className="measure-view-select"
@@ -324,19 +324,19 @@ export default class MeasureContent extends React.PureComponent {
<MetricNotFound className="layout-page-main-inner measure-details-content" />
)}
{metric != null &&
- measure != null && (
- <div className="layout-page-main-inner measure-details-content">
- <MeasureHeader
- branch={branch}
- component={component}
- components={this.state.components}
- leakPeriod={this.props.leakPeriod}
- measure={measure}
- secondaryMeasure={this.props.secondaryMeasure}
- />
- {isFileType(component) ? this.renderCode() : this.renderMeasure()}
- </div>
- )}
+ measure != null && (
+ <div className="layout-page-main-inner measure-details-content">
+ <MeasureHeader
+ branch={branch}
+ component={component}
+ components={this.state.components}
+ leakPeriod={this.props.leakPeriod}
+ measure={measure}
+ secondaryMeasure={this.props.secondaryMeasure}
+ />
+ {isFileType(component) ? this.renderCode() : this.renderMeasure()}
+ </div>
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.js
index 695c68ea26b..bbbded8e6c1 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.js
@@ -80,27 +80,27 @@ export default function MeasureHeader(props /*: Props*/) {
</div>
</div>
{secondaryMeasure &&
- secondaryMeasure.metric.key === 'ncloc_language_distribution' && (
- <div className="measure-details-secondary">
- <LanguageDistributionContainer
- alignTicks={true}
- distribution={secondaryMeasure.value}
- width={260}
- />
- </div>
- )}
+ secondaryMeasure.metric.key === 'ncloc_language_distribution' && (
+ <div className="measure-details-secondary">
+ <LanguageDistributionContainer
+ alignTicks={true}
+ distribution={secondaryMeasure.value}
+ width={260}
+ />
+ </div>
+ )}
{secondaryMeasure &&
- secondaryMeasure.metric.key === 'function_complexity_distribution' && (
- <div className="measure-details-secondary">
- <ComplexityDistribution distribution={secondaryMeasure.value} of="function" />
- </div>
- )}
+ secondaryMeasure.metric.key === 'function_complexity_distribution' && (
+ <div className="measure-details-secondary">
+ <ComplexityDistribution distribution={secondaryMeasure.value} of="function" />
+ </div>
+ )}
{secondaryMeasure &&
- secondaryMeasure.metric.key === 'file_complexity_distribution' && (
- <div className="measure-details-secondary">
- <ComplexityDistribution distribution={secondaryMeasure.value} of="file" />
- </div>
- )}
+ secondaryMeasure.metric.key === 'file_complexity_distribution' && (
+ <div className="measure-details-secondary">
+ <ComplexityDistribution distribution={secondaryMeasure.value} of="file" />
+ </div>
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js
index 91d5cf8d669..8dd310c8a10 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.js
@@ -152,12 +152,12 @@ export default class MeasureOverview extends React.PureComponent {
rootComponent={rootComponent}
/>
{component.key !== rootComponent.key &&
- isLoggedIn && (
- <MeasureFavoriteContainer
- component={component.key}
- className="measure-favorite spacer-right"
- />
- )}
+ isLoggedIn && (
+ <MeasureFavoriteContainer
+ component={component.key}
+ className="measure-favorite spacer-right"
+ />
+ )}
<PageActions
current={this.state.components.length}
loading={this.props.loading}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/App-test.js.snap b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/App-test.js.snap
index 24354987bd6..0477a149877 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/App-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/App-test.js.snap
@@ -6,6 +6,7 @@ exports[`should render correctly 1`] = `
id="component-measures"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="layout.measures"
/>
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/MeasureViewSelect-test.js.snap b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/MeasureViewSelect-test.js.snap
index 7ab0276dde2..c007678dbab 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/MeasureViewSelect-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/__snapshots__/MeasureViewSelect-test.js.snap
@@ -12,6 +12,7 @@ exports[`should display correctly with treemap option 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -32,6 +33,8 @@ exports[`should display correctly with treemap option 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -39,30 +42,30 @@ exports[`should display correctly with treemap option 1`] = `
"icon": <ListIcon />,
"label": <div>
<ListIcon
- className="little-spacer-right"
+ className="little-spacer-right"
/>
component_measures.tab.list
- </div>,
+ </div>,
"value": "list",
},
Object {
"icon": <TreeIcon />,
"label": <div>
<TreeIcon
- className="little-spacer-right"
+ className="little-spacer-right"
/>
component_measures.tab.tree
- </div>,
+ </div>,
"value": "tree",
},
Object {
"icon": <TreemapIcon />,
"label": <div>
<TreemapIcon
- className="little-spacer-right"
+ className="little-spacer-right"
/>
component_measures.tab.treemap
- </div>,
+ </div>,
"value": "treemap",
},
]
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.js b/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.js
index 1d7be5e5b3b..702dd80038e 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.js
@@ -131,13 +131,13 @@ export default class ListView extends React.PureComponent {
selectedComponent={this.props.selectedKey}
/>
{this.props.paging &&
- this.props.components.length > 0 && (
- <ListFooter
- count={this.props.components.length}
- total={this.props.paging.total}
- loadMore={this.props.fetchMore}
- />
- )}
+ this.props.components.length > 0 && (
+ <ListFooter
+ count={this.props.components.length}
+ total={this.props.paging.total}
+ loadMore={this.props.fetchMore}
+ />
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.js b/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.js
index b836d061c7d..875f750d7db 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.js
@@ -202,7 +202,7 @@ export default class TreeMapView extends React.PureComponent {
</li>
<li className="pull-right">{this.renderLegend()}</li>
</ul>
- <AutoSizer>
+ <AutoSizer disableHeight={true}>
{({ width }) => (
<TreeMap
items={treemapItems}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/DomainFacet-test.js.snap b/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/DomainFacet-test.js.snap
index fd5ddec46a2..9c88f409c2d 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/DomainFacet-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/DomainFacet-test.js.snap
@@ -13,6 +13,7 @@ exports[`should display facet item list 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="Reliability"
name={
<span
id="measure-overview-Reliability-name"
@@ -30,6 +31,7 @@ exports[`should display facet item list 1`] = `
/>
<span
className="facet search-navigator-facet facet-category"
+ key="new_code_category"
>
<span
className="facet-name"
@@ -41,6 +43,7 @@ exports[`should display facet item list 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="new_bugs"
name={
<span
className="big-spacer-left"
@@ -75,6 +78,7 @@ exports[`should display facet item list 1`] = `
/>
<span
className="facet search-navigator-facet facet-category"
+ key="overall_category"
>
<span
className="facet-name"
@@ -86,6 +90,7 @@ exports[`should display facet item list 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="bugs"
name={
<span
className="big-spacer-left"
@@ -140,6 +145,7 @@ exports[`should display facet item list with bugs selected 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="Reliability"
name={
<span
id="measure-overview-Reliability-name"
@@ -157,6 +163,7 @@ exports[`should display facet item list with bugs selected 1`] = `
/>
<span
className="facet search-navigator-facet facet-category"
+ key="new_code_category"
>
<span
className="facet-name"
@@ -168,6 +175,7 @@ exports[`should display facet item list with bugs selected 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="new_bugs"
name={
<span
className="big-spacer-left"
@@ -202,6 +210,7 @@ exports[`should display facet item list with bugs selected 1`] = `
/>
<span
className="facet search-navigator-facet facet-category"
+ key="overall_category"
>
<span
className="facet-name"
@@ -213,6 +222,7 @@ exports[`should display facet item list with bugs selected 1`] = `
active={true}
disabled={false}
halfWidth={false}
+ key="bugs"
name={
<span
className="big-spacer-left"
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/Sidebar-test.js.snap b/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/Sidebar-test.js.snap
index 2472444bb70..2a3aab950cb 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/Sidebar-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/__tests__/__snapshots__/Sidebar-test.js.snap
@@ -49,6 +49,7 @@ exports[`should display two facets 1`] = `
"name": "Coverage",
}
}
+ key="Coverage"
onChange={[Function]}
onToggle={[Function]}
open={false}
@@ -78,6 +79,7 @@ exports[`should display two facets 1`] = `
"name": "Duplications",
}
}
+ key="Duplications"
onChange={[Function]}
onToggle={[Function]}
open={true}
diff --git a/server/sonar-web/src/main/js/apps/issues/components/App.js b/server/sonar-web/src/main/js/apps/issues/components/App.js
index 864ca2b5d09..94b226cb89d 100644
--- a/server/sonar-web/src/main/js/apps/issues/components/App.js
+++ b/server/sonar-web/src/main/js/apps/issues/components/App.js
@@ -806,9 +806,13 @@ export default class App extends React.PureComponent {
selectedLocationIndex={this.state.selectedLocationIndex}
/>
{paging != null &&
- paging.total > 0 && (
- <ListFooter total={paging.total} count={issues.length} loadMore={this.fetchMoreIssues} />
- )}
+ paging.total > 0 && (
+ <ListFooter
+ total={paging.total}
+ count={issues.length}
+ loadMore={this.fetchMoreIssues}
+ />
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/issues/components/ComponentBreadcrumbs.tsx b/server/sonar-web/src/main/js/apps/issues/components/ComponentBreadcrumbs.tsx
index b086fb5a125..22332785306 100644
--- a/server/sonar-web/src/main/js/apps/issues/components/ComponentBreadcrumbs.tsx
+++ b/server/sonar-web/src/main/js/apps/issues/components/ComponentBreadcrumbs.tsx
@@ -61,15 +61,15 @@ export default function ComponentBreadcrumbs({ branch, component, issue, organiz
)}
{displaySubProject &&
- issue.subProject !== undefined &&
- issue.subProjectName !== undefined && (
- <span title={issue.subProjectName}>
- <Link to={getProjectUrl(issue.subProject, branch)} className="link-no-underline">
- {limitComponentName(issue.subProjectName)}
- </Link>
- <span className="slash-separator" />
- </span>
- )}
+ issue.subProject !== undefined &&
+ issue.subProjectName !== undefined && (
+ <span title={issue.subProjectName}>
+ <Link to={getProjectUrl(issue.subProject, branch)} className="link-no-underline">
+ {limitComponentName(issue.subProjectName)}
+ </Link>
+ <span className="slash-separator" />
+ </span>
+ )}
<Link to={getProjectUrl(issue.component, branch)} className="link-no-underline">
<span title={issue.componentLongName}>{collapsePath(issue.componentLongName)}</span>
diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssueLocations-test.js.snap b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssueLocations-test.js.snap
index b66e4a8d097..f9973b06e0c 100644
--- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssueLocations-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssueLocations-test.js.snap
@@ -6,6 +6,7 @@ exports[`should render one flow 1`] = `
>
<ConciseIssueLocationBadge
count={3}
+ key="0"
onClick={[Function]}
selected={false}
/>
@@ -18,6 +19,7 @@ exports[`should render secondary locations 1`] = `
>
<ConciseIssueLocationBadge
count={3}
+ key="-1"
selected={true}
/>
</div>
@@ -29,16 +31,19 @@ exports[`should render several flows 1`] = `
>
<ConciseIssueLocationBadge
count={3}
+ key="0"
onClick={[Function]}
selected={false}
/>
<ConciseIssueLocationBadge
count={2}
+ key="1"
onClick={[Function]}
selected={false}
/>
<ConciseIssueLocationBadge
count={3}
+ key="2"
onClick={[Function]}
selected={false}
/>
diff --git a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssuesList-test.js.snap b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssuesList-test.js.snap
index 1c8a20f3792..b6bc2b99242 100644
--- a/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssuesList-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/issues/conciseIssuesList/__tests__/__snapshots__/ConciseIssuesList-test.js.snap
@@ -8,6 +8,7 @@ exports[`should render 1`] = `
"key": "foo",
}
}
+ key="foo"
previousIssue={null}
scroll={[Function]}
selected={false}
@@ -18,6 +19,7 @@ exports[`should render 1`] = `
"key": "bar",
}
}
+ key="bar"
previousIssue={
Object {
"key": "foo",
diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap b/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
index d6d4ef6ac7b..d384037257b 100644
--- a/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/AssigneeFacet-test.js.snap
@@ -23,6 +23,7 @@ exports[`should render 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="foo"
name={
<span>
<Connect(Avatar)
@@ -42,6 +43,7 @@ exports[`should render 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="bar"
name="bar"
onClick={[Function]}
stat="7"
@@ -107,6 +109,7 @@ exports[`should select unassigned 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="foo"
name={
<span>
<Connect(Avatar)
@@ -126,6 +129,7 @@ exports[`should select unassigned 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="bar"
name="bar"
onClick={[Function]}
stat="7"
@@ -167,6 +171,7 @@ exports[`should select user 1`] = `
active={true}
disabled={false}
halfWidth={false}
+ key="foo"
name={
<span>
<Connect(Avatar)
@@ -186,6 +191,7 @@ exports[`should select user 1`] = `
active={false}
disabled={false}
halfWidth={false}
+ key="bar"
name="bar"
onClick={[Function]}
stat="7"
diff --git a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/EditionBoxes-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/EditionBoxes-test.tsx.snap
index 952e8dc78c1..bd62c3de370 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/EditionBoxes-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/EditionBoxes-test.tsx.snap
@@ -15,9 +15,9 @@ exports[`should display an error message 1`] = `
"url": <a
href="https://redirect.sonarsource.com/editions/editions.html"
target="_blank"
- >
+ >
SonarSource.com
- </a>,
+ </a>,
}
}
/>
@@ -56,6 +56,7 @@ exports[`should display the edition boxes correctly 2`] = `
}
}
isDowngrade={true}
+ key="comunity"
onInstall={[Function]}
onUninstall={[Function]}
/>
@@ -80,6 +81,7 @@ exports[`should display the edition boxes correctly 2`] = `
}
}
isDowngrade={false}
+ key="developer"
onInstall={[Function]}
onUninstall={[Function]}
/>
diff --git a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
index b30e1e22d36..7e8801a1e0c 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/__tests__/__snapshots__/PendingActions-test.tsx.snap
@@ -21,7 +21,7 @@ exports[`should display pending actions 1`] = `
Object {
"nb": <strong>
2
- </strong>,
+ </strong>,
}
}
/>
@@ -34,7 +34,7 @@ exports[`should display pending actions 1`] = `
Object {
"nb": <strong>
1
- </strong>,
+ </strong>,
}
}
/>
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx
index abab7c84ed4..ee86ac11596 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import LicenseEditionSet from './LicenseEditionSet';
import { Edition, EditionStatus, applyLicense } from '../../../api/marketplace';
import { translate, translateWithParameters } from '../../../helpers/l10n';
@@ -108,11 +108,9 @@ export default class LicenseEditionForm extends React.PureComponent<Props, State
{submitting && <i className="spinner spacer-right" />}
{status && (
<button className="js-confirm" onClick={this.handleConfirmClick} disabled={submitting}>
- {status === 'AUTOMATIC_INSTALL' ? (
- translate('marketplace.install')
- ) : (
- translate('save')
- )}
+ {status === 'AUTOMATIC_INSTALL'
+ ? translate('marketplace.install')
+ : translate('save')}
</button>
)}
<a className="js-modal-close" href="#" onClick={this.handleCancelClick}>
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx
index 501631edadc..df898dbdbeb 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx
@@ -91,19 +91,19 @@ export default class PluginActions extends React.PureComponent<Props, State> {
</p>
)}
{isPluginInstalled(plugin) &&
- plugin.updates &&
- plugin.updates.length > 0 && (
- <div className="spacer-top button-group">
- {plugin.updates.map((update, idx) => (
- <PluginUpdateButton
- key={idx}
- onClick={this.handleUpdate}
- update={update}
- disabled={this.state.loading}
- />
- ))}
- </div>
- )}
+ plugin.updates &&
+ plugin.updates.length > 0 && (
+ <div className="spacer-top button-group">
+ {plugin.updates.map((update, idx) => (
+ <PluginUpdateButton
+ key={idx}
+ onClick={this.handleUpdate}
+ update={update}
+ disabled={this.state.loading}
+ />
+ ))}
+ </div>
+ )}
</div>
);
}
@@ -119,25 +119,25 @@ export default class PluginActions extends React.PureComponent<Props, State> {
return (
<div className="js-actions">
{isPluginAvailable(plugin) &&
- plugin.termsAndConditionsUrl && (
- <p className="little-spacer-bottom">
- <Checkbox
- checked={this.state.acceptTerms}
- className="js-terms"
- id={'plugin-terms-' + plugin.key}
- onCheck={this.handleTermsCheck}>
- <label className="little-spacer-left" htmlFor={'plugin-terms-' + plugin.key}>
- {translate('marketplace.i_accept_the')}
- </label>
- </Checkbox>
- <a
- className="js-plugin-terms nowrap little-spacer-left"
- href={plugin.termsAndConditionsUrl}
- target="_blank">
- {translate('marketplace.terms_and_conditions')}
- </a>
- </p>
- )}
+ plugin.termsAndConditionsUrl && (
+ <p className="little-spacer-bottom">
+ <Checkbox
+ checked={this.state.acceptTerms}
+ className="js-terms"
+ id={'plugin-terms-' + plugin.key}
+ onCheck={this.handleTermsCheck}>
+ <label className="little-spacer-left" htmlFor={'plugin-terms-' + plugin.key}>
+ {translate('marketplace.i_accept_the')}
+ </label>
+ </Checkbox>
+ <a
+ className="js-plugin-terms nowrap little-spacer-left"
+ href={plugin.termsAndConditionsUrl}
+ target="_blank">
+ {translate('marketplace.terms_and_conditions')}
+ </a>
+ </p>
+ )}
{loading && <i className="spinner spacer-right" />}
{isPluginInstalled(plugin) && (
<div className="display-inlin-block">
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx b/server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx
index 37b76edc83e..1af1ee86295 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { Edition, EditionStatus, uninstallEdition } from '../../../api/marketplace';
import { translate, translateWithParameters } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionForm-test.tsx.snap
index 9e07155c292..bd4aa78eb6a 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/LicenseEditionForm-test.tsx.snap
@@ -42,7 +42,9 @@ exports[`should display correctly 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
index 5c6e0ab7138..5a77d6923b2 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/PluginLicense-test.tsx.snap
@@ -15,9 +15,9 @@ exports[`should display the license field 1`] = `
Object {
"license": <span
className="js-plugin-license"
- >
+ >
SonarSource license
- </span>,
+ </span>,
}
}
/>
diff --git a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/UninstallEditionForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/UninstallEditionForm-test.tsx.snap
index 507f7e4fe73..05cefbe37c2 100644
--- a/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/UninstallEditionForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/marketplace/components/__tests__/__snapshots__/UninstallEditionForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`should display correctly 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/MembersList-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/MembersList-test.js.snap
index a472b00b798..4bc29637672 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/MembersList-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/MembersList-test.js.snap
@@ -6,6 +6,7 @@ exports[`should render a list of members of an organization 1`] = `
>
<tbody>
<MembersListItem
+ key="admin"
member={
Object {
"avatar": "",
@@ -22,6 +23,7 @@ exports[`should render a list of members of an organization 1`] = `
}
/>
<MembersListItem
+ key="john"
member={
Object {
"avatar": "7daf6c79d4802916d83f6266e24850af",
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationDelete-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationDelete-test.js.snap
index 508cdecb71b..b34a9e508da 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationDelete-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationDelete-test.js.snap
@@ -5,6 +5,7 @@ exports[`smoke test 1`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.delete"
/>
@@ -39,6 +40,7 @@ exports[`smoke test 2`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.delete"
/>
@@ -75,7 +77,9 @@ exports[`smoke test 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -122,6 +126,7 @@ exports[`smoke test 3`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.delete"
/>
@@ -158,7 +163,9 @@ exports[`smoke test 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationEdit-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationEdit-test.js.snap
index 6c13ca615a2..9dc712473f2 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationEdit-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationEdit-test.js.snap
@@ -5,6 +5,7 @@ exports[`smoke test 1`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.edit"
/>
@@ -137,6 +138,7 @@ exports[`smoke test 2`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.edit"
/>
@@ -284,6 +286,7 @@ exports[`smoke test 3`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.edit"
/>
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap
index 17ab36b7540..9a13da1aa21 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationMembers-test.js.snap
@@ -5,6 +5,7 @@ exports[`should not render actions for non admin 1`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.members.page"
/>
@@ -55,6 +56,7 @@ exports[`should render actions for admin 1`] = `
className="page page-limited"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="organization.members.page"
/>
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
index f63164ef1e0..350cc9b5d80 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/__tests__/__snapshots__/OrganizationPage-test.js.snap
@@ -16,6 +16,7 @@ exports[`smoke test 2`] = `
<div>
<HelmetWrapper
defaultTitle="Foo"
+ defer={true}
encodeSpecialCharacters={true}
titleTemplate="%s - Foo"
/>
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
index b00ff229314..96d42f26097 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/AddMemberForm-test.js.snap
@@ -24,7 +24,9 @@ exports[`should render and open the modal 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
index 3f450483d13..751d905c910 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/ManageMemberGroupsForm-test.js.snap
@@ -94,7 +94,9 @@ exports[`should render and open the modal 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -126,6 +128,7 @@ exports[`should render and open the modal 2`] = `
"name": "professionals",
}
}
+ key="7"
onCheck={[Function]}
/>
<OrganizationGroupCheckbox
@@ -138,6 +141,7 @@ exports[`should render and open the modal 2`] = `
"name": "pull-request-analysers",
}
}
+ key="11"
onCheck={[Function]}
/>
<OrganizationGroupCheckbox
@@ -150,6 +154,7 @@ exports[`should render and open the modal 2`] = `
"name": "sonar-administrators",
}
}
+ key="1"
onCheck={[Function]}
/>
</ul>
diff --git a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
index 5b298e526ba..b1b8bdb072d 100644
--- a/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/organizations/components/forms/__tests__/__snapshots__/RemoveMemberForm-test.js.snap
@@ -39,7 +39,9 @@ exports[`should render and open the modal 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap b/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
index cb842597822..f7c73f3b9fb 100644
--- a/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/ApplicationLeakPeriodLegend-test.js.snap
@@ -25,14 +25,18 @@ exports[`renders 2`] = `
<ul
className="text-left"
>
- <li>
+ <li
+ key="foo"
+ >
Foo
:
<DateTooltipFormatter
date="2017-01-01T11:39:03+0100"
/>
</li>
- <li>
+ <li
+ key="bar"
+ >
Bar
:
<DateTooltipFormatter
diff --git a/server/sonar-web/src/main/js/apps/overview/events/__tests__/__snapshots__/Analysis-test.js.snap b/server/sonar-web/src/main/js/apps/overview/events/__tests__/__snapshots__/Analysis-test.js.snap
index 33bc4e28c18..a9296187266 100644
--- a/server/sonar-web/src/main/js/apps/overview/events/__tests__/__snapshots__/Analysis-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/events/__tests__/__snapshots__/Analysis-test.js.snap
@@ -25,6 +25,7 @@ exports[`should sort the events with version first 1`] = `
"name": "6.5-SNAPSHOT",
}
}
+ key="2"
/>
<Event
event={
@@ -34,6 +35,7 @@ exports[`should sort the events with version first 1`] = `
"name": "test",
}
}
+ key="1"
/>
</div>
</li>
diff --git a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTagsSelector-test.js b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTagsSelector-test.js
index bc22697f5f3..fc0fe817dc1 100644
--- a/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTagsSelector-test.js
+++ b/server/sonar-web/src/main/js/apps/overview/meta/__tests__/MetaTagsSelector-test.js
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/* eslint-disable import/order, import/first */
-import * as React from 'react';
+import React from 'react';
import { mount, shallow } from 'enzyme';
import MetaTagsSelector from '../MetaTagsSelector';
diff --git a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js
index d88d0e76e97..bc49256f055 100644
--- a/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js
+++ b/server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGateCondition.js
@@ -155,11 +155,11 @@ export default class QualityGateCondition extends React.PureComponent {
{metric.name}
</div>
{!isDiff &&
- condition.period != null && (
- <div className="overview-quality-gate-condition-period">
- {translate('quality_gates.conditions.leak')}
- </div>
- )}
+ condition.period != null && (
+ <div className="overview-quality-gate-condition-period">
+ {translate('quality_gates.conditions.leak')}
+ </div>
+ )}
<div className="overview-quality-gate-threshold">
{operator} {formatMeasure(threshold, metric.type)}
</div>
diff --git a/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGate-test.js.snap b/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGate-test.js.snap
index 326b9ecefb1..5a7f39cf4d9 100644
--- a/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGate-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGate-test.js.snap
@@ -34,6 +34,7 @@ exports[`renders 2`] = `
id="overview-quality-gate-conditions-list"
>
<ApplicationQualityGateProject
+ key="project1"
metrics={Object {}}
project={
Object {
@@ -45,6 +46,7 @@ exports[`renders 2`] = `
}
/>
<ApplicationQualityGateProject
+ key="project3"
metrics={Object {}}
project={
Object {
diff --git a/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGateProject-test.js.snap b/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGateProject-test.js.snap
index 7538c3934a6..64d2bf86cfb 100644
--- a/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGateProject-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/overview/qualityGate/__tests__/__snapshots__/ApplicationQualityGateProject-test.js.snap
@@ -26,6 +26,7 @@ exports[`renders 1`] = `
>
<li
className="is-on-leak"
+ key="new_coverage"
>
<span
className="text-limited"
@@ -46,6 +47,7 @@ exports[`renders 1`] = `
</li>
<li
className=""
+ key="bugs"
>
<span
className="text-limited"
@@ -66,6 +68,7 @@ exports[`renders 1`] = `
</li>
<li
className=""
+ key="bugs"
>
<span
className="text-limited"
diff --git a/server/sonar-web/src/main/js/apps/permissions/project/components/App.js b/server/sonar-web/src/main/js/apps/permissions/project/components/App.js
index 5802a33d217..4ab52668b98 100644
--- a/server/sonar-web/src/main/js/apps/permissions/project/components/App.js
+++ b/server/sonar-web/src/main/js/apps/permissions/project/components/App.js
@@ -360,9 +360,9 @@ export default class App extends React.PureComponent {
visibility={this.props.component.visibility}
/>
{this.props.component.qualifier === 'TRK' &&
- !canTurnToPrivate && (
- <UpgradeOrganizationBox organization={this.props.component.organization} />
- )}
+ !canTurnToPrivate && (
+ <UpgradeOrganizationBox organization={this.props.component.organization} />
+ )}
{this.state.disclaimer && (
<PublicProjectDisclaimer
component={this.props.component}
diff --git a/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js b/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js
index 14c6018180f..0fdb5568931 100644
--- a/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js
+++ b/server/sonar-web/src/main/js/apps/permissions/shared/components/SearchForm.js
@@ -83,12 +83,14 @@ export default class SearchForm extends React.PureComponent {
onChange={this.handleSearch.bind(this)}
/>
{query.length > 0 &&
- query.length < 3 && (
- <div className="search-box-input-note tooltip bottom fade in">
- <div className="tooltip-inner">{translateWithParameters('select2.tooShort', 3)}</div>
- <div className="tooltip-arrow" style={{ left: 23 }} />
- </div>
- )}
+ query.length < 3 && (
+ <div className="search-box-input-note tooltip bottom fade in">
+ <div className="tooltip-inner">
+ {translateWithParameters('select2.tooShort', 3)}
+ </div>
+ <div className="tooltip-arrow" style={{ left: 23 }} />
+ </div>
+ )}
</form>
</div>
);
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/App.tsx b/server/sonar-web/src/main/js/apps/portfolio/components/App.tsx
index 7d3efb507bf..993345e2319 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/App.tsx
@@ -152,13 +152,13 @@ export default class App extends React.PureComponent<Props, State> {
</div>
{subComponents !== undefined &&
- totalSubComponents !== undefined && (
- <WorstProjects
- component={component.key}
- subComponents={subComponents}
- total={totalSubComponents}
- />
- )}
+ totalSubComponents !== undefined && (
+ <WorstProjects
+ component={component.key}
+ subComponents={subComponents}
+ total={totalSubComponents}
+ />
+ )}
</div>
);
}
@@ -178,7 +178,7 @@ export default class App extends React.PureComponent<Props, State> {
<aside className="page-sidebar-fixed">
{!this.isEmpty() &&
- !this.isNotComputed() && <Summary component={component} measures={measures!} />}
+ !this.isNotComputed() && <Summary component={component} measures={measures!} />}
<Activity component={component.key} />
<Report component={component} />
</aside>
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx b/server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx
index e71c0aed894..798e7b16dd2 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/ReleasabilityBox.tsx
@@ -50,19 +50,19 @@ export default function ReleasabilityBox({ component, measures }: Props) {
<RatingFreshness lastChange={lastReleasabilityChange} />
{effort &&
- Number(effort) > 0 && (
- <div className="portfolio-effort">
- <Link to={getComponentDrilldownUrl(component, 'alert_status')}>
- <span>
- <Measure
- measure={{ metric: { key: 'projects', type: 'SHORT_INT' }, value: effort }}
- />{' '}
- {Number(effort) === 1 ? 'project' : 'projects'}
- </span>
- </Link>{' '}
- <span className="level level-ERROR level-small">{translate('metric.level.ERROR')}</span>
- </div>
- )}
+ Number(effort) > 0 && (
+ <div className="portfolio-effort">
+ <Link to={getComponentDrilldownUrl(component, 'alert_status')}>
+ <span>
+ <Measure
+ measure={{ metric: { key: 'projects', type: 'SHORT_INT' }, value: effort }}
+ />{' '}
+ {Number(effort) === 1 ? 'project' : 'projects'}
+ </span>
+ </Link>{' '}
+ <span className="level level-ERROR level-small">{translate('metric.level.ERROR')}</span>
+ </div>
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/WorstProjects.tsx b/server/sonar-web/src/main/js/apps/portfolio/components/WorstProjects.tsx
index 421eea14c96..ae676759a5a 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/WorstProjects.tsx
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/WorstProjects.tsx
@@ -79,11 +79,9 @@ export default function WorstProjects({ component, subComponents, total }: Props
<QualifierIcon qualifier={component.qualifier} /> {component.name}
</Link>
</td>
- {component.qualifier === 'TRK' ? (
- renderCell(component.measures, 'alert_status', 'LEVEL')
- ) : (
- renderCell(component.measures, 'releasability_rating', 'RATING')
- )}
+ {component.qualifier === 'TRK'
+ ? renderCell(component.measures, 'alert_status', 'LEVEL')
+ : renderCell(component.measures, 'releasability_rating', 'RATING')}
{renderCell(component.measures, 'reliability_rating', 'RATING')}
{renderCell(component.measures, 'security_rating', 'RATING')}
{renderCell(component.measures, 'sqale_rating', 'RATING')}
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/Effort-test.tsx.snap b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/Effort-test.tsx.snap
index 79fce89982d..989531cad1e 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/Effort-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/Effort-test.tsx.snap
@@ -13,36 +13,36 @@ exports[`renders 1`] = `
onlyActiveOnIndex={false}
style={Object {}}
to={
- Object {
- "pathname": "/component_measures",
- "query": Object {
- "branch": undefined,
- "id": "foo",
- "metric": "security_rating",
- },
- }
+ Object {
+ "pathname": "/component_measures",
+ "query": Object {
+ "branch": undefined,
+ "id": "foo",
+ "metric": "security_rating",
+ },
+ }
}
- >
+ >
<span>
- <Measure
- measure={
- Object {
- "metric": Object {
- "key": "projects",
- "type": "SHORT_INT",
- },
- "value": "3",
- }
- }
- />
-
- projects_
+ <Measure
+ measure={
+ Object {
+ "metric": Object {
+ "key": "projects",
+ "type": "SHORT_INT",
+ },
+ "value": "3",
+ }
+ }
+ />
+
+ projects_
</span>
- </Link>,
+ </Link>,
"rating": <Rating
small={true}
value={2}
- />,
+ />,
}
}
/>
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/RatingFreshness-test.tsx.snap b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/RatingFreshness-test.tsx.snap
index ca9124758dc..7e0c44f1ca4 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/RatingFreshness-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/RatingFreshness-test.tsx.snap
@@ -11,11 +11,11 @@ exports[`renders 1`] = `
Object {
"date": <DateFromNow
date="2017-01-02T00:00:00.000Z"
- />,
+ />,
"rating": <Rating
small={true}
value={2}
- />,
+ />,
}
}
/>
diff --git a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/WorstProjects-test.tsx.snap b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/WorstProjects-test.tsx.snap
index 1eaa2c0bdb9..c36279d6709 100644
--- a/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/WorstProjects-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/portfolio/components/__tests__/__snapshots__/WorstProjects-test.tsx.snap
@@ -41,7 +41,9 @@ exports[`renders 1`] = `
</tr>
</thead>
<tbody>
- <tr>
+ <tr
+ key="foo"
+ >
<td>
<Link
className="link-with-icon"
@@ -157,7 +159,9 @@ exports[`renders 1`] = `
</svg>
</td>
</tr>
- <tr>
+ <tr
+ key="bar"
+ >
<td>
<Link
className="link-with-icon"
@@ -273,7 +277,9 @@ exports[`renders 1`] = `
</svg>
</td>
</tr>
- <tr>
+ <tr
+ key="baz"
+ >
<td>
<Link
className="link-with-icon"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphHistory.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphHistory.js
index 29fe837acfa..3bc95c78ff9 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphHistory.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphHistory.js
@@ -107,19 +107,19 @@ export default class GraphHistory extends React.PureComponent {
updateZoom={this.props.updateGraphZoom}
/>
{selectedDate != null &&
- tooltipXPos != null && (
- <GraphsTooltips
- events={this.props.events}
- formatValue={this.formatTooltipValue}
- graph={graph}
- graphWidth={width}
- measuresHistory={this.props.measuresHistory}
- selectedDate={selectedDate}
- series={series}
- tooltipIdx={tooltipIdx}
- tooltipPos={tooltipXPos}
- />
- )}
+ tooltipXPos != null && (
+ <GraphsTooltips
+ events={this.props.events}
+ formatValue={this.formatTooltipValue}
+ graph={graph}
+ graphWidth={width}
+ measuresHistory={this.props.measuresHistory}
+ selectedDate={selectedDate}
+ series={series}
+ tooltipIdx={tooltipIdx}
+ tooltipPos={tooltipXPos}
+ />
+ )}
</div>
)}
</AutoSizer>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltips.js b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltips.js
index 69065f1b708..2aa4137cc1d 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltips.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/GraphsTooltips.js
@@ -117,9 +117,9 @@ export default class GraphsTooltips extends React.PureComponent {
/>
)}
{events &&
- events.length > 0 && (
- <GraphsTooltipsContentEvents addSeparator={addSeparator} events={events} />
- )}
+ events.length > 0 && (
+ <GraphsTooltipsContentEvents addSeparator={addSeparator} events={events} />
+ )}
</table>
</div>
</BubblePopup>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js
index 88bf5483c11..517e60cc26f 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.js
@@ -105,7 +105,7 @@ export default class ProjectActivityAnalysis extends React.PureComponent {
</li>
)}
{(canAddVersion || canAddEvent) &&
- canDeleteAnalyses && <li role="separator" className="divider" />}
+ canDeleteAnalyses && <li role="separator" className="divider" />}
{canDeleteAnalyses && (
<li>
<RemoveAnalysisForm
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphHistory-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphHistory-test.js.snap
index 2b9e964ae1d..b83cc033e28 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphHistory-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphHistory-test.js.snap
@@ -32,6 +32,8 @@ exports[`should correctly render a graph 1`] = `
className="project-activity-graph"
>
<AutoSizer
+ disableHeight={false}
+ disableWidth={false}
onResize={[Function]}
/>
</div>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsHistory-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsHistory-test.js.snap
index fb809d1f599..b7de2ea3cfe 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsHistory-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsHistory-test.js.snap
@@ -35,6 +35,7 @@ exports[`should correctly render a graph 1`] = `
graphEndDate={null}
graphStartDate={null}
isCustom={false}
+ key="0"
leakPeriodDate="2017-05-16T13:50:02+0200"
measuresHistory={Array []}
removeCustomMetric={[Function]}
@@ -79,6 +80,7 @@ exports[`should correctly render multiple graphs 1`] = `
graphEndDate={null}
graphStartDate={null}
isCustom={false}
+ key="0"
leakPeriodDate="2017-05-16T13:50:02+0200"
measuresHistory={Array []}
removeCustomMetric={[Function]}
@@ -116,6 +118,7 @@ exports[`should correctly render multiple graphs 1`] = `
graphEndDate={null}
graphStartDate={null}
isCustom={false}
+ key="1"
leakPeriodDate="2017-05-16T13:50:02+0200"
measuresHistory={Array []}
removeCustomMetric={[Function]}
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendCustom-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendCustom-test.js.snap
index cd8ec0cc2f4..b50a253ae4c 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendCustom-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendCustom-test.js.snap
@@ -6,6 +6,7 @@ exports[`should render correctly the list of series 1`] = `
>
<span
className="spacer-left spacer-right"
+ key="bugs"
>
<GraphsLegendItem
metric="bugs"
@@ -17,6 +18,7 @@ exports[`should render correctly the list of series 1`] = `
</span>
<span
className="spacer-left spacer-right"
+ key="my_metric"
>
<GraphsLegendItem
metric="my_metric"
@@ -27,6 +29,7 @@ exports[`should render correctly the list of series 1`] = `
/>
</span>
<Tooltip
+ key="foo"
overlay="project_activity.graphs.custom.metric_no_history"
placement="bottom"
>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendStatic-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendStatic-test.js.snap
index 47cc682d03f..c8d7df8f28a 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendStatic-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsLegendStatic-test.js.snap
@@ -6,12 +6,14 @@ exports[`should render correctly the list of series 1`] = `
>
<GraphsLegendItem
className="big-spacer-left big-spacer-right"
+ key="bugs"
metric="bugs"
name="Bugs"
style="0"
/>
<GraphsLegendItem
className="big-spacer-left big-spacer-right"
+ key="code_smells"
metric="code_smells"
name="Code Smells"
style="1"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltips-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltips-test.js.snap
index e2ab4b039a8..96758777f80 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltips-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltips-test.js.snap
@@ -61,6 +61,7 @@ exports[`should render correctly for issues graphs 1`] = `
>
<tbody>
<GraphsTooltipsContentIssues
+ key="bugs"
measuresHistory={Array []}
name="bugs"
style="0"
@@ -69,6 +70,7 @@ exports[`should render correctly for issues graphs 1`] = `
value="Formated.3"
/>
<GraphsTooltipsContentIssues
+ key="code_smells"
measuresHistory={Array []}
name="code_smells"
style="1"
@@ -77,6 +79,7 @@ exports[`should render correctly for issues graphs 1`] = `
value="Formated.18"
/>
<GraphsTooltipsContentIssues
+ key="vulnerabilities"
measuresHistory={Array []}
name="vulnerabilities"
style="2"
@@ -116,18 +119,21 @@ exports[`should render correctly for random graphs 1`] = `
>
<tbody>
<GraphsTooltipsContent
+ key="bugs"
name="bugs"
style="0"
translatedName="Bugs"
value="Formated.0"
/>
<GraphsTooltipsContent
+ key="code_smells"
name="code_smells"
style="1"
translatedName="Code Smells"
value="Formated.15"
/>
<GraphsTooltipsContent
+ key="vulnerabilities"
name="vulnerabilities"
style="2"
translatedName="Vulnerabilities"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContent-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContent-test.js.snap
index 353f07cdac3..7f818adb4c6 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContent-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContent-test.js.snap
@@ -3,6 +3,7 @@
exports[`should render correctly 1`] = `
<tr
className="project-activity-graph-tooltip-line"
+ key="code_smells"
>
<td
className="thin"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.js.snap
index 95e4c4b18a1..29401d4397d 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentEvents-test.js.snap
@@ -22,6 +22,7 @@ exports[`should render correctly 1`] = `
</span>
<span
className="spacer-left"
+ key="1"
>
<ProjectEventIcon
className="project-activity-event-icon VERSION"
@@ -29,6 +30,7 @@ exports[`should render correctly 1`] = `
</span>
<span
className="spacer-left"
+ key="2"
>
<ProjectEventIcon
className="project-activity-event-icon OTHER"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentIssues-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentIssues-test.js.snap
index 91f9b47f6f5..f5712ca5b76 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentIssues-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/GraphsTooltipsContentIssues-test.js.snap
@@ -3,6 +3,7 @@
exports[`should render correctly 1`] = `
<tr
className="project-activity-graph-tooltip-issues-line"
+ key="bugs"
>
<td
className="thin"
@@ -34,6 +35,7 @@ exports[`should render correctly 1`] = `
exports[`should render correctly when rating data is missing 1`] = `
<tr
className="project-activity-graph-tooltip-issues-line"
+ key="bugs"
>
<td
className="thin"
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
index f2a64234ead..468f7b7ddec 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
@@ -10,7 +10,9 @@ exports[`should correctly filter analyses by category 1`] = `
}
}
>
- <li>
+ <li
+ key="E2"
+ >
<div
className="project-activity-version-badge first"
>
@@ -32,6 +34,7 @@ exports[`should correctly filter analyses by category 1`] = `
<li
className="project-activity-day"
data-day="ISO.1477267200000"
+ key="1477267200000"
>
<div
className="project-activity-date"
@@ -66,6 +69,7 @@ exports[`should correctly filter analyses by category 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={false}
+ key="A4"
selected={false}
updateSelectedDate={[Function]}
/>
@@ -86,7 +90,9 @@ exports[`should correctly filter analyses by date range 1`] = `
}
}
>
- <li>
+ <li
+ key="E1"
+ >
<div
className="project-activity-version-badge first"
>
@@ -108,6 +114,7 @@ exports[`should correctly filter analyses by date range 1`] = `
<li
className="project-activity-day"
data-day="ISO.1477526400000"
+ key="1477526400000"
>
<div
className="project-activity-date"
@@ -142,6 +149,7 @@ exports[`should correctly filter analyses by date range 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={true}
+ key="A1"
selected={false}
updateSelectedDate={[Function]}
/>
@@ -162,7 +170,9 @@ exports[`should render correctly 1`] = `
}
}
>
- <li>
+ <li
+ key="E1"
+ >
<div
className="project-activity-version-badge first"
>
@@ -184,6 +194,7 @@ exports[`should render correctly 1`] = `
<li
className="project-activity-day"
data-day="ISO.1477526400000"
+ key="1477526400000"
>
<div
className="project-activity-date"
@@ -218,6 +229,7 @@ exports[`should render correctly 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={true}
+ key="A1"
selected={false}
updateSelectedDate={[Function]}
/>
@@ -237,6 +249,7 @@ exports[`should render correctly 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={false}
+ key="A2"
selected={false}
updateSelectedDate={[Function]}
/>
@@ -244,7 +257,9 @@ exports[`should render correctly 1`] = `
</li>
</ul>
</li>
- <li>
+ <li
+ key="E2"
+ >
<div
className="project-activity-version-badge"
>
@@ -266,6 +281,7 @@ exports[`should render correctly 1`] = `
<li
className="project-activity-day"
data-day="ISO.1477440000000"
+ key="1477440000000"
>
<div
className="project-activity-date"
@@ -305,6 +321,7 @@ exports[`should render correctly 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={false}
+ key="A3"
selected={false}
updateSelectedDate={[Function]}
/>
@@ -313,6 +330,7 @@ exports[`should render correctly 1`] = `
<li
className="project-activity-day"
data-day="ISO.1477267200000"
+ key="1477267200000"
>
<div
className="project-activity-date"
@@ -347,6 +365,7 @@ exports[`should render correctly 1`] = `
deleteAnalysis={[Function]}
deleteEvent={[Function]}
isFirst={false}
+ key="A4"
selected={false}
updateSelectedDate={[Function]}
/>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
index 0e51a64862b..71e18479081 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityApp-test.js.snap
@@ -6,6 +6,7 @@ exports[`should render correctly 1`] = `
id="project-activity"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="project_activity.page"
/>
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.js.snap b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.js.snap
index 1112cfa4ea8..12ff75c5342 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityPageHeader-test.js.snap
@@ -15,6 +15,7 @@ exports[`should render correctly the list of series 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={true}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -35,6 +36,8 @@ exports[`should render correctly the list of series 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
index ece4bdad6d7..bf9c646b599 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/AddGraphMetric.js
@@ -128,17 +128,15 @@ export default class AddGraphMetric extends React.PureComponent {
value={this.state.selectedMetric}
/>
<span className="alert alert-info">
- {metricsTypeFilter != null && metricsTypeFilter.length > 0 ? (
- translateWithParameters(
- 'project_activity.graphs.custom.type_x_message',
- metricsTypeFilter
- .map(type => translate('metric.type', type))
- .sort()
- .join(', ')
- )
- ) : (
- translate('project_activity.graphs.custom.add_metric_info')
- )}
+ {metricsTypeFilter != null && metricsTypeFilter.length > 0
+ ? translateWithParameters(
+ 'project_activity.graphs.custom.type_x_message',
+ metricsTypeFilter
+ .map(type => translate('metric.type', type))
+ .sort()
+ .join(', ')
+ )
+ : translate('project_activity.graphs.custom.add_metric_info')}
</span>
</div>
</div>
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx
index 66d14ed260f..5b8e9cb8c7f 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { deleteBranch } from '../../../api/branches';
import { Branch } from '../../../app/types';
import { translate, translateWithParameters } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx
index 26d0c82f668..ac05eabcc07 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import SettingForm from './SettingForm';
import { translate } from '../../../helpers/l10n';
import { getValues, SettingValue } from '../../../api/settings';
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPatternForm.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPatternForm.tsx
index c773b3c737f..8a683b25529 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPatternForm.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPatternForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import SettingForm from './SettingForm';
import { translate } from '../../../helpers/l10n';
import { SettingValue } from '../../../api/settings';
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx
index 02bd8572c9c..52a381eb90c 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { renameBranch } from '../../../api/branches';
import { Branch } from '../../../app/types';
import { translate } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx b/server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx
index 41e8c9d439e..ba43512af0a 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx
@@ -118,24 +118,24 @@ export default class SettingForm extends React.PureComponent<Props, State> {
<div className="note spacer-top">{translate('settings._default')}</div>
)}
{!setting.inherited &&
- setting.parentValue && (
- <div className="note spacer-top">
- {translateWithParameters('settings.default_x', setting.parentValue)}
- </div>
- )}
+ setting.parentValue && (
+ <div className="note spacer-top">
+ {translateWithParameters('settings.default_x', setting.parentValue)}
+ </div>
+ )}
</div>
</div>
<footer className="modal-foot">
{!setting.inherited &&
- setting.parentValue && (
- <button
- className="pull-left"
- disabled={this.state.submitting}
- onClick={this.handleResetClick}
- type="reset">
- {translate('reset_to_default')}
- </button>
- )}
+ setting.parentValue && (
+ <button
+ className="pull-left"
+ disabled={this.state.submitting}
+ onClick={this.handleResetClick}
+ type="reset">
+ {translate('reset_to_default')}
+ </button>
+ )}
{this.state.submitting && <i className="spinner spacer-right" />}
<button disabled={submitDisabled} type="submit">
{translate('save')}
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/App-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/App-test.tsx.snap
index a3281058f51..4914db6ffce 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/App-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/App-test.tsx.snap
@@ -33,9 +33,9 @@ exports[`renders sorted list of branches 1`] = `
onlyActiveOnIndex={false}
style={Object {}}
to="/admin/settings"
- >
+ >
settings.page
- </Link>,
+ </Link>,
}
}
/>
@@ -75,6 +75,7 @@ exports[`renders sorted list of branches 1`] = `
}
}
component="foo"
+ key="master"
onChange={[Function]}
/>
<BranchRow
@@ -87,6 +88,7 @@ exports[`renders sorted list of branches 1`] = `
}
}
component="foo"
+ key="branch-1.0"
onChange={[Function]}
/>
<BranchRow
@@ -98,6 +100,7 @@ exports[`renders sorted list of branches 1`] = `
}
}
component="foo"
+ key="branch-1.0"
onChange={[Function]}
/>
</tbody>
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/DeleteBranchModal-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/DeleteBranchModal-test.tsx.snap
index 934f8ed2d7d..fe8762c945f 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/DeleteBranchModal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/DeleteBranchModal-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -62,7 +64,9 @@ exports[`renders 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/LongBranchesPatternForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/LongBranchesPatternForm-test.tsx.snap
index d1c5ef0c609..8e0e2e2d8ca 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/LongBranchesPatternForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/LongBranchesPatternForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/RenameBranchModal-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/RenameBranchModal-test.tsx.snap
index 7867fa4785a..1f190cd94c5 100644
--- a/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/RenameBranchModal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/__snapshots__/RenameBranchModal-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -85,7 +87,9 @@ exports[`renders 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -158,7 +162,9 @@ exports[`renders 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx b/server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx
index b5a034ccd68..aa0b8bea116 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx
+++ b/server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import { some } from 'lodash';
import { QualityGate } from '../../api/quality-gates';
import { translate } from '../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/__snapshots__/Form-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/__snapshots__/Form-test.tsx.snap
index afa45f5e3ba..4d448e7a8cb 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/__snapshots__/Form-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectQualityGate/__tests__/__snapshots__/Form-test.tsx.snap
@@ -12,6 +12,7 @@ exports[`renders 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -32,6 +33,8 @@ exports[`renders 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
optionRenderer={[Function]}
options={
diff --git a/server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx b/server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx
index ad8340c2c20..9a3febf80ad 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx
+++ b/server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import { Profile } from '../../api/quality-profiles';
import { translate } from '../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/ProfileRow-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/ProfileRow-test.tsx.snap
index 541a117c889..12542749c1f 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/ProfileRow-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/ProfileRow-test.tsx.snap
@@ -22,6 +22,7 @@ exports[`renders 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -42,6 +43,8 @@ exports[`renders 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
optionRenderer={[Function]}
options={
diff --git a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/Table-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/Table-test.tsx.snap
index b4b991157eb..5ac9cea89da 100644
--- a/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/Table-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectQualityProfiles/__tests__/__snapshots__/Table-test.tsx.snap
@@ -23,6 +23,7 @@ exports[`renders 1`] = `
</thead>
<tbody>
<ProfileRow
+ key="java"
onChangeProfile={[Function]}
possibleProfiles={
Array [
@@ -68,6 +69,7 @@ exports[`renders 1`] = `
}
/>
<ProfileRow
+ key="js"
onChangeProfile={[Function]}
possibleProfiles={
Array [
diff --git a/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.tsx b/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.tsx
index c27d1fce861..5b2e8af4056 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/PerspectiveSelect.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import PerspectiveSelectOption, { Option } from './PerspectiveSelectOption';
import { translate } from '../../../helpers/l10n';
import { VIEWS, VISUALIZATIONS } from '../utils';
diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.tsx b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.tsx
index 1505bef784b..d8ce816507c 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectCardLeak.tsx
@@ -63,22 +63,24 @@ export default function ProjectCardLeak({ organization, project }: Props) {
{hasTags && <TagsList tags={project.tags} customClass="spacer-left" />}
</div>
{project.analysisDate &&
- project.leakPeriodDate && (
- <div className="project-card-dates note text-right pull-right">
- <DateFromNow date={project.leakPeriodDate!}>
- {fromNow => (
- <span className="project-card-leak-date pull-right">
- {translateWithParameters('projects.leak_period_x', fromNow)}
- </span>
- )}
- </DateFromNow>
- <DateTimeFormatter date={project.analysisDate!}>
- {formattedDate => (
- <span>{translateWithParameters('projects.last_analysis_on_x', formattedDate)}</span>
- )}
- </DateTimeFormatter>
- </div>
- )}
+ project.leakPeriodDate && (
+ <div className="project-card-dates note text-right pull-right">
+ <DateFromNow date={project.leakPeriodDate!}>
+ {fromNow => (
+ <span className="project-card-leak-date pull-right">
+ {translateWithParameters('projects.leak_period_x', fromNow)}
+ </span>
+ )}
+ </DateFromNow>
+ <DateTimeFormatter date={project.analysisDate!}>
+ {formattedDate => (
+ <span>
+ {translateWithParameters('projects.last_analysis_on_x', formattedDate)}
+ </span>
+ )}
+ </DateTimeFormatter>
+ </div>
+ )}
</div>
{project.analysisDate && project.leakPeriodDate ? (
@@ -88,11 +90,9 @@ export default function ProjectCardLeak({ organization, project }: Props) {
) : (
<div className="boxed-group-inner">
<div className="note project-card-not-analyzed">
- {project.analysisDate ? (
- translate('projects.no_leak_period')
- ) : (
- translate('projects.not_analyzed')
- )}
+ {project.analysisDate
+ ? translate('projects.no_leak_period')
+ : translate('projects.not_analyzed')}
</div>
</div>
)}
diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx b/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx
index 423da0dcd26..21101667187 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectsList.tsx
@@ -49,18 +49,16 @@ export default class ProjectsList extends React.PureComponent<Props> {
return (
<div className="projects-list">
- {projects.length > 0 ? (
- projects.map(project => (
- <ProjectCard
- key={project.key}
- project={project}
- organization={this.props.organization}
- type={this.props.cardType}
- />
- ))
- ) : (
- this.renderNoProjects()
- )}
+ {projects.length > 0
+ ? projects.map(project => (
+ <ProjectCard
+ key={project.key}
+ project={project}
+ organization={this.props.organization}
+ type={this.props.cardType}
+ />
+ ))
+ : this.renderNoProjects()}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.tsx b/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.tsx
index eb84d21caed..434c1818eeb 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/ProjectsSortingSelect.tsx
@@ -19,7 +19,7 @@
*/
import * as React from 'react';
import { sortBy } from 'lodash';
-import * as Select from 'react-select';
+import Select from 'react-select';
import ProjectsSortingSelectOption, { Option } from './ProjectsSortingSelectOption';
import SortAscIcon from '../../../components/icons-components/SortAscIcon';
import SortDescIcon from '../../../components/icons-components/SortDescIcon';
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/PageSidebar-test.tsx b/server/sonar-web/src/main/js/apps/projects/components/__tests__/PageSidebar-test.tsx
index 6d071b47da5..b6ba776c0da 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/PageSidebar-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/PageSidebar-test.tsx
@@ -44,7 +44,7 @@ it('reset function should work correctly with view and visualizations', () => {
isFavorite={false}
/>
);
- expect(sidebar.find('.projects-facets-reset')).toMatchSnapshot();
+ expect(sidebar.find('.projects-facets-reset').exists()).toBeFalsy();
sidebar.setProps({ query: { size: '3' } });
expect(sidebar.find('.projects-facets-reset')).toMatchSnapshot();
});
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
index fc7e90eddd2..5ac9039df25 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/AllProjects-test.tsx.snap
@@ -5,6 +5,7 @@ exports[`renders 1`] = `
className="layout-page projects-page"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="projects.page"
/>
@@ -109,6 +110,7 @@ exports[`renders 2`] = `
className="layout-page projects-page"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="projects.page"
/>
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap
index 5cd3d236fb0..78961fde19f 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PageSidebar-test.tsx.snap
@@ -1,8 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`reset function should work correctly with view and visualizations 1`] = `undefined`;
-
-exports[`reset function should work correctly with view and visualizations 2`] = `
+exports[`reset function should work correctly with view and visualizations 1`] = `
<div
className="projects-facets-reset"
>
@@ -51,6 +49,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewReliabilityFilter
isFavorite={false}
+ key="new_reliability"
query={
Object {
"view": "leak",
@@ -59,6 +58,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewSecurityFilter
isFavorite={false}
+ key="new_security"
query={
Object {
"view": "leak",
@@ -67,6 +67,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewMaintainabilityFilter
isFavorite={false}
+ key="new_maintainability"
query={
Object {
"view": "leak",
@@ -75,6 +76,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewCoverageFilter
isFavorite={false}
+ key="new_coverage"
query={
Object {
"view": "leak",
@@ -83,6 +85,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewDuplicationsFilter
isFavorite={false}
+ key="new_duplications"
query={
Object {
"view": "leak",
@@ -91,6 +94,7 @@ exports[`should render \`leak\` view correctly 1`] = `
/>
<NewLinesFilter
isFavorite={false}
+ key="new_lines"
query={
Object {
"view": "leak",
@@ -153,6 +157,7 @@ exports[`should render correctly 1`] = `
/>
<ReliabilityFilter
isFavorite={true}
+ key="reliability"
query={
Object {
"size": "3",
@@ -161,6 +166,7 @@ exports[`should render correctly 1`] = `
/>
<SecurityFilter
isFavorite={true}
+ key="security"
query={
Object {
"size": "3",
@@ -169,6 +175,7 @@ exports[`should render correctly 1`] = `
/>
<MaintainabilityFilter
isFavorite={true}
+ key="maintainability"
query={
Object {
"size": "3",
@@ -177,6 +184,7 @@ exports[`should render correctly 1`] = `
/>
<CoverageFilter
isFavorite={true}
+ key="coverage"
query={
Object {
"size": "3",
@@ -185,6 +193,7 @@ exports[`should render correctly 1`] = `
/>
<DuplicationsFilter
isFavorite={true}
+ key="duplications"
query={
Object {
"size": "3",
@@ -193,6 +202,7 @@ exports[`should render correctly 1`] = `
/>
<SizeFilter
isFavorite={true}
+ key="size"
query={
Object {
"size": "3",
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PerspectiveSelect-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PerspectiveSelect-test.tsx.snap
index 7671abced29..1c5a0c3e47a 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PerspectiveSelect-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/PerspectiveSelect-test.tsx.snap
@@ -38,6 +38,7 @@ exports[`should render correctly 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -58,6 +59,8 @@ exports[`should render correctly 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -134,6 +137,7 @@ exports[`should render with coverage selected 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -154,6 +158,8 @@ exports[`should render with coverage selected 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
index bf50df65a84..5b18aee0615 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectCardLanguages-test.tsx.snap
@@ -9,11 +9,15 @@ exports[`handles unknown languages 1`] = `
<Tooltip
overlay={
<span>
- <span>
+ <span
+ key="cpp"
+ >
cpp
<br />
</span>
- <span>
+ <span
+ key="Java"
+ >
Java
<br />
</span>
@@ -35,11 +39,15 @@ exports[`handles unknown languages 2`] = `
<Tooltip
overlay={
<span>
- <span>
+ <span
+ key="unknown"
+ >
unknown
<br />
</span>
- <span>
+ <span
+ key="Java"
+ >
Java
<br />
</span>
@@ -61,11 +69,15 @@ exports[`renders 1`] = `
<Tooltip
overlay={
<span>
- <span>
+ <span
+ key="Java"
+ >
Java
<br />
</span>
- <span>
+ <span
+ key="JavaScript"
+ >
JavaScript
<br />
</span>
@@ -87,11 +99,15 @@ exports[`sorts languages 1`] = `
<Tooltip
overlay={
<span>
- <span>
+ <span
+ key="JavaScript"
+ >
JavaScript
<br />
</span>
- <span>
+ <span
+ key="Java"
+ >
Java
<br />
</span>
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsList-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsList-test.tsx.snap
index b5a2c7729c5..93fb447b814 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsList-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsList-test.tsx.snap
@@ -5,6 +5,7 @@ exports[`renders 1`] = `
className="projects-list"
>
<ProjectCard
+ key="foo"
project={
Object {
"key": "foo",
@@ -14,6 +15,7 @@ exports[`renders 1`] = `
type="overall"
/>
<ProjectCard
+ key="bar"
project={
Object {
"key": "bar",
diff --git a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsSortingSelect-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsSortingSelect-test.tsx.snap
index dfa78f606fc..d1c569d9601 100644
--- a/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsSortingSelect-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/components/__tests__/__snapshots__/ProjectsSortingSelect-test.tsx.snap
@@ -17,6 +17,7 @@ exports[`should handle the descending sort direction 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -37,6 +38,8 @@ exports[`should handle the descending sort direction 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -127,6 +130,7 @@ exports[`should render correctly for leak view 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -147,6 +151,8 @@ exports[`should render correctly for leak view 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -237,6 +243,7 @@ exports[`should render correctly for overall view 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -257,6 +264,8 @@ exports[`should render correctly for overall view 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.tsx b/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.tsx
index 5e14ac24774..65539aae09c 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/filters/IssuesFilter.tsx
@@ -70,7 +70,7 @@ function renderOption(option: number, selected: boolean) {
<span>
<Rating value={option} small={true} muted={!selected} />
{option > 1 &&
- option < 5 && <span className="note spacer-left">{translate('and_worse')}</span>}
+ option < 5 && <span className="note spacer-left">{translate('and_worse')}</span>}
</span>
);
}
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterFooter.tsx b/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterFooter.tsx
index b81830abbb7..5b45e79a6f5 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterFooter.tsx
+++ b/server/sonar-web/src/main/js/apps/projects/filters/SearchableFilterFooter.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import * as PropTypes from 'prop-types';
import { getFilterUrl } from './utils';
import { translate } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/Filter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/Filter-test.tsx.snap
index 684a65f0ce8..3c6f588c192 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/Filter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/Filter-test.tsx.snap
@@ -11,6 +11,7 @@ exports[`highlights under 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -35,6 +36,7 @@ exports[`highlights under 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -56,6 +58,7 @@ exports[`highlights under 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -90,6 +93,7 @@ exports[`hightlights under selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -114,6 +118,7 @@ exports[`hightlights under selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -133,6 +138,7 @@ exports[`hightlights under selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -167,6 +173,7 @@ exports[`renders 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -188,6 +195,7 @@ exports[`renders 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -209,6 +217,7 @@ exports[`renders 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -242,6 +251,7 @@ exports[`renders facet bar chart 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key="a"
+ key="a"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -280,6 +290,7 @@ exports[`renders facet bar chart 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key="b"
+ key="b"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -318,6 +329,7 @@ exports[`renders facet bar chart 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key="c"
+ key="c"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -369,6 +381,7 @@ exports[`renders header and footer 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -390,6 +403,7 @@ exports[`renders header and footer 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -411,6 +425,7 @@ exports[`renders header and footer 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -445,6 +460,7 @@ exports[`renders multiple selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -466,6 +482,7 @@ exports[`renders multiple selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -487,6 +504,7 @@ exports[`renders multiple selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -533,6 +551,7 @@ exports[`renders selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={1}
+ key="1"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -554,6 +573,7 @@ exports[`renders selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key={2}
+ key="2"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -573,6 +593,7 @@ exports[`renders selected 1`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key={3}
+ key="3"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
index 38b72391839..3de7fafe747 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/LanguagesFilter-test.tsx.snap
@@ -188,6 +188,7 @@ exports[`should render the languages facet with the selected languages 2`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key="java"
+ key="java"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -222,6 +223,7 @@ exports[`should render the languages facet with the selected languages 2`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key="cs"
+ key="cs"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -256,6 +258,7 @@ exports[`should render the languages facet with the selected languages 2`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key="js"
+ key="js"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
diff --git a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
index 22f13a9b832..66d789e0a75 100644
--- a/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/TagsFilter-test.tsx.snap
@@ -179,6 +179,7 @@ exports[`should render the tags facet with the selected tags 2`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key="lang"
+ key="lang"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -207,6 +208,7 @@ exports[`should render the tags facet with the selected tags 2`] = `
<Link
className="facet search-navigator-facet projects-facet active"
data-key="sonar"
+ key="sonar"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
@@ -235,6 +237,7 @@ exports[`should render the tags facet with the selected tags 2`] = `
<Link
className="facet search-navigator-facet projects-facet"
data-key="csharp"
+ key="csharp"
onClick={[Function]}
onlyActiveOnIndex={false}
style={Object {}}
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx
index 3e81e28cb5c..f446bc626ef 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx
@@ -18,8 +18,8 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
-import * as Select from 'react-select';
+import * as Modal from 'react-modal';
+import Select from 'react-select';
import {
getPermissionTemplates,
bulkApplyTemplate,
@@ -126,17 +126,15 @@ export default class BulkApplyTemplateModal extends React.PureComponent<Props, S
renderWarning = () => (
<div className="alert alert-warning modal-alert">
<AlertWarnIcon className="spacer-right" />
- {this.props.selection.length ? (
- translateWithParameters(
- 'permission_templates.bulk_apply_permission_template.apply_to_selected',
- this.props.selection.length
- )
- ) : (
- translateWithParameters(
- 'permission_templates.bulk_apply_permission_template.apply_to_all',
- this.props.total
- )
- )}
+ {this.props.selection.length
+ ? translateWithParameters(
+ 'permission_templates.bulk_apply_permission_template.apply_to_selected',
+ this.props.selection.length
+ )
+ : translateWithParameters(
+ 'permission_templates.bulk_apply_permission_template.apply_to_all',
+ this.props.total
+ )}
</div>
);
@@ -188,12 +186,12 @@ export default class BulkApplyTemplateModal extends React.PureComponent<Props, S
<footer className="modal-foot">
{submitting && <i className="spinner spacer-right" />}
{!loading &&
- !done &&
- permissionTemplates && (
- <button disabled={submitting} onClick={this.handleConfirmClick}>
- {translate('apply')}
- </button>
- )}
+ !done &&
+ permissionTemplates && (
+ <button disabled={submitting} onClick={this.handleConfirmClick}>
+ {translate('apply')}
+ </button>
+ )}
<a className="js-modal-close" href="#" onClick={this.handleCancelClick}>
{done ? translate('close') : translate('cancel')}
</a>
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/ChangeVisibilityForm.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/ChangeVisibilityForm.tsx
index 148172bb3c4..b464112c980 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/ChangeVisibilityForm.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/ChangeVisibilityForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import * as classNames from 'classnames';
import { Organization, Visibility } from '../../app/types';
import UpgradeOrganizationBox from '../../components/common/UpgradeOrganizationBox';
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx
index 26c90c857b2..07352fda839 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { Link } from 'react-router';
import { FormattedMessage } from 'react-intl';
import { Organization } from '../../app/types';
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx
index ae0640d1c1e..04ae04af7bc 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { bulkDeleteProjects } from '../../api/components';
import { translate, translateWithParameters } from '../../helpers/l10n';
import AlertWarnIcon from '../../components/icons-components/AlertWarnIcon';
@@ -87,14 +87,12 @@ export default class DeleteModal extends React.PureComponent<Props, State> {
renderWarning = () => (
<div className="alert alert-warning modal-alert">
<AlertWarnIcon className="spacer-right" />
- {this.props.selection.length ? (
- translateWithParameters(
- 'projects_management.delete_selected_warning',
- this.props.selection.length
- )
- ) : (
- translateWithParameters('projects_management.delete_all_warning', this.props.total)
- )}
+ {this.props.selection.length
+ ? translateWithParameters(
+ 'projects_management.delete_selected_warning',
+ this.props.selection.length
+ )
+ : translateWithParameters('projects_management.delete_all_warning', this.props.total)}
</div>
);
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx b/server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx
index 94318dbae7c..2c9b0684090 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import { sortBy } from 'lodash';
import BulkApplyTemplateModal from './BulkApplyTemplateModal';
import DeleteModal from './DeleteModal';
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/BulkApplyTemplateModal-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/BulkApplyTemplateModal-test.tsx.snap
index 4cadeebb4a0..02eab945bf9 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/BulkApplyTemplateModal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/BulkApplyTemplateModal-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`bulk applies template to all results 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -54,7 +56,9 @@ exports[`bulk applies template to all results 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -95,6 +99,7 @@ exports[`bulk applies template to all results 2`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -115,6 +120,8 @@ exports[`bulk applies template to all results 2`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -173,7 +180,9 @@ exports[`bulk applies template to all results 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -214,6 +223,7 @@ exports[`bulk applies template to all results 3`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={true}
@@ -234,6 +244,8 @@ exports[`bulk applies template to all results 3`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -295,7 +307,9 @@ exports[`bulk applies template to all results 4`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -339,7 +353,9 @@ exports[`bulk applies template to selected results 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -381,7 +397,9 @@ exports[`bulk applies template to selected results 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -422,6 +440,7 @@ exports[`bulk applies template to selected results 2`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -442,6 +461,8 @@ exports[`bulk applies template to selected results 2`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -500,7 +521,9 @@ exports[`bulk applies template to selected results 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -541,6 +564,7 @@ exports[`bulk applies template to selected results 3`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={true}
@@ -561,6 +585,8 @@ exports[`bulk applies template to selected results 3`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
@@ -622,7 +648,9 @@ exports[`bulk applies template to selected results 4`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ChangeVisibilityForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ChangeVisibilityForm-test.tsx.snap
index d46e88f161f..2eaf4fb187d 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ChangeVisibilityForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/ChangeVisibilityForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`changes visibility 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -26,6 +28,7 @@ exports[`changes visibility 1`] = `
>
<div
className="big-spacer-bottom"
+ key="public"
>
<p>
<a
@@ -53,6 +56,7 @@ exports[`changes visibility 1`] = `
</div>
<div
className="big-spacer-bottom"
+ key="private"
>
<p>
<a
@@ -116,7 +120,9 @@ exports[`changes visibility 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -130,6 +136,7 @@ exports[`changes visibility 2`] = `
>
<div
className="big-spacer-bottom"
+ key="public"
>
<p>
<a
@@ -157,6 +164,7 @@ exports[`changes visibility 2`] = `
</div>
<div
className="big-spacer-bottom"
+ key="private"
>
<p>
<a
@@ -220,7 +228,9 @@ exports[`renders disabled 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -234,6 +244,7 @@ exports[`renders disabled 1`] = `
>
<div
className="big-spacer-bottom"
+ key="public"
>
<p>
<a
@@ -261,6 +272,7 @@ exports[`renders disabled 1`] = `
</div>
<div
className="big-spacer-bottom"
+ key="private"
>
<p>
<span
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/CreateProjectForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/CreateProjectForm-test.tsx.snap
index 7a9c5c62141..322cdd80dda 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/CreateProjectForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/CreateProjectForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`creates project 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="create-project-form"
@@ -140,7 +142,9 @@ exports[`creates project 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="create-project-form"
@@ -268,7 +272,9 @@ exports[`creates project 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="create-project-form"
@@ -399,7 +405,9 @@ exports[`creates project 4`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div>
<header
@@ -424,17 +432,17 @@ exports[`creates project 4`] = `
onlyActiveOnIndex={false}
style={Object {}}
to={
- Object {
- "pathname": "/dashboard",
- "query": Object {
- "branch": undefined,
- "id": "name",
- },
- }
+ Object {
+ "pathname": "/dashboard",
+ "query": Object {
+ "branch": undefined,
+ "id": "name",
+ },
+ }
}
- >
+ >
name
- </Link>,
+ </Link>,
}
}
/>
@@ -467,7 +475,9 @@ exports[`shows more 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="create-project-form"
@@ -595,7 +605,9 @@ exports[`shows more 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="create-project-form"
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/DeleteModal-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/DeleteModal-test.tsx.snap
index 12d6e222a77..9e568644af0 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/DeleteModal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/DeleteModal-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`deletes all projects 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -67,7 +69,9 @@ exports[`deletes all projects 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -125,7 +129,9 @@ exports[`deletes selected projects 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -180,7 +186,9 @@ exports[`deletes selected projects 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Projects-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Projects-test.tsx.snap
index 2c60880eb28..6705b982c5a 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Projects-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Projects-test.tsx.snap
@@ -25,6 +25,7 @@ exports[`renders list of projects 1`] = `
</thead>
<tbody>
<ProjectRow
+ key="a"
onApplyTemplateClick={[Function]}
onProjectCheck={[Function]}
project={
@@ -38,6 +39,7 @@ exports[`renders list of projects 1`] = `
selected={true}
/>
<ProjectRow
+ key="b"
onApplyTemplateClick={[Function]}
onProjectCheck={[Function]}
project={
diff --git a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap
index cebeb62f2c9..5e8bdfddf0d 100644
--- a/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/projectsManagement/__tests__/__snapshots__/Search-test.tsx.snap
@@ -63,6 +63,7 @@ exports[`render qualifiers filter 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -84,6 +85,8 @@ exports[`render qualifiers filter 1`] = `
onBlurResetsInput={true}
onChange={[Function]}
onCloseResetsInput={true}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
optionRenderer={[Function]}
options={
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js b/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js
index 6acb20708d8..073ce138746 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/DetailsHeader.js
@@ -59,11 +59,9 @@ export default class DetailsHeader extends React.PureComponent {
{translate('copy')}
</button>
<button id="quality-gate-toggle-default" onClick={this.handleSetAsDefaultClick}>
- {qualityGate.isDefault ? (
- translate('unset_as_default')
- ) : (
- translate('set_as_default')
- )}
+ {qualityGate.isDefault
+ ? translate('unset_as_default')
+ : translate('set_as_default')}
</button>
<button
id="quality-gate-delete"
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
index 9d05395586e..77329207900 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
@@ -185,9 +185,9 @@ export default class ChangelogContainer extends React.PureComponent<Props, State
{this.state.events != null && this.state.events.length === 0 && <ChangelogEmpty />}
{this.state.events != null &&
- this.state.events.length > 0 && (
- <Changelog events={this.state.events} organization={this.props.organization} />
- )}
+ this.state.events.length > 0 && (
+ <Changelog events={this.state.events} organization={this.props.organization} />
+ )}
{shouldDisplayFooter && (
<footer className="text-center spacer-top small">
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ParameterChange.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ParameterChange.tsx
index e8d2ec75551..40e0fa89018 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ParameterChange.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ParameterChange.tsx
@@ -28,11 +28,12 @@ interface Props {
export default function ParameterChange({ name, value }: Props) {
return (
<div className="quality-profile-changelog-parameter">
- {value == null ? (
- translateWithParameters('quality_profiles.changelog.parameter_reset_to_default_value', name)
- ) : (
- translateWithParameters('quality_profiles.parameter_set_to', name, value)
- )}
+ {value == null
+ ? translateWithParameters(
+ 'quality_profiles.changelog.parameter_reset_to_default_value',
+ name
+ )
+ : translateWithParameters('quality_profiles.parameter_set_to', name, value)}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
index a71123b1927..173d1d0dbb3 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
@@ -126,21 +126,21 @@ export default class ComparisonContainer extends React.PureComponent<Props, Stat
</header>
{left != null &&
- inLeft != null &&
- right != null &&
- inRight != null &&
- modified != null && (
- <div className="spacer-top">
- <ComparisonResults
- left={left}
- right={right}
- inLeft={inLeft}
- inRight={inRight}
- modified={modified}
- organization={this.props.organization}
- />
- </div>
- )}
+ inLeft != null &&
+ right != null &&
+ inRight != null &&
+ modified != null && (
+ <div className="spacer-top">
+ <ComparisonResults
+ left={left}
+ right={right}
+ inLeft={inLeft}
+ inRight={inRight}
+ modified={modified}
+ organization={this.props.organization}
+ />
+ </div>
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonForm.tsx
index bee2e948e07..384c0cf3525 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import { translate } from '../../../helpers/l10n';
import { Profile } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.tsx
index 70f58f01ea6..963b09cd24e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/CopyProfileForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { copyProfile } from '../../../api/quality-profiles';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { Profile } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.tsx
index 9a25f9c3007..99b85e7aad9 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/DeleteProfileForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { deleteProfile } from '../../../api/quality-profiles';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { Profile } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
index 164943c43c4..8906db09a3b 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
@@ -134,11 +134,11 @@ export default class ProfileActions extends React.PureComponent<Props, State> {
return (
<ul className="dropdown-menu dropdown-menu-right">
{actions.edit &&
- !profile.isBuiltIn && (
- <li>
- <Link to={activateMoreUrl}>{translate('quality_profiles.activate_more_rules')}</Link>
- </li>
- )}
+ !profile.isBuiltIn && (
+ <li>
+ <Link to={activateMoreUrl}>{translate('quality_profiles.activate_more_rules')}</Link>
+ </li>
+ )}
{!profile.isBuiltIn && (
<li>
<a id="quality-profile-backup" href={backupUrl}>
@@ -161,30 +161,30 @@ export default class ProfileActions extends React.PureComponent<Props, State> {
</li>
)}
{actions.edit &&
- !profile.isBuiltIn && (
- <li>
- <a id="quality-profile-rename" href="#" onClick={this.handleRenameClick}>
- {translate('rename')}
- </a>
- </li>
- )}
+ !profile.isBuiltIn && (
+ <li>
+ <a id="quality-profile-rename" href="#" onClick={this.handleRenameClick}>
+ {translate('rename')}
+ </a>
+ </li>
+ )}
{actions.setAsDefault &&
- !profile.isDefault && (
- <li>
- <a id="quality-profile-set-as-default" href="#" onClick={this.handleSetDefaultClick}>
- {translate('set_as_default')}
- </a>
- </li>
- )}
+ !profile.isDefault && (
+ <li>
+ <a id="quality-profile-set-as-default" href="#" onClick={this.handleSetDefaultClick}>
+ {translate('set_as_default')}
+ </a>
+ </li>
+ )}
{actions.edit &&
- !profile.isDefault &&
- !profile.isBuiltIn && (
- <li>
- <a id="quality-profile-delete" href="#" onClick={this.handleDeleteClick}>
- {translate('delete')}
- </a>
- </li>
- )}
+ !profile.isDefault &&
+ !profile.isBuiltIn && (
+ <li>
+ <a id="quality-profile-delete" href="#" onClick={this.handleDeleteClick}>
+ {translate('delete')}
+ </a>
+ </li>
+ )}
{this.state.copyFormOpen && (
<CopyProfileForm
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.tsx
index d8c4951f02c..33cc3e4c9f8 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/RenameProfileForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { renameProfile } from '../../../api/quality-profiles';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { Profile } from '../types';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.tsx
index 2327cd7acc0..204d6ff0348 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeParentForm.tsx
@@ -18,8 +18,8 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
-import * as Select from 'react-select';
+import * as Modal from 'react-modal';
+import Select from 'react-select';
import { sortBy } from 'lodash';
import { changeProfileParent } from '../../../api/quality-profiles';
import { translate } from '../../../helpers/l10n';
@@ -120,11 +120,9 @@ export default class ChangeParentForm extends React.PureComponent<Props, State>
onChange={this.handleSelectChange}
options={options}
value={
- this.state.selected != null ? (
- this.state.selected
- ) : (
- this.props.profile.parentKey || ''
- )
+ this.state.selected != null
+ ? this.state.selected
+ : this.props.profile.parentKey || ''
}
/>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.tsx
index 3467fb01b19..6e1095c4eac 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import * as escapeHtml from 'escape-html';
import SelectList from '../../../components/SelectList';
import { translate } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileDetails.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileDetails.tsx
index 524a148dadd..4ffed5d56cc 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileDetails.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileDetails.tsx
@@ -43,10 +43,13 @@ export default function ProfileDetails(props: Props) {
<ProfileRules {...props} />
<ProfileExporters {...props} />
{profile.actions &&
- profile.actions.edit &&
- !profile.isBuiltIn && (
- <ProfilePermissions organization={props.organization || undefined} profile={profile} />
- )}
+ profile.actions.edit &&
+ !profile.isBuiltIn && (
+ <ProfilePermissions
+ organization={props.organization || undefined}
+ profile={profile}
+ />
+ )}
</div>
<div className="quality-profile-grid-right">
<ProfileInheritance {...props} />
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.tsx
index 77f8a92a7f1..290ea8f3bb0 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritance.tsx
@@ -120,14 +120,16 @@ export default class ProfileInheritance extends React.PureComponent<Props, State
return (
<div className="boxed-group quality-profile-inheritance">
{profile.actions &&
- profile.actions.edit &&
- !profile.isBuiltIn && (
- <div className="boxed-group-actions">
- <button className="pull-right js-change-parent" onClick={this.handleChangeParentClick}>
- {translate('quality_profiles.change_parent')}
- </button>
- </div>
- )}
+ profile.actions.edit &&
+ !profile.isBuiltIn && (
+ <div className="boxed-group-actions">
+ <button
+ className="pull-right js-change-parent"
+ onClick={this.handleChangeParentClick}>
+ {translate('quality_profiles.change_parent')}
+ </button>
+ </div>
+ )}
<header className="boxed-group-header">
<h2>{translate('quality_profiles.profile_inheritance')}</h2>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsForm.tsx
index 8d892127fc7..2431856c53c 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import ProfilePermissionsFormSelect from './ProfilePermissionsFormSelect';
import {
searchUsers,
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsFormSelect.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsFormSelect.tsx
index 911bf55cca4..fcf87c6cbe7 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsFormSelect.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfilePermissionsFormSelect.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import * as Select from 'react-select';
+import Select from 'react-select';
import { debounce, identity } from 'lodash';
import { User, Group } from './ProfilePermissions';
import Avatar from '../../../components/ui/Avatar';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.tsx
index b809abd6a6f..9b1acd46c8e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileProjects.tsx
@@ -130,14 +130,14 @@ export default class ProfileProjects extends React.PureComponent<Props, State> {
return (
<div className="boxed-group quality-profile-projects">
{profile.actions &&
- profile.actions.edit &&
- !profile.isDefault && (
- <div className="boxed-group-actions">
- <button className="js-change-projects" onClick={this.handleChangeClick}>
- {translate('quality_profiles.change_projects')}
- </button>
- </div>
- )}
+ profile.actions.edit &&
+ !profile.isDefault && (
+ <div className="boxed-group-actions">
+ <button className="js-change-projects" onClick={this.handleChangeClick}>
+ {translate('quality_profiles.change_projects')}
+ </button>
+ </div>
+ )}
<header className="boxed-group-header">
<h2>{translate('projects')}</h2>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
index b2ab6732921..facde0a4a34 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
@@ -184,14 +184,14 @@ export default class ProfileRules extends React.PureComponent<Props, State> {
</table>
{profile.actions &&
- profile.actions.edit &&
- !profile.isBuiltIn && (
- <div className="text-right big-spacer-top">
- <Link to={activateMoreUrl} className="button js-activate-rules">
- {translate('quality_profiles.activate_more')}
- </Link>
- </div>
- )}
+ profile.actions.edit &&
+ !profile.isBuiltIn && (
+ <div className="text-right big-spacer-top">
+ <Link to={activateMoreUrl} className="button js-activate-rules">
+ {translate('quality_profiles.activate_more')}
+ </Link>
+ </div>
+ )}
</div>
{profile.activeDeprecatedRuleCount > 0 && (
<ProfileRulesDeprecatedWarning
@@ -201,15 +201,15 @@ export default class ProfileRules extends React.PureComponent<Props, State> {
/>
)}
{compareToSonarWay != null &&
- compareToSonarWay.missingRuleCount > 0 && (
- <ProfileRulesSonarWayComparison
- language={profile.language}
- organization={organization}
- profile={profile.key}
- sonarway={compareToSonarWay.profile}
- sonarWayMissingRules={compareToSonarWay.missingRuleCount}
- />
- )}
+ compareToSonarWay.missingRuleCount > 0 && (
+ <ProfileRulesSonarWayComparison
+ language={profile.language}
+ organization={organization}
+ profile={profile.key}
+ sonarway={compareToSonarWay.profile}
+ sonarWayMissingRules={compareToSonarWay.missingRuleCount}
+ />
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissions-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissions-test.tsx.snap
index 806ca57c73c..9dd2c1d6c47 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissions-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissions-test.tsx.snap
@@ -45,6 +45,7 @@ exports[`renders 2`] = `
className="big-spacer-top"
>
<ProfilePermissionsUser
+ key="luke"
onDelete={[Function]}
profile={
Object {
@@ -65,6 +66,7 @@ exports[`renders 2`] = `
"name": "Lambda",
}
}
+ key="Lambda"
onDelete={[Function]}
profile={
Object {
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsForm-test.tsx.snap
index d8b0f2354d0..7acbdb7e005 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`adds group 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -72,7 +74,9 @@ exports[`adds group 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -137,7 +141,9 @@ exports[`adds group 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -205,7 +211,9 @@ exports[`adds user 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -265,7 +273,9 @@ exports[`adds user 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
@@ -330,7 +340,9 @@ exports[`adds user 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<header
className="modal-head"
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
index 10e1ea582f7..818fc5af342 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfilePermissionsFormSelect-test.tsx.snap
@@ -13,6 +13,7 @@ exports[`renders 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -34,6 +35,8 @@ exports[`renders 1`] = `
onChange={[Function]}
onCloseResetsInput={true}
onInputChange={[Function]}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
optionRenderer={[Function]}
options={Array []}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
index 315e117ffba..6d92fb9ab26 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
@@ -28,12 +28,14 @@ exports[`should render the quality profiles rules with sonarway comparison 1`] =
<tbody>
<ProfileRulesRowTotal
count={68}
+ key="all"
organization="foo"
qprofile="foo"
total={243}
/>
<ProfileRulesRowOfType
count={68}
+ key="BUG"
organization="foo"
qprofile="foo"
total={68}
@@ -41,6 +43,7 @@ exports[`should render the quality profiles rules with sonarway comparison 1`] =
/>
<ProfileRulesRowOfType
count={0}
+ key="VULNERABILITY"
organization="foo"
qprofile="foo"
total={7}
@@ -48,6 +51,7 @@ exports[`should render the quality profiles rules with sonarway comparison 1`] =
/>
<ProfileRulesRowOfType
count={0}
+ key="CODE_SMELL"
organization="foo"
qprofile="foo"
total={168}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.tsx
index ed4dbb325ac..a58a721f00e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/CreateProfileForm.tsx
@@ -18,8 +18,8 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
-import * as Select from 'react-select';
+import * as Modal from 'react-modal';
+import Select from 'react-select';
import { sortBy } from 'lodash';
import { getImporters, createQualityProfile } from '../../../api/quality-profiles';
import { translate } from '../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
index 9ff9410a37c..bc4c085d89e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
@@ -121,18 +121,16 @@ export default class EvolutionRules extends React.PureComponent<Props, State> {
{rule.name}
</Link>
<div className="note">
- {rule.activations ? (
- translateWithParameters(
- 'quality_profiles.latest_new_rules.activated',
- rule.langName,
- rule.activations
- )
- ) : (
- translateWithParameters(
- 'quality_profiles.latest_new_rules.not_activated',
- rule.langName
- )
- )}
+ {rule.activations
+ ? translateWithParameters(
+ 'quality_profiles.latest_new_rules.activated',
+ rule.langName,
+ rule.activations
+ )
+ : translateWithParameters(
+ 'quality_profiles.latest_new_rules.not_activated',
+ rule.langName
+ )}
</div>
</div>
</li>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
index 49674ef4d46..da5b8b61732 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
@@ -71,6 +71,17 @@ export default class ProfilesList extends React.PureComponent<Props> {
);
}
+ renderLanguage = (languageKey: string, profiles: Profile[] | undefined) => {
+ return (
+ <div key={languageKey} className="boxed-group boxed-group-inner quality-profiles-table">
+ <table data-language={languageKey} className="data zebra zebra-hover">
+ {profiles !== undefined && this.renderHeader(languageKey, profiles.length)}
+ <tbody>{profiles !== undefined && this.renderProfiles(profiles)}</tbody>
+ </table>
+ </div>
+ );
+ };
+
render() {
const { profiles, languages } = this.props;
const { language } = this.props.location.query;
@@ -80,9 +91,7 @@ export default class ProfilesList extends React.PureComponent<Props> {
profile => profile.language
);
- const profilesToShow: { [language: string]: Profile[] } = language
- ? pick(profilesIndex, language)
- : profilesIndex;
+ const profilesToShow = language ? pick(profilesIndex, language) : profilesIndex;
const languagesToShow = sortBy(Object.keys(profilesToShow));
@@ -98,19 +107,9 @@ export default class ProfilesList extends React.PureComponent<Props> {
<div className="alert alert-warning spacer-top">{translate('no_results')}</div>
)}
- {languagesToShow.map(languageKey => (
- <div key={languageKey} className="boxed-group boxed-group-inner quality-profiles-table">
- <table data-language={languageKey} className="data zebra zebra-hover">
- {profilesToShow[languageKey] != null &&
- this.renderHeader(languageKey, profilesToShow[languageKey].length)}
-
- <tbody>
- {profilesToShow[languageKey] != null &&
- this.renderProfiles(profilesToShow[languageKey])}
- </tbody>
- </table>
- </div>
- ))}
+ {languagesToShow.map(languageKey =>
+ this.renderLanguage(languageKey, profilesToShow[languageKey])
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.tsx
index 021f5951af8..b63924e5a28 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/RestoreProfileForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { restoreQualityProfile } from '../../../api/quality-profiles';
import { translate, translateWithParameters } from '../../../helpers/l10n';
@@ -102,23 +102,25 @@ export default class RestoreProfileForm extends React.PureComponent<Props, State
</div>
<div className="modal-body">
- {profile != null && ruleSuccesses != null ? ruleFailures ? (
- <div className="alert alert-warning">
- {translateWithParameters(
- 'quality_profiles.restore_profile.warning',
- profile.name,
- ruleSuccesses,
- ruleFailures
- )}
- </div>
- ) : (
- <div className="alert alert-success">
- {translateWithParameters(
- 'quality_profiles.restore_profile.success',
- profile.name,
- ruleSuccesses
- )}
- </div>
+ {profile != null && ruleSuccesses != null ? (
+ ruleFailures ? (
+ <div className="alert alert-warning">
+ {translateWithParameters(
+ 'quality_profiles.restore_profile.warning',
+ profile.name,
+ ruleSuccesses,
+ ruleFailures
+ )}
+ </div>
+ ) : (
+ <div className="alert alert-success">
+ {translateWithParameters(
+ 'quality_profiles.restore_profile.success',
+ profile.name,
+ ruleSuccesses
+ )}
+ </div>
+ )
) : (
<div className="modal-field">
<label htmlFor="restore-profile-backup">
diff --git a/server/sonar-web/src/main/js/apps/sessions/components/__tests__/LoginForm-test.tsx b/server/sonar-web/src/main/js/apps/sessions/components/__tests__/LoginForm-test.tsx
index 29a5edfb341..2bebbea19e1 100644
--- a/server/sonar-web/src/main/js/apps/sessions/components/__tests__/LoginForm-test.tsx
+++ b/server/sonar-web/src/main/js/apps/sessions/components/__tests__/LoginForm-test.tsx
@@ -45,14 +45,24 @@ it('logs in with simple credentials', () => {
it('logs in with identity provider', () => {
const wrapper = shallow(
- <LoginForm onSonarCloud={false} identityProviders={[identityProvider]} onSubmit={jest.fn()} returnTo="" />
+ <LoginForm
+ onSonarCloud={false}
+ identityProviders={[identityProvider]}
+ onSubmit={jest.fn()}
+ returnTo=""
+ />
);
expect(wrapper).toMatchSnapshot();
});
it('expands more options', () => {
const wrapper = shallow(
- <LoginForm onSonarCloud={false} identityProviders={[identityProvider]} onSubmit={jest.fn()} returnTo="" />
+ <LoginForm
+ onSonarCloud={false}
+ identityProviders={[identityProvider]}
+ onSubmit={jest.fn()}
+ returnTo=""
+ />
);
expect(wrapper).toMatchSnapshot();
diff --git a/server/sonar-web/src/main/js/apps/settings/components/Definition.js b/server/sonar-web/src/main/js/apps/settings/components/Definition.js
index 5c1f7f0b45f..29250dd1a4f 100644
--- a/server/sonar-web/src/main/js/apps/settings/components/Definition.js
+++ b/server/sonar-web/src/main/js/apps/settings/components/Definition.js
@@ -164,25 +164,25 @@ class Definition extends React.PureComponent {
)}
{!loading &&
- this.props.validationMessage != null && (
- <span className="text-danger">
- <i className="icon-alert-error spacer-right" />
- <span>
- {translateWithParameters(
- 'settings.state.validation_failed',
- this.props.validationMessage
- )}
+ this.props.validationMessage != null && (
+ <span className="text-danger">
+ <i className="icon-alert-error spacer-right" />
+ <span>
+ {translateWithParameters(
+ 'settings.state.validation_failed',
+ this.props.validationMessage
+ )}
+ </span>
</span>
- </span>
- )}
+ )}
{!loading &&
- this.state.success && (
- <span className="text-success">
- <i className="icon-check spacer-right" />
- {translate('settings.state.saved')}
- </span>
- )}
+ this.state.success && (
+ <span className="text-success">
+ <i className="icon-check spacer-right" />
+ {translate('settings.state.saved')}
+ </span>
+ )}
</div>
<Input
diff --git a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js
index 7c9727e99f4..73557269222 100644
--- a/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js
+++ b/server/sonar-web/src/main/js/apps/settings/encryption/EncryptionApp.js
@@ -51,12 +51,12 @@ export default class EncryptionApp extends React.PureComponent {
</header>
{!this.props.loading &&
- !this.props.secretKeyAvailable && (
- <GenerateSecretKeyForm
- secretKey={this.props.secretKey}
- generateSecretKey={this.props.generateSecretKey}
- />
- )}
+ !this.props.secretKeyAvailable && (
+ <GenerateSecretKeyForm
+ secretKey={this.props.secretKey}
+ generateSecretKey={this.props.generateSecretKey}
+ />
+ )}
{this.props.secretKeyAvailable && (
<EncryptionForm
diff --git a/server/sonar-web/src/main/js/apps/system/components/ChangeLogLevelForm.tsx b/server/sonar-web/src/main/js/apps/system/components/ChangeLogLevelForm.tsx
index 045142edbf9..932f008b324 100644
--- a/server/sonar-web/src/main/js/apps/system/components/ChangeLogLevelForm.tsx
+++ b/server/sonar-web/src/main/js/apps/system/components/ChangeLogLevelForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { setLogLevel } from '../../../api/system';
import { translate } from '../../../helpers/l10n';
import { LOGS_LEVELS } from '../utils';
diff --git a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ChangeLogLevelForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ChangeLogLevelForm-test.tsx.snap
index 26e85fbe63e..a3cd26a208b 100644
--- a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ChangeLogLevelForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ChangeLogLevelForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`should display some warning messages for non INFO levels 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="set-log-level-form"
@@ -30,6 +32,7 @@ exports[`should display some warning messages for non INFO levels 1`] = `
>
<p
className="spacer-bottom"
+ key="INFO"
>
<input
checked={false}
@@ -49,6 +52,7 @@ exports[`should display some warning messages for non INFO levels 1`] = `
</p>
<p
className="spacer-bottom"
+ key="DEBUG"
>
<input
checked={true}
@@ -68,6 +72,7 @@ exports[`should display some warning messages for non INFO levels 1`] = `
</p>
<p
className="spacer-bottom"
+ key="TRACE"
>
<input
checked={false}
@@ -129,7 +134,9 @@ exports[`should render correctly 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<form
id="set-log-level-form"
@@ -147,6 +154,7 @@ exports[`should render correctly 1`] = `
>
<p
className="spacer-bottom"
+ key="INFO"
>
<input
checked={true}
@@ -166,6 +174,7 @@ exports[`should render correctly 1`] = `
</p>
<p
className="spacer-bottom"
+ key="DEBUG"
>
<input
checked={false}
@@ -185,6 +194,7 @@ exports[`should render correctly 1`] = `
</p>
<p
className="spacer-bottom"
+ key="TRACE"
>
<input
checked={false}
diff --git a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ClusterSysInfos-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ClusterSysInfos-test.tsx.snap
index 6db92bdf46b..4cee8e00890 100644
--- a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ClusterSysInfos-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/ClusterSysInfos-test.tsx.snap
@@ -28,6 +28,7 @@ exports[`should support more than two nodes 1`] = `
<HealthCard
health="GREEN"
healthCauses={Array []}
+ key="Bar"
name="Bar"
onClick={[Function]}
open={false}
@@ -50,6 +51,7 @@ exports[`should support more than two nodes 1`] = `
<HealthCard
health="YELLOW"
healthCauses={Array []}
+ key="Baz"
name="Baz"
onClick={[Function]}
open={false}
diff --git a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/StandaloneSysInfos-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/StandaloneSysInfos-test.tsx.snap
index ba562c42b3b..13877f72b86 100644
--- a/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/StandaloneSysInfos-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/__tests__/__snapshots__/StandaloneSysInfos-test.tsx.snap
@@ -21,6 +21,7 @@ exports[`should render correctly 1`] = `
}
/>
<HealthCard
+ key="Web"
name="Web"
onClick={[Function]}
open={false}
@@ -33,6 +34,7 @@ exports[`should render correctly 1`] = `
}
/>
<HealthCard
+ key="Compute Engine"
name="Compute Engine"
onClick={[Function]}
open={true}
@@ -45,6 +47,7 @@ exports[`should render correctly 1`] = `
}
/>
<HealthCard
+ key="Search Engine"
name="Search Engine"
onClick={[Function]}
open={false}
diff --git a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthCard-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthCard-test.tsx.snap
index 77afaf39ea2..fe7c59a4286 100644
--- a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthCard-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthCard-test.tsx.snap
@@ -125,6 +125,7 @@ exports[`should show a main section and multiple sub sections 1`] = `
"db": "test",
}
}
+ key="Database"
name="Database"
/>
<Section
@@ -133,6 +134,7 @@ exports[`should show a main section and multiple sub sections 1`] = `
"Elastic": "search",
}
}
+ key="Elasticseach"
name="Elasticseach"
/>
</div>
diff --git a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthItem-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthItem-test.tsx.snap
index 81f4aa9ba6a..6b224445797 100644
--- a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthItem-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/HealthItem-test.tsx.snap
@@ -28,6 +28,7 @@ exports[`should render correctly 1`] = `
className="spacer-right"
health="RED"
healthCause="foo"
+ key="0"
/>
<Tooltip
overlay="system.current_health_of_x.Foo"
@@ -51,11 +52,13 @@ exports[`should render multiple health causes 1`] = `
className="spacer-right"
health="YELLOW"
healthCause="foo"
+ key="0"
/>
<HealthCauseItem
className="spacer-right"
health="YELLOW"
healthCause="bar"
+ key="1"
/>
<StatusIndicator
color="yellow"
diff --git a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/Section-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/Section-test.tsx.snap
index 20fce92a9b7..ecbb9a4b5b3 100644
--- a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/Section-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/Section-test.tsx.snap
@@ -8,7 +8,9 @@ exports[`should not render a title 1`] = `
className="data zebra"
>
<tbody>
- <tr>
+ <tr
+ key="foo"
+ >
<td
className="thin"
>
@@ -50,7 +52,9 @@ exports[`should render correctly 1`] = `
id="foo"
>
<tbody>
- <tr>
+ <tr
+ key="foo"
+ >
<td
className="thin"
>
@@ -73,7 +77,9 @@ exports[`should render correctly 1`] = `
/>
</td>
</tr>
- <tr>
+ <tr
+ key="bar"
+ >
<td
className="thin"
>
@@ -96,7 +102,9 @@ exports[`should render correctly 1`] = `
/>
</td>
</tr>
- <tr>
+ <tr
+ key="baz"
+ >
<td
className="thin"
>
diff --git a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
index b02b9854bdf..86c9310e1d7 100644
--- a/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/info-items/__tests__/__snapshots__/SysInfoItem-test.tsx.snap
@@ -4,192 +4,206 @@ exports[`should render object correctly 1`] = `
Array [
<ObjectItem
value={
- Object {
- "bar": Object {
- "a": 1,
- "b": "b",
- },
- "baz": true,
- "foo": "Far",
- }
+ Object {
+ "bar": Object {
+ "a": 1,
+ "b": "b",
+ },
+ "baz": true,
+ "foo": "Far",
+ }
}
->
+ >
<table
- className="data"
+ className="data"
>
- <tbody>
- <tr>
- <td
- className="thin nowrap"
+ <tbody>
+ <tr
+ key="foo"
+ >
+ <td
+ className="thin nowrap"
+ >
+ foo
+ </td>
+ <td>
+ <SysInfoItem
+ name="foo"
+ value="Far"
+ >
+ <code>
+ Far
+ </code>
+ </SysInfoItem>
+ </td>
+ </tr>
+ <tr
+ key="bar"
+ >
+ <td
+ className="thin nowrap"
+ >
+ bar
+ </td>
+ <td>
+ <SysInfoItem
+ name="bar"
+ value={
+ Object {
+ "a": 1,
+ "b": "b",
+ }
+ }
+ >
+ <ObjectItem
+ value={
+ Object {
+ "a": 1,
+ "b": "b",
+ }
+ }
+ >
+ <table
+ className="data"
>
- foo
- </td>
- <td>
- <SysInfoItem
- name="foo"
- value="Far"
+ <tbody>
+ <tr
+ key="a"
>
- <code>
- Far
- </code>
- </SysInfoItem>
- </td>
- </tr>
- <tr>
- <td
- className="thin nowrap"
- >
- bar
- </td>
- <td>
- <SysInfoItem
- name="bar"
- value={
- Object {
- "a": 1,
- "b": "b",
- }
- }
- >
- <ObjectItem
- value={
- Object {
- "a": 1,
- "b": "b",
- }
- }
+ <td
+ className="thin nowrap"
+ >
+ a
+ </td>
+ <td>
+ <SysInfoItem
+ name="a"
+ value={1}
>
- <table
- className="data"
- >
- <tbody>
- <tr>
- <td
- className="thin nowrap"
- >
- a
- </td>
- <td>
- <SysInfoItem
- name="a"
- value={1}
- >
- <code>
- 1
- </code>
- </SysInfoItem>
- </td>
- </tr>
- <tr>
- <td
- className="thin nowrap"
- >
- b
- </td>
- <td>
- <SysInfoItem
- name="b"
- value="b"
- >
- <code>
- b
- </code>
- </SysInfoItem>
- </td>
- </tr>
- </tbody>
- </table>
- </ObjectItem>
- </SysInfoItem>
- </td>
- </tr>
- <tr>
- <td
- className="thin nowrap"
- >
- baz
- </td>
- <td>
- <SysInfoItem
- name="baz"
- value={true}
+ <code>
+ 1
+ </code>
+ </SysInfoItem>
+ </td>
+ </tr>
+ <tr
+ key="b"
>
- <BooleanItem
- value={true}
+ <td
+ className="thin nowrap"
+ >
+ b
+ </td>
+ <td>
+ <SysInfoItem
+ name="b"
+ value="b"
>
- <CheckIcon>
- <svg
- height={16}
- viewBox="0 0 16 16"
- width={16}
- xmlns="http://www.w3.org/2000/svg"
- >
- <path
- d="M14.92 4.804q0 0.357-0.25 0.607l-7.679 7.679q-0.25 0.25-0.607 0.25t-0.607-0.25l-4.446-4.446q-0.25-0.25-0.25-0.607t0.25-0.607l1.214-1.214q0.25-0.25 0.607-0.25t0.607 0.25l2.625 2.634 5.857-5.866q0.25-0.25 0.607-0.25t0.607 0.25l1.214 1.214q0.25 0.25 0.25 0.607z"
- style={
- Object {
- "fill": "currentColor",
- }
- }
- />
- ;
- </svg>
- </CheckIcon>
- </BooleanItem>
- </SysInfoItem>
- </td>
- </tr>
- </tbody>
+ <code>
+ b
+ </code>
+ </SysInfoItem>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </ObjectItem>
+ </SysInfoItem>
+ </td>
+ </tr>
+ <tr
+ key="baz"
+ >
+ <td
+ className="thin nowrap"
+ >
+ baz
+ </td>
+ <td>
+ <SysInfoItem
+ name="baz"
+ value={true}
+ >
+ <BooleanItem
+ value={true}
+ >
+ <CheckIcon>
+ <svg
+ height={16}
+ viewBox="0 0 16 16"
+ width={16}
+ xmlns="http://www.w3.org/2000/svg"
+ >
+ <path
+ d="M14.92 4.804q0 0.357-0.25 0.607l-7.679 7.679q-0.25 0.25-0.607 0.25t-0.607-0.25l-4.446-4.446q-0.25-0.25-0.25-0.607t0.25-0.607l1.214-1.214q0.25-0.25 0.607-0.25t0.607 0.25l2.625 2.634 5.857-5.866q0.25-0.25 0.607-0.25t0.607 0.25l1.214 1.214q0.25 0.25 0.25 0.607z"
+ style={
+ Object {
+ "fill": "currentColor",
+ }
+ }
+ />
+ ;
+ </svg>
+ </CheckIcon>
+ </BooleanItem>
+ </SysInfoItem>
+ </td>
+ </tr>
+ </tbody>
</table>
-</ObjectItem>,
+ </ObjectItem>,
<ObjectItem
value={
- Object {
- "a": 1,
- "b": "b",
- }
+ Object {
+ "a": 1,
+ "b": "b",
+ }
}
->
+ >
<table
- className="data"
+ className="data"
>
- <tbody>
- <tr>
- <td
- className="thin nowrap"
- >
- a
- </td>
- <td>
- <SysInfoItem
- name="a"
- value={1}
- >
- <code>
- 1
- </code>
- </SysInfoItem>
- </td>
- </tr>
- <tr>
- <td
- className="thin nowrap"
- >
- b
- </td>
- <td>
- <SysInfoItem
- name="b"
- value="b"
- >
- <code>
- b
- </code>
- </SysInfoItem>
- </td>
- </tr>
- </tbody>
+ <tbody>
+ <tr
+ key="a"
+ >
+ <td
+ className="thin nowrap"
+ >
+ a
+ </td>
+ <td>
+ <SysInfoItem
+ name="a"
+ value={1}
+ >
+ <code>
+ 1
+ </code>
+ </SysInfoItem>
+ </td>
+ </tr>
+ <tr
+ key="b"
+ >
+ <td
+ className="thin nowrap"
+ >
+ b
+ </td>
+ <td>
+ <SysInfoItem
+ name="b"
+ value="b"
+ >
+ <code>
+ b
+ </code>
+ </SysInfoItem>
+ </td>
+ </tr>
+ </tbody>
</table>
-</ObjectItem>,
+ </ObjectItem>,
]
`;
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeForm.tsx b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeForm.tsx
index 0c508a86706..d69ff53c19b 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeForm.tsx
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeForm.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import SystemUpgradeItem from './SystemUpgradeItem';
import { SystemUpgrade } from '../../../../api/system';
import { translate } from '../../../../helpers/l10n';
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeIntermediate.tsx b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeIntermediate.tsx
index ccafec8a1aa..01d546ecdb1 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeIntermediate.tsx
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/SystemUpgradeIntermediate.tsx
@@ -54,11 +54,9 @@ export default class SystemUpgradeIntermediate extends React.PureComponent<Props
className="button-link little-spacer-bottom"
href="#"
onClick={this.toggleIntermediatVersions}>
- {showMore ? (
- translate('system.hide_intermediate_versions')
- ) : (
- translate('system.show_intermediate_versions')
- )}
+ {showMore
+ ? translate('system.hide_intermediate_versions')
+ : translate('system.show_intermediate_versions')}
<i
className={classNames('little-spacer-left', {
'icon-arrow-down': !showMore,
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeForm-test.tsx.snap
index 0f84689c104..86dfdda674a 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeForm-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeForm-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`should display correctly 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div
className="modal-head"
@@ -25,6 +27,7 @@ exports[`should display correctly 1`] = `
className="modal-body"
>
<SystemUpgradeItem
+ key="6.3"
systemUpgrades={
Array [
Object {
@@ -48,6 +51,7 @@ exports[`should display correctly 1`] = `
type="system.latest_version"
/>
<SystemUpgradeItem
+ key="5.6.5"
systemUpgrades={
Array [
Object {
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeIntermediate-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeIntermediate-test.tsx.snap
index 9217e8cb640..80a70b6f48e 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeIntermediate-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeIntermediate-test.tsx.snap
@@ -29,6 +29,7 @@ exports[`should display correctly 2`] = `
</a>
<div
className="note system-upgrade-intermediate"
+ key="5.6.6"
>
<DateFormatter
date="2017-04-02"
@@ -42,6 +43,7 @@ exports[`should display correctly 2`] = `
</div>
<div
className="note system-upgrade-intermediate"
+ key="5.6.5"
>
<DateFormatter
date="2017-03-01"
diff --git a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeItem-test.tsx.snap b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeItem-test.tsx.snap
index 15f11c439b6..e6e4afad432 100644
--- a/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeItem-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/system/components/system-upgrade/__tests__/__snapshots__/SystemUpgradeItem-test.tsx.snap
@@ -13,7 +13,7 @@ exports[`should display correctly 1`] = `
"version": <b>
SonarQube
5.6.7
- </b>,
+ </b>,
}
}
/>
diff --git a/server/sonar-web/src/main/js/apps/system/utils.ts b/server/sonar-web/src/main/js/apps/system/utils.ts
index 7d6ccca5a0d..613dccb9a93 100644
--- a/server/sonar-web/src/main/js/apps/system/utils.ts
+++ b/server/sonar-web/src/main/js/apps/system/utils.ts
@@ -54,7 +54,7 @@ export function ignoreInfoFields(sysInfoObject: SysValueObject): SysValueObject
'Name',
PLUGINS_FIELD,
SETTINGS_FIELD
- ]);
+ ]) as SysValueObject;
}
export function getHealth(sysInfoObject: SysValueObject): HealthType {
@@ -130,21 +130,21 @@ function getSystemData(sysInfoData: SysInfo): SysValueObject {
export function getClusterMainCardSection(sysInfoData: ClusterSysInfo): SysValueObject {
return {
...getSystemData(sysInfoData),
- ...omit(sysInfoData, [
+ ...(omit(sysInfoData, [
'Application Nodes',
PLUGINS_FIELD,
'Search Nodes',
SETTINGS_FIELD,
'Statistics',
'System'
- ])
+ ]) as SysValueObject)
};
}
export function getStandaloneMainSections(sysInfoData: SysInfo): SysValueObject {
return {
...getSystemData(sysInfoData),
- ...omitBy(
+ ...(omitBy(
sysInfoData,
(value, key) =>
value == null ||
@@ -152,15 +152,17 @@ export function getStandaloneMainSections(sysInfoData: SysInfo): SysValueObject
key.startsWith('Compute Engine') ||
key.startsWith('Search') ||
key.startsWith('Web')
- )
+ ) as SysValueObject)
};
}
export function getStandaloneSecondarySections(sysInfoData: SysInfo): SysInfoSection {
return {
- Web: pickBy(sysInfoData, (_, key) => key.startsWith('Web')),
- 'Compute Engine': pickBy(sysInfoData, (_, key) => key.startsWith('Compute Engine')),
- 'Search Engine': pickBy(sysInfoData, (_, key) => key.startsWith('Search'))
+ Web: pickBy(sysInfoData, (_, key) => key.startsWith('Web')) as SysValueObject,
+ 'Compute Engine': pickBy(sysInfoData, (_, key) =>
+ key.startsWith('Compute Engine')
+ ) as SysValueObject,
+ 'Search Engine': pickBy(sysInfoData, (_, key) => key.startsWith('Search')) as SysValueObject
};
}
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js
index 116b4c7d8c4..c890c3d9b38 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/OrganizationStep.js
@@ -229,13 +229,13 @@ export default class OrganizationStep extends React.PureComponent {
)}
{this.getSelectedOrganization() != null &&
- !this.state.loading && (
- <div className="big-spacer-top">
- <button className="js-continue" onClick={this.handleContinueClick}>
- {translate('continue')}
- </button>
- </div>
- )}
+ !this.state.loading && (
+ <div className="big-spacer-top">
+ <button className="js-continue" onClick={this.handleContinueClick}>
+ {translate('continue')}
+ </button>
+ </div>
+ )}
</div>
);
};
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/Onboarding-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/Onboarding-test.js.snap
index 55409e86250..9c24b5b42a4 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/Onboarding-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/__tests__/__snapshots__/Onboarding-test.js.snap
@@ -5,6 +5,7 @@ exports[`guides for on-premise 1`] = `
className="modal-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="onboarding.header"
titleTemplate="%s"
@@ -71,6 +72,7 @@ exports[`guides for on-premise 2`] = `
className="modal-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="onboarding.header"
titleTemplate="%s"
@@ -138,6 +140,7 @@ exports[`guides for sonarcloud 1`] = `
className="modal-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="onboarding.header.sonarcloud"
titleTemplate="%s"
@@ -217,6 +220,7 @@ exports[`guides for sonarcloud 2`] = `
className="modal-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="onboarding.header.sonarcloud"
titleTemplate="%s"
@@ -297,6 +301,7 @@ exports[`guides for sonarcloud 3`] = `
className="modal-container"
>
<HelmetWrapper
+ defer={true}
encodeSpecialCharacters={true}
title="onboarding.header.sonarcloud"
titleTemplate="%s"
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
index 9ce1c887f5f..f456088c24a 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/Command-test.js.snap
@@ -6,11 +6,11 @@ exports[`renders correctly 1`] = `
>
<pre>
foo
- bar
+bar
</pre>
<button
data-clipboard-text="foo
- bar"
+bar"
>
copy
</button>
diff --git a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
index 559864e0d90..9361ccc33a3 100644
--- a/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/tutorials/onboarding/commands/__tests__/__snapshots__/JavaGradle-test.js.snap
@@ -17,8 +17,8 @@ exports[`renders correctly 1`] = `
/>
<Command
command="plugins {
- id \\"org.sonarqube\\" version \\"2.5\\"
- }"
+ id \\"org.sonarqube\\" version \\"2.5\\"
+}"
/>
<p
className="spacer-top spacer-bottom markdown"
@@ -71,8 +71,8 @@ exports[`renders correctly 2`] = `
/>
<Command
command="plugins {
- id \\"org.sonarqube\\" version \\"2.5\\"
- }"
+ id \\"org.sonarqube\\" version \\"2.5\\"
+}"
/>
<p
className="spacer-top spacer-bottom markdown"
diff --git a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js
index a420dad822c..4354b75b1e0 100644
--- a/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js
+++ b/server/sonar-web/src/main/js/apps/users/components/UsersSelectSearchValue.js
@@ -39,13 +39,13 @@ export default class UsersSelectSearchValue extends React.PureComponent {
return (
<div className="Select-value" title={user ? user.name : ''}>
{user &&
- user.login && (
- <div className="Select-value-label">
- <Avatar hash={user.avatar} email={user.email} name={user.name} size={AVATAR_SIZE} />
- <strong className="spacer-left">{this.props.children}</strong>
- <span className="note little-spacer-left">{user.login}</span>
- </div>
- )}
+ user.login && (
+ <div className="Select-value-label">
+ <Avatar hash={user.avatar} email={user.email} name={user.name} size={AVATAR_SIZE} />
+ <strong className="spacer-left">{this.props.children}</strong>
+ <span className="note little-spacer-left">{user.login}</span>
+ </div>
+ )}
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UsersSelectSearch-test.js.snap b/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UsersSelectSearch-test.js.snap
index 483f49d3ea0..900354c4376 100644
--- a/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UsersSelectSearch-test.js.snap
+++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/__snapshots__/UsersSelectSearch-test.js.snap
@@ -12,6 +12,7 @@ exports[`should render correctly 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -33,6 +34,8 @@ exports[`should render correctly 1`] = `
onChange={[Function]}
onCloseResetsInput={true}
onInputChange={[Function]}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={Array []}
pageSize={5}
@@ -81,6 +84,7 @@ exports[`should render correctly 3`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -102,6 +106,8 @@ exports[`should render correctly 3`] = `
onChange={[Function]}
onCloseResetsInput={true}
onInputChange={[Function]}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={
Array [
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Action.tsx b/server/sonar-web/src/main/js/apps/web-api/components/Action.tsx
index 06bce67949d..f0b5eed39e6 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/Action.tsx
+++ b/server/sonar-web/src/main/js/apps/web-api/components/Action.tsx
@@ -169,16 +169,16 @@ export default class Action extends React.PureComponent<Props, State> {
{this.renderTabs()}
{showParams &&
- action.params && (
- <Params
- params={action.params}
- showDeprecated={this.props.showDeprecated}
- showInternal={this.props.showInternal}
- />
- )}
+ action.params && (
+ <Params
+ params={action.params}
+ showDeprecated={this.props.showDeprecated}
+ showInternal={this.props.showInternal}
+ />
+ )}
{showResponse &&
- action.hasResponseExample && <ResponseExample domain={domain} action={action} />}
+ action.hasResponseExample && <ResponseExample domain={domain} action={action} />}
{showChangelog && <ActionChangelog changelog={action.changelog} />}
</div>
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/Params.tsx b/server/sonar-web/src/main/js/apps/web-api/components/Params.tsx
index 9f32210fc63..4dbacf06bd0 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/Params.tsx
+++ b/server/sonar-web/src/main/js/apps/web-api/components/Params.tsx
@@ -55,19 +55,19 @@ export default function Params({ params, showDeprecated, showInternal }: Props)
)}
{showDeprecated &&
- param.deprecatedKey && (
- <div className="little-spacer-top">
- <code>{param.deprecatedKey}</code>
- </div>
- )}
+ param.deprecatedKey && (
+ <div className="little-spacer-top">
+ <code>{param.deprecatedKey}</code>
+ </div>
+ )}
{showDeprecated &&
- param.deprecatedKey &&
- param.deprecatedKeySince && (
- <div className="little-spacer-top">
- <DeprecatedBadge since={param.deprecatedKeySince} />
- </div>
- )}
+ param.deprecatedKey &&
+ param.deprecatedKeySince && (
+ <div className="little-spacer-top">
+ <DeprecatedBadge since={param.deprecatedKeySince} />
+ </div>
+ )}
<div className="note little-spacer-top">
{param.required ? 'required' : 'optional'}
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/ActionChangelog-test.tsx.snap b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/ActionChangelog-test.tsx.snap
index 8c3eb7ace6d..b86b69c795d 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/ActionChangelog-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/ActionChangelog-test.tsx.snap
@@ -6,6 +6,7 @@ exports[`should render 1`] = `
>
<li
className="spacer-top"
+ key="0"
>
<span
className="spacer-right badge"
@@ -16,6 +17,7 @@ exports[`should render 1`] = `
</li>
<li
className="spacer-top"
+ key="1"
>
<span
className="spacer-right badge"
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Domain-test.tsx.snap b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Domain-test.tsx.snap
index e1c93d26f4a..2bed8feb6db 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Domain-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Domain-test.tsx.snap
@@ -69,6 +69,7 @@ exports[`should also render actions with a description matching the query 1`] =
"path": "api",
}
}
+ key="api/foo"
showDeprecated={false}
showInternal={false}
/>
@@ -117,6 +118,7 @@ exports[`should also render actions with a description matching the query 1`] =
"path": "api",
}
}
+ key="api/baz"
showDeprecated={false}
showInternal={false}
/>
@@ -233,6 +235,7 @@ exports[`should render deprecated actions 1`] = `
"path": "api",
}
}
+ key="api/foo"
showDeprecated={true}
showInternal={false}
/>
@@ -293,6 +296,7 @@ exports[`should render internal actions 1`] = `
"path": "api",
}
}
+ key="api/foo"
showDeprecated={false}
showInternal={true}
/>
@@ -361,6 +365,7 @@ exports[`should render only actions matching the query 1`] = `
"path": "api",
}
}
+ key="api/foo"
showDeprecated={false}
showInternal={false}
/>
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Menu-test.tsx.snap b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Menu-test.tsx.snap
index 34329aa2fbf..87783ec3cf9 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Menu-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Menu-test.tsx.snap
@@ -9,6 +9,7 @@ exports[`should also render domains with an actions description matching the que
>
<Link
className="list-group-item"
+ key="bar"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/bar"
@@ -29,6 +30,7 @@ exports[`should also render domains with an actions description matching the que
</Link>
<Link
className="list-group-item"
+ key="baz"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/baz"
@@ -60,6 +62,7 @@ exports[`should not render deprecated domains 1`] = `
>
<Link
className="list-group-item"
+ key="foo"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/foo"
@@ -91,6 +94,7 @@ exports[`should not render internal domains 1`] = `
>
<Link
className="list-group-item"
+ key="foo"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/foo"
@@ -122,6 +126,7 @@ exports[`should render deprecated domains 1`] = `
>
<Link
className="list-group-item"
+ key="foo"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/foo"
@@ -142,6 +147,7 @@ exports[`should render deprecated domains 1`] = `
</Link>
<Link
className="list-group-item"
+ key="bar"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/bar"
@@ -173,6 +179,7 @@ exports[`should render internal domains 1`] = `
>
<Link
className="list-group-item"
+ key="foo"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/foo"
@@ -193,6 +200,7 @@ exports[`should render internal domains 1`] = `
</Link>
<Link
className="list-group-item"
+ key="bar"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/bar"
@@ -225,6 +233,7 @@ exports[`should render only domains with an action matching the query 1`] = `
>
<Link
className="list-group-item"
+ key="foo"
onlyActiveOnIndex={false}
style={Object {}}
to="/web_api/foo"
diff --git a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Params-test.tsx.snap b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Params-test.tsx.snap
index c6a75522309..5d33f4f9613 100644
--- a/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Params-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/web-api/components/__tests__/__snapshots__/Params-test.tsx.snap
@@ -16,7 +16,9 @@ exports[`should render deprecated and internal parameters 1`] = `
>
<table>
<tbody>
- <tr>
+ <tr
+ key="foo"
+ >
<td
className="markdown"
style={
@@ -59,7 +61,9 @@ exports[`should render deprecated and internal parameters 1`] = `
}
/>
</tr>
- <tr>
+ <tr
+ key="foo"
+ >
<td
className="markdown"
style={
@@ -118,7 +122,9 @@ exports[`should render deprecated key 1`] = `
>
<table>
<tbody>
- <tr>
+ <tr
+ key="foo"
+ >
<td
className="markdown"
style={
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js b/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js
index 5da88260309..1f6aaeeef25 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/Line.js
@@ -137,13 +137,13 @@ export default class Line extends React.PureComponent {
))}
{this.props.displayIssues &&
- !this.props.displayAllIssues && (
- <LineIssuesIndicator
- issues={this.props.issues}
- line={line}
- onClick={this.handleIssuesIndicatorClick}
- />
- )}
+ !this.props.displayAllIssues && (
+ <LineIssuesIndicator
+ issues={this.props.issues}
+ line={line}
+ onClick={this.handleIssuesIndicatorClick}
+ />
+ )}
<LineCode
branch={this.props.branch}
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
index f3aea8272c9..a71c07d8002 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/LineCode.js
@@ -229,19 +229,19 @@ export default class LineCode extends React.PureComponent {
<pre ref={node => (this.codeNode = node)}>{renderedTokens}</pre>
</div>
{showIssues &&
- issues.length > 0 && (
- <LineIssuesList
- branch={this.props.branch}
- displayIssueLocationsCount={this.props.displayIssueLocationsCount}
- displayIssueLocationsLink={this.props.displayIssueLocationsLink}
- issues={issues}
- onIssueChange={this.props.onIssueChange}
- onIssueClick={onIssueSelect}
- onPopupToggle={this.props.onPopupToggle}
- openPopup={this.props.openPopup}
- selectedIssue={selectedIssue}
- />
- )}
+ issues.length > 0 && (
+ <LineIssuesList
+ branch={this.props.branch}
+ displayIssueLocationsCount={this.props.displayIssueLocationsCount}
+ displayIssueLocationsLink={this.props.displayIssueLocationsLink}
+ issues={issues}
+ onIssueChange={this.props.onIssueChange}
+ onIssueClick={onIssueSelect}
+ onPopupToggle={this.props.onPopupToggle}
+ openPopup={this.props.openPopup}
+ selectedIssue={selectedIssue}
+ />
+ )}
</td>
);
}
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineCode-test.js.snap b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineCode-test.js.snap
index 9f6da3b0b4b..2cfc320db91 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineCode-test.js.snap
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineCode-test.js.snap
@@ -11,21 +11,25 @@ exports[`render code 1`] = `
<pre>
<span
className="k source-line-code-issue"
+ key="0"
>
class
</span>
<span
className=""
+ key="1"
>
</span>
<span
className="sym sym-1"
+ key="2"
>
Foo
</span>
<span
className=""
+ key="3"
>
{
</span>
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineDuplicationBlock-test.js.snap b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineDuplicationBlock-test.js.snap
index 96f320c4382..c8a4ee23981 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineDuplicationBlock-test.js.snap
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineDuplicationBlock-test.js.snap
@@ -9,6 +9,7 @@ exports[`render duplicated line 1`] = `
className="source-meta source-line-duplications-extra source-line-duplicated"
data-index={1}
data-line-number={3}
+ key="1"
onClick={[Function]}
role="button"
tabIndex="0"
@@ -25,6 +26,7 @@ exports[`render not duplicated line 1`] = `
className="source-meta source-line-duplications-extra"
data-index={1}
data-line-number={3}
+ key="1"
>
<div
className="source-line-bar"
diff --git a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineIssuesList-test.js.snap b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineIssuesList-test.js.snap
index 6bd44307b2f..1bae77158dd 100644
--- a/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineIssuesList-test.js.snap
+++ b/server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineIssuesList-test.js.snap
@@ -12,6 +12,7 @@ exports[`render issues list 1`] = `
"key": "foo",
}
}
+ key="foo"
onClick={[Function]}
onPopupToggle={[Function]}
openPopup={null}
@@ -25,6 +26,7 @@ exports[`render issues list 1`] = `
"key": "bar",
}
}
+ key="bar"
onClick={[Function]}
onPopupToggle={[Function]}
openPopup={null}
diff --git a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
index 0c35f6f5ce5..e5854e7792f 100644
--- a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
+++ b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/BubbleChart-test.js.snap
@@ -2,6 +2,7 @@
exports[`should display bubbles 1`] = `
<Bubble
+ key="0"
r={45}
x={-10}
y={52.3015873015873}
@@ -22,6 +23,7 @@ exports[`should display bubbles 1`] = `
exports[`should display bubbles 2`] = `
<Bubble
+ key="1"
r={33.57142857142857}
x={-75}
y={33.57142857142857}
@@ -42,6 +44,7 @@ exports[`should display bubbles 2`] = `
exports[`should render bubble links 1`] = `
<Bubble
+ key="0"
link="foo"
r={45}
x={-10}
@@ -74,6 +77,7 @@ exports[`should render bubble links 1`] = `
exports[`should render bubble links 2`] = `
<Bubble
+ key="1"
link="bar"
r={33.57142857142857}
x={-75}
@@ -106,6 +110,7 @@ exports[`should render bubble links 2`] = `
exports[`should render bubbles with click handlers 1`] = `
<Bubble
+ key="0"
link="foo"
onClick={[Function]}
r={45}
@@ -129,6 +134,7 @@ exports[`should render bubbles with click handlers 1`] = `
exports[`should render bubbles with click handlers 2`] = `
<Bubble
+ key="1"
link="bar"
onClick={[Function]}
r={33.57142857142857}
diff --git a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/Histogram-test.tsx.snap b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/Histogram-test.tsx.snap
index e7885c89cad..04aacd7b139 100644
--- a/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/Histogram-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/charts/__tests__/__snapshots__/Histogram-test.tsx.snap
@@ -10,7 +10,9 @@ exports[`renders 1`] = `
transform="translate(10, 10)"
>
<g>
- <g>
+ <g
+ key="0"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -19,7 +21,9 @@ exports[`renders 1`] = `
y={10}
/>
</g>
- <g>
+ <g
+ key="1"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -28,7 +32,9 @@ exports[`renders 1`] = `
y={28}
/>
</g>
- <g>
+ <g
+ key="2"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -52,7 +58,9 @@ exports[`renders with yValues 1`] = `
transform="translate(10, 10)"
>
<g>
- <g>
+ <g
+ key="0"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -70,7 +78,9 @@ exports[`renders with yValues 1`] = `
100.0
</text>
</g>
- <g>
+ <g
+ key="1"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -88,7 +98,9 @@ exports[`renders with yValues 1`] = `
75.0
</text>
</g>
- <g>
+ <g
+ key="2"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -121,7 +133,9 @@ exports[`renders with yValues and yTicks 1`] = `
transform="translate(10, 10)"
>
<g>
- <g>
+ <g
+ key="0"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -148,7 +162,9 @@ exports[`renders with yValues and yTicks 1`] = `
a
</text>
</g>
- <g>
+ <g
+ key="1"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -175,7 +191,9 @@ exports[`renders with yValues and yTicks 1`] = `
b
</text>
</g>
- <g>
+ <g
+ key="2"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -217,7 +235,9 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
transform="translate(10, 10)"
>
<g>
- <g>
+ <g
+ key="0"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -226,6 +246,7 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
y={10}
/>
<Tooltip
+ key="0"
overlay="a - 100"
placement="top"
>
@@ -249,7 +270,9 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
a
</text>
</g>
- <g>
+ <g
+ key="1"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -258,6 +281,7 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
y={28}
/>
<Tooltip
+ key="1"
overlay="b - 75"
placement="top"
>
@@ -281,7 +305,9 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
b
</text>
</g>
- <g>
+ <g
+ key="2"
+ >
<rect
className="bar-chart-bar"
height={10}
@@ -290,6 +316,7 @@ exports[`renders with yValues, yTicks and yTooltips 1`] = `
y={46}
/>
<Tooltip
+ key="2"
overlay="c - 150"
placement="top"
>
diff --git a/server/sonar-web/src/main/js/components/common/RestartForm.tsx b/server/sonar-web/src/main/js/components/common/RestartForm.tsx
index 98f4301ef39..ea72ec34478 100644
--- a/server/sonar-web/src/main/js/components/common/RestartForm.tsx
+++ b/server/sonar-web/src/main/js/components/common/RestartForm.tsx
@@ -19,7 +19,7 @@
*/
import * as React from 'react';
import * as classNames from 'classnames';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
import { restartAndWait } from '../../api/system';
import { translate } from '../../helpers/l10n';
@@ -59,8 +59,7 @@ export default class RestartForm extends React.PureComponent<Props, State> {
contentLabel={header}
className="modal"
overlayClassName="modal-overlay"
- onRequestClose={this.props.onClose}
- shouldCloseOnOverlayClick={!restarting}>
+ onRequestClose={restarting ? undefined : this.props.onClose}>
<form id="restart-form" onSubmit={this.handleFormSubmit}>
<div className="modal-head">
<h2>{header}</h2>
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
index e9a5eca76b5..2fa03425675 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
+++ b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/MultiSelect-test.js.snap
@@ -59,6 +59,7 @@ exports[`should render multiselect with selected elements 2`] = `
active={false}
custom={false}
element="bar"
+ key="bar"
onHover={[Function]}
onSelectChange={[Function]}
selected={true}
@@ -67,6 +68,7 @@ exports[`should render multiselect with selected elements 2`] = `
active={false}
custom={false}
element="foo"
+ key="foo"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -75,6 +77,7 @@ exports[`should render multiselect with selected elements 2`] = `
active={false}
custom={false}
element="baz"
+ key="baz"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -113,6 +116,7 @@ exports[`should render multiselect with selected elements 3`] = `
active={false}
custom={false}
element="bar"
+ key="bar"
onHover={[Function]}
onSelectChange={[Function]}
selected={true}
@@ -121,6 +125,7 @@ exports[`should render multiselect with selected elements 3`] = `
active={false}
custom={false}
element="foo"
+ key="foo"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -129,6 +134,7 @@ exports[`should render multiselect with selected elements 3`] = `
active={true}
custom={false}
element="baz"
+ key="baz"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -167,6 +173,7 @@ exports[`should render multiselect with selected elements 4`] = `
active={false}
custom={false}
element="bar"
+ key="bar"
onHover={[Function]}
onSelectChange={[Function]}
selected={true}
@@ -175,6 +182,7 @@ exports[`should render multiselect with selected elements 4`] = `
active={false}
custom={false}
element="foo"
+ key="foo"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -183,6 +191,7 @@ exports[`should render multiselect with selected elements 4`] = `
active={true}
custom={false}
element="baz"
+ key="baz"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
@@ -191,6 +200,7 @@ exports[`should render multiselect with selected elements 4`] = `
active={false}
custom={true}
element="test"
+ key="test"
onHover={[Function]}
onSelectChange={[Function]}
selected={false}
diff --git a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/SelectList-test.js.snap b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/SelectList-test.js.snap
index 29ae52e453a..c1c91a2ba8e 100644
--- a/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/SelectList-test.js.snap
+++ b/server/sonar-web/src/main/js/components/common/__tests__/__snapshots__/SelectList-test.js.snap
@@ -33,6 +33,7 @@ exports[`should render correctly with children 1`] = `
<SelectListItem
active="seconditem"
item="item"
+ key=".$item"
onHover={[Function]}
onSelect={[Function]}
>
@@ -44,6 +45,7 @@ exports[`should render correctly with children 1`] = `
<SelectListItem
active="seconditem"
item="seconditem"
+ key=".$seconditem"
onHover={[Function]}
onSelect={[Function]}
>
@@ -55,6 +57,7 @@ exports[`should render correctly with children 1`] = `
<SelectListItem
active="seconditem"
item="third"
+ key=".$third"
onHover={[Function]}
onSelect={[Function]}
>
@@ -73,18 +76,21 @@ exports[`should render correctly without children 1`] = `
<SelectListItem
active="seconditem"
item="item"
+ key="item"
onHover={[Function]}
onSelect={[Function]}
/>
<SelectListItem
active="seconditem"
item="seconditem"
+ key="seconditem"
onHover={[Function]}
onSelect={[Function]}
/>
<SelectListItem
active="seconditem"
item="third"
+ key="third"
onHover={[Function]}
onSelect={[Function]}
/>
diff --git a/server/sonar-web/src/main/js/components/controls/DateInput.tsx b/server/sonar-web/src/main/js/components/controls/DateInput.tsx
index 265643354e6..1bb65c64457 100644
--- a/server/sonar-web/src/main/js/components/controls/DateInput.tsx
+++ b/server/sonar-web/src/main/js/components/controls/DateInput.tsx
@@ -87,7 +87,10 @@ export default class DateInput extends React.PureComponent<Props> {
}
render() {
- const inputProps = pick(this.props, ['placeholder', 'name']);
+ const inputProps: { name?: string; placeholder?: string } = pick(this.props, [
+ 'placeholder',
+ 'name'
+ ]);
return (
<span className={classNames('date-input-control', this.props.className)}>
diff --git a/server/sonar-web/src/main/js/components/controls/SearchSelect.js b/server/sonar-web/src/main/js/components/controls/SearchSelect.js
index 39ca6539c59..496f039ca82 100644
--- a/server/sonar-web/src/main/js/components/controls/SearchSelect.js
+++ b/server/sonar-web/src/main/js/components/controls/SearchSelect.js
@@ -117,11 +117,9 @@ export default class SearchSelect extends React.PureComponent {
filterOption={this.handleFilterOption}
isLoading={this.state.loading}
noResultsText={
- this.state.query.length < this.props.minimumQueryLength ? (
- translateWithParameters('select2.tooShort', this.props.minimumQueryLength)
- ) : (
- translate('select2.noMatches')
- )
+ this.state.query.length < this.props.minimumQueryLength
+ ? translateWithParameters('select2.tooShort', this.props.minimumQueryLength)
+ : translate('select2.noMatches')
}
onBlur={this.props.resetOnBlur ? this.handleBlur : undefined}
onChange={this.handleChange}
diff --git a/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx b/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx
index 825ace80a34..057fdf5b323 100644
--- a/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx
+++ b/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx
@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
-import Modal from 'react-modal';
+import * as Modal from 'react-modal';
export interface ChildrenProps {
onCloseClick: (event: React.SyntheticEvent<HTMLElement>) => void;
diff --git a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/RadioToggle-test.tsx.snap b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/RadioToggle-test.tsx.snap
index c0aa0d1ab89..d9c8fa8d1f9 100644
--- a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/RadioToggle-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/RadioToggle-test.tsx.snap
@@ -4,7 +4,9 @@ exports[`accepts advanced options fields 1`] = `
<ul
className="radio-toggle"
>
- <li>
+ <li
+ key="one"
+ >
<input
checked={false}
id="sample__one"
@@ -24,7 +26,9 @@ exports[`accepts advanced options fields 1`] = `
</label>
</Tooltip>
</li>
- <li>
+ <li
+ key="two"
+ >
<input
checked={false}
disabled={true}
@@ -52,7 +56,9 @@ exports[`renders 1`] = `
<ul
className="radio-toggle"
>
- <li>
+ <li
+ key="one"
+ >
<input
checked={false}
id="sample__one"
@@ -67,7 +73,9 @@ exports[`renders 1`] = `
first
</label>
</li>
- <li>
+ <li
+ key="two"
+ >
<input
checked={false}
id="sample__two"
diff --git a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SearchSelect-test.js.snap b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SearchSelect-test.js.snap
index d3ea2edb7b0..7013269949a 100644
--- a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SearchSelect-test.js.snap
+++ b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SearchSelect-test.js.snap
@@ -14,6 +14,7 @@ exports[`should render Select 1`] = `
clearRenderer={[Function]}
clearValueText="Clear value"
clearable={false}
+ closeOnSelect={true}
deleteRemoves={true}
delimiter=","
disabled={false}
@@ -37,6 +38,8 @@ exports[`should render Select 1`] = `
onChange={[Function]}
onCloseResetsInput={true}
onInputChange={[Function]}
+ onSelectResetsInput={true}
+ openOnClick={true}
optionComponent={[Function]}
options={Array []}
pageSize={5}
diff --git a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SimpleModal-test.tsx.snap b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SimpleModal-test.tsx.snap
index 4778ef47dbc..ea433bf1532 100644
--- a/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SimpleModal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/controls/__tests__/__snapshots__/SimpleModal-test.tsx.snap
@@ -12,7 +12,9 @@ exports[`renders 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<div />
</Modal>
@@ -30,7 +32,9 @@ exports[`submits 1`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<button
disabled={false}
@@ -53,7 +57,9 @@ exports[`submits 2`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<button
disabled={true}
@@ -76,7 +82,9 @@ exports[`submits 3`] = `
overlayClassName="modal-overlay"
parentSelector={[Function]}
portalClassName="ReactModalPortal"
+ shouldCloseOnEsc={true}
shouldCloseOnOverlayClick={true}
+ shouldFocusAfterRender={true}
>
<button
disabled={false}
diff --git a/server/sonar-web/src/main/js/components/issue/IssueView.js b/server/sonar-web/src/main/js/components/issue/IssueView.js
index 5141e4d8032..6b8b4fd94c8 100644
--- a/server/sonar-web/src/main/js/components/issue/IssueView.js
+++ b/server/sonar-web/src/main/js/components/issue/IssueView.js
@@ -108,18 +108,18 @@ export default class IssueView extends React.PureComponent {
onChange={this.props.onChange}
/>
{issue.comments &&
- issue.comments.length > 0 && (
- <div className="issue-comments">
- {issue.comments.map(comment => (
- <IssueCommentLine
- comment={comment}
- key={comment.key}
- onEdit={this.editComment}
- onDelete={this.deleteComment}
- />
- ))}
- </div>
- )}
+ issue.comments.length > 0 && (
+ <div className="issue-comments">
+ {issue.comments.map(comment => (
+ <IssueCommentLine
+ comment={comment}
+ key={comment.key}
+ onEdit={this.editComment}
+ onDelete={this.deleteComment}
+ />
+ ))}
+ </div>
+ )}
<a className="issue-navigate js-issue-navigate">
<i className="issue-navigate-to-left icon-chevron-left" />
<i className="issue-navigate-to-right icon-chevron-right" />
diff --git a/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js b/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js
index fa66812411b..bb80c21b786 100644
--- a/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js
+++ b/server/sonar-web/src/main/js/components/issue/popups/SimilarIssuesPopup.js
@@ -90,11 +90,9 @@ export default class SimilarIssuesPopup extends React.PureComponent {
</SelectListItem>
<SelectListItem item="resolution">
- {issue.resolution != null ? (
- translate('issue.resolution', issue.resolution)
- ) : (
- translate('unresolved')
- )}
+ {issue.resolution != null
+ ? translate('issue.resolution', issue.resolution)
+ : translate('unresolved')}
</SelectListItem>
<SelectListItem item="assignee">
diff --git a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/ChangelogPopup-test.js.snap b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/ChangelogPopup-test.js.snap
index 1e649d62abb..65cade73cf8 100644
--- a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/ChangelogPopup-test.js.snap
+++ b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/ChangelogPopup-test.js.snap
@@ -25,7 +25,9 @@ exports[`should render the changelog popup correctly 1`] = `
created_by john.david.dalton@gmail.com
</td>
</tr>
- <tr>
+ <tr
+ key="0"
+ >
<td
className="thin text-left text-top nowrap"
>
@@ -53,6 +55,7 @@ exports[`should render the changelog popup correctly 1`] = `
"oldValue": "CRITICAL",
}
}
+ key="severity"
/>
</td>
</tr>
diff --git a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetSeverityPopup-test.js.snap b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetSeverityPopup-test.js.snap
index 8d0995dce23..bc4c8e02c7f 100644
--- a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetSeverityPopup-test.js.snap
+++ b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetSeverityPopup-test.js.snap
@@ -19,6 +19,7 @@ exports[`should render tags popup correctly 1`] = `
>
<SelectListItem
item="BLOCKER"
+ key="BLOCKER"
>
<SeverityIcon
className="little-spacer-right"
@@ -28,6 +29,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="CRITICAL"
+ key="CRITICAL"
>
<SeverityIcon
className="little-spacer-right"
@@ -37,6 +39,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="MAJOR"
+ key="MAJOR"
>
<SeverityIcon
className="little-spacer-right"
@@ -46,6 +49,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="MINOR"
+ key="MINOR"
>
<SeverityIcon
className="little-spacer-right"
@@ -55,6 +59,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="INFO"
+ key="INFO"
>
<SeverityIcon
className="little-spacer-right"
diff --git a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTransitionPopup-test.js.snap b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTransitionPopup-test.js.snap
index 249ca05ae77..4c67a6da4ec 100644
--- a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTransitionPopup-test.js.snap
+++ b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTransitionPopup-test.js.snap
@@ -18,24 +18,28 @@ exports[`should render tags popup correctly 1`] = `
>
<SelectListItem
item="confirm"
+ key="confirm"
title="issue.transition.confirm.description"
>
issue.transition.confirm
</SelectListItem>
<SelectListItem
item="resolve"
+ key="resolve"
title="issue.transition.resolve.description"
>
issue.transition.resolve
</SelectListItem>
<SelectListItem
item="falsepositive"
+ key="falsepositive"
title="issue.transition.falsepositive.description"
>
issue.transition.falsepositive
</SelectListItem>
<SelectListItem
item="wontfix"
+ key="wontfix"
title="issue.transition.wontfix.description"
>
issue.transition.wontfix
diff --git a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTypePopup-test.js.snap b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTypePopup-test.js.snap
index fb727840075..6313549adb2 100644
--- a/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTypePopup-test.js.snap
+++ b/server/sonar-web/src/main/js/components/issue/popups/__tests__/__snapshots__/SetTypePopup-test.js.snap
@@ -17,6 +17,7 @@ exports[`should render tags popup correctly 1`] = `
>
<SelectListItem
item="BUG"
+ key="BUG"
>
<IssueTypeIcon
className="little-spacer-right"
@@ -26,6 +27,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="VULNERABILITY"
+ key="VULNERABILITY"
>
<IssueTypeIcon
className="little-spacer-right"
@@ -35,6 +37,7 @@ exports[`should render tags popup correctly 1`] = `
</SelectListItem>
<SelectListItem
item="CODE_SMELL"
+ key="CODE_SMELL"
>
<IssueTypeIcon
className="little-spacer-right"
diff --git a/server/sonar-web/src/main/js/components/preview-graph/PreviewGraph.js b/server/sonar-web/src/main/js/components/preview-graph/PreviewGraph.js
index c7544325517..8597c393103 100644
--- a/server/sonar-web/src/main/js/components/preview-graph/PreviewGraph.js
+++ b/server/sonar-web/src/main/js/components/preview-graph/PreviewGraph.js
@@ -175,19 +175,19 @@ export default class PreviewGraph extends React.PureComponent {
updateTooltip={this.updateTooltip}
/>
{selectedDate != null &&
- tooltipXPos != null &&
- tooltipIdx != null && (
- <PreviewGraphTooltips
- formatValue={this.formatValue}
- graph={graph}
- graphWidth={width}
- metrics={this.props.metrics}
- selectedDate={selectedDate}
- series={series}
- tooltipIdx={tooltipIdx}
- tooltipPos={tooltipXPos}
- />
- )}
+ tooltipXPos != null &&
+ tooltipIdx != null && (
+ <PreviewGraphTooltips
+ formatValue={this.formatValue}
+ graph={graph}
+ graphWidth={width}
+ metrics={this.props.metrics}
+ selectedDate={selectedDate}
+ series={series}
+ tooltipIdx={tooltipIdx}
+ tooltipPos={tooltipXPos}
+ />
+ )}
</div>
)}
</AutoSizer>
diff --git a/server/sonar-web/src/main/js/components/preview-graph/__tests__/__snapshots__/PreviewGraphTooltips-test.js.snap b/server/sonar-web/src/main/js/components/preview-graph/__tests__/__snapshots__/PreviewGraphTooltips-test.js.snap
index 64d9d39a3e4..bd558730f26 100644
--- a/server/sonar-web/src/main/js/components/preview-graph/__tests__/__snapshots__/PreviewGraphTooltips-test.js.snap
+++ b/server/sonar-web/src/main/js/components/preview-graph/__tests__/__snapshots__/PreviewGraphTooltips-test.js.snap
@@ -27,16 +27,19 @@ exports[`should render correctly 1`] = `
>
<tbody>
<PreviewGraphTooltipsContent
+ key="code_smells"
style="0"
translatedName="Code Smells"
value="Formated.15"
/>
<PreviewGraphTooltipsContent
+ key="bugs"
style="1"
translatedName="Bugs"
value="Formated.0"
/>
<PreviewGraphTooltipsContent
+ key="vulnerabilities"
style="2"
translatedName="Vulnerabilities"
value="Formated.1"
diff --git a/server/sonar-web/src/main/js/helpers/urls.ts b/server/sonar-web/src/main/js/helpers/urls.ts
index aae5afb93bc..5de3cb928fb 100644
--- a/server/sonar-web/src/main/js/helpers/urls.ts
+++ b/server/sonar-web/src/main/js/helpers/urls.ts
@@ -76,7 +76,7 @@ export function getIssuesUrl(query: Query): Location {
* Generate URL for a component's issues page
*/
export function getComponentIssuesUrl(componentKey: string, query?: Query): Location {
- return { pathname: '/project/issues', query: { ...query || {}, id: componentKey } };
+ return { pathname: '/project/issues', query: { ...(query || {}), id: componentKey } };
}
export function getComponentIssuesUrlAsString(componentKey: string, query?: Query): string {
diff --git a/server/sonar-web/src/main/js/store/utils/configureStore.js b/server/sonar-web/src/main/js/store/utils/configureStore.js
index 8c5e2d8150b..e356fffe796 100644
--- a/server/sonar-web/src/main/js/store/utils/configureStore.js
+++ b/server/sonar-web/src/main/js/store/utils/configureStore.js
@@ -24,7 +24,7 @@ const middlewares = [thunk];
const composed = [];
if (process.env.NODE_ENV !== 'production') {
- const createLogger = require('redux-logger');
+ const { createLogger } = require('redux-logger');
middlewares.push(createLogger());
composed.push(window.devToolsExtension ? window.devToolsExtension() : f => f);
diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock
index af0001fc633..c164d2c3872 100644
--- a/server/sonar-web/yarn.lock
+++ b/server/sonar-web/yarn.lock
@@ -2,20 +2,13 @@
# yarn lockfile v1
-"@timer/detect-port@1.1.3":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@timer/detect-port/-/detect-port-1.1.3.tgz#1383abd67f9a5d683df5276f8a92d60bdf9abb90"
- dependencies:
- address "^1.0.1"
- debug "^2.6.0"
-
"@types/cheerio@*":
version "0.22.2"
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.2.tgz#539625874bc856086ad491c2fdc9b10c05ae308e"
-"@types/classnames@2.2.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.0.tgz#f2312039e780bdf89d7d4102a26ec11de5ec58aa"
+"@types/classnames@2.2.3":
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.3.tgz#3f0ff6873da793870e20a260cada55982f38a9e5"
"@types/d3-array@1.2.1":
version "1.2.1"
@@ -44,25 +37,25 @@
"@types/cheerio" "*"
"@types/react" "*"
-"@types/escape-html@0.0.19":
- version "0.0.19"
- resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-0.0.19.tgz#595ff7bd7ee510af54517819de24abdcea6f3507"
+"@types/escape-html@0.0.20":
+ version "0.0.20"
+ resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-0.0.20.tgz#cae698714dd61ebee5ab3f2aeb9a34ba1011735a"
"@types/history@^3":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@types/history/-/history-3.2.1.tgz#0039ab0e0be2a0cc22bac171d27a44588103d123"
-"@types/jest@20.0.7":
- version "20.0.7"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-20.0.7.tgz#39cd215db8bda03928dceb933a1e63eb2cbd210e"
+"@types/jest@21.1.5":
+ version "21.1.5"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-21.1.5.tgz#3db93d069d12602ca115d3604550e15131d8eb7a"
"@types/jquery@3.2.11":
version "3.2.11"
resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.2.11.tgz#9119f91bb103b16ae8c4375b019a9b341b409f50"
-"@types/lodash@4.14.73":
- version "4.14.73"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.73.tgz#9837e47db8643ba5bcef2c7921f37d90f9c24213"
+"@types/lodash@4.14.79":
+ version "4.14.79"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.79.tgz#125f9df9d8a1cc032c730681c62fb9efd74c0da7"
"@types/node@*":
version "8.0.22"
@@ -72,9 +65,9 @@
version "0.0.22"
resolved "https://registry.yarnpkg.com/@types/numeral/-/numeral-0.0.22.tgz#86bef1f0a2d743afdc2ef3168d45f2905e1a0b93"
-"@types/prop-types@15.5.1":
- version "15.5.1"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.1.tgz#1ecf52621299e65b855374337fb11fd2d1066fc1"
+"@types/prop-types@15.5.2":
+ version "15.5.2"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.2.tgz#3c6b8dceb2906cc87fe4358e809f9d20c8d59be1"
"@types/react-dom@15.5.2":
version "15.5.2"
@@ -89,19 +82,19 @@
dependencies:
"@types/react" "*"
-"@types/react-intl@2.3.1":
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/@types/react-intl/-/react-intl-2.3.1.tgz#d036dbe54f6ef29f2a150ed303a84f1693ddf905"
+"@types/react-intl@2.3.2":
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/@types/react-intl/-/react-intl-2.3.2.tgz#a57433871dedf2f12ba8eeca645e5ce5a37d102a"
-"@types/react-modal@2.2.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@types/react-modal/-/react-modal-2.2.0.tgz#e92bb8454e53030581f263e3fb7e7d27e3eb85b8"
+"@types/react-modal@2.2.2":
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/@types/react-modal/-/react-modal-2.2.2.tgz#651157522ba45c1ffd8831a2e7bbd8094390a925"
dependencies:
"@types/react" "*"
-"@types/react-redux@5.0.3":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-5.0.3.tgz#cd68de0c49c516b940fdc6f688535596b5d6eca4"
+"@types/react-redux@5.0.10":
+ version "5.0.10"
+ resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-5.0.10.tgz#f5c45a349f759d87d6b1f2aa096a756561a6d5c9"
dependencies:
"@types/react" "*"
redux "^3.6.0"
@@ -113,9 +106,9 @@
"@types/history" "^3"
"@types/react" "*"
-"@types/react-select@1.0.51":
- version "1.0.51"
- resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-1.0.51.tgz#47e7787b068c34395251e95a0981cff8034eddcc"
+"@types/react-select@1.0.59":
+ version "1.0.59"
+ resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-1.0.59.tgz#791022e5b2c7cd5c86301949ea5e4cc94a55bc66"
dependencies:
"@types/react" "*"
@@ -164,7 +157,7 @@ acorn@^4.0.3, acorn@^4.0.4:
version "4.0.13"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
-acorn@^5.0.0, acorn@^5.0.3, acorn@^5.1.1:
+acorn@^5.0.0, acorn@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75"
@@ -174,23 +167,15 @@ add-dom-event-listener@1.x:
dependencies:
object-assign "4.x"
-address@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537"
-
address@1.0.2, address@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/address/-/address-1.0.2.tgz#480081e82b587ba319459fef512f516fe03d58af"
-ajv-keywords@^1.1.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
-
-ajv-keywords@^2.1.0:
+ajv-keywords@^2.0.0, ajv-keywords@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0"
-ajv@^4.7.0, ajv@^4.9.1:
+ajv@^4.9.1:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
dependencies:
@@ -206,6 +191,15 @@ ajv@^5.0.0:
json-schema-traverse "^0.3.0"
json-stable-stringify "^1.0.1"
+ajv@^5.1.5:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
ajv@^5.2.0, ajv@^5.2.3:
version "5.2.3"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
@@ -235,18 +229,10 @@ anser@1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.2.5.tgz#5dcfc956eaa373b9c23010dd20dabec2ce19475b"
-anser@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/anser/-/anser-1.3.0.tgz#65b42f01119edb5a2fc8ea6f0892274cbcbec6b1"
-
anser@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.1.tgz#c3641863a962cebef941ea2c8706f2cb4f0716bd"
-ansi-escapes@^1.1.0, ansi-escapes@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
ansi-escapes@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
@@ -259,7 +245,7 @@ ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
-ansi-regex@^2.0.0, ansi-regex@^2.1.1:
+ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -271,7 +257,7 @@ ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-ansi-styles@^3.0.0, ansi-styles@^3.1.0:
+ansi-styles@^3.1.0, ansi-styles@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
dependencies:
@@ -339,10 +325,18 @@ array-filter@~0.0.0:
version "0.0.1"
resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+array-find-index@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+array-flatten@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
@@ -414,6 +408,10 @@ ast-types-flow@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
@@ -422,7 +420,7 @@ async@^1.4.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.1.2, async@^2.1.4:
+async@^2.1.2, async@^2.1.4, async@^2.4.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
dependencies:
@@ -497,7 +495,39 @@ babel-code-frame@6.22.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-core@^6.0.0, babel-core@^6.22.1, babel-core@^6.24.1:
+babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babel-core@6.26.0, babel-core@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-generator "^6.26.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ convert-source-map "^1.5.0"
+ debug "^2.6.8"
+ json5 "^0.5.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.4"
+ path-is-absolute "^1.0.1"
+ private "^0.1.7"
+ slash "^1.0.0"
+ source-map "^0.5.6"
+
+babel-core@^6.0.0, babel-core@^6.24.1:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729"
dependencies:
@@ -534,6 +564,19 @@ babel-generator@^6.18.0, babel-generator@^6.25.0:
source-map "^0.5.0"
trim-right "^1.0.1"
+babel-generator@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.6"
+ trim-right "^1.0.1"
+
babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
@@ -643,19 +686,18 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-jest@20.0.3, babel-jest@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671"
+babel-jest@21.2.0, babel-jest@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e"
dependencies:
- babel-core "^6.0.0"
babel-plugin-istanbul "^4.0.0"
- babel-preset-jest "^20.0.3"
+ babel-preset-jest "^21.2.0"
-babel-loader@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7"
+babel-loader@7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126"
dependencies:
- find-cache-dir "^0.1.1"
+ find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
mkdirp "^0.5.1"
@@ -671,13 +713,13 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-dynamic-import-node@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.0.2.tgz#adb5bc8f48a89311540395ae9f0cc3ed4b10bb2e"
+babel-plugin-dynamic-import-node@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a"
dependencies:
babel-plugin-syntax-dynamic-import "^6.18.0"
- babel-template "^6.24.1"
- babel-types "^6.24.1"
+ babel-template "^6.26.0"
+ babel-types "^6.26.0"
babel-plugin-istanbul@^4.0.0, babel-plugin-istanbul@^4.1.4:
version "4.1.4"
@@ -687,9 +729,9 @@ babel-plugin-istanbul@^4.0.0, babel-plugin-istanbul@^4.1.4:
istanbul-lib-instrument "^1.7.2"
test-exclude "^4.1.1"
-babel-plugin-jest-hoist@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767"
+babel-plugin-jest-hoist@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006"
babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
@@ -715,7 +757,7 @@ babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
-babel-plugin-syntax-object-rest-spread@^6.8.0:
+babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -923,12 +965,12 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
babel-plugin-syntax-flow "^6.18.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-object-rest-spread@^6.22.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921"
+babel-plugin-transform-object-rest-spread@6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
dependencies:
babel-plugin-syntax-object-rest-spread "^6.8.0"
- babel-runtime "^6.22.0"
+ babel-runtime "^6.26.0"
babel-plugin-transform-react-constant-elements@^6.22.0:
version "6.23.0"
@@ -977,17 +1019,17 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-polyfill@6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
+babel-polyfill@6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
dependencies:
- babel-runtime "^6.22.0"
- core-js "^2.4.0"
- regenerator-runtime "^0.10.0"
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ regenerator-runtime "^0.10.5"
-babel-preset-env@^1.1.8:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4"
+babel-preset-env@1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
dependencies:
babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-syntax-trailing-function-commas "^6.22.0"
@@ -1026,11 +1068,12 @@ babel-preset-flow@^6.23.0:
dependencies:
babel-plugin-transform-flow-strip-types "^6.22.0"
-babel-preset-jest@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a"
+babel-preset-jest@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638"
dependencies:
- babel-plugin-jest-hoist "^20.0.3"
+ babel-plugin-jest-hoist "^21.2.0"
+ babel-plugin-syntax-object-rest-spread "^6.13.0"
babel-preset-react@^6.22.0:
version "6.24.1"
@@ -1055,6 +1098,18 @@ babel-register@^6.24.1:
mkdirp "^0.5.1"
source-map-support "^0.4.2"
+babel-register@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ dependencies:
+ babel-core "^6.26.0"
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.17.4"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.15"
+
babel-runtime@6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
@@ -1062,13 +1117,20 @@ babel-runtime@6.23.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-runtime@6.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0:
+babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c"
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
+babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.25.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071"
@@ -1079,6 +1141,16 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.25.0:
babylon "^6.17.2"
lodash "^4.2.0"
+babel-template@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.25.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1"
@@ -1093,6 +1165,20 @@ babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.25.0:
invariant "^2.2.0"
lodash "^4.2.0"
+babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e"
@@ -1102,10 +1188,23 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25
lodash "^4.2.0"
to-fast-properties "^1.0.1"
+babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
babylon@^6.17.2, babylon@^6.17.4:
version "6.17.4"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
backbone.babysitter@^0.1.0:
version "0.1.12"
resolved "https://registry.yarnpkg.com/backbone.babysitter/-/backbone.babysitter-0.1.12.tgz#7ca946434eeefbde1a553605c74b7049b6dfafc1"
@@ -1197,6 +1296,17 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+bonjour@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ dependencies:
+ array-flatten "^2.1.0"
+ deep-equal "^1.0.1"
+ dns-equal "^1.0.0"
+ dns-txt "^2.0.2"
+ multicast-dns "^6.0.1"
+ multicast-dns-service-types "^1.1.0"
+
boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -1320,18 +1430,16 @@ browserslist@^2.5.1:
caniuse-lite "^1.0.30000744"
electron-to-chromium "^1.3.24"
-bser@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
- dependencies:
- node-int64 "^0.4.0"
-
bser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
dependencies:
node-int64 "^0.4.0"
+buffer-indexof@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+
buffer-xor@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -1392,10 +1500,21 @@ camel-case@3.0.x:
no-case "^2.2.0"
upper-case "^1.1.1"
+camelcase-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ dependencies:
+ camelcase "^2.0.0"
+ map-obj "^1.0.0"
+
camelcase@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+camelcase@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+
camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
@@ -1436,7 +1555,7 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
-chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3:
+chalk@1.1.3, chalk@^1.1.0, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -1446,6 +1565,14 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
+chalk@2.3.0, chalk@^2.0.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
chalk@^2.0.0, chalk@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
@@ -1521,11 +1648,7 @@ class-utils@^0.3.4:
lazy-cache "^2.0.2"
static-extend "^0.1.1"
-classnames@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.0.tgz#8f61df81f356c45d18a31d83fde4dfb194ea8722"
-
-classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5:
+classnames@2.2.5, classnames@^2.2.3, classnames@^2.2.4, classnames@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
@@ -1545,13 +1668,13 @@ cli-width@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
-clipboard@1.5.5:
- version "1.5.5"
- resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.5.5.tgz#3b39c5148f5d5055aed9a319814f738454771015"
+clipboard@1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz#360d6d6946e99a7a1fef395e42ba92b5e9b5a16b"
dependencies:
- good-listener "^1.1.4"
- select "^1.0.6"
- tiny-emitter "^1.0.0"
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
cliui@^2.1.0:
version "2.1.0"
@@ -1723,7 +1846,7 @@ content-type@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
-convert-source-map@^1.1.0, convert-source-map@^1.4.0:
+convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
@@ -1747,6 +1870,10 @@ core-js@^2.4.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
+core-js@^2.5.0:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
+
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -1790,20 +1917,21 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-create-react-class@15.6.0, create-react-class@15.x, create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.5.3, create-react-class@^15.6.0:
- version "15.6.0"
- resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
+create-react-class@15.6.2:
+ version "15.6.2"
+ resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
object-assign "^4.1.1"
-cross-spawn@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+create-react-class@15.x, create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6.0:
+ version "15.6.0"
+ resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
dependencies:
- lru-cache "^4.0.1"
- which "^1.2.9"
+ fbjs "^0.8.9"
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
version "5.1.0"
@@ -1844,9 +1972,9 @@ css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-css-loader@0.28.4:
- version "0.28.4"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.4.tgz#6cf3579192ce355e8b38d5f42dd7a1f2ec898d0f"
+css-loader@0.28.7:
+ version "0.28.7"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b"
dependencies:
babel-code-frame "^6.11.0"
css-selector-tokenizer "^0.7.0"
@@ -1861,7 +1989,7 @@ css-loader@0.28.4:
postcss-modules-scope "^1.0.0"
postcss-modules-values "^1.1.0"
postcss-value-parser "^3.3.0"
- source-list-map "^0.1.7"
+ source-list-map "^2.0.0"
css-select@^1.1.0, css-select@~1.2.0:
version "1.2.0"
@@ -1942,13 +2070,15 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
dependencies:
cssom "0.3.x"
-d3-array@1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.0.tgz#147d269720e174c4057a7f42be8b0f3f2ba53108"
+currently-unhandled@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ dependencies:
+ array-find-index "^1.0.1"
-d3-array@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.1.1.tgz#a01abe63a25ffb91d3423c3c6d051b4d36bc8a09"
+d3-array@1.2.1, d3-array@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc"
d3-collection@1:
version "1.0.4"
@@ -1962,9 +2092,9 @@ d3-format@1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.0.tgz#6b480baa886885d4651dc248a8f4ac9da16db07a"
-d3-hierarchy@1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.4.tgz#96c3942f3f21cf997a11b4edf00dde2a77b4c6d0"
+d3-hierarchy@1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26"
d3-interpolate@1:
version "1.1.5"
@@ -1976,11 +2106,11 @@ d3-path@1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764"
-d3-scale@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.5.tgz#418506f0fb18eb052b385e196398acc2a4134858"
+d3-scale@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.6.tgz#bce19da80d3a0cf422c9543ae3322086220b34ed"
dependencies:
- d3-array "1"
+ d3-array "^1.2.0"
d3-collection "1"
d3-color "1"
d3-format "1"
@@ -1988,13 +2118,13 @@ d3-scale@1.0.5:
d3-time "1"
d3-time-format "2"
-d3-selection@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.0.5.tgz#948c73b41a44e28d1742ae2ff207c2aebca2734b"
+d3-selection@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.1.0.tgz#1998684896488f839ca0372123da34f1d318809c"
-d3-shape@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.0.6.tgz#b09e305cf0c7c6b9a98c90e6b42f62dac4bcfd5b"
+d3-shape@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.0.tgz#45d01538f064bafd05ea3d6d2cb748fd8c41f777"
dependencies:
d3-path "1"
@@ -2008,6 +2138,12 @@ d3-time@1:
version "1.0.7"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.7.tgz#94caf6edbb7879bb809d0d1f7572bc48482f7270"
+d@1:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ dependencies:
+ es5-ext "^0.10.9"
+
damerau-levenshtein@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
@@ -2018,10 +2154,14 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-date-fns@*, date-fns@1.28.5:
+date-fns@*:
version "1.28.5"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf"
+date-fns@1.29.0:
+ version "1.29.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
+
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
@@ -2032,7 +2172,7 @@ debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.
dependencies:
ms "2.0.0"
-debug@^3.0.1:
+debug@^3.0.1, debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
@@ -2042,6 +2182,10 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+deep-diff@^0.3.5:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84"
+
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
@@ -2095,6 +2239,17 @@ del@^2.0.2:
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
+del@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+ dependencies:
+ globby "^6.1.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ p-map "^1.1.1"
+ pify "^3.0.0"
+ rimraf "^2.2.8"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -2151,6 +2306,23 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+
+dns-packet@^1.0.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz#a8a26bec7646438963fc86e06f8f8b16d6c8bf7a"
+ dependencies:
+ ip "^1.1.0"
+ safe-buffer "^5.0.1"
+
+dns-txt@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ dependencies:
+ buffer-indexof "^1.0.0"
+
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@@ -2295,7 +2467,7 @@ enhanced-resolve@3.3.0:
object-assign "^4.0.1"
tapable "^0.2.5"
-enhanced-resolve@^3.0.0:
+enhanced-resolve@^3.4.0:
version "3.4.1"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
dependencies:
@@ -2308,17 +2480,17 @@ entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
-enzyme-to-json@1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-1.5.1.tgz#e34f4d126bb3f4696ce3800b51f9ed83df708799"
+enzyme-to-json@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-2.0.1.tgz#e8b223040a7cc603bc678a4698c1a83c8c649932"
dependencies:
lodash.filter "^4.6.0"
lodash.isnil "^4.0.0"
lodash.isplainobject "^4.0.6"
- lodash.omitby "^4.5.0"
+ lodash.omitby "^4.6.0"
lodash.range "^3.2.0"
object-values "^1.0.0"
- object.entries "^1.0.3"
+ object.entries "^1.0.4"
enzyme@2.9.1:
version "2.9.1"
@@ -2365,6 +2537,58 @@ es-to-primitive@^1.1.1:
is-date-object "^1.0.1"
is-symbol "^1.0.1"
+es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
+ version "0.10.35"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f"
+ dependencies:
+ es6-iterator "~2.0.1"
+ es6-symbol "~3.1.1"
+
+es6-iterator@^2.0.1, es6-iterator@~2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-symbol "3.1.1"
+ event-emitter "~0.3.5"
+
+es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+es6-weak-map@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.14"
+ es6-iterator "^2.0.1"
+ es6-symbol "^3.1.1"
+
escape-html@1.0.3, escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -2384,6 +2608,15 @@ escodegen@^1.6.1:
optionalDependencies:
source-map "~0.2.0"
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
eslint-import-resolver-node@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
@@ -2391,9 +2624,9 @@ eslint-import-resolver-node@^0.3.1:
debug "^2.6.8"
resolve "^1.2.0"
-eslint-loader@1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.8.0.tgz#8261f08cca4bd2ea263b77733e93cf0f21e20aa9"
+eslint-loader@1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13"
dependencies:
loader-fs-cache "^1.0.0"
loader-utils "^1.0.2"
@@ -2541,6 +2774,13 @@ etag@~1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051"
+event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
eventemitter3@1.x.x:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
@@ -2579,11 +2819,7 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-exenv@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89"
-
-exenv@^1.2.1:
+exenv@^1.2.0, exenv@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
@@ -2617,6 +2853,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
+expect@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b"
+ dependencies:
+ ansi-styles "^3.2.0"
+ jest-diff "^21.2.1"
+ jest-get-type "^21.2.0"
+ jest-matcher-utils "^21.2.1"
+ jest-message-util "^21.2.1"
+ jest-regex-util "^21.2.0"
+
expose-loader@0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51"
@@ -2664,7 +2911,7 @@ extend@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-external-editor@^2.0.1, external-editor@^2.0.4:
+external-editor@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
dependencies:
@@ -2691,12 +2938,12 @@ extglob@^1.1.0:
snapdragon "^0.8.1"
to-regex "^2.1.0"
-extract-text-webpack-plugin@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz#756ef4efa8155c3681833fbc34da53b941746d6c"
+extract-text-webpack-plugin@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.1.tgz#605a8893faca1dd49bb0d2ca87493f33fd43d102"
dependencies:
- async "^2.1.2"
- loader-utils "^1.0.2"
+ async "^2.4.1"
+ loader-utils "^1.1.0"
schema-utils "^0.3.0"
webpack-sources "^1.0.1"
@@ -2708,6 +2955,10 @@ fast-deep-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
@@ -2728,18 +2979,24 @@ faye-websocket@~0.11.0:
dependencies:
websocket-driver ">=0.5.1"
-fb-watchman@^1.8.0:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383"
- dependencies:
- bser "1.0.2"
-
fb-watchman@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
dependencies:
bser "^2.0.0"
+fbjs@^0.8.16:
+ version "0.8.16"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.9"
+
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
@@ -2776,10 +3033,6 @@ fileset@^2.0.2:
glob "^7.0.3"
minimatch "^3.0.3"
-filesize@3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122"
-
filesize@3.5.10, filesize@^3.5.9:
version "3.5.10"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f"
@@ -2823,6 +3076,14 @@ find-cache-dir@^0.1.1:
mkdirp "^0.5.1"
pkg-dir "^1.0.0"
+find-cache-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^1.0.0"
+ pkg-dir "^2.0.0"
+
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -2915,7 +3176,7 @@ fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-fsevents@^1.0.0:
+fsevents@^1.0.0, fsevents@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
dependencies:
@@ -2972,6 +3233,10 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+get-stdin@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
@@ -3028,7 +3293,7 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
-globals@^9.0.0, globals@^9.17.0:
+globals@^9.0.0, globals@^9.17.0, globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -3043,7 +3308,17 @@ globby@^5.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
-good-listener@^1.1.4:
+globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+good-listener@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
dependencies:
@@ -3067,9 +3342,9 @@ handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
-handlebars-loader@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/handlebars-loader/-/handlebars-loader-1.5.0.tgz#9ebb33aa8066fc0733fb1679b441638ad91184bb"
+handlebars-loader@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/handlebars-loader/-/handlebars-loader-1.6.0.tgz#767a5843de30ffe795730f7d8a1ba3ce07af5b62"
dependencies:
async "~0.2.10"
fastparse "^1.0.0"
@@ -3188,10 +3463,14 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0:
+hoist-non-react-statics@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
+hoist-non-react-statics@^2.2.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -3245,9 +3524,9 @@ html-minifier@^3.2.3:
relateurl "0.2.x"
uglify-js "3.0.x"
-html-webpack-plugin@2.28.0:
- version "2.28.0"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009"
+html-webpack-plugin@2.30.1:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5"
dependencies:
bluebird "^3.4.7"
html-minifier "^3.2.3"
@@ -3343,10 +3622,23 @@ ignore@^3.3.3:
version "3.3.5"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
+import-local@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8"
+ dependencies:
+ pkg-dir "^2.0.0"
+ resolve-cwd "^2.0.0"
+
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+indent-string@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ dependencies:
+ repeating "^2.0.0"
+
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -3374,24 +3666,6 @@ ini@^1.3.4, ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
-inquirer@3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
- dependencies:
- ansi-escapes "^1.1.0"
- chalk "^1.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.0.1"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rx "^4.1.0"
- string-width "^2.0.0"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
inquirer@3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175"
@@ -3430,6 +3704,12 @@ inquirer@^3.0.6:
strip-ansi "^4.0.0"
through "^2.3.6"
+internal-ip@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
+ dependencies:
+ meow "^3.3.0"
+
interpret@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
@@ -3442,30 +3722,18 @@ intl-messageformat-parser@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff"
-intl-messageformat@1.3.0, intl-messageformat@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-1.3.0.tgz#f7d926aded7a3ab19b2dc601efd54e99a4bd4eae"
- dependencies:
- intl-messageformat-parser "1.2.0"
-
-intl-messageformat@^2.0.0:
+intl-messageformat@^2.0.0, intl-messageformat@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.1.0.tgz#1c51da76f02a3f7b360654cdc51bbc4d3fa6c72c"
dependencies:
intl-messageformat-parser "1.2.0"
-intl-relativeformat@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.0.0.tgz#d6ba9dc6c625819bc0abdb1d4e238138b7488f26"
+intl-relativeformat@2.1.0, intl-relativeformat@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz#010f1105802251f40ac47d0e3e1a201348a255df"
dependencies:
intl-messageformat "^2.0.0"
-intl-relativeformat@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-1.3.0.tgz#893dc7076fccd380cf091a2300c380fa57ace45b"
- dependencies:
- intl-messageformat "1.3.0"
-
invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
@@ -3476,6 +3744,10 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
ipaddr.js@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
@@ -3802,216 +4074,230 @@ istanbul-reports@^1.1.1:
dependencies:
handlebars "^4.0.3"
-jest-changed-files@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8"
+jest-changed-files@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29"
+ dependencies:
+ throat "^4.0.0"
-jest-cli@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93"
+jest-cli@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-21.2.1.tgz#9c528b6629d651911138d228bdb033c157ec8c00"
dependencies:
- ansi-escapes "^1.4.0"
- callsites "^2.0.0"
- chalk "^1.1.3"
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ glob "^7.1.2"
graceful-fs "^4.1.11"
is-ci "^1.0.10"
istanbul-api "^1.1.1"
istanbul-lib-coverage "^1.0.1"
istanbul-lib-instrument "^1.4.2"
istanbul-lib-source-maps "^1.1.0"
- jest-changed-files "^20.0.3"
- jest-config "^20.0.4"
- jest-docblock "^20.0.3"
- jest-environment-jsdom "^20.0.3"
- jest-haste-map "^20.0.4"
- jest-jasmine2 "^20.0.4"
- jest-message-util "^20.0.3"
- jest-regex-util "^20.0.3"
- jest-resolve-dependencies "^20.0.3"
- jest-runtime "^20.0.4"
- jest-snapshot "^20.0.3"
- jest-util "^20.0.3"
+ jest-changed-files "^21.2.0"
+ jest-config "^21.2.1"
+ jest-environment-jsdom "^21.2.1"
+ jest-haste-map "^21.2.0"
+ jest-message-util "^21.2.1"
+ jest-regex-util "^21.2.0"
+ jest-resolve-dependencies "^21.2.0"
+ jest-runner "^21.2.1"
+ jest-runtime "^21.2.1"
+ jest-snapshot "^21.2.1"
+ jest-util "^21.2.1"
micromatch "^2.3.11"
node-notifier "^5.0.2"
- pify "^2.3.0"
+ pify "^3.0.0"
slash "^1.0.0"
- string-length "^1.0.1"
- throat "^3.0.0"
+ string-length "^2.0.0"
+ strip-ansi "^4.0.0"
which "^1.2.12"
worker-farm "^1.3.1"
- yargs "^7.0.2"
+ yargs "^9.0.0"
-jest-config@^20.0.0, jest-config@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea"
+jest-config@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-21.2.1.tgz#c7586c79ead0bcc1f38c401e55f964f13bf2a480"
dependencies:
- chalk "^1.1.3"
+ chalk "^2.0.1"
glob "^7.1.1"
- jest-environment-jsdom "^20.0.3"
- jest-environment-node "^20.0.3"
- jest-jasmine2 "^20.0.4"
- jest-matcher-utils "^20.0.3"
- jest-regex-util "^20.0.3"
- jest-resolve "^20.0.4"
- jest-validate "^20.0.3"
- pretty-format "^20.0.3"
-
-jest-diff@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617"
- dependencies:
- chalk "^1.1.3"
+ jest-environment-jsdom "^21.2.1"
+ jest-environment-node "^21.2.1"
+ jest-get-type "^21.2.0"
+ jest-jasmine2 "^21.2.1"
+ jest-regex-util "^21.2.0"
+ jest-resolve "^21.2.0"
+ jest-util "^21.2.1"
+ jest-validate "^21.2.1"
+ pretty-format "^21.2.1"
+
+jest-diff@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-21.2.1.tgz#46cccb6cab2d02ce98bc314011764bb95b065b4f"
+ dependencies:
+ chalk "^2.0.1"
diff "^3.2.0"
- jest-matcher-utils "^20.0.3"
- pretty-format "^20.0.3"
+ jest-get-type "^21.2.0"
+ pretty-format "^21.2.1"
-jest-docblock@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
+jest-docblock@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414"
-jest-environment-jsdom@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99"
+jest-environment-jsdom@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz#38d9980c8259b2a608ec232deee6289a60d9d5b4"
dependencies:
- jest-mock "^20.0.3"
- jest-util "^20.0.3"
+ jest-mock "^21.2.0"
+ jest-util "^21.2.1"
jsdom "^9.12.0"
-jest-environment-node@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403"
+jest-environment-node@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-21.2.1.tgz#98c67df5663c7fbe20f6e792ac2272c740d3b8c8"
dependencies:
- jest-mock "^20.0.3"
- jest-util "^20.0.3"
+ jest-mock "^21.2.0"
+ jest-util "^21.2.1"
+
+jest-get-type@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23"
-jest-haste-map@^20.0.4:
- version "20.0.5"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112"
+jest-haste-map@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-21.2.0.tgz#1363f0a8bb4338f24f001806571eff7a4b2ff3d8"
dependencies:
fb-watchman "^2.0.0"
graceful-fs "^4.1.11"
- jest-docblock "^20.0.3"
+ jest-docblock "^21.2.0"
micromatch "^2.3.11"
- sane "~1.6.0"
+ sane "^2.0.0"
worker-farm "^1.3.1"
-jest-jasmine2@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1"
+jest-jasmine2@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz#9cc6fc108accfa97efebce10c4308548a4ea7592"
dependencies:
- chalk "^1.1.3"
+ chalk "^2.0.1"
+ expect "^21.2.1"
graceful-fs "^4.1.11"
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-matchers "^20.0.3"
- jest-message-util "^20.0.3"
- jest-snapshot "^20.0.3"
- once "^1.4.0"
- p-map "^1.1.1"
+ jest-diff "^21.2.1"
+ jest-matcher-utils "^21.2.1"
+ jest-message-util "^21.2.1"
+ jest-snapshot "^21.2.1"
+ p-cancelable "^0.3.0"
-jest-matcher-utils@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612"
+jest-matcher-utils@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz#72c826eaba41a093ac2b4565f865eb8475de0f64"
dependencies:
- chalk "^1.1.3"
- pretty-format "^20.0.3"
+ chalk "^2.0.1"
+ jest-get-type "^21.2.0"
+ pretty-format "^21.2.1"
-jest-matchers@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60"
+jest-message-util@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-21.2.1.tgz#bfe5d4692c84c827d1dcf41823795558f0a1acbe"
dependencies:
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-message-util "^20.0.3"
- jest-regex-util "^20.0.3"
-
-jest-message-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c"
- dependencies:
- chalk "^1.1.3"
+ chalk "^2.0.1"
micromatch "^2.3.11"
slash "^1.0.0"
-jest-mock@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59"
+jest-mock@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-21.2.0.tgz#7eb0770e7317968165f61ea2a7281131534b3c0f"
-jest-regex-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762"
+jest-regex-util@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-21.2.0.tgz#1b1e33e63143babc3e0f2e6c9b5ba1eb34b2d530"
-jest-resolve-dependencies@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a"
+jest-resolve-dependencies@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz#9e231e371e1a736a1ad4e4b9a843bc72bfe03d09"
dependencies:
- jest-regex-util "^20.0.3"
+ jest-regex-util "^21.2.0"
-jest-resolve@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5"
+jest-resolve@^21.2.0:
+ version "21.2.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-21.2.0.tgz#068913ad2ba6a20218e5fd32471f3874005de3a6"
dependencies:
browser-resolve "^1.11.2"
+ chalk "^2.0.1"
is-builtin-module "^1.0.0"
- resolve "^1.3.2"
-jest-runtime@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8"
+jest-runner@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-21.2.1.tgz#194732e3e518bfb3d7cbfc0fd5871246c7e1a467"
+ dependencies:
+ jest-config "^21.2.1"
+ jest-docblock "^21.2.0"
+ jest-haste-map "^21.2.0"
+ jest-jasmine2 "^21.2.1"
+ jest-message-util "^21.2.1"
+ jest-runtime "^21.2.1"
+ jest-util "^21.2.1"
+ pify "^3.0.0"
+ throat "^4.0.0"
+ worker-farm "^1.3.1"
+
+jest-runtime@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-21.2.1.tgz#99dce15309c670442eee2ebe1ff53a3cbdbbb73e"
dependencies:
babel-core "^6.0.0"
- babel-jest "^20.0.3"
+ babel-jest "^21.2.0"
babel-plugin-istanbul "^4.0.0"
- chalk "^1.1.3"
+ chalk "^2.0.1"
convert-source-map "^1.4.0"
graceful-fs "^4.1.11"
- jest-config "^20.0.4"
- jest-haste-map "^20.0.4"
- jest-regex-util "^20.0.3"
- jest-resolve "^20.0.4"
- jest-util "^20.0.3"
+ jest-config "^21.2.1"
+ jest-haste-map "^21.2.0"
+ jest-regex-util "^21.2.0"
+ jest-resolve "^21.2.0"
+ jest-util "^21.2.1"
json-stable-stringify "^1.0.1"
micromatch "^2.3.11"
+ slash "^1.0.0"
strip-bom "3.0.0"
- yargs "^7.0.2"
+ write-file-atomic "^2.1.0"
+ yargs "^9.0.0"
-jest-snapshot@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566"
+jest-snapshot@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-21.2.1.tgz#29e49f16202416e47343e757e5eff948c07fd7b0"
dependencies:
- chalk "^1.1.3"
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-util "^20.0.3"
+ chalk "^2.0.1"
+ jest-diff "^21.2.1"
+ jest-matcher-utils "^21.2.1"
+ mkdirp "^0.5.1"
natural-compare "^1.4.0"
- pretty-format "^20.0.3"
+ pretty-format "^21.2.1"
-jest-util@^20.0.0, jest-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad"
+jest-util@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-21.2.1.tgz#a274b2f726b0897494d694a6c3d6a61ab819bb78"
dependencies:
- chalk "^1.1.3"
+ callsites "^2.0.0"
+ chalk "^2.0.1"
graceful-fs "^4.1.11"
- jest-message-util "^20.0.3"
- jest-mock "^20.0.3"
- jest-validate "^20.0.3"
- leven "^2.1.0"
+ jest-message-util "^21.2.1"
+ jest-mock "^21.2.0"
+ jest-validate "^21.2.1"
mkdirp "^0.5.1"
-jest-validate@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab"
+jest-validate@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7"
dependencies:
- chalk "^1.1.3"
- jest-matcher-utils "^20.0.3"
+ chalk "^2.0.1"
+ jest-get-type "^21.2.0"
leven "^2.1.0"
- pretty-format "^20.0.3"
+ pretty-format "^21.2.1"
-jest@20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac"
+jest@21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-21.2.1.tgz#c964e0b47383768a1438e3ccf3c3d470327604e1"
dependencies:
- jest-cli "^20.0.4"
+ jest-cli "^21.2.1"
jquery@2.2.0:
version "2.2.0"
@@ -4021,7 +4307,7 @@ js-base64@^2.1.9:
version "2.1.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
-js-tokens@^3.0.0:
+js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -4342,7 +4628,7 @@ lodash.merge@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
-lodash.omitby@^4.5.0:
+lodash.omitby@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791"
@@ -4378,6 +4664,10 @@ lodash@4.17.4, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, l
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+loglevel@^1.4.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.1.tgz#189078c94ab9053ee215a0acdbf24244ea0f6502"
+
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -4388,6 +4678,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3
dependencies:
js-tokens "^3.0.0"
+loud-rejection@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ dependencies:
+ currently-unhandled "^0.4.1"
+ signal-exit "^3.0.0"
+
lower-case@^1.1.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
@@ -4403,6 +4700,12 @@ macaddress@^0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
+make-dir@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
+ dependencies:
+ pify "^3.0.0"
+
makeerror@1.0.x:
version "1.0.11"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
@@ -4413,6 +4716,10 @@ map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+map-obj@^1.0.0, map-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+
map-visit@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-0.1.5.tgz#dbe43927ce5525b80dfc1573a44d68c51f26816b"
@@ -4441,6 +4748,21 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
+meow@^3.3.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ dependencies:
+ camelcase-keys "^2.0.0"
+ decamelize "^1.1.2"
+ loud-rejection "^1.0.0"
+ map-obj "^1.0.1"
+ minimist "^1.1.3"
+ normalize-package-data "^2.3.4"
+ object-assign "^4.0.1"
+ read-pkg-up "^1.0.1"
+ redent "^1.0.0"
+ trim-newlines "^1.0.0"
+
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@@ -4542,7 +4864,7 @@ minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-minimist@^1.1.1, minimist@^1.2.0:
+minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
@@ -4557,7 +4879,7 @@ mixin-deep@^1.1.3:
for-in "^1.0.2"
is-extendable "^0.1.1"
-mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
@@ -4567,6 +4889,17 @@ ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+multicast-dns-service-types@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+
+multicast-dns@^6.0.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde"
+ dependencies:
+ dns-packet "^1.0.1"
+ thunky "^0.1.0"
+
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -4619,6 +4952,10 @@ node-fetch@^1.0.1:
encoding "^0.1.11"
is-stream "^1.0.1"
+node-forge@0.6.33:
+ version "0.6.33"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -4681,7 +5018,7 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
-normalize-package-data@^2.3.2:
+normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
version "2.4.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
dependencies:
@@ -4792,7 +5129,7 @@ object.assign@^4.0.4:
function-bind "^1.1.0"
object-keys "^1.0.10"
-object.entries@^1.0.3, object.entries@^1.0.4:
+object.entries@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
dependencies:
@@ -4853,20 +5190,7 @@ opener@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
-opn@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
- dependencies:
- object-assign "^4.0.1"
- pinkie-promise "^2.0.0"
-
-opn@5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/opn/-/opn-5.0.0.tgz#f8870d7cd969b218030cb6ce5a1285e795931df3"
- dependencies:
- is-wsl "^1.1.0"
-
-opn@5.1.0:
+opn@5.1.0, opn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519"
dependencies:
@@ -4935,6 +5259,10 @@ osenv@^0.1.4:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
+p-cancelable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -4950,8 +5278,8 @@ p-locate@^2.0.0:
p-limit "^1.1.0"
p-map@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
pako@~0.2.0:
version "0.2.9"
@@ -5018,7 +5346,7 @@ path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-path-is-absolute@^1.0.0:
+path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -5066,10 +5394,14 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
-pify@^2.0.0, pify@^2.3.0:
+pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
@@ -5413,9 +5745,9 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-prettier@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.6.1.tgz#850f411a3116226193e32ea5acfc21c0f9a76d7d"
+prettier@1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.7.4.tgz#5e8624ae9363c80f95ec644584ecdf55d74f93fa"
pretty-error@^2.0.2:
version "2.1.1"
@@ -5424,17 +5756,21 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
-pretty-format@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14"
+pretty-format@^21.2.1:
+ version "21.2.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36"
dependencies:
- ansi-regex "^2.1.1"
- ansi-styles "^3.0.0"
+ ansi-regex "^3.0.0"
+ ansi-styles "^3.2.0"
private@^0.1.6:
version "0.1.7"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
+private@^0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
@@ -5453,7 +5789,15 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
-prop-types@15.5.10, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8:
+prop-types@15.6.0:
+ version "15.6.0"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
+ dependencies:
+ fbjs "^0.8.16"
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
+prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
@@ -5561,11 +5905,11 @@ rc-animate@2.x:
css-animation "^1.3.2"
prop-types "15.x"
-rc-tooltip@3.4.7:
- version "3.4.7"
- resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-3.4.7.tgz#ec6cc39a962de96a9147de08a78fb38f93517ff3"
+rc-tooltip@3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-3.5.0.tgz#f73e835ae174ecfa81cddda1b1fa318361f57dc1"
dependencies:
- babel-runtime "^6.23.0"
+ babel-runtime "6.x"
prop-types "^15.5.8"
rc-trigger "1.x"
@@ -5597,28 +5941,6 @@ rc@^1.1.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-dev-utils@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.0.0.tgz#3677f37718ba0cae892ba9c01fe54d1622e6ef7c"
- dependencies:
- "@timer/detect-port" "1.1.3"
- address "1.0.1"
- anser "1.3.0"
- babel-code-frame "6.22.0"
- chalk "1.1.3"
- cross-spawn "4.0.2"
- escape-string-regexp "1.0.5"
- filesize "3.3.0"
- gzip-size "3.0.0"
- html-entities "1.2.1"
- inquirer "3.0.6"
- opn "5.0.0"
- recursive-readdir "2.2.1"
- shell-quote "1.6.1"
- sockjs-client "1.1.4"
- strip-ansi "3.0.1"
- text-table "0.2.0"
-
react-dev-utils@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.1.1.tgz#09ae7209a81384248db56547e718e65bd3b20eb5"
@@ -5643,10 +5965,6 @@ react-dev-utils@^3.0.0:
strip-ansi "3.0.1"
text-table "0.2.0"
-react-dom-factories@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.1.tgz#c50692ac5ff1adb39d86dfe6dbe3485dacf58455"
-
react-dom@15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
@@ -5656,11 +5974,12 @@ react-dom@15.6.2:
object-assign "^4.1.0"
prop-types "^15.5.10"
-react-draggable@2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-2.2.6.tgz#3a806e10f2da6babfea4136be6510e89b0d76901"
+react-draggable@3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.0.3.tgz#a6f9b3a7171981b76dadecf238316925cb9eacf4"
dependencies:
classnames "^2.2.5"
+ prop-types "^15.5.10"
react-error-overlay@1.0.7:
version "1.0.7"
@@ -5673,45 +5992,43 @@ react-error-overlay@1.0.7:
settle-promise "1.0.0"
source-map "0.5.6"
-react-helmet@5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-5.1.3.tgz#cd40626593a29eecf684b6d38d711f44c48188af"
+react-helmet@5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-5.2.0.tgz#a81811df21313a6d55c5f058c4aeba5d6f3d97a7"
dependencies:
deep-equal "^1.0.1"
object-assign "^4.1.1"
prop-types "^15.5.4"
react-side-effect "^1.1.0"
-react-input-autosize@^1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-1.1.4.tgz#cbc45072d4084ddc57806db8e3b34e644b8366ac"
+react-input-autosize@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.0.1.tgz#e92190497b4026c2780ad0f2fd703c835ba03e33"
dependencies:
create-react-class "^15.5.2"
prop-types "^15.5.8"
-react-intl@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.3.0.tgz#e1df6af5667fdf01cbe4aab20e137251e2ae5142"
+react-intl@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.4.0.tgz#66c14dc9df9a73b2fbbfbd6021726e80a613eb15"
dependencies:
intl-format-cache "^2.0.5"
- intl-messageformat "^1.3.0"
- intl-relativeformat "^1.3.0"
+ intl-messageformat "^2.1.0"
+ intl-relativeformat "^2.0.0"
invariant "^2.1.1"
-react-modal@2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-2.2.2.tgz#4bbf98bc506e61c446c9f57329c7a488ea7d504b"
+react-modal@3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.0.4.tgz#61f3c9a701b27d2015fe5ac0c419e3c977e4092a"
dependencies:
- exenv "1.2.0"
+ exenv "^1.2.0"
prop-types "^15.5.10"
- react-dom-factories "^1.0.0"
-react-redux@5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.5.tgz#f8e8c7b239422576e52d6b7db06439469be9846a"
+react-redux@5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946"
dependencies:
- create-react-class "^15.5.3"
- hoist-non-react-statics "^1.0.3"
+ hoist-non-react-statics "^2.2.1"
invariant "^2.0.0"
lodash "^4.2.0"
lodash-es "^4.2.0"
@@ -5730,14 +6047,13 @@ react-router@3.0.5:
prop-types "^15.5.6"
warning "^3.0.0"
-react-select@1.0.0-rc.5:
- version "1.0.0-rc.5"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-1.0.0-rc.5.tgz#9d316f252b1adc372ddb5cdf1f119c6b7cfdb5d6"
+react-select@1.0.0-rc.10:
+ version "1.0.0-rc.10"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-1.0.0-rc.10.tgz#f137346250f9255c979fbfa21860899928772350"
dependencies:
classnames "^2.2.4"
- create-react-class "^15.5.2"
prop-types "^15.5.8"
- react-input-autosize "^1.1.3"
+ react-input-autosize "^2.0.1"
react-side-effect@^1.1.0:
version "1.1.3"
@@ -5753,11 +6069,11 @@ react-test-renderer@15.6.2:
fbjs "^0.8.9"
object-assign "^4.1.0"
-react-virtualized@9.9.0:
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.9.0.tgz#799a6f23819eeb82860d59b82fad33d1d420325e"
+react-virtualized@9.12.0:
+ version "9.12.0"
+ resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.12.0.tgz#1b4d3e5ab197ed1d832df8e6688b1b18f725b6c5"
dependencies:
- babel-runtime "^6.11.6"
+ babel-runtime "^6.23.0"
classnames "^2.2.3"
dom-helpers "^2.4.0 || ^3.0.0"
loose-envify "^1.3.0"
@@ -5839,6 +6155,13 @@ recursive-readdir@2.2.1:
dependencies:
minimatch "3.0.3"
+redent@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ dependencies:
+ indent-string "^2.1.0"
+ strip-indent "^1.0.1"
+
reduce-css-calc@^1.2.6:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
@@ -5853,23 +6176,17 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^0.4.2"
-redux-logger@2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-2.2.1.tgz#f57dd1b3f48c0f48d4ad58ef8c026f753d6cb06c"
-
-redux-thunk@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-1.0.2.tgz#5911e5a25dab2649d860b0f1eeac261c9d130ece"
-
-redux@3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/redux/-/redux-3.3.1.tgz#716df8004786deaf01c93ae396c84fc1041e424b"
+redux-logger@3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-3.0.6.tgz#f7555966f3098f3c88604c449cf0baf5778274bf"
dependencies:
- lodash "^4.2.1"
- lodash-es "^4.2.1"
- loose-envify "^1.1.0"
+ deep-diff "^0.3.5"
+
+redux-thunk@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
-redux@^3.6.0:
+redux@3.7.2, redux@^3.6.0:
version "3.7.2"
resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
dependencies:
@@ -5882,10 +6199,14 @@ regenerate@^1.2.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
-regenerator-runtime@^0.10.0:
+regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+regenerator-runtime@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
+
regenerator-transform@0.9.11:
version "0.9.11"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"
@@ -6019,6 +6340,12 @@ requires-port@1.0.x, requires-port@1.x.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ dependencies:
+ resolve-from "^3.0.0"
+
resolve-dir@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -6030,6 +6357,10 @@ resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -6038,7 +6369,7 @@ resolve@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-resolve@^1.2.0, resolve@^1.3.2:
+resolve@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
dependencies:
@@ -6063,9 +6394,9 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
dependencies:
glob "^7.0.5"
-rimraf@2.5.4:
- version "2.5.4"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
+rimraf@2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
glob "^7.0.5"
@@ -6092,10 +6423,6 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
-rx@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
-
safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -6104,17 +6431,19 @@ safe-buffer@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-sane@~1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775"
+sane@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-2.2.0.tgz#d6d2e2fcab00e3d283c93b912b7c3a20846f1d56"
dependencies:
anymatch "^1.3.0"
exec-sh "^0.2.0"
- fb-watchman "^1.8.0"
+ fb-watchman "^2.0.0"
minimatch "^3.0.2"
minimist "^1.1.1"
walker "~1.0.5"
- watch "~0.10.0"
+ watch "~0.18.0"
+ optionalDependencies:
+ fsevents "^1.1.1"
sax@^1.2.1, sax@~1.2.1:
version "1.2.4"
@@ -6130,10 +6459,16 @@ select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
-select@^1.0.6:
+select@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+selfsigned@^1.9.1:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52"
+ dependencies:
+ node-forge "0.6.33"
+
"semver@2 || 3 || 4 || 5", semver@5.4.1, semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
@@ -6298,17 +6633,6 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
-sockjs-client@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5"
- dependencies:
- debug "^2.2.0"
- eventsource "0.1.6"
- faye-websocket "~0.11.0"
- inherits "^2.0.1"
- json3 "^3.3.2"
- url-parse "^1.1.1"
-
sockjs-client@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
@@ -6333,14 +6657,6 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
-source-list-map@^0.1.7:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
-
-source-list-map@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
-
source-list-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
@@ -6354,12 +6670,18 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.4.15, source-map-support@^0.4.2, source-map-support@^0.4.4:
+source-map-support@^0.4.15, source-map-support@^0.4.2:
version "0.4.15"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
dependencies:
source-map "^0.5.6"
+source-map-support@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab"
+ dependencies:
+ source-map "^0.6.0"
+
source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
@@ -6374,7 +6696,7 @@ source-map@^0.4.4:
dependencies:
amdefine ">=0.0.4"
-source-map@^0.6.1:
+source-map@^0.6.0, source-map@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -6483,11 +6805,12 @@ strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-string-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac"
+string-length@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
dependencies:
- strip-ansi "^3.0.0"
+ astral-regex "^1.0.0"
+ strip-ansi "^4.0.0"
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
@@ -6544,13 +6867,19 @@ strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+strip-indent@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ dependencies:
+ get-stdin "^4.0.1"
+
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-style-loader@0.18.2:
- version "0.18.2"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb"
+style-loader@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759"
dependencies:
loader-utils "^1.0.2"
schema-utils "^0.3.0"
@@ -6559,7 +6888,7 @@ supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3:
+supports-color@^3.1.2, supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
@@ -6608,7 +6937,7 @@ table@^4.0.1:
slice-ansi "1.0.0"
string-width "^2.1.1"
-tapable@^0.2.5, tapable@^0.2.7, tapable@~0.2.5:
+tapable@^0.2.5, tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
@@ -6647,14 +6976,18 @@ text-table@0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-throat@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836"
+throat@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
through@^2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+thunky@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e"
+
time-stamp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"
@@ -6665,9 +6998,9 @@ timers-browserify@^2.0.2:
dependencies:
setimmediate "^1.0.4"
-tiny-emitter@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.2.0.tgz#6dc845052cb08ebefc1874723b58f24a648c3b6f"
+tiny-emitter@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"
tmp@^0.0.31:
version "0.0.31"
@@ -6683,7 +7016,7 @@ to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-to-fast-properties@^1.0.1:
+to-fast-properties@^1.0.1, to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
@@ -6730,6 +7063,10 @@ tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+trim-newlines@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+
trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
@@ -6738,20 +7075,20 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-ts-jest@20.0.10:
- version "20.0.10"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-20.0.10.tgz#19e9386e6c890d31c2a64e938edc0c84fc937ebc"
+ts-jest@21.1.3:
+ version "21.1.3"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-21.1.3.tgz#cc3c552e7e8a67db9ededc28c00ae98223614ddc"
dependencies:
babel-core "^6.24.1"
babel-plugin-istanbul "^4.1.4"
babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
- babel-preset-jest "^20.0.3"
+ babel-preset-jest "^21.2.0"
fs-extra "^4.0.0"
- jest-config "^20.0.0"
- jest-util "^20.0.0"
+ jest-config "^21.2.1"
+ jest-util "^21.2.1"
pkg-dir "^2.0.0"
- source-map-support "^0.4.4"
- yargs "^8.0.1"
+ source-map-support "^0.5.0"
+ yargs "^9.0.1"
tty-browserify@0.0.0:
version "0.0.0"
@@ -6784,9 +7121,9 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-typescript-eslint-parser@8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-8.0.0.tgz#81f70bbffca1139c1dc5a1301208a7fd8213f8b2"
+typescript-eslint-parser@8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-8.0.1.tgz#e8cac537d996e16c3dbb0d7c4d509799e67afe0c"
dependencies:
lodash.unescape "4.0.1"
semver "5.4.1"
@@ -6806,7 +7143,7 @@ uglify-js@3.0.x:
commander "~2.11.0"
source-map "~0.5.1"
-uglify-js@^2.6, uglify-js@^2.8.27:
+uglify-js@^2.6, uglify-js@^2.8.29:
version "2.8.29"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
dependencies:
@@ -6827,6 +7164,14 @@ uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+uglifyjs-webpack-plugin@^0.4.6:
+ version "0.4.6"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
+ dependencies:
+ source-map "^0.5.6"
+ uglify-js "^2.8.29"
+ webpack-sources "^1.0.1"
+
uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
@@ -6892,7 +7237,7 @@ url-parse@1.0.x:
querystringify "0.0.x"
requires-port "1.0.x"
-url-parse@^1.1.1, url-parse@^1.1.8:
+url-parse@^1.1.8:
version "1.1.9"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19"
dependencies:
@@ -6985,11 +7330,14 @@ warning@^3.0.0:
dependencies:
loose-envify "^1.0.0"
-watch@~0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
+watch@~0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
+ dependencies:
+ exec-sh "^0.2.0"
+ minimist "^1.2.0"
-watchpack@^1.3.1:
+watchpack@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"
dependencies:
@@ -7011,11 +7359,11 @@ webidl-conversions@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
-webpack-bundle-analyzer@2.8.2:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.8.2.tgz#8b6240c29a9d63bc72f09d920fb050adbcce9fe8"
+webpack-bundle-analyzer@2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.9.0.tgz#b58bc34cc30b27ffdbaf3d00bf27aba6fa29c6e3"
dependencies:
- acorn "^5.0.3"
+ acorn "^5.1.1"
chalk "^1.1.3"
commander "^2.9.0"
ejs "^2.5.6"
@@ -7027,7 +7375,7 @@ webpack-bundle-analyzer@2.8.2:
opener "^1.4.3"
ws "^2.3.1"
-webpack-dev-middleware@^1.10.2:
+webpack-dev-middleware@^1.11.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709"
dependencies:
@@ -7037,34 +7385,36 @@ webpack-dev-middleware@^1.10.2:
range-parser "^1.0.3"
time-stamp "^2.0.0"
-webpack-dev-server@2.4.5:
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz#31384ce81136be1080b4b4cde0eb9b90e54ee6cf"
+webpack-dev-server@2.9.3:
+ version "2.9.3"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.3.tgz#f0554e88d129e87796a6f74a016b991743ca6f81"
dependencies:
ansi-html "0.0.7"
+ array-includes "^3.0.3"
+ bonjour "^3.5.0"
chokidar "^1.6.0"
compression "^1.5.2"
connect-history-api-fallback "^1.3.0"
+ debug "^3.1.0"
+ del "^3.0.0"
express "^4.13.3"
html-entities "^1.2.0"
http-proxy-middleware "~0.17.4"
- opn "4.0.2"
+ import-local "^0.1.1"
+ internal-ip "1.2.0"
+ ip "^1.1.5"
+ loglevel "^1.4.1"
+ opn "^5.1.0"
portfinder "^1.0.9"
+ selfsigned "^1.9.1"
serve-index "^1.7.2"
sockjs "0.3.18"
- sockjs-client "1.1.2"
+ sockjs-client "1.1.4"
spdy "^3.4.1"
- strip-ansi "^3.0.0"
- supports-color "^3.1.1"
- webpack-dev-middleware "^1.10.2"
- yargs "^6.0.0"
-
-webpack-sources@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb"
- dependencies:
- source-list-map "^1.1.1"
- source-map "~0.5.3"
+ strip-ansi "^3.0.1"
+ supports-color "^4.2.1"
+ webpack-dev-middleware "^1.11.0"
+ yargs "^6.6.0"
webpack-sources@^1.0.1:
version "1.0.1"
@@ -7073,31 +7423,32 @@ webpack-sources@^1.0.1:
source-list-map "^2.0.0"
source-map "~0.5.3"
-webpack@2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.6.1.tgz#2e0457f0abb1ac5df3ab106c69c672f236785f07"
+webpack@3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
- ajv "^4.7.0"
- ajv-keywords "^1.1.1"
+ ajv "^5.1.5"
+ ajv-keywords "^2.0.0"
async "^2.1.2"
- enhanced-resolve "^3.0.0"
+ enhanced-resolve "^3.4.0"
+ escope "^3.6.0"
interpret "^1.0.0"
json-loader "^0.5.4"
json5 "^0.5.1"
loader-runner "^2.3.0"
- loader-utils "^0.2.16"
+ loader-utils "^1.1.0"
memory-fs "~0.4.1"
mkdirp "~0.5.0"
node-libs-browser "^2.0.0"
source-map "^0.5.3"
- supports-color "^3.1.0"
- tapable "~0.2.5"
- uglify-js "^2.8.27"
- watchpack "^1.3.1"
- webpack-sources "^0.2.3"
- yargs "^6.0.0"
+ supports-color "^4.2.1"
+ tapable "^0.2.7"
+ uglifyjs-webpack-plugin "^0.4.6"
+ watchpack "^1.4.0"
+ webpack-sources "^1.0.1"
+ yargs "^8.0.2"
websocket-driver@>=0.5.1:
version "0.6.5"
@@ -7115,11 +7466,7 @@ whatwg-encoding@^1.0.1:
dependencies:
iconv-lite "0.4.13"
-whatwg-fetch@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz#01c2ac4df40e236aaa18480e3be74bd5c8eb798e"
-
-whatwg-fetch@>=0.10.0:
+whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
@@ -7188,6 +7535,14 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+write-file-atomic@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
write@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
@@ -7227,19 +7582,13 @@ yargs-parser@^4.2.0:
dependencies:
camelcase "^3.0.0"
-yargs-parser@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
- dependencies:
- camelcase "^3.0.0"
-
yargs-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
dependencies:
camelcase "^4.1.0"
-yargs@^6.0.0:
+yargs@^6.6.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
dependencies:
@@ -7257,27 +7606,27 @@ yargs@^6.0.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
-yargs@^7.0.2:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+yargs@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
dependencies:
- camelcase "^3.0.0"
+ camelcase "^4.1.0"
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
y18n "^3.2.1"
- yargs-parser "^5.0.0"
+ yargs-parser "^7.0.0"
-yargs@^8.0.1:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+yargs@^9.0.0, yargs@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
dependencies:
camelcase "^4.1.0"
cliui "^3.2.0"