aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/component-measures
diff options
context:
space:
mode:
authorStas Vilchik <stas.vilchik@sonarsource.com>2018-12-05 17:32:18 +0100
committerSonarTech <sonartech@sonarsource.com>2018-12-05 20:20:59 +0100
commit41c98779d38bda9fdfdca182a5f20c73fcff9a84 (patch)
treed895a9f8bfd0276aee5ffacf7bb33a0109436cbd /server/sonar-web/src/main/js/apps/component-measures
parenta9c22c1185c5fd8c8dc4c9388f4a3b967e3f463d (diff)
downloadsonarqube-41c98779d38bda9fdfdca182a5f20c73fcff9a84.tar.gz
sonarqube-41c98779d38bda9fdfdca182a5f20c73fcff9a84.zip
create global type definitions (#1017)
Diffstat (limited to 'server/sonar-web/src/main/js/apps/component-measures')
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/App.tsx32
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/AppContainer.tsx31
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumb.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumbs.tsx9
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.tsx7
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.tsx36
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureContentContainer.tsx30
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureFavoriteContainer.tsx5
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.tsx13
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.tsx25
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverviewContainer.tsx13
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureViewSelect.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/PageActions.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/LeakPeriodLegend-test.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureHeader-test.tsx5
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureViewSelect-test.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/BubbleChart.tsx21
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/CodeView.tsx17
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentCell.tsx9
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsList.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsListRow.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.tsx23
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/MeasureCell.tsx7
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.tsx15
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainFacet.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/FacetMeasureValue.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/utils.ts44
28 files changed, 167 insertions, 237 deletions
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
index 3ecb85b9786..25348fb55db 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/App.tsx
@@ -50,37 +50,33 @@ import {
translate
} from '../../../helpers/l10n';
import { RawQuery } from '../../../helpers/query';
-import {
- BranchLike,
- ComponentMeasure,
- CurrentUser,
- MeasureEnhanced,
- Metric,
- Period
-} from '../../../app/types';
import '../../../components/search-navigator.css';
import '../style.css';
interface Props {
- branchLike?: BranchLike;
- component: ComponentMeasure;
- currentUser: CurrentUser;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasure;
+ currentUser: T.CurrentUser;
location: { pathname: string; query: RawQuery };
fetchMeasures: (
component: string,
metricsKey: string[],
- branchLike?: BranchLike
- ) => Promise<{ component: ComponentMeasure; measures: MeasureEnhanced[]; leakPeriod?: Period }>;
+ branchLike?: T.BranchLike
+ ) => Promise<{
+ component: T.ComponentMeasure;
+ measures: T.MeasureEnhanced[];
+ leakPeriod?: T.Period;
+ }>;
fetchMetrics: () => void;
- metrics: { [metric: string]: Metric };
+ metrics: { [metric: string]: T.Metric };
metricsKey: string[];
router: InjectedRouter;
}
interface State {
loading: boolean;
- measures: MeasureEnhanced[];
- leakPeriod?: Period;
+ measures: T.MeasureEnhanced[];
+ leakPeriod?: T.Period;
}
export default class App extends React.PureComponent<Props, State> {
@@ -162,7 +158,7 @@ export default class App extends React.PureComponent<Props, State> {
);
};
- getHelmetTitle = (query: Query, displayOverview: boolean, metric?: Metric) => {
+ getHelmetTitle = (query: Query, displayOverview: boolean, metric?: T.Metric) => {
if (displayOverview && query.metric) {
return isProjectOverview(query.metric)
? translate('component_measures.overview.project_overview.facet')
@@ -205,7 +201,7 @@ export default class App extends React.PureComponent<Props, State> {
});
};
- renderContent = (displayOverview: boolean, query: Query, metric?: Metric) => {
+ renderContent = (displayOverview: boolean, query: Query, metric?: T.Metric) => {
const { branchLike, component, fetchMeasures, metrics } = this.props;
const { leakPeriod } = this.state;
if (displayOverview) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/AppContainer.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/AppContainer.tsx
index 5f332e09455..ae7a599a5aa 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/AppContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/AppContainer.tsx
@@ -28,19 +28,10 @@ import { getMeasuresAndMeta } from '../../../api/measures';
import { getLeakPeriod } from '../../../helpers/periods';
import { enhanceMeasure } from '../../../components/measure/utils';
import { getBranchLikeQuery } from '../../../helpers/branches';
-import {
- BranchLike,
- ComponentMeasure,
- CurrentUser,
- Measure,
- MeasureEnhanced,
- Metric,
- Period
-} from '../../../app/types';
interface StateToProps {
- currentUser: CurrentUser;
- metrics: { [metric: string]: Metric };
+ currentUser: T.CurrentUser;
+ metrics: { [metric: string]: T.Metric };
metricsKey: string[];
}
@@ -48,14 +39,18 @@ interface DispatchToProps {
fetchMeasures: (
component: string,
metricsKey: string[],
- branchLike?: BranchLike
- ) => Promise<{ component: ComponentMeasure; measures: MeasureEnhanced[]; leakPeriod?: Period }>;
+ branchLike?: T.BranchLike
+ ) => Promise<{
+ component: T.ComponentMeasure;
+ measures: T.MeasureEnhanced[];
+ leakPeriod?: T.Period;
+ }>;
fetchMetrics: () => void;
}
interface OwnProps {
- branchLike?: BranchLike;
- component: ComponentMeasure;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasure;
}
const mapStateToProps = (state: any): StateToProps => ({
@@ -64,7 +59,7 @@ const mapStateToProps = (state: any): StateToProps => ({
metricsKey: getMetricsKey(state)
});
-function banQualityGate({ measures = [], qualifier }: ComponentMeasure): Measure[] {
+function banQualityGate({ measures = [], qualifier }: T.ComponentMeasure): T.Measure[] {
const bannedMetrics: string[] = [];
if (!['VW', 'SVW'].includes(qualifier)) {
bannedMetrics.push('alert_status');
@@ -75,7 +70,7 @@ function banQualityGate({ measures = [], qualifier }: ComponentMeasure): Measure
return measures.filter(measure => !bannedMetrics.includes(measure.metric));
}
-const fetchMeasures = (component: string, metricsKey: string[], branchLike?: BranchLike) => (
+const fetchMeasures = (component: string, metricsKey: string[], branchLike?: T.BranchLike) => (
_dispatch: Dispatch,
getState: () => any
) => {
@@ -92,7 +87,7 @@ const fetchMeasures = (component: string, metricsKey: string[], branchLike?: Bra
);
const newBugs = measures.find(measure => measure.metric.key === 'new_bugs');
- const applicationPeriods = newBugs ? [{ index: 1 } as Period] : [];
+ const applicationPeriods = newBugs ? [{ index: 1 } as T.Period] : [];
const leakPeriod = getLeakPeriod(component.qualifier === 'APP' ? applicationPeriods : periods);
return { component, measures, leakPeriod };
}, throwGlobalError);
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumb.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumb.tsx
index 326401a8377..17e53750aaa 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumb.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumb.tsx
@@ -20,11 +20,10 @@
import * as React from 'react';
import Tooltip from '../../../components/controls/Tooltip';
import { collapsePath, limitComponentName } from '../../../helpers/path';
-import { ComponentMeasure } from '../../../app/types';
interface Props {
canBrowse: boolean;
- component: ComponentMeasure;
+ component: T.ComponentMeasure;
isLast: boolean;
handleSelect: (component: string) => void;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumbs.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumbs.tsx
index f90d46e7550..926f96c80b8 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumbs.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/Breadcrumbs.tsx
@@ -22,19 +22,18 @@ import * as key from 'keymaster';
import Breadcrumb from './Breadcrumb';
import { getBreadcrumbs } from '../../../api/components';
import { getBranchLikeQuery } from '../../../helpers/branches';
-import { BranchLike, ComponentMeasure } from '../../../app/types';
interface Props {
backToFirst: boolean;
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
- component: ComponentMeasure;
+ component: T.ComponentMeasure;
handleSelect: (component: string) => void;
- rootComponent: ComponentMeasure;
+ rootComponent: T.ComponentMeasure;
}
interface State {
- breadcrumbs: ComponentMeasure[];
+ breadcrumbs: T.ComponentMeasure[];
}
export default class Breadcrumbs extends React.PureComponent<Props, State> {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.tsx
index 57362e1933f..9f145e734af 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.tsx
@@ -27,12 +27,11 @@ import Tooltip from '../../../components/controls/Tooltip';
import { getPeriodLabel, getPeriodDate } from '../../../helpers/periods';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { differenceInDays } from '../../../helpers/dates';
-import { ComponentMeasure, Period, PeriodMode } from '../../../app/types';
interface Props {
className?: string;
- component: ComponentMeasure;
- period: Period;
+ component: T.ComponentMeasure;
+ period: T.Period;
}
export default class LeakPeriodLegend extends React.PureComponent<Props> {
@@ -62,7 +61,7 @@ export default class LeakPeriodLegend extends React.PureComponent<Props> {
</div>
);
- if (period.mode === PeriodMode.Days) {
+ if (period.mode === 'days') {
return label;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.tsx
index 7d795c8d1f8..c9ddae92ee3 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContent.tsx
@@ -36,33 +36,23 @@ import { getProjectUrl } from '../../../helpers/urls';
import { isDiffMetric } from '../../../helpers/measures';
import { isSameBranchLike, getBranchLikeQuery } from '../../../helpers/branches';
import DeferredSpinner from '../../../components/common/DeferredSpinner';
-import {
- BranchLike,
- ComponentMeasure,
- ComponentMeasureEnhanced,
- CurrentUser,
- Metric,
- Paging,
- MeasureEnhanced,
- Period
-} from '../../../app/types';
import { RequestData } from '../../../helpers/request';
import { isLoggedIn } from '../../../helpers/users';
interface Props {
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
- component: ComponentMeasure;
- currentUser: CurrentUser;
+ component: T.ComponentMeasure;
+ currentUser: T.CurrentUser;
loading: boolean;
loadingMore: boolean;
- leakPeriod?: Period;
- measure?: MeasureEnhanced;
- metric: Metric;
- metrics: { [metric: string]: Metric };
- rootComponent: ComponentMeasure;
+ leakPeriod?: T.Period;
+ measure?: T.MeasureEnhanced;
+ metric: T.Metric;
+ metrics: { [metric: string]: T.Metric };
+ rootComponent: T.ComponentMeasure;
router: InjectedRouter;
- secondaryMeasure?: MeasureEnhanced;
+ secondaryMeasure?: T.MeasureEnhanced;
updateLoading: (param: { [key: string]: boolean }) => void;
updateSelected: (component: string) => void;
updateView: (view: string) => void;
@@ -70,9 +60,9 @@ interface Props {
}
interface State {
- components: ComponentMeasureEnhanced[];
- metric?: Metric;
- paging?: Paging;
+ components: T.ComponentMeasureEnhanced[];
+ metric?: T.Metric;
+ paging?: T.Paging;
selected?: string;
view?: string;
}
@@ -109,7 +99,7 @@ export default class MeasureContent extends React.PureComponent<Props, State> {
return index !== -1 ? index : undefined;
};
- getComponentRequestParams = (view: string, metric: Metric, options: Object = {}) => {
+ getComponentRequestParams = (view: string, metric: T.Metric, options: Object = {}) => {
const strategy = view === 'list' ? 'leaves' : 'children';
const metricKeys = [metric.key];
const opts: RequestData = {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContentContainer.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContentContainer.tsx
index c8a1301038d..0a756d3b8ad 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContentContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureContentContainer.tsx
@@ -21,28 +21,20 @@ import * as React from 'react';
import { InjectedRouter } from 'react-router';
import MeasureContent from './MeasureContent';
import { Query } from '../utils';
-import {
- ComponentMeasure,
- Metric,
- BranchLike,
- CurrentUser,
- MeasureEnhanced,
- Period
-} from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
- currentUser: CurrentUser;
- rootComponent: ComponentMeasure;
+ currentUser: T.CurrentUser;
+ rootComponent: T.ComponentMeasure;
fetchMeasures: (
component: string,
metricsKey: string[],
- branchLike?: BranchLike
- ) => Promise<{ component: ComponentMeasure; measures: MeasureEnhanced[] }>;
- leakPeriod?: Period;
- metric: Metric;
- metrics: { [metric: string]: Metric };
+ branchLike?: T.BranchLike
+ ) => Promise<{ component: T.ComponentMeasure; measures: T.MeasureEnhanced[] }>;
+ leakPeriod?: T.Period;
+ metric: T.Metric;
+ metrics: { [metric: string]: T.Metric };
router: InjectedRouter;
selected?: string;
updateQuery: (query: Partial<Query>) => void;
@@ -56,10 +48,10 @@ interface LoadingState {
}
interface State {
- component?: ComponentMeasure;
+ component?: T.ComponentMeasure;
loading: LoadingState;
- measure?: MeasureEnhanced;
- secondaryMeasure?: MeasureEnhanced;
+ measure?: T.MeasureEnhanced;
+ secondaryMeasure?: T.MeasureEnhanced;
}
export default class MeasureContentContainer extends React.PureComponent<Props, State> {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureFavoriteContainer.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureFavoriteContainer.tsx
index d062ad6af50..43e4148b94d 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureFavoriteContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureFavoriteContainer.tsx
@@ -21,12 +21,11 @@ import * as React from 'react';
import Favorite from '../../../components/controls/Favorite';
import { getComponentForSourceViewer } from '../../../api/components';
import { isMainBranch } from '../../../helpers/branches';
-import { BranchLike, SourceViewerFile } from '../../../app/types';
-type FavComponent = Pick<SourceViewerFile, 'canMarkAsFavorite' | 'fav' | 'key' | 'q'>;
+type FavComponent = Pick<T.SourceViewerFile, 'canMarkAsFavorite' | 'fav' | 'key' | 'q'>;
interface Props {
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
component: string;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.tsx
index d85dcc4a067..59e894f6aae 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureHeader.tsx
@@ -28,16 +28,15 @@ import Tooltip from '../../../components/controls/Tooltip';
import { getLocalizedMetricName, translate } from '../../../helpers/l10n';
import { getMeasureHistoryUrl } from '../../../helpers/urls';
import { isDiffMetric } from '../../../helpers/measures';
-import { BranchLike, ComponentMeasure, MeasureEnhanced, Metric, Period } from '../../../app/types';
import { hasFullMeasures } from '../utils';
interface Props {
- branchLike?: BranchLike;
- component: ComponentMeasure;
- leakPeriod?: Period;
- measure?: MeasureEnhanced;
- metric: Metric;
- secondaryMeasure?: MeasureEnhanced;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasure;
+ leakPeriod?: T.Period;
+ measure?: T.MeasureEnhanced;
+ metric: T.Metric;
+ secondaryMeasure?: T.MeasureEnhanced;
}
export default function MeasureHeader(props: Props) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.tsx
index 18c34ea5d4a..7c049607c45 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverview.tsx
@@ -28,33 +28,24 @@ import { getComponentLeaves } from '../../../api/components';
import { enhanceComponent, getBubbleMetrics, isFileType } from '../utils';
import { getBranchLikeQuery } from '../../../helpers/branches';
import DeferredSpinner from '../../../components/common/DeferredSpinner';
-import {
- BranchLike,
- ComponentMeasure,
- ComponentMeasureEnhanced,
- CurrentUser,
- Metric,
- Paging,
- Period
-} from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
- component: ComponentMeasure;
- currentUser: CurrentUser;
+ component: T.ComponentMeasure;
+ currentUser: T.CurrentUser;
domain: string;
- leakPeriod?: Period;
+ leakPeriod?: T.Period;
loading: boolean;
- metrics: { [metric: string]: Metric };
- rootComponent: ComponentMeasure;
+ metrics: { [metric: string]: T.Metric };
+ rootComponent: T.ComponentMeasure;
updateLoading: (param: { [key: string]: boolean }) => void;
updateSelected: (component: string) => void;
}
interface State {
- components: ComponentMeasureEnhanced[];
- paging?: Paging;
+ components: T.ComponentMeasureEnhanced[];
+ paging?: T.Paging;
}
const BUBBLES_LIMIT = 500;
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverviewContainer.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverviewContainer.tsx
index 642cde71e20..db3a5229e37 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverviewContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureOverviewContainer.tsx
@@ -24,16 +24,15 @@ import { getComponentShow } from '../../../api/components';
import { getProjectUrl } from '../../../helpers/urls';
import { isViewType, Query } from '../utils';
import { getBranchLikeQuery } from '../../../helpers/branches';
-import { BranchLike, ComponentMeasure, CurrentUser, Metric, Period } from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
+ branchLike?: T.BranchLike;
className?: string;
- currentUser: CurrentUser;
+ currentUser: T.CurrentUser;
domain: string;
- leakPeriod?: Period;
- metrics: { [metric: string]: Metric };
- rootComponent: ComponentMeasure;
+ leakPeriod?: T.Period;
+ metrics: { [metric: string]: T.Metric };
+ rootComponent: T.ComponentMeasure;
router: InjectedRouter;
selected?: string;
updateQuery: (query: Partial<Query>) => void;
@@ -45,7 +44,7 @@ interface LoadingState {
}
interface State {
- component?: ComponentMeasure;
+ component?: T.ComponentMeasure;
loading: LoadingState;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureViewSelect.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureViewSelect.tsx
index 69347353959..cd84ac1c88d 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureViewSelect.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureViewSelect.tsx
@@ -24,11 +24,10 @@ import TreemapIcon from '../../../components/icons-components/TreemapIcon';
import Select from '../../../components/controls/Select';
import { hasList, hasTree, hasTreemap } from '../utils';
import { translate } from '../../../helpers/l10n';
-import { Metric } from '../../../app/types';
interface Props {
className?: string;
- metric: Metric;
+ metric: T.Metric;
handleViewChange: (view: string) => void;
view: string;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/PageActions.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/PageActions.tsx
index 75078edb21a..8417f05b294 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/PageActions.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/PageActions.tsx
@@ -20,12 +20,11 @@
import * as React from 'react';
import FilesCounter from './FilesCounter';
import { translate } from '../../../helpers/l10n';
-import { Paging } from '../../../app/types';
interface Props {
current?: number;
isFile?: boolean;
- paging?: Paging;
+ paging?: T.Paging;
totalLoadedComponents?: number;
view?: string;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/LeakPeriodLegend-test.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/LeakPeriodLegend-test.tsx
index be616b62017..3aa1046f6dc 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/LeakPeriodLegend-test.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/LeakPeriodLegend-test.tsx
@@ -21,7 +21,6 @@ import * as React from 'react';
import { shallow } from 'enzyme';
import LeakPeriodLegend from '../LeakPeriodLegend';
import { differenceInDays } from '../../../../helpers/dates';
-import { ComponentMeasure, Period, PeriodMode } from '../../../../app/types';
jest.mock('../../../../helpers/dates', () => {
const dates = require.requireActual('../../../../helpers/dates');
@@ -41,17 +40,17 @@ const APP = {
qualifier: 'APP'
};
-const PERIOD = {
+const PERIOD: T.Period = {
date: '2017-05-16T13:50:02+0200',
index: 1,
- mode: PeriodMode.PreviousVersion,
+ mode: 'previous_version',
parameter: '6,4'
};
-const PERIOD_DAYS = {
+const PERIOD_DAYS: T.Period = {
date: '2017-05-16T13:50:02+0200',
index: 1,
- mode: PeriodMode.Days,
+ mode: 'days',
parameter: '18'
};
@@ -69,7 +68,7 @@ it('should render a more precise date', () => {
expect(getWrapper(PROJECT, PERIOD)).toMatchSnapshot();
});
-function getWrapper(component: ComponentMeasure, period: Period) {
+function getWrapper(component: T.ComponentMeasure, period: T.Period) {
return shallow(<LeakPeriodLegend component={component} period={period} />, {
context: {
intl: { formatDate: (date: string) => 'formatted.' + date }
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureHeader-test.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureHeader-test.tsx
index 2df222654bd..9b43b1ce72b 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureHeader-test.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureHeader-test.tsx
@@ -20,7 +20,6 @@
import * as React from 'react';
import { shallow } from 'enzyme';
import MeasureHeader from '../MeasureHeader';
-import { PeriodMode } from '../../../../app/types';
const METRIC = {
id: '1',
@@ -64,9 +63,9 @@ const PROPS = {
leakPeriod: {
date: '2017-05-16T13:50:02+0200',
index: 1,
- mode: PeriodMode.PreviousVersion,
+ mode: 'previous_version',
parameter: '6,4'
- },
+ } as T.Period,
measure: MEASURE,
metric: METRIC
};
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureViewSelect-test.tsx b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureViewSelect-test.tsx
index a54ea14a3a1..c1d6e7cfda8 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureViewSelect-test.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/__tests__/MeasureViewSelect-test.tsx
@@ -20,14 +20,13 @@
import * as React from 'react';
import { shallow } from 'enzyme';
import MeasureViewSelect from '../MeasureViewSelect';
-import { Metric } from '../../../../app/types';
it('should display correctly with treemap option', () => {
expect(
shallow(
<MeasureViewSelect
handleViewChange={() => {}}
- metric={{ type: 'PERCENT' } as Metric}
+ metric={{ type: 'PERCENT' } as T.Metric}
view="tree"
/>
)
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/BubbleChart.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/BubbleChart.tsx
index 0c07b5a249f..c52981c4872 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/BubbleChart.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/BubbleChart.tsx
@@ -31,20 +31,19 @@ import {
} from '../../../helpers/l10n';
import { getBubbleMetrics, getBubbleYDomain, isProjectOverview } from '../utils';
import { RATING_COLORS } from '../../../helpers/constants';
-import { ComponentMeasure, ComponentMeasureEnhanced, Metric } from '../../../app/types';
const HEIGHT = 500;
interface Props {
- component: ComponentMeasure;
- components: ComponentMeasureEnhanced[];
+ component: T.ComponentMeasure;
+ components: T.ComponentMeasureEnhanced[];
domain: string;
- metrics: { [metric: string]: Metric };
+ metrics: { [metric: string]: T.Metric };
updateSelected: (component: string) => void;
}
export default class BubbleChart extends React.PureComponent<Props> {
- getMeasureVal = (component: ComponentMeasureEnhanced, metric: Metric) => {
+ getMeasureVal = (component: T.ComponentMeasureEnhanced, metric: T.Metric) => {
const measure = component.measures.find(measure => measure.metric.key === metric.key);
if (!measure) {
return undefined;
@@ -55,7 +54,7 @@ export default class BubbleChart extends React.PureComponent<Props> {
getTooltip(
componentName: string,
values: { x: number; y: number; size: number; colors?: Array<number | undefined> },
- metrics: { x: Metric; y: Metric; size: Metric; colors?: Array<Metric> }
+ metrics: { x: T.Metric; y: T.Metric; size: T.Metric; colors?: T.Metric[] }
) {
const inner = [
componentName,
@@ -85,7 +84,7 @@ export default class BubbleChart extends React.PureComponent<Props> {
);
}
- handleBubbleClick = (component: ComponentMeasureEnhanced) =>
+ handleBubbleClick = (component: T.ComponentMeasureEnhanced) =>
this.props.updateSelected(component.refKey || component.key);
getDescription(domain: string) {
@@ -97,7 +96,7 @@ export default class BubbleChart extends React.PureComponent<Props> {
return translatedDescription;
}
- renderBubbleChart(metrics: { x: Metric; y: Metric; size: Metric; colors?: Metric[] }) {
+ renderBubbleChart(metrics: { x: T.Metric; y: T.Metric; size: T.Metric; colors?: T.Metric[] }) {
const items = this.props.components
.map(component => {
const x = this.getMeasureVal(component, metrics.x);
@@ -120,13 +119,13 @@ export default class BubbleChart extends React.PureComponent<Props> {
tooltip: this.getTooltip(component.name, { x, y, size, colors }, metrics)
};
})
- .filter(Boolean) as BubbleItem<ComponentMeasureEnhanced>[];
+ .filter(Boolean) as BubbleItem<T.ComponentMeasureEnhanced>[];
const formatXTick = (tick: string | number | undefined) => formatMeasure(tick, metrics.x.type);
const formatYTick = (tick: string | number | undefined) => formatMeasure(tick, metrics.y.type);
return (
- <OriginalBubbleChart<ComponentMeasureEnhanced>
+ <OriginalBubbleChart<T.ComponentMeasureEnhanced>
formatXTick={formatXTick}
formatYTick={formatYTick}
height={HEIGHT}
@@ -138,7 +137,7 @@ export default class BubbleChart extends React.PureComponent<Props> {
);
}
- renderChartHeader(domain: string, sizeMetric: Metric, colorsMetric?: Metric[]) {
+ renderChartHeader(domain: string, sizeMetric: T.Metric, colorsMetric?: T.Metric[]) {
const title = isProjectOverview(domain)
? translate('component_measures.overview', domain, 'title')
: translateWithParameters(
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/CodeView.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/CodeView.tsx
index a07eb4710c2..9dd42f1299f 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/CodeView.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/CodeView.tsx
@@ -20,20 +20,13 @@
import * as React from 'react';
import * as key from 'keymaster';
import SourceViewer from '../../../components/SourceViewer/SourceViewer';
-import {
- BranchLike,
- ComponentMeasure,
- ComponentMeasureEnhanced,
- Metric,
- Period
-} from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
- component: ComponentMeasure;
- components: Array<ComponentMeasureEnhanced>;
- leakPeriod?: Period;
- metric: Metric;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasure;
+ components: T.ComponentMeasureEnhanced[];
+ leakPeriod?: T.Period;
+ metric: T.Metric;
selectedIdx?: number;
updateSelected: (component: string) => void;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentCell.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentCell.tsx
index 4ddcd665e7b..071f6f2c7b6 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentCell.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentCell.tsx
@@ -30,14 +30,13 @@ import {
getProjectUrl
} from '../../../helpers/urls';
import { translate } from '../../../helpers/l10n';
-import { BranchLike, ComponentMeasure, ComponentMeasureEnhanced, Metric } from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
- component: ComponentMeasureEnhanced;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasureEnhanced;
onClick: (component: string) => void;
- metric: Metric;
- rootComponent: ComponentMeasure;
+ metric: T.Metric;
+ rootComponent: T.ComponentMeasure;
}
export default class ComponentCell extends React.PureComponent<Props> {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsList.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsList.tsx
index 957fdc7b3e5..01cf98e452d 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsList.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsList.tsx
@@ -22,15 +22,14 @@ import ComponentsListRow from './ComponentsListRow';
import EmptyResult from './EmptyResult';
import { complementary } from '../config/complementary';
import { getLocalizedMetricName } from '../../../helpers/l10n';
-import { ComponentMeasure, ComponentMeasureEnhanced, Metric, BranchLike } from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
- components: ComponentMeasureEnhanced[];
+ branchLike?: T.BranchLike;
+ components: T.ComponentMeasureEnhanced[];
onClick: (component: string) => void;
- metric: Metric;
- metrics: { [metric: string]: Metric };
- rootComponent: ComponentMeasure;
+ metric: T.Metric;
+ metrics: { [metric: string]: T.Metric };
+ rootComponent: T.ComponentMeasure;
selectedComponent?: string;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsListRow.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsListRow.tsx
index 6ae4c80b619..e19138b2bdf 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsListRow.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/ComponentsListRow.tsx
@@ -21,16 +21,15 @@ import * as React from 'react';
import * as classNames from 'classnames';
import ComponentCell from './ComponentCell';
import MeasureCell from './MeasureCell';
-import { ComponentMeasure, Metric, ComponentMeasureEnhanced, BranchLike } from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
- component: ComponentMeasureEnhanced;
+ branchLike?: T.BranchLike;
+ component: T.ComponentMeasureEnhanced;
isSelected: boolean;
onClick: (component: string) => void;
- otherMetrics: Metric[];
- metric: Metric;
- rootComponent: ComponentMeasure;
+ otherMetrics: T.Metric[];
+ metric: T.Metric;
+ rootComponent: T.ComponentMeasure;
}
export default function ComponentsListRow(props: Props) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.tsx
index 0413514857e..8d106bc29fd 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/FilesView.tsx
@@ -23,29 +23,22 @@ import { throttle } from 'lodash';
import ComponentsList from './ComponentsList';
import ListFooter from '../../../components/controls/ListFooter';
import { Button } from '../../../components/ui/buttons';
-import {
- ComponentMeasure,
- ComponentMeasureEnhanced,
- Metric,
- Paging,
- BranchLike
-} from '../../../app/types';
import { translate, translateWithParameters } from '../../../helpers/l10n';
import { isPeriodBestValue, isDiffMetric, formatMeasure } from '../../../helpers/measures';
import { scrollToElement } from '../../../helpers/scrolling';
import { Alert } from '../../../components/ui/Alert';
interface Props {
- branchLike?: BranchLike;
- components: ComponentMeasureEnhanced[];
+ branchLike?: T.BranchLike;
+ components: T.ComponentMeasureEnhanced[];
fetchMore: () => void;
handleSelect: (component: string) => void;
handleOpen: (component: string) => void;
loadingMore: boolean;
- metric: Metric;
- metrics: { [metric: string]: Metric };
- paging?: Paging;
- rootComponent: ComponentMeasure;
+ metric: T.Metric;
+ metrics: { [metric: string]: T.Metric };
+ paging?: T.Paging;
+ rootComponent: T.ComponentMeasure;
selectedKey?: string;
selectedIdx?: number;
}
@@ -103,7 +96,7 @@ export default class ListView extends React.PureComponent<Props, State> {
['up', 'down', 'right'].forEach(action => key.unbind(action, 'measures-files'));
}
- getVisibleComponents = (components: ComponentMeasureEnhanced[], showBestMeasures: boolean) => {
+ getVisibleComponents = (components: T.ComponentMeasureEnhanced[], showBestMeasures: boolean) => {
if (showBestMeasures) {
return components;
}
@@ -118,7 +111,7 @@ export default class ListView extends React.PureComponent<Props, State> {
this.setState({ showBestMeasures: true });
};
- hasBestValue = (component: ComponentMeasureEnhanced) => {
+ hasBestValue = (component: T.ComponentMeasureEnhanced) => {
const { metric } = this.props;
const focusedMeasure = component.measures.find(measure => measure.metric.key === metric.key);
if (focusedMeasure && isDiffMetric(metric.key)) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/MeasureCell.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/MeasureCell.tsx
index 951bb590f62..fb1f210e2b2 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/MeasureCell.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/MeasureCell.tsx
@@ -20,12 +20,11 @@
import * as React from 'react';
import Measure from '../../../components/measure/Measure';
import { isDiffMetric } from '../../../helpers/measures';
-import { Metric, MeasureEnhanced, ComponentMeasureEnhanced } from '../../../app/types';
interface Props {
- component: ComponentMeasureEnhanced;
- measure?: MeasureEnhanced;
- metric: Metric;
+ component: T.ComponentMeasureEnhanced;
+ measure?: T.MeasureEnhanced;
+ metric: T.Metric;
}
export default function MeasureCell({ component, measure, metric }: Props) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.tsx b/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.tsx
index 61a35f44ace..2f07bb3545a 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/drilldown/TreeMapView.tsx
@@ -30,13 +30,12 @@ import TreeMap, { TreeMapItem } from '../../../components/charts/TreeMap';
import { translate, translateWithParameters, getLocalizedMetricName } from '../../../helpers/l10n';
import { formatMeasure, isDiffMetric } from '../../../helpers/measures';
import { getBranchLikeUrl } from '../../../helpers/urls';
-import { BranchLike, ComponentMeasureEnhanced, Metric } from '../../../app/types';
interface Props {
- branchLike?: BranchLike;
- components: ComponentMeasureEnhanced[];
+ branchLike?: T.BranchLike;
+ components: T.ComponentMeasureEnhanced[];
handleSelect: (component: string) => void;
- metric: Metric;
+ metric: T.Metric;
}
interface State {
@@ -105,7 +104,7 @@ export default class TreeMapView extends React.PureComponent<Props, State> {
.domain(['ERROR', 'WARN', 'OK', 'NONE'])
.range(LEVEL_COLORS);
- getPercentColorScale = (metric: Metric) => {
+ getPercentColorScale = (metric: T.Metric) => {
const color = scaleLinear<string, string>().domain([0, 25, 50, 75, 100]);
color.range(metric.direction === 1 ? [...COLORS].reverse() : COLORS);
return color;
@@ -116,7 +115,7 @@ export default class TreeMapView extends React.PureComponent<Props, State> {
.domain([1, 2, 3, 4, 5])
.range(COLORS);
- getColorScale = (metric: Metric) => {
+ getColorScale = (metric: T.Metric) => {
if (metric.type === 'LEVEL') {
return this.getLevelColorScale();
}
@@ -133,10 +132,10 @@ export default class TreeMapView extends React.PureComponent<Props, State> {
sizeMetric,
sizeValue
}: {
- colorMetric: Metric;
+ colorMetric: T.Metric;
colorValue?: string;
componentName: string;
- sizeMetric: Metric;
+ sizeMetric: T.Metric;
sizeValue: number;
}) => {
const formatted =
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainFacet.tsx b/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainFacet.tsx
index 1a52f8c80c5..675e94cfaf5 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainFacet.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/DomainFacet.tsx
@@ -37,10 +37,9 @@ import {
getLocalizedMetricName,
translate
} from '../../../helpers/l10n';
-import { MeasureEnhanced } from '../../../app/types';
interface Props {
- domain: { name: string; measures: MeasureEnhanced[] };
+ domain: { name: string; measures: T.MeasureEnhanced[] };
hasOverview: boolean;
onChange: (metric: string) => void;
onToggle: (property: string) => void;
@@ -63,7 +62,11 @@ export default class DomainFacet extends React.PureComponent<Props> {
this.props.onToggle(this.props.domain.name);
};
- hasFacetSelected = (domain: { name: string }, measures: MeasureEnhanced[], selected: string) => {
+ hasFacetSelected = (
+ domain: { name: string },
+ measures: T.MeasureEnhanced[],
+ selected: string
+ ) => {
const measureSelected = measures.find(measure => measure.metric.key === selected);
const overviewSelected = domain.name === selected && this.hasOverview(domain.name);
return measureSelected || overviewSelected;
@@ -73,7 +76,7 @@ export default class DomainFacet extends React.PureComponent<Props> {
return this.props.hasOverview && hasBubbleChart(domain);
};
- renderItemFacetStat = (item: MeasureEnhanced) => {
+ renderItemFacetStat = (item: T.MeasureEnhanced) => {
return hasFacetStat(item.metric.key) ? <FacetMeasureValue measure={item} /> : null;
};
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/FacetMeasureValue.tsx b/server/sonar-web/src/main/js/apps/component-measures/sidebar/FacetMeasureValue.tsx
index 473b287cbd7..a9ac8816935 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/FacetMeasureValue.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/FacetMeasureValue.tsx
@@ -20,10 +20,9 @@
import * as React from 'react';
import Measure from '../../../components/measure/Measure';
import { isDiffMetric } from '../../../helpers/measures';
-import { MeasureEnhanced } from '../../../app/types';
interface Props {
- measure: MeasureEnhanced;
+ measure: T.MeasureEnhanced;
}
export default function FacetMeasureValue({ measure }: Props) {
diff --git a/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx b/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
index 09683497982..6aed80029c9 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
+++ b/server/sonar-web/src/main/js/apps/component-measures/sidebar/Sidebar.tsx
@@ -21,11 +21,10 @@ import * as React from 'react';
import ProjectOverviewFacet from './ProjectOverviewFacet';
import DomainFacet from './DomainFacet';
import { getDefaultView, groupByDomains, KNOWN_DOMAINS, PROJECT_OVERVEW, Query } from '../utils';
-import { MeasureEnhanced } from '../../../app/types';
interface Props {
hasOverview: boolean;
- measures: MeasureEnhanced[];
+ measures: T.MeasureEnhanced[];
selectedMetric: string;
updateQuery: (query: Partial<Query>) => void;
}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/utils.ts b/server/sonar-web/src/main/js/apps/component-measures/utils.ts
index 05f0713f257..9ea4c49bc28 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/utils.ts
+++ b/server/sonar-web/src/main/js/apps/component-measures/utils.ts
@@ -21,13 +21,6 @@ import { groupBy, memoize, sortBy, toPairs } from 'lodash';
import { domains } from './config/domains';
import { bubbles } from './config/bubbles';
import { getLocalizedMetricName } from '../../helpers/l10n';
-import {
- ComponentMeasure,
- ComponentMeasureEnhanced,
- Metric,
- MeasureEnhanced,
- BranchLike
-} from '../../app/types';
import { enhanceMeasure } from '../../components/measure/utils';
import { cleanQuery, parseAsString, RawQuery, serializeString } from '../../helpers/query';
import { isLongLivingBranch, isMainBranch } from '../../helpers/branches';
@@ -59,30 +52,30 @@ const BANNED_MEASURES = [
'new_info_violations'
];
-export function filterMeasures(measures: MeasureEnhanced[]): MeasureEnhanced[] {
+export function filterMeasures(measures: T.MeasureEnhanced[]): T.MeasureEnhanced[] {
return measures.filter(measure => !BANNED_MEASURES.includes(measure.metric.key));
}
export function sortMeasures(
domainName: string,
- measures: Array<MeasureEnhanced | string>
-): Array<MeasureEnhanced | string> {
+ measures: Array<T.MeasureEnhanced | string>
+): Array<T.MeasureEnhanced | string> {
const config = domains[domainName] || {};
const configOrder = config.order || [];
return sortBy(measures, [
- (item: MeasureEnhanced | string) => {
+ (item: T.MeasureEnhanced | string) => {
if (typeof item === 'string') {
return configOrder.indexOf(item);
}
const idx = configOrder.indexOf(item.metric.key);
return idx >= 0 ? idx : configOrder.length;
},
- (item: MeasureEnhanced | string) =>
+ (item: T.MeasureEnhanced | string) =>
typeof item === 'string' ? item : getLocalizedMetricName(item.metric)
]);
}
-export function addMeasureCategories(domainName: string, measures: MeasureEnhanced[]) {
+export function addMeasureCategories(domainName: string, measures: T.MeasureEnhanced[]) {
const categories = domains[domainName] && domains[domainName].categories;
if (categories && categories.length > 0) {
return [...categories, ...measures];
@@ -91,10 +84,10 @@ export function addMeasureCategories(domainName: string, measures: MeasureEnhanc
}
export function enhanceComponent(
- component: ComponentMeasure,
- metric: Metric | undefined,
- metrics: { [key: string]: Metric }
-): ComponentMeasureEnhanced {
+ component: T.ComponentMeasure,
+ metric: T.Metric | undefined,
+ metrics: { [key: string]: T.Metric }
+): T.ComponentMeasureEnhanced {
if (!component.measures) {
return { ...component, measures: [] };
}
@@ -106,22 +99,22 @@ export function enhanceComponent(
return { ...component, value, leak, measures: enhancedMeasures };
}
-export function isFileType(component: ComponentMeasure): boolean {
+export function isFileType(component: T.ComponentMeasure): boolean {
return ['FIL', 'UTS'].includes(component.qualifier);
}
-export function isViewType(component: ComponentMeasure): boolean {
+export function isViewType(component: T.ComponentMeasure): boolean {
return ['VW', 'SVW', 'APP'].includes(component.qualifier);
}
-export const groupByDomains = memoize((measures: MeasureEnhanced[]) => {
+export const groupByDomains = memoize((measures: T.MeasureEnhanced[]) => {
const domains = toPairs(groupBy(measures, measure => measure.metric.domain)).map(r => ({
name: r[0],
measures: r[1]
}));
return sortBy(domains, [
- (domain: { name: string; measures: MeasureEnhanced[] }) => {
+ (domain: { name: string; measures: T.MeasureEnhanced[] }) => {
const idx = KNOWN_DOMAINS.indexOf(domain.name);
return idx >= 0 ? idx : KNOWN_DOMAINS.length;
},
@@ -156,11 +149,14 @@ export function hasFacetStat(metric: string): boolean {
return metric !== 'alert_status';
}
-export function hasFullMeasures(branch?: BranchLike) {
+export function hasFullMeasures(branch?: T.BranchLike) {
return !branch || isLongLivingBranch(branch) || isMainBranch(branch);
}
-export function getMeasuresPageMetricKeys(metrics: { [key: string]: Metric }, branch?: BranchLike) {
+export function getMeasuresPageMetricKeys(
+ metrics: { [key: string]: T.Metric },
+ branch?: T.BranchLike
+) {
if (!hasFullMeasures(branch)) {
return [
'coverage',
@@ -182,7 +178,7 @@ export function getMeasuresPageMetricKeys(metrics: { [key: string]: Metric }, br
return getDisplayMetrics(Object.values(metrics)).map(metric => metric.key);
}
-export function getBubbleMetrics(domain: string, metrics: { [key: string]: Metric }) {
+export function getBubbleMetrics(domain: string, metrics: { [key: string]: T.Metric }) {
const conf = bubbles[domain];
return {
x: metrics[conf.x],