@centreon/ui 24.4.47 → 24.4.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +14 -23
- package/public/mockServiceWorker.js +1 -1
- package/src/Button/Icon/index.tsx +1 -1
- package/src/Button/Save/StartIcon.tsx +3 -3
- package/src/Button/Save/index.tsx +5 -9
- package/src/Checkbox/Checkbox.tsx +2 -2
- package/src/Checkbox/CheckboxGroup/index.tsx +2 -2
- package/src/Dashboard/Item.tsx +1 -1
- package/src/Dashboard/Layout.tsx +2 -2
- package/src/Dialog/Confirm/index.tsx +2 -10
- package/src/Dialog/index.tsx +2 -9
- package/src/FallbackPage/FallbackPage.tsx +3 -3
- package/src/FileDropZone/index.tsx +1 -3
- package/src/Form/Inputs/CheckboxGroup.tsx +4 -1
- package/src/Form/Inputs/index.tsx +1 -3
- package/src/Form/Inputs/models.ts +1 -9
- package/src/Graph/Gauge/Gauge.tsx +1 -1
- package/src/Graph/HeatMap/HeatMap.stories.tsx +25 -0
- package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +2 -8
- package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +2 -2
- package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +4 -5
- package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +2 -2
- package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +1 -1
- package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +2 -2
- package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +3 -2
- package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +1 -1
- package/src/Graph/LineChart/Legend/Legend.styles.ts +1 -1
- package/src/Graph/LineChart/Legend/LegendHeader.tsx +1 -1
- package/src/Graph/LineChart/Legend/useInteractiveValues.ts +2 -2
- package/src/Graph/LineChart/Legend/useLegend.ts +3 -3
- package/src/Graph/LineChart/helpers/doc.ts +13 -16
- package/src/Graph/LineChart/helpers/index.ts +1 -1
- package/src/Graph/LineChart/index.stories.tsx +2 -4
- package/src/Graph/LineChart/index.tsx +1 -1
- package/src/Graph/SingleBar/Thresholds.tsx +2 -2
- package/src/Graph/Text/Text.stories.tsx +4 -60
- package/src/Graph/Text/Text.tsx +1 -1
- package/src/Graph/common/timeSeries/index.ts +14 -22
- package/src/Graph/common/utils.ts +0 -19
- package/src/Graph/index.ts +0 -3
- package/src/InputField/Select/Autocomplete/Connected/index.tsx +7 -10
- package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
- package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
- package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
- package/src/InputField/Select/Autocomplete/index.tsx +115 -121
- package/src/InputField/Select/IconPopover/index.tsx +2 -2
- package/src/InputField/Select/index.tsx +1 -1
- package/src/InputField/Text/index.tsx +2 -2
- package/src/Listing/ActionBar/index.tsx +8 -9
- package/src/Listing/Cell/DataCell.styles.ts +0 -3
- package/src/Listing/Cell/DataCell.tsx +5 -23
- package/src/Listing/Header/ListingHeader.tsx +1 -1
- package/src/Listing/Listing.cypress.spec.tsx +4 -80
- package/src/Listing/Listing.styles.ts +7 -4
- package/src/Listing/index.stories.tsx +3 -37
- package/src/Listing/index.test.tsx +1 -1
- package/src/Listing/index.tsx +3 -4
- package/src/Listing/models.ts +0 -1
- package/src/Module/index.tsx +4 -2
- package/src/RichTextEditor/RichTextEditor.tsx +1 -12
- package/src/SortableItems/index.tsx +7 -2
- package/src/ThemeProvider/index.tsx +0 -24
- package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +7 -6
- package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +3 -8
- package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +2 -0
- package/src/TimePeriods/DateTimePickerInput.tsx +19 -56
- package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +9 -12
- package/src/TimePeriods/TimePeriods.cypress.spec.tsx +33 -9
- package/src/TimePeriods/helpers/index.ts +1 -1
- package/src/TimePeriods/index.stories.tsx +4 -12
- package/src/TimePeriods/index.tsx +2 -2
- package/src/api/QueryProvider.tsx +1 -1
- package/src/api/TestQueryProvider.tsx +1 -1
- package/src/api/useFetchQuery/index.ts +23 -27
- package/src/api/useMutationQuery/index.test.ts +4 -4
- package/src/api/useMutationQuery/index.ts +25 -60
- package/src/components/Button/Icon/IconButton.tsx +2 -6
- package/src/components/DataTable/DataTable.stories.tsx +0 -40
- package/src/components/DataTable/DataTable.styles.ts +0 -3
- package/src/components/DataTable/DataTable.tsx +3 -3
- package/src/components/DataTable/Item/DataTableItem.styles.ts +2 -7
- package/src/components/DataTable/Item/DataTableItem.tsx +4 -4
- package/src/components/DataTable/index.ts +1 -3
- package/src/components/Form/AccessRights/ShareInput/ContactSwitch.tsx +3 -3
- package/src/components/Form/AccessRights/ShareInput/ShareInput.tsx +0 -1
- package/src/components/Form/Dashboard/DashboardForm.tsx +12 -15
- package/src/components/Layout/PageLayout/PageLayout.tsx +1 -1
- package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -1
- package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -1
- package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +1 -5
- package/src/components/Layout/PageLayout/index.ts +1 -3
- package/src/components/Modal/Modal.styles.ts +1 -1
- package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.stories.tsx +3 -3
- package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +1 -1
- package/src/components/Tooltip/ConfirmationTooltip/models.ts +1 -1
- package/src/index.ts +2 -2
- package/src/queryParameters/url/index.ts +1 -5
- package/src/screens/dashboard/DashboardsDetail.stories.tsx +108 -0
- package/src/screens/dashboard/DashboardsOverview.stories.tsx +281 -0
- package/src/utils/index.ts +1 -1
- package/src/utils/useDateTimePickerAdapter.ts +309 -0
- package/src/utils/useFullscreen/useFullscreenListener.ts +7 -10
- package/src/utils/{useLicenseExpirationWarning.test.tsx → useLicenseExpirationWarning.cypress.spec.tsx} +37 -48
- package/src/utils/useLicenseExpirationWarning.ts +18 -18
- package/src/Form/Form.cypress.spec.tsx +0 -133
- package/src/Form/Inputs/List/Content.tsx +0 -62
- package/src/Form/Inputs/List/List.styles.ts +0 -29
- package/src/Form/Inputs/List/List.tsx +0 -58
- package/src/Form/Inputs/List/useList.ts +0 -81
- package/src/Graph/BarStack/BarStack.cypress.spec.tsx +0 -154
- package/src/Graph/BarStack/BarStack.stories.tsx +0 -123
- package/src/Graph/BarStack/BarStack.styles.ts +0 -36
- package/src/Graph/BarStack/BarStack.tsx +0 -14
- package/src/Graph/BarStack/ResponsiveBarStack.tsx +0 -208
- package/src/Graph/BarStack/index.ts +0 -1
- package/src/Graph/BarStack/models.ts +0 -19
- package/src/Graph/BarStack/useResponsiveBarStack.ts +0 -139
- package/src/Graph/Gauge/Gauge.cypress.spec.tsx +0 -102
- package/src/Graph/HeatMap/HeatMap.cypress.spec.tsx +0 -145
- package/src/Graph/Legend/Legend.tsx +0 -21
- package/src/Graph/Legend/index.ts +0 -1
- package/src/Graph/Legend/models.ts +0 -11
- package/src/Graph/PieChart/PieChart.cypress.spec.tsx +0 -169
- package/src/Graph/PieChart/PieChart.stories.tsx +0 -194
- package/src/Graph/PieChart/PieChart.styles.ts +0 -39
- package/src/Graph/PieChart/PieChart.tsx +0 -14
- package/src/Graph/PieChart/ResponsivePie.tsx +0 -251
- package/src/Graph/PieChart/index.ts +0 -1
- package/src/Graph/PieChart/models.ts +0 -19
- package/src/Graph/PieChart/useResponsivePie.ts +0 -86
- package/src/Graph/SingleBar/SingleBar.cypress.spec.tsx +0 -121
- package/src/Graph/Text/Text.cypress.spec.tsx +0 -101
- package/src/Graph/common/testUtils.ts +0 -71
- package/src/Graph/translatedLabels.ts +0 -1
- package/src/Module/Module.cypress.spec.tsx +0 -129
- package/src/components/DataTable/DataListing.tsx +0 -6
- package/src/components/DataTable/DataTable.cypress.spec.tsx +0 -193
- package/src/components/Layout/PageLayout/PageQuickAccess.tsx +0 -76
- package/src/components/Layout/PageLayout.cypress.spec.tsx +0 -66
- package/src/utils/usePluralizedTranslation.ts +0 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@centreon/ui",
|
|
3
|
-
"version": "24.4.
|
|
3
|
+
"version": "24.4.48",
|
|
4
4
|
"description": "Centreon UI Components",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"eslint": "eslint ./src --ext .js,.jsx,.ts,.tsx --max-warnings 0",
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
"test:ci": "jest --silent --reporter=jest-junit",
|
|
13
13
|
"cypress:ui": "cypress open --component --browser=chrome",
|
|
14
14
|
"cypress:cli:updateSnapshot": "pnpm cypress:cli --env updateSnapshots=true",
|
|
15
|
-
"cypress:run:coverage": "cypress run --component --browser=chrome --env codeCoverageTasksRegistered=true",
|
|
16
15
|
"cypress:cli": "cypress run --component --browser=chrome",
|
|
17
16
|
"tokens:transform": "TS_NODE_PROJECT=tsconfig.node.json ts-node style-dictionary.transform.ts"
|
|
18
17
|
},
|
|
@@ -28,7 +27,6 @@
|
|
|
28
27
|
"author": {
|
|
29
28
|
"name": "centreon@centreon.com"
|
|
30
29
|
},
|
|
31
|
-
"baseCodeCoveragePercentage": 60,
|
|
32
30
|
"license": "GPL-2.0",
|
|
33
31
|
"bugs": {
|
|
34
32
|
"url": "https://github.com/centreon/centreon/issues"
|
|
@@ -75,19 +73,16 @@
|
|
|
75
73
|
"@testing-library/react-hooks": "^8.0.1",
|
|
76
74
|
"@types/cypress": "^1.1.3",
|
|
77
75
|
"@types/jest": "^27.5.0",
|
|
78
|
-
"@types/
|
|
79
|
-
"@types/ramda": "^0.29.6",
|
|
76
|
+
"@types/ramda": "^0.28.12",
|
|
80
77
|
"@types/react": "^18.0.26",
|
|
81
78
|
"@types/testing-library__jest-dom": "^5.14.6",
|
|
82
79
|
"@vitejs/plugin-react": "^4.0.0",
|
|
83
80
|
"@vitejs/plugin-react-swc": "^3.3.0",
|
|
84
81
|
"axios-mock-adapter": "^1.21.4",
|
|
85
|
-
"cypress": "^
|
|
82
|
+
"cypress": "^12.8.0",
|
|
86
83
|
"identity-obj-proxy": "^3.0.0",
|
|
87
84
|
"jest-transform-stub": "^2.0.0",
|
|
88
85
|
"mochawesome": "^7.1.3",
|
|
89
|
-
"msw": "1.3.2",
|
|
90
|
-
"msw-storybook-addon": "^1.10.0",
|
|
91
86
|
"puppeteer": "^13.7.0",
|
|
92
87
|
"react": "^18.2.0",
|
|
93
88
|
"react-dom": "^18.2.0",
|
|
@@ -102,35 +97,31 @@
|
|
|
102
97
|
"ts-node": "^10.9.1",
|
|
103
98
|
"use-resize-observer": "^9.1.0",
|
|
104
99
|
"vite": "^4.3.5",
|
|
105
|
-
"vite-plugin-istanbul": "^5.0.0",
|
|
106
100
|
"vite-plugin-svgr": "^3.2.0",
|
|
107
101
|
"vite-plugin-turbosnap": "^1.0.2"
|
|
108
102
|
},
|
|
109
103
|
"dependencies": {
|
|
110
|
-
"@lexical/
|
|
111
|
-
"@lexical/
|
|
112
|
-
"@lexical/
|
|
113
|
-
"@lexical/
|
|
114
|
-
"@lexical/
|
|
115
|
-
"@lexical/
|
|
116
|
-
"@lexical/utils": "^0.12.2",
|
|
104
|
+
"@lexical/link": "0.11.3",
|
|
105
|
+
"@lexical/list": "^0.11.3",
|
|
106
|
+
"@lexical/react": "0.11.3",
|
|
107
|
+
"@lexical/rich-text": "^0.11.3",
|
|
108
|
+
"@lexical/selection": "0.11.3",
|
|
109
|
+
"@lexical/utils": "0.11.3",
|
|
117
110
|
"@react-spring/web": "^9.7.3",
|
|
118
111
|
"@visx/curve": "^2.1.0",
|
|
119
112
|
"@visx/group": "^3.3.0",
|
|
120
|
-
"@visx/legend": "^3.5.0",
|
|
121
113
|
"@visx/pattern": "^3.0.0",
|
|
122
114
|
"@visx/scale": "^3.0.0",
|
|
123
115
|
"@visx/shape": "^2.12.2",
|
|
124
|
-
"@visx/text": "^3.3.0",
|
|
125
116
|
"@visx/threshold": "^2.12.2",
|
|
126
117
|
"@visx/visx": "2.16.0",
|
|
127
118
|
"anylogger": "^1.0.11",
|
|
128
119
|
"d3-array": "3.2.0",
|
|
129
120
|
"humanize-duration": "^3.27.3",
|
|
130
|
-
"lexical": "
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
121
|
+
"lexical": "0.11.3",
|
|
122
|
+
"msw": "0.49.1",
|
|
123
|
+
"msw-storybook-addon": "^1.10.0",
|
|
124
|
+
"notistack": "^2.0.8",
|
|
134
125
|
"react-grid-layout": "^1.3.4",
|
|
135
126
|
"react-html-parser": "^2.0.2",
|
|
136
127
|
"react-resizable": "^3.0.5",
|
|
@@ -146,7 +137,7 @@
|
|
|
146
137
|
"@mui/icons-material": "5.x",
|
|
147
138
|
"@mui/material": "5.x",
|
|
148
139
|
"@mui/styles": "5.x",
|
|
149
|
-
"@tanstack/react-query": "
|
|
140
|
+
"@tanstack/react-query": "4.x",
|
|
150
141
|
"axios": "0.x",
|
|
151
142
|
"dayjs": "1.x",
|
|
152
143
|
"formik": "2.x",
|
|
@@ -15,9 +15,9 @@ interface Props {
|
|
|
15
15
|
|
|
16
16
|
const StartIcon = ({ startIconConfig }: Props): JSX.Element | null =>
|
|
17
17
|
cond<Array<StartIconConfigProps>, JSX.Element | null>([
|
|
18
|
-
[pipe(propEq(
|
|
19
|
-
[propEq(
|
|
20
|
-
[propEq(
|
|
18
|
+
[pipe(propEq('hasLabel', true), not), always(null)],
|
|
19
|
+
[propEq('succeeded', true), always(<CheckIcon />)],
|
|
20
|
+
[propEq('loading', true), always(<SaveIcon />)],
|
|
21
21
|
[T, always(<SaveIcon />)]
|
|
22
22
|
])(startIconConfig);
|
|
23
23
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { any, isEmpty, isNil, not, or, pipe } from 'ramda';
|
|
2
2
|
import { makeStyles } from 'tss-react/mui';
|
|
3
3
|
|
|
4
|
-
import { LoadingButton, LoadingButtonProps } from '@mui/lab';
|
|
5
4
|
import { Theme, Tooltip } from '@mui/material';
|
|
5
|
+
import { LoadingButton } from '@mui/lab';
|
|
6
6
|
|
|
7
7
|
import { getNormalizedId } from '../../utils';
|
|
8
8
|
|
|
9
|
-
import Content from './Content';
|
|
10
9
|
import StartIcon from './StartIcon';
|
|
10
|
+
import Content from './Content';
|
|
11
11
|
|
|
12
12
|
const useStyles = makeStyles()((theme: Theme) => ({
|
|
13
13
|
loadingButton: {
|
|
@@ -15,14 +15,13 @@ const useStyles = makeStyles()((theme: Theme) => ({
|
|
|
15
15
|
}
|
|
16
16
|
}));
|
|
17
17
|
|
|
18
|
-
interface Props {
|
|
18
|
+
interface Props extends Record<string, unknown> {
|
|
19
19
|
className?: string;
|
|
20
20
|
labelLoading?: string;
|
|
21
21
|
labelSave?: string;
|
|
22
22
|
labelSucceeded?: string;
|
|
23
23
|
loading?: boolean;
|
|
24
24
|
size?: 'small' | 'medium' | 'large';
|
|
25
|
-
startIcon?: boolean;
|
|
26
25
|
succeeded?: boolean;
|
|
27
26
|
tooltip?: string;
|
|
28
27
|
tooltipLabel?: string;
|
|
@@ -46,9 +45,8 @@ const SaveButton = ({
|
|
|
46
45
|
labelSave = '',
|
|
47
46
|
size = 'small',
|
|
48
47
|
className,
|
|
49
|
-
startIcon = true,
|
|
50
48
|
...rest
|
|
51
|
-
}: Props
|
|
49
|
+
}: Props): JSX.Element => {
|
|
52
50
|
const { classes, cx } = useStyles();
|
|
53
51
|
const hasLabel = hasValue([labelLoading, labelSave, labelSucceeded]);
|
|
54
52
|
|
|
@@ -75,9 +73,7 @@ const SaveButton = ({
|
|
|
75
73
|
loading={loading}
|
|
76
74
|
loadingPosition={labelLoading ? 'start' : 'center'}
|
|
77
75
|
size={size}
|
|
78
|
-
startIcon={
|
|
79
|
-
startIcon && <StartIcon startIconConfig={startIconConfig} />
|
|
80
|
-
}
|
|
76
|
+
startIcon={<StartIcon startIconConfig={startIconConfig} />}
|
|
81
77
|
variant="contained"
|
|
82
78
|
{...rest}
|
|
83
79
|
>
|
|
@@ -2,7 +2,7 @@ import { makeStyles } from 'tss-react/mui';
|
|
|
2
2
|
import { T, always, cond, equals } from 'ramda';
|
|
3
3
|
|
|
4
4
|
import { SvgIconComponent } from '@mui/icons-material';
|
|
5
|
-
import Typography, {
|
|
5
|
+
import Typography, { TypographyTypeMap } from '@mui/material/Typography';
|
|
6
6
|
import { FormControlLabel, Checkbox as MuiCheckbox, Box } from '@mui/material';
|
|
7
7
|
|
|
8
8
|
export type LabelPlacement = 'bottom' | 'top' | 'end' | 'start' | undefined;
|
|
@@ -56,7 +56,7 @@ interface Props {
|
|
|
56
56
|
disabled?: boolean;
|
|
57
57
|
label: string;
|
|
58
58
|
labelPlacement?: LabelPlacement;
|
|
59
|
-
labelProps?:
|
|
59
|
+
labelProps?: TypographyTypeMap['props'];
|
|
60
60
|
onChange?: (e) => void;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -2,7 +2,7 @@ import { equals, includes } from 'ramda';
|
|
|
2
2
|
import { makeStyles } from 'tss-react/mui';
|
|
3
3
|
|
|
4
4
|
import FormGroup, { FormGroupProps } from '@mui/material/FormGroup';
|
|
5
|
-
import {
|
|
5
|
+
import { TypographyTypeMap } from '@mui/material/Typography';
|
|
6
6
|
|
|
7
7
|
import Checkbox, { LabelPlacement } from '../Checkbox';
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ interface Props {
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
formGroupProps?: FormGroupProps;
|
|
15
15
|
labelPlacement?: LabelPlacement;
|
|
16
|
-
labelProps?:
|
|
16
|
+
labelProps?: TypographyTypeMap['props'];
|
|
17
17
|
onChange?: (e) => void;
|
|
18
18
|
options: Array<string>;
|
|
19
19
|
values: Array<string>;
|
package/src/Dashboard/Item.tsx
CHANGED
package/src/Dashboard/Layout.tsx
CHANGED
|
@@ -23,7 +23,7 @@ interface DashboardLayoutProps<T> {
|
|
|
23
23
|
layout: Array<T>;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
const
|
|
26
|
+
const Layout = <T extends Layout>({
|
|
27
27
|
children,
|
|
28
28
|
changeLayout,
|
|
29
29
|
displayGrid,
|
|
@@ -76,4 +76,4 @@ const DashboardLayout = <T extends Layout>({
|
|
|
76
76
|
});
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
export default
|
|
79
|
+
export default Layout;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DialogContentText, Typography } from '@mui/material';
|
|
2
2
|
|
|
3
3
|
import Dialog, { Props as DialogProps } from '..';
|
|
4
4
|
|
|
@@ -6,23 +6,15 @@ type Props = DialogProps & {
|
|
|
6
6
|
children?: JSX.Element;
|
|
7
7
|
labelMessage?: string | null;
|
|
8
8
|
labelSecondMessage?: string | null;
|
|
9
|
-
restCancelButtonProps?: ButtonProps;
|
|
10
|
-
restConfirmButtonProps?: ButtonProps;
|
|
11
9
|
};
|
|
12
10
|
|
|
13
11
|
const Confirm = ({
|
|
14
12
|
labelMessage,
|
|
15
13
|
labelSecondMessage,
|
|
16
14
|
children,
|
|
17
|
-
restCancelButtonProps,
|
|
18
|
-
restConfirmButtonProps,
|
|
19
15
|
...rest
|
|
20
16
|
}: Props): JSX.Element => (
|
|
21
|
-
<Dialog
|
|
22
|
-
restCancelButtonProps={restCancelButtonProps}
|
|
23
|
-
restConfirmButtonProps={restConfirmButtonProps}
|
|
24
|
-
{...rest}
|
|
25
|
-
>
|
|
17
|
+
<Dialog {...rest}>
|
|
26
18
|
<DialogContentText>
|
|
27
19
|
{labelMessage && <Typography>{labelMessage}</Typography>}
|
|
28
20
|
{labelSecondMessage && <Typography>{labelSecondMessage}</Typography>}
|
package/src/Dialog/index.tsx
CHANGED
|
@@ -9,8 +9,7 @@ import {
|
|
|
9
9
|
DialogContent,
|
|
10
10
|
DialogActions,
|
|
11
11
|
DialogProps,
|
|
12
|
-
CircularProgress
|
|
13
|
-
ButtonProps
|
|
12
|
+
CircularProgress
|
|
14
13
|
} from '@mui/material';
|
|
15
14
|
|
|
16
15
|
import { DataTestAttributes } from '../@types/data-attributes';
|
|
@@ -44,13 +43,11 @@ export type Props = {
|
|
|
44
43
|
dialogTitleClassName?: string;
|
|
45
44
|
labelCancel?: string | null;
|
|
46
45
|
labelConfirm?: string | null;
|
|
47
|
-
labelTitle?:
|
|
46
|
+
labelTitle?: string | null;
|
|
48
47
|
onCancel?: () => void;
|
|
49
48
|
onClose?: () => void;
|
|
50
49
|
onConfirm: (event, value?) => void;
|
|
51
50
|
open: boolean;
|
|
52
|
-
restCancelButtonProps?: ButtonProps;
|
|
53
|
-
restConfirmButtonProps?: ButtonProps;
|
|
54
51
|
submitting?: boolean;
|
|
55
52
|
} & DialogProps &
|
|
56
53
|
DataTestAttributes;
|
|
@@ -73,8 +70,6 @@ const Dialog = ({
|
|
|
73
70
|
dialogContentClassName,
|
|
74
71
|
dialogActionsClassName,
|
|
75
72
|
dialogConfirmButtonClassName,
|
|
76
|
-
restCancelButtonProps,
|
|
77
|
-
restConfirmButtonProps,
|
|
78
73
|
...rest
|
|
79
74
|
}: Props): JSX.Element => {
|
|
80
75
|
const { classes, cx } = useStyles({ contentWidth });
|
|
@@ -106,7 +101,6 @@ const Dialog = ({
|
|
|
106
101
|
data-testid="Cancel"
|
|
107
102
|
disabled={cancelDisabled}
|
|
108
103
|
onClick={onCancel}
|
|
109
|
-
{...restCancelButtonProps}
|
|
110
104
|
>
|
|
111
105
|
{labelCancel}
|
|
112
106
|
</Button>
|
|
@@ -119,7 +113,6 @@ const Dialog = ({
|
|
|
119
113
|
disabled={confirmDisabled}
|
|
120
114
|
endIcon={submitting && <CircularProgress size={15} />}
|
|
121
115
|
onClick={onConfirm}
|
|
122
|
-
{...restConfirmButtonProps}
|
|
123
116
|
>
|
|
124
117
|
{labelConfirm}
|
|
125
118
|
</Button>
|
|
@@ -17,7 +17,7 @@ const useStyles = makeStyles()((theme) => ({
|
|
|
17
17
|
logo: {
|
|
18
18
|
alignSelf: 'flex-end',
|
|
19
19
|
height: theme.spacing(11),
|
|
20
|
-
width: '
|
|
20
|
+
width: '22rem'
|
|
21
21
|
},
|
|
22
22
|
message: {
|
|
23
23
|
color: theme.palette.text.primary
|
|
@@ -66,9 +66,9 @@ export const FallbackPage: FC<FallbackPageProps> = typedMemo(
|
|
|
66
66
|
|
|
67
67
|
return (
|
|
68
68
|
<div className={classes.notAuthorizedContainer}>
|
|
69
|
-
<
|
|
69
|
+
<section className={classes.logo}>
|
|
70
70
|
<CentreonLogo />
|
|
71
|
-
</
|
|
71
|
+
</section>
|
|
72
72
|
<section className={classes.messageBlock}>
|
|
73
73
|
<header>
|
|
74
74
|
<Typography color="primary" fontWeight="bold" variant="h3">
|
|
@@ -98,9 +98,7 @@ const getExtensions = cond([
|
|
|
98
98
|
[T, identity]
|
|
99
99
|
]) as (accept: string) => Array<string>;
|
|
100
100
|
|
|
101
|
-
export const transformFileListToArray = (
|
|
102
|
-
files: FileList | null
|
|
103
|
-
): Array<File> =>
|
|
101
|
+
export const transformFileListToArray = (files: FileList | null): Array<File> =>
|
|
104
102
|
isNil(files)
|
|
105
103
|
? []
|
|
106
104
|
: (Array(files.length)
|
|
@@ -21,7 +21,6 @@ import CheckboxGroup from './CheckboxGroup';
|
|
|
21
21
|
import Checkbox from './Checkbox';
|
|
22
22
|
import Custom from './Custom';
|
|
23
23
|
import LoadingSkeleton from './LoadingSkeleton';
|
|
24
|
-
import List from './List/List';
|
|
25
24
|
|
|
26
25
|
export const getInput = R.cond<
|
|
27
26
|
Array<InputType>,
|
|
@@ -67,7 +66,6 @@ export const getInput = R.cond<
|
|
|
67
66
|
R.equals(InputType.CheckboxGroup) as (b: InputType) => boolean,
|
|
68
67
|
R.always(CheckboxGroup)
|
|
69
68
|
],
|
|
70
|
-
[R.equals(InputType.List) as (b: InputType) => boolean, R.always(List)],
|
|
71
69
|
[R.T, R.always(TextInput)]
|
|
72
70
|
]);
|
|
73
71
|
|
|
@@ -187,7 +185,7 @@ const Inputs = ({
|
|
|
187
185
|
const hasGroupTitle = R.not(R.isNil(groupName));
|
|
188
186
|
|
|
189
187
|
const groupProps = hasGroupTitle
|
|
190
|
-
? R.find(R.propEq(
|
|
188
|
+
? R.find(R.propEq('name', groupName), groups)
|
|
191
189
|
: ({} as Group);
|
|
192
190
|
|
|
193
191
|
const isFirstElement = areGroupsOpen || R.equals(index, 0);
|
|
@@ -18,8 +18,7 @@ export enum InputType {
|
|
|
18
18
|
Grid,
|
|
19
19
|
Custom,
|
|
20
20
|
Checkbox,
|
|
21
|
-
CheckboxGroup
|
|
22
|
-
List
|
|
21
|
+
CheckboxGroup
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
interface FieldsTableGetRequiredProps {
|
|
@@ -77,13 +76,6 @@ export interface InputProps {
|
|
|
77
76
|
hideInput?: (values: FormikValues) => boolean;
|
|
78
77
|
inputClassName?: string;
|
|
79
78
|
label: string;
|
|
80
|
-
list?: {
|
|
81
|
-
AddItem: React.ComponentType<{ addItem }>;
|
|
82
|
-
SortContent: React.ComponentType<object>;
|
|
83
|
-
addItemLabel?: string;
|
|
84
|
-
itemProps: Array<string>;
|
|
85
|
-
sortLabel?: string;
|
|
86
|
-
};
|
|
87
79
|
radio?: {
|
|
88
80
|
options?: Array<{
|
|
89
81
|
label: string | JSX.Element;
|
|
@@ -3,6 +3,8 @@ import { makeStyles } from 'tss-react/mui';
|
|
|
3
3
|
|
|
4
4
|
import { Box, Typography } from '@mui/material';
|
|
5
5
|
|
|
6
|
+
import EllipsisTypography from '../../Typography/EllipsisTypography';
|
|
7
|
+
|
|
6
8
|
import heatMapData from './HeatMapData.json';
|
|
7
9
|
|
|
8
10
|
import { HeatMap } from '.';
|
|
@@ -20,6 +22,29 @@ const meta: Meta<typeof HeatMap<Data>> = {
|
|
|
20
22
|
export default meta;
|
|
21
23
|
type Story = StoryObj<typeof HeatMap<Data>>;
|
|
22
24
|
|
|
25
|
+
const TileContent = ({
|
|
26
|
+
isSmallestSize,
|
|
27
|
+
data
|
|
28
|
+
}: {
|
|
29
|
+
data: Data;
|
|
30
|
+
isSmallestSize: boolean;
|
|
31
|
+
}): JSX.Element | false =>
|
|
32
|
+
!isSmallestSize && (
|
|
33
|
+
<Box
|
|
34
|
+
sx={{
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
color: 'common.black',
|
|
37
|
+
display: 'flex',
|
|
38
|
+
flexDirection: 'column',
|
|
39
|
+
width: '100%'
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
42
|
+
<EllipsisTypography textAlign="center">{data.host}</EllipsisTypography>
|
|
43
|
+
<EllipsisTypography textAlign="center">{data.service}</EllipsisTypography>
|
|
44
|
+
<EllipsisTypography textAlign="center">{data.counter}</EllipsisTypography>
|
|
45
|
+
</Box>
|
|
46
|
+
);
|
|
47
|
+
|
|
23
48
|
const TooltipContent = ({ data }: { data: Data }): JSX.Element => {
|
|
24
49
|
return (
|
|
25
50
|
<Box sx={{ backgroundColor: 'common.white', color: 'common.black' }}>
|
|
@@ -40,7 +40,7 @@ const ResponsiveHeatMap = <TData,>({
|
|
|
40
40
|
const theoricalTotalTilesWidth =
|
|
41
41
|
tilesLength * tileWidth + (tilesLength - 1) * gap;
|
|
42
42
|
|
|
43
|
-
if (lt(width, 680) && gt(maxTotalTilesWidth, width)
|
|
43
|
+
if (lt(width, 680) && gt(maxTotalTilesWidth, width)) {
|
|
44
44
|
return smallestTileSize;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -66,19 +66,13 @@ const ResponsiveHeatMap = <TData,>({
|
|
|
66
66
|
}}
|
|
67
67
|
>
|
|
68
68
|
{tiles.map(({ backgroundColor, id, data }) => (
|
|
69
|
-
<Box
|
|
70
|
-
className={classes.heatMapTile}
|
|
71
|
-
data-testid={id}
|
|
72
|
-
key={id}
|
|
73
|
-
sx={{ backgroundColor }}
|
|
74
|
-
>
|
|
69
|
+
<Box className={classes.heatMapTile} key={id} sx={{ backgroundColor }}>
|
|
75
70
|
<Tooltip
|
|
76
71
|
hasCaret
|
|
77
72
|
classes={{
|
|
78
73
|
arrow: cx(classes.heatMapTooltipArrow, arrowClassName),
|
|
79
74
|
tooltip: classes.heatMapTooltip
|
|
80
75
|
}}
|
|
81
|
-
data-testid={`tooltip-${data?.id}`}
|
|
82
76
|
followCursor={false}
|
|
83
77
|
label={
|
|
84
78
|
displayTooltipCondition?.(data) &&
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Shape } from '@visx/visx';
|
|
2
2
|
import { isEmpty, isNil } from 'ramda';
|
|
3
3
|
|
|
4
|
-
import { Circle
|
|
4
|
+
import { Circle } from './models';
|
|
5
5
|
import useCoordinateCircle from './useCoordinateCircle';
|
|
6
6
|
|
|
7
7
|
const Circle = ({
|
|
@@ -11,7 +11,7 @@ const Circle = ({
|
|
|
11
11
|
timeSeries,
|
|
12
12
|
getX,
|
|
13
13
|
getCountDisplayedCircles
|
|
14
|
-
}:
|
|
14
|
+
}: Circle): JSX.Element | null => {
|
|
15
15
|
const coordinates = useCoordinateCircle({
|
|
16
16
|
getCountDisplayedCircles,
|
|
17
17
|
getX,
|
|
@@ -130,11 +130,10 @@ const WrapperThresholdLines = ({
|
|
|
130
130
|
|
|
131
131
|
return (
|
|
132
132
|
<g>
|
|
133
|
-
{filteredThresholdLines.map(
|
|
134
|
-
(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
))
|
|
133
|
+
{filteredThresholdLines.map((element) =>
|
|
134
|
+
element?.map(({ Component, props, key }) => (
|
|
135
|
+
<Component {...props} id={key} key={key} />
|
|
136
|
+
))
|
|
138
137
|
)}
|
|
139
138
|
</g>
|
|
140
139
|
);
|
|
@@ -2,7 +2,7 @@ import { equals, isNil } from 'ramda';
|
|
|
2
2
|
|
|
3
3
|
import { getUnits, getYScale } from '../../common/timeSeries';
|
|
4
4
|
import { Line } from '../../common/timeSeries/models';
|
|
5
|
-
import { Thresholds
|
|
5
|
+
import { Thresholds } from '../../common/models';
|
|
6
6
|
|
|
7
7
|
import { ThresholdLine } from './ThresholdLine';
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ interface Props {
|
|
|
13
13
|
rightScale: (value: number) => number;
|
|
14
14
|
showTooltip: (props) => void;
|
|
15
15
|
thresholdUnit?: string;
|
|
16
|
-
thresholds:
|
|
16
|
+
thresholds: Thresholds;
|
|
17
17
|
width: number;
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -28,7 +28,7 @@ const useFilterLines = ({
|
|
|
28
28
|
linesGraph,
|
|
29
29
|
setLinesGraph
|
|
30
30
|
}: UseFilterLines): Result => {
|
|
31
|
-
const displayedLines = reject(propEq(
|
|
31
|
+
const displayedLines = reject(propEq('display', false), linesGraph ?? lines);
|
|
32
32
|
const filterLines = (): Array<Line> => {
|
|
33
33
|
const lineOriginMetric = findLineOfOriginMetricThreshold(lines);
|
|
34
34
|
|
|
@@ -2,7 +2,7 @@ import { Shape } from '@visx/visx';
|
|
|
2
2
|
|
|
3
3
|
import { grey } from '@mui/material/colors';
|
|
4
4
|
|
|
5
|
-
import { GuidingLines
|
|
5
|
+
import { GuidingLines } from './models';
|
|
6
6
|
import useTickGraph from './useTickGraph';
|
|
7
7
|
|
|
8
8
|
const GuidingLines = ({
|
|
@@ -10,7 +10,7 @@ const GuidingLines = ({
|
|
|
10
10
|
xScale,
|
|
11
11
|
graphHeight,
|
|
12
12
|
graphWidth
|
|
13
|
-
}:
|
|
13
|
+
}: GuidingLines): JSX.Element | null => {
|
|
14
14
|
const { positionX, positionY } = useTickGraph({
|
|
15
15
|
timeSeries,
|
|
16
16
|
xScale
|
|
@@ -43,8 +43,9 @@ const Annotation = ({
|
|
|
43
43
|
|
|
44
44
|
const setAnnotationHovered = useSetAtom(annotationHoveredAtom);
|
|
45
45
|
|
|
46
|
-
const content = `${truncate(event.content)} (${t(labelBy)} ${
|
|
47
|
-
?.name
|
|
46
|
+
const content = `${truncate(event.content)} (${t(labelBy)} ${
|
|
47
|
+
event.contact?.name
|
|
48
|
+
})`;
|
|
48
49
|
|
|
49
50
|
return (
|
|
50
51
|
<g>
|
|
@@ -8,7 +8,7 @@ interface MakeStylesProps {
|
|
|
8
8
|
|
|
9
9
|
export const legendWidth = 21;
|
|
10
10
|
const legendItemHeight = 5.25;
|
|
11
|
-
const legendItemHeightCompact =
|
|
11
|
+
const legendItemHeightCompact = 1.75;
|
|
12
12
|
|
|
13
13
|
export const useStyles = makeStyles<MakeStylesProps>()(
|
|
14
14
|
(theme, { limitLegendRows }) => ({
|
|
@@ -5,7 +5,7 @@ import { equals, find, isNil } from 'ramda';
|
|
|
5
5
|
|
|
6
6
|
import { mousePositionAtom } from '../InteractiveComponents/interactionWithGraphAtoms';
|
|
7
7
|
import {
|
|
8
|
-
|
|
8
|
+
formatMetricValue,
|
|
9
9
|
getLineForMetric,
|
|
10
10
|
getMetrics,
|
|
11
11
|
getTimeValue
|
|
@@ -73,7 +73,7 @@ const useInteractiveValues = ({
|
|
|
73
73
|
metric_id
|
|
74
74
|
}) as Line;
|
|
75
75
|
|
|
76
|
-
const formattedValue =
|
|
76
|
+
const formattedValue = formatMetricValue({
|
|
77
77
|
base,
|
|
78
78
|
unit,
|
|
79
79
|
value
|