@centreon/ui 24.4.5 → 24.4.6

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.
Files changed (67) hide show
  1. package/package.json +12 -16
  2. package/src/Button/Save/StartIcon.tsx +3 -3
  3. package/src/Dashboard/Item.tsx +1 -1
  4. package/src/Dashboard/Layout.tsx +2 -2
  5. package/src/FileDropZone/index.tsx +1 -3
  6. package/src/Form/Inputs/CheckboxGroup.tsx +4 -1
  7. package/src/Form/Inputs/index.tsx +1 -1
  8. package/src/Graph/HeatMap/HeatMap.styles.tsx +0 -1
  9. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +8 -12
  10. package/src/Graph/HeatMap/model.ts +0 -1
  11. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +2 -2
  12. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +4 -5
  13. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +2 -2
  14. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +1 -1
  15. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +2 -2
  16. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +3 -2
  17. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +1 -1
  18. package/src/Graph/LineChart/Legend/useLegend.ts +3 -3
  19. package/src/Graph/LineChart/helpers/doc.ts +13 -16
  20. package/src/Graph/LineChart/helpers/index.ts +1 -1
  21. package/src/Graph/LineChart/index.stories.tsx +2 -4
  22. package/src/Graph/SingleBar/Thresholds.tsx +2 -2
  23. package/src/Graph/Text/Text.stories.tsx +4 -60
  24. package/src/Graph/common/timeSeries/index.ts +3 -3
  25. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +0 -1
  26. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +0 -1
  27. package/src/InputField/Select/Autocomplete/Connected/index.tsx +7 -13
  28. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  29. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
  30. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
  31. package/src/InputField/Select/IconPopover/index.tsx +2 -2
  32. package/src/InputField/Select/index.tsx +1 -1
  33. package/src/InputField/Text/index.tsx +1 -6
  34. package/src/Listing/Header/ListingHeader.tsx +1 -1
  35. package/src/Listing/index.stories.tsx +1 -12
  36. package/src/Listing/index.tsx +1 -1
  37. package/src/RichTextEditor/RichTextEditor.tsx +1 -12
  38. package/src/SortableItems/index.tsx +7 -2
  39. package/src/ThemeProvider/palettes.ts +4 -4
  40. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +3 -8
  41. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +2 -0
  42. package/src/TimePeriods/DateTimePickerInput.tsx +17 -45
  43. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +33 -9
  44. package/src/TimePeriods/helpers/index.ts +1 -1
  45. package/src/TimePeriods/index.stories.tsx +4 -12
  46. package/src/TimePeriods/index.tsx +2 -2
  47. package/src/api/QueryProvider.tsx +1 -1
  48. package/src/api/TestQueryProvider.tsx +1 -1
  49. package/src/api/buildListingEndpoint/models.ts +1 -2
  50. package/src/api/customFetch.ts +3 -12
  51. package/src/api/useFetchQuery/index.ts +28 -43
  52. package/src/api/useMutationQuery/index.ts +18 -43
  53. package/src/components/DataTable/Item/DataTableItem.tsx +2 -2
  54. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -2
  55. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +1 -1
  56. package/src/components/Form/Dashboard/DashboardForm.tsx +12 -15
  57. package/src/components/Modal/Modal.styles.ts +2 -4
  58. package/src/index.ts +0 -1
  59. package/src/queryParameters/url/index.ts +1 -5
  60. package/src/screens/dashboard/DashboardsDetail.stories.tsx +108 -0
  61. package/src/screens/dashboard/DashboardsOverview.stories.tsx +281 -0
  62. package/src/utils/index.ts +1 -0
  63. package/src/utils/useDateTimePickerAdapter.ts +309 -0
  64. package/src/utils/useInfiniteScrollListing.ts +7 -22
  65. package/src/utils/{useLicenseExpirationWarning.test.tsx → useLicenseExpirationWarning.cypress.spec.tsx} +37 -48
  66. package/src/utils/useLicenseExpirationWarning.ts +18 -18
  67. package/src/utils/useLocaleDateTimeFormat/index.ts +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@centreon/ui",
3
- "version": "24.4.5",
3
+ "version": "24.4.6",
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
  },
@@ -74,13 +73,13 @@
74
73
  "@testing-library/react-hooks": "^8.0.1",
75
74
  "@types/cypress": "^1.1.3",
76
75
  "@types/jest": "^27.5.0",
77
- "@types/ramda": "^0.29.6",
76
+ "@types/ramda": "^0.28.12",
78
77
  "@types/react": "^18.0.26",
79
78
  "@types/testing-library__jest-dom": "^5.14.6",
80
79
  "@vitejs/plugin-react": "^4.0.0",
81
80
  "@vitejs/plugin-react-swc": "^3.3.0",
82
81
  "axios-mock-adapter": "^1.21.4",
83
- "cypress": "^13.3.1",
82
+ "cypress": "^12.8.0",
84
83
  "identity-obj-proxy": "^3.0.0",
85
84
  "jest-transform-stub": "^2.0.0",
86
85
  "mochawesome": "^7.1.3",
@@ -98,18 +97,16 @@
98
97
  "ts-node": "^10.9.1",
99
98
  "use-resize-observer": "^9.1.0",
100
99
  "vite": "^4.3.5",
101
- "vite-plugin-istanbul": "^5.0.0",
102
100
  "vite-plugin-svgr": "^3.2.0",
103
101
  "vite-plugin-turbosnap": "^1.0.2"
104
102
  },
105
103
  "dependencies": {
106
- "@lexical/html": "^0.12.2",
107
- "@lexical/link": "^0.12.2",
108
- "@lexical/list": "^0.12.2",
109
- "@lexical/react": "^0.12.2",
110
- "@lexical/rich-text": "^0.12.2",
111
- "@lexical/selection": "^0.12.2",
112
- "@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",
113
110
  "@react-spring/web": "^9.7.3",
114
111
  "@visx/curve": "^2.1.0",
115
112
  "@visx/group": "^3.3.0",
@@ -121,9 +118,8 @@
121
118
  "anylogger": "^1.0.11",
122
119
  "d3-array": "3.2.0",
123
120
  "humanize-duration": "^3.27.3",
124
- "lexical": "^0.12.2",
125
- "notistack": "^3.0.1",
126
- "ramda": "0.29.1",
121
+ "lexical": "0.11.3",
122
+ "notistack": "^2.0.8",
127
123
  "react-grid-layout": "^1.3.4",
128
124
  "react-html-parser": "^2.0.2",
129
125
  "react-resizable": "^3.0.5",
@@ -139,7 +135,7 @@
139
135
  "@mui/icons-material": "5.x",
140
136
  "@mui/material": "5.x",
141
137
  "@mui/styles": "5.x",
142
- "@tanstack/react-query": "5.x",
138
+ "@tanstack/react-query": "4.x",
143
139
  "axios": "0.x",
144
140
  "dayjs": "1.x",
145
141
  "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(true, 'hasLabel'), not), always(null)],
19
- [propEq(true, 'succeeded'), always(<CheckIcon />)],
20
- [propEq(true, 'loading'), always(<SaveIcon />)],
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
 
@@ -27,7 +27,7 @@ interface DashboardItemProps {
27
27
  style?: CSSProperties;
28
28
  }
29
29
 
30
- const Item = forwardRef<HTMLDivElement, DashboardItemProps>(
30
+ const Item = forwardRef(
31
31
  (
32
32
  {
33
33
  children,
@@ -23,7 +23,7 @@ interface DashboardLayoutProps<T> {
23
23
  layout: Array<T>;
24
24
  }
25
25
 
26
- const DashboardLayout = <T extends Layout>({
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 DashboardLayout;
79
+ export default Layout;
@@ -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)
@@ -46,7 +46,10 @@ const CheckboxGroup = ({
46
46
  return;
47
47
  }
48
48
 
49
- setFieldValue(fieldName, value?.filter((elm) => !equals(elm, label)));
49
+ setFieldValue(
50
+ fieldName,
51
+ value?.filter((elm) => !equals(elm, label))
52
+ );
50
53
  };
51
54
 
52
55
  return useMemoComponent({
@@ -185,7 +185,7 @@ const Inputs = ({
185
185
  const hasGroupTitle = R.not(R.isNil(groupName));
186
186
 
187
187
  const groupProps = hasGroupTitle
188
- ? R.find(R.propEq(groupName, 'name'), groups)
188
+ ? R.find(R.propEq('name', groupName), groups)
189
189
  : ({} as Group);
190
190
 
191
191
  const isFirstElement = areGroupsOpen || R.equals(index, 0);
@@ -7,7 +7,6 @@ export const useHeatMapStyles = makeStyles()((theme) => ({
7
7
  heatMapTile: {
8
8
  alignItems: 'center',
9
9
  aspectRatio: '1 / 1',
10
- borderRadius: theme.shape.borderRadius,
11
10
  display: 'flex',
12
11
  justifyContent: 'center',
13
12
  width: '100%'
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react';
2
2
 
3
3
  import { scaleLinear } from '@visx/scale';
4
- import { T, equals, gt, lt } from 'ramda';
4
+ import { equals, gt, lt } from 'ramda';
5
5
 
6
6
  import { Box } from '@mui/material';
7
7
 
@@ -20,8 +20,7 @@ const ResponsiveHeatMap = <TData,>({
20
20
  tiles,
21
21
  arrowClassName,
22
22
  tooltipContent,
23
- tileSizeFixed,
24
- displayTooltipCondition = T
23
+ tileSizeFixed
25
24
  }: HeatMapProps<TData> & { width: number }): JSX.Element | null => {
26
25
  const { classes, cx } = useHeatMapStyles();
27
26
 
@@ -74,15 +73,12 @@ const ResponsiveHeatMap = <TData,>({
74
73
  tooltip: classes.heatMapTooltip
75
74
  }}
76
75
  followCursor={false}
77
- label={
78
- displayTooltipCondition?.(data) &&
79
- tooltipContent?.({
80
- backgroundColor,
81
- data,
82
- id,
83
- isSmallestSize
84
- })
85
- }
76
+ label={tooltipContent?.({
77
+ backgroundColor,
78
+ data,
79
+ id,
80
+ isSmallestSize
81
+ })}
86
82
  position="right-start"
87
83
  >
88
84
  <div className={classes.heatMapTileContent}>
@@ -21,7 +21,6 @@ export interface HeatMapProps<TData> {
21
21
  data,
22
22
  isSmallestSize
23
23
  }: ChildrenProps<TData>) => ReactElement | boolean | null;
24
- displayTooltipCondition?: (data: TData) => boolean;
25
24
  tileSizeFixed?: boolean;
26
25
  tiles: Array<Tile<TData>>;
27
26
  tooltipContent?: ({
@@ -1,7 +1,7 @@
1
1
  import { Shape } from '@visx/visx';
2
2
  import { isEmpty, isNil } from 'ramda';
3
3
 
4
- import { Circle as CircleModel } from './models';
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
- }: CircleModel): JSX.Element | null => {
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
- (element) =>
135
- element?.map(({ Component, props, key }) => (
136
- <Component {...props} id={key} key={key} />
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 as ThresholdsModel } from '../../common/models';
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: ThresholdsModel;
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(false, 'display'), linesGraph ?? lines);
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 as GuidingLinesModel } from './models';
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
- }: GuidingLinesModel): JSX.Element | null => {
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)} ${event.contact
47
- ?.name})`;
46
+ const content = `${truncate(event.content)} (${t(labelBy)} ${
47
+ event.contact?.name
48
+ })`;
48
49
 
49
50
  return (
50
51
  <g>
@@ -26,7 +26,7 @@ const EventAnnotations = ({
26
26
  color,
27
27
  annotationHoveredId
28
28
  }: Props): JSX.Element => {
29
- const events = filter(propEq(type, 'type'), data);
29
+ const events = filter(propEq('type', type), data);
30
30
 
31
31
  return (
32
32
  <>
@@ -27,9 +27,9 @@ interface Props {
27
27
  }
28
28
 
29
29
  const useLegend = ({ lines, setLinesGraph }: Props): LegendActions => {
30
- const displayedLines = reject(propEq(false, 'display'), lines);
30
+ const displayedLines = reject(propEq('display', false), lines);
31
31
  const getLineByMetric = (metric_id: number): Line =>
32
- find(propEq(metric_id, 'metric_id'), lines) as Line;
32
+ find(propEq('metric_id', metric_id), lines) as Line;
33
33
 
34
34
  const toggleMetricLine = (metric_id): void => {
35
35
  const data = lines.map((line) => ({
@@ -92,7 +92,7 @@ const useLegend = ({ lines, setLinesGraph }: Props): LegendActions => {
92
92
 
93
93
  const newLines = lines.map((line) => ({
94
94
  ...line,
95
- display: find(propEq(line.metric_id, 'metric_id'), lines)?.display ?? true
95
+ display: find(propEq('metric_id', line.metric_id), lines)?.display ?? true
96
96
  }));
97
97
 
98
98
  setLinesGraph(newLines);
@@ -69,24 +69,21 @@ export const getDescription = ({ sections }: Description): string => {
69
69
  })}<br></details>`;
70
70
  }
71
71
 
72
- const formattedProps = props.reduce(
73
- (accumulator, currentValue, index) => {
74
- const key = Object.keys(currentValue)[0];
75
- const { description, type } = currentValue[key];
76
- const body = `${accumulator} ${getBodyDescription({
77
- description,
78
- key,
79
- type
80
- })}`;
72
+ const formattedProps = props.reduce((accumulator, currentValue, index) => {
73
+ const key = Object.keys(currentValue)[0];
74
+ const { description, type } = currentValue[key];
75
+ const body = `${accumulator} ${getBodyDescription({
76
+ description,
77
+ key,
78
+ type
79
+ })}`;
81
80
 
82
- if (!equals(index, props.length - 1)) {
83
- return body;
84
- }
81
+ if (!equals(index, props.length - 1)) {
82
+ return body;
83
+ }
85
84
 
86
- return `${body}</details>`;
87
- },
88
- getInitialValue({ section: name, type: item?.type })
89
- );
85
+ return `${body}</details>`;
86
+ }, getInitialValue({ section: name, type: item?.type }));
90
87
 
91
88
  return formattedProps as string;
92
89
  });
@@ -14,7 +14,7 @@ import { LineChartData } from '../../common/models';
14
14
  export const adjustGraphData = (graphData: LineChartData): LinesData => {
15
15
  const lines = getLineData(graphData);
16
16
  const sortedLines = sortBy(prop('name'), lines);
17
- const displayedLines = reject(propEq(false, 'display'), sortedLines);
17
+ const displayedLines = reject(propEq('display', false), sortedLines);
18
18
 
19
19
  const timeSeries = getTimeSeries(graphData);
20
20
 
@@ -39,7 +39,8 @@ import { Interval, ThresholdType, TooltipData } from './models';
39
39
  import WrapperLineChart from './index';
40
40
 
41
41
  const meta: Meta<typeof WrapperLineChart> = {
42
- component: WrapperLineChart
42
+ component: WrapperLineChart,
43
+ tags: ['autodocs']
43
44
  };
44
45
  export default meta;
45
46
 
@@ -352,9 +353,6 @@ export const LineChartWithTimePeriod: Story = {
352
353
  end: defaultEnd,
353
354
  height: 500,
354
355
  start: defaultStart
355
- },
356
- parameters: {
357
- chromatic: { diffThreshold: 0.1 }
358
356
  }
359
357
  };
360
358
 
@@ -1,4 +1,4 @@
1
- import { Thresholds as ThresholdsModel } from '../common/models';
1
+ import { Thresholds } from '../common/models';
2
2
 
3
3
  import { ThresholdLine } from './ThresholdLine';
4
4
 
@@ -8,7 +8,7 @@ interface Props {
8
8
  hideTooltip: () => void;
9
9
  showTooltip: (args) => void;
10
10
  size: 'small' | 'medium';
11
- thresholds: ThresholdsModel;
11
+ thresholds: Thresholds;
12
12
  xScale: (value: number) => number;
13
13
  }
14
14
 
@@ -24,21 +24,7 @@ export const success: Story = {
24
24
  critical: 'Critical',
25
25
  warning: 'Warning'
26
26
  },
27
- thresholds: {
28
- critical: [
29
- {
30
- label: 'Critical',
31
- value: 1.5
32
- }
33
- ],
34
- enabled: true,
35
- warning: [
36
- {
37
- label: 'Warning',
38
- value: 0.5
39
- }
40
- ]
41
- }
27
+ thresholds: [0.5, 1.5]
42
28
  },
43
29
  render: Template
44
30
  };
@@ -50,21 +36,7 @@ export const warning: Story = {
50
36
  critical: 'Critical',
51
37
  warning: 'Warning'
52
38
  },
53
- thresholds: {
54
- critical: [
55
- {
56
- label: 'Critical',
57
- value: 1.5
58
- }
59
- ],
60
- enabled: true,
61
- warning: [
62
- {
63
- label: 'Warning',
64
- value: 0.4
65
- }
66
- ]
67
- }
39
+ thresholds: [0.2, 0.5]
68
40
  },
69
41
  render: Template
70
42
  };
@@ -76,21 +48,7 @@ export const critical: Story = {
76
48
  critical: 'Critical',
77
49
  warning: 'Warning'
78
50
  },
79
- thresholds: {
80
- critical: [
81
- {
82
- label: 'Critical',
83
- value: 0.3
84
- }
85
- ],
86
- enabled: true,
87
- warning: [
88
- {
89
- label: 'Warning',
90
- value: 0.2
91
- }
92
- ]
93
- }
51
+ thresholds: [0.13, 0.35]
94
52
  },
95
53
  render: Template
96
54
  };
@@ -103,21 +61,7 @@ export const rawValue: Story = {
103
61
  critical: 'Critical',
104
62
  warning: 'Warning'
105
63
  },
106
- thresholds: {
107
- critical: [
108
- {
109
- label: 'Critical',
110
- value: 1.5
111
- }
112
- ],
113
- enabled: true,
114
- warning: [
115
- {
116
- label: 'Warning',
117
- value: 0.5
118
- }
119
- ]
120
- }
64
+ thresholds: [0.5, 1.5]
121
65
  },
122
66
  render: Template
123
67
  };
@@ -179,7 +179,7 @@ const getMetricValuesForUnit = ({
179
179
  ) as Array<number>;
180
180
 
181
181
  return pipe(
182
- filter(propEq(unit, 'unit')) as (line) => Array<Line>,
182
+ filter(propEq('unit', unit)) as (line) => Array<Line>,
183
183
  map(prop('metric_id')),
184
184
  map(getTimeSeriesValuesForMetric),
185
185
  flatten,
@@ -203,7 +203,7 @@ const getLineForMetric = ({
203
203
  lines,
204
204
  metric_id
205
205
  }: LineForMetricProps): Line | undefined =>
206
- find(propEq(metric_id, 'metric_id'), lines);
206
+ find(propEq('metric_id', metric_id), lines);
207
207
 
208
208
  interface LinesTimeSeries {
209
209
  lines: Array<Line>;
@@ -275,7 +275,7 @@ interface HasStackedLines {
275
275
  }
276
276
 
277
277
  const hasUnitStackedLines = ({ lines, unit }: HasStackedLines): boolean =>
278
- pipe(getSortedStackedLines, any(propEq(unit, 'unit')))(lines);
278
+ pipe(getSortedStackedLines, any(propEq('unit', unit)))(lines);
279
279
 
280
280
  const getTimeSeriesForLines = ({
281
281
  lines,
@@ -17,7 +17,6 @@ const renderMultiAutocompleteField = (): RenderResult =>
17
17
  render(
18
18
  <TestQueryProvider>
19
19
  <MultiConnectedAutocompleteField
20
- baseEndpoint=""
21
20
  field="host.name"
22
21
  getEndpoint={getEndpoint}
23
22
  label={label}
@@ -45,7 +45,6 @@ const renderSingleConnectedAutocompleteField = (
45
45
  render(
46
46
  <TestQueryProvider>
47
47
  <SingleConnectedAutocompleteField
48
- baseEndpoint=""
49
48
  field="host.name"
50
49
  getEndpoint={getEndpoint}
51
50
  label={label}
@@ -32,7 +32,6 @@ import useFetchQuery from '../../../../api/useFetchQuery';
32
32
 
33
33
  export interface ConnectedAutoCompleteFieldProps<TData> {
34
34
  allowUniqOption?: boolean;
35
- baseEndpoint?: string;
36
35
  conditionField?: keyof SelectEntry;
37
36
  field: string;
38
37
  getEndpoint: ({ search, page }) => string;
@@ -61,7 +60,6 @@ const ConnectedAutocompleteField = (
61
60
  displayOptionThumbnail,
62
61
  queryKey,
63
62
  allowUniqOption,
64
- baseEndpoint,
65
63
  ...props
66
64
  }: ConnectedAutoCompleteFieldProps<TData> &
67
65
  Omit<AutocompleteFieldProps, 'options'>): JSX.Element => {
@@ -89,7 +87,6 @@ const ConnectedAutocompleteField = (
89
87
  const { fetchQuery, isFetching, prefetchNextPage } = useFetchQuery<
90
88
  ListingModel<TData>
91
89
  >({
92
- baseEndpoint,
93
90
  fetchHeaders: getRequestHeaders,
94
91
  getEndpoint: (params) => {
95
92
  return getEndpoint({
@@ -283,16 +280,13 @@ const ConnectedAutocompleteField = (
283
280
  }
284
281
  }, [optionsOpen]);
285
282
 
286
- useEffect(
287
- () => {
288
- setSearchParameter(
289
- !isEmpty(searchConditions)
290
- ? { conditions: searchConditions }
291
- : undefined
292
- );
293
- },
294
- useDeepCompare([searchConditions])
295
- );
283
+ useEffect(() => {
284
+ setSearchParameter(
285
+ !isEmpty(searchConditions)
286
+ ? { conditions: searchConditions }
287
+ : undefined
288
+ );
289
+ }, useDeepCompare([searchConditions]));
296
290
 
297
291
  useEffect(() => {
298
292
  if (!autocompleteChangedValue && !props?.value) {
@@ -49,7 +49,7 @@ const SortableList = ({
49
49
  const dragEnd = ({ items: newItems }): void =>
50
50
  changeItemsOrder(
51
51
  map(
52
- (item) => find(propEq(item, 'id'), items),
52
+ (item) => find(propEq('id', item), items),
53
53
  newItems
54
54
  ) as Array<DraggableSelectEntry>
55
55
  );
@@ -49,7 +49,7 @@ const SortableListContent = ({
49
49
  return;
50
50
  }
51
51
 
52
- const itemIndex = findIndex(propEq(id, 'id'), items);
52
+ const itemIndex = findIndex(propEq('id', id), items);
53
53
 
54
54
  itemHover?.(null);
55
55
  itemClick?.({ index: itemIndex, item: { createOption, id, name } });
@@ -77,7 +77,7 @@ const DraggableAutocomplete = (
77
77
  const deleteValue = (id): void => {
78
78
  itemHover?.(null);
79
79
  setSelectedValues((values: Array<DraggableSelectEntry>) => {
80
- const index = findIndex(propEq(id, 'id'), values);
80
+ const index = findIndex(propEq('id', id), values);
81
81
 
82
82
  const newSelectedValues = remove(index, 1, values);
83
83
 
@@ -73,14 +73,14 @@ const IconPopoverMultiAutocomplete = ({
73
73
  };
74
74
 
75
75
  const isSelected = (id: number | string): boolean => {
76
- return pipe(find(propEq(id, 'id')), Boolean)(value);
76
+ return pipe(find(propEq('id', id)), Boolean)(value);
77
77
  };
78
78
 
79
79
  const unSelect = (option: SelectEntry): void => {
80
80
  const { id } = option;
81
81
 
82
82
  const updatedValue = isSelected(id)
83
- ? reject(propEq(id, 'id'), value)
83
+ ? reject(propEq('id', id), value)
84
84
  : [...value, option];
85
85
 
86
86
  onChange(updatedValue);