@centreon/ui 24.4.59 → 24.4.60

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 (543) hide show
  1. package/.storybook/main.js +82 -0
  2. package/.storybook/preview.tsx +21 -0
  3. package/README.md +14 -44
  4. package/jest.config.js +20 -0
  5. package/package.json +32 -102
  6. package/{test/setupTests.js → setupTests.js} +1 -1
  7. package/src/ActionsList/index.stories.tsx +0 -74
  8. package/src/ActionsList/index.tsx +21 -58
  9. package/src/Button/Icon/index.stories.tsx +1 -1
  10. package/src/Button/Icon/index.tsx +3 -12
  11. package/src/Button/Save/index.stories.tsx +5 -10
  12. package/src/Button/Save/index.tsx +1 -1
  13. package/src/Dialog/Confirm/index.tsx +4 -17
  14. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  15. package/src/Dialog/index.tsx +2 -14
  16. package/src/FallbackPage/FallbackPage.tsx +2 -2
  17. package/src/FileDropZone/index.tsx +1 -1
  18. package/src/Form/CollapsibleGroup.tsx +5 -15
  19. package/src/Form/FormButtons.tsx +4 -2
  20. package/src/Form/Inputs/Autocomplete.tsx +1 -1
  21. package/src/Form/Inputs/ConnectedAutocomplete.tsx +1 -3
  22. package/src/Form/Inputs/Grid.tsx +2 -4
  23. package/src/Form/Inputs/Radio.tsx +5 -16
  24. package/src/Form/Inputs/Switch.tsx +1 -1
  25. package/src/Form/Inputs/Text.tsx +7 -18
  26. package/src/Form/Inputs/index.tsx +15 -31
  27. package/src/Form/Inputs/models.ts +4 -20
  28. package/src/Form/{Form.stories.tsx → index.stories.tsx} +3 -2
  29. package/src/Form/{Form.tsx → index.tsx} +16 -38
  30. package/src/Form/storiesData.tsx +3 -50
  31. package/src/Home.stories.mdx +84 -1
  32. package/src/Image/Image.tsx +1 -11
  33. package/src/Image/index.stories.tsx +2 -2
  34. package/src/Image/index.test.tsx +3 -3
  35. package/src/InputField/Search/PersistentTooltip.tsx +6 -10
  36. package/src/InputField/Search/index.tsx +2 -2
  37. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +22 -4
  38. package/src/InputField/Select/Autocomplete/Connected/index.stories.tsx +3 -0
  39. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +7 -4
  40. package/src/InputField/Select/Autocomplete/Connected/index.tsx +9 -47
  41. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +2 -0
  42. package/src/InputField/Select/Autocomplete/Multi/index.tsx +15 -32
  43. package/src/InputField/Select/Autocomplete/index.stories.tsx +10 -1
  44. package/src/InputField/Select/Autocomplete/index.tsx +2 -5
  45. package/src/InputField/Select/IconPopover/index.tsx +1 -1
  46. package/src/InputField/Select/index.tsx +1 -2
  47. package/src/InputField/Text/index.tsx +44 -54
  48. package/src/Listing/ActionBar/index.tsx +10 -16
  49. package/src/Listing/Cell/DataCell.tsx +68 -43
  50. package/src/Listing/Cell/index.tsx +8 -88
  51. package/src/Listing/Header/{_internals/PredefinedSelectionList.tsx → PredefinedSelectionList.tsx} +1 -1
  52. package/src/Listing/Header/{Cell/ListingHeaderCell.tsx → SortableCell/Content.tsx} +83 -18
  53. package/src/Listing/Header/SortableCell/DraggableIcon.tsx +41 -0
  54. package/src/Listing/Header/{ListingHeader.tsx → index.tsx} +105 -28
  55. package/src/Listing/{Row/Row.tsx → Row.tsx} +11 -12
  56. package/src/Listing/Skeleton.tsx +11 -0
  57. package/src/Listing/index.stories.tsx +40 -144
  58. package/src/Listing/index.test.tsx +1 -1
  59. package/src/Listing/index.tsx +261 -230
  60. package/src/Listing/models.ts +0 -1
  61. package/src/Listing/tableAtoms.ts +10 -15
  62. package/src/Listing/useStyleTable.ts +9 -9
  63. package/src/ListingPage/index.stories.tsx +8 -21
  64. package/src/ListingPage/index.tsx +38 -20
  65. package/src/Logo/CentreonLogo.tsx +2 -2
  66. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  67. package/src/Module/LicensedModule/LicenseCheck/index.tsx +9 -24
  68. package/src/Module/LicensedModule/index.tsx +1 -7
  69. package/src/Panel/Memoized.tsx +1 -1
  70. package/src/Panel/Section/index.test.tsx +1 -1
  71. package/src/Panel/Section/index.tsx +1 -1
  72. package/src/Panel/index.tsx +7 -11
  73. package/src/PopoverMenu/index.tsx +4 -18
  74. package/src/RichTextEditor/ContentEditable.tsx +24 -70
  75. package/src/RichTextEditor/RichTextEditor.tsx +47 -161
  76. package/src/RichTextEditor/index.stories.tsx +0 -14
  77. package/src/RichTextEditor/plugins/AutoLinkPlugin/index.tsx +5 -53
  78. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +16 -54
  79. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +92 -31
  80. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +3 -13
  81. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +10 -35
  82. package/src/RichTextEditor/translatedLabels.ts +0 -3
  83. package/src/Snackbar/index.tsx +4 -14
  84. package/src/Snackbar/useSnackbar.tsx +1 -5
  85. package/src/SortableItems/SortableItem.tsx +2 -3
  86. package/src/ThemeProvider/index.tsx +33 -41
  87. package/src/ThemeProvider/palettes.ts +201 -422
  88. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  89. package/src/WallpaperPage/index.stories.tsx +1 -1
  90. package/src/Wizard/ActionsBar.test.tsx +1 -1
  91. package/src/Wizard/WizardContent.tsx +3 -2
  92. package/src/Wizard/index.stories.tsx +18 -5
  93. package/src/Wizard/index.test.tsx +1 -1
  94. package/src/Wizard/index.tsx +5 -20
  95. package/src/Wizard/models.ts +0 -7
  96. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  97. package/src/api/TestQueryProvider.tsx +1 -2
  98. package/src/api/buildListingEndpoint/getSearchQueryParameterValue.ts +26 -35
  99. package/src/api/buildListingEndpoint/index.test.ts +2 -2
  100. package/src/api/buildListingEndpoint/index.ts +1 -1
  101. package/src/api/buildListingEndpoint/models.ts +2 -2
  102. package/src/api/customFetch.ts +3 -22
  103. package/src/api/index.ts +3 -3
  104. package/src/api/useFetchQuery/index.ts +19 -40
  105. package/src/api/useMutationQuery/index.ts +20 -51
  106. package/src/api/useRequest/index.ts +6 -9
  107. package/src/index.ts +21 -32
  108. package/src/storyshots.test.js +52 -0
  109. package/{test → src}/testRenderer.tsx +1 -1
  110. package/src/utils/getNormalizedId.ts +3 -1
  111. package/src/utils/useCopyToClipboard.ts +3 -2
  112. package/src/utils/useDebounce.ts +5 -8
  113. package/src/utils/useDeepCallback.ts +3 -1
  114. package/src/utils/useDeepMemo.ts +3 -1
  115. package/src/utils/useIntersectionObserver.ts +5 -5
  116. package/src/utils/useKeyObserver.tsx +3 -1
  117. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  118. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -4
  119. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  120. package/src/utils/useMemoComponent.ts +1 -1
  121. package/testRunner.js +36 -0
  122. package/tsconfig.json +29 -0
  123. package/types/declarations.d.ts +9 -0
  124. package/public/README.md +0 -39
  125. package/public/mockServiceWorker.js +0 -303
  126. package/src/@assets/README.md +0 -5
  127. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  128. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  129. package/src/@assets/icons/downtime.icon.svg +0 -1
  130. package/src/@types/aria-attributes.d.ts +0 -10
  131. package/src/@types/data-attributes.d.ts +0 -3
  132. package/src/@types/globals.d.ts +0 -9
  133. package/src/@types/vite-env.d.ts +0 -2
  134. package/src/ActionsList/ActionsList.styles.ts +0 -116
  135. package/src/ActionsList/models.ts +0 -8
  136. package/src/Checkbox/Checkbox.tsx +0 -109
  137. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  138. package/src/Checkbox/CheckboxGroup/index.tsx +0 -75
  139. package/src/Checkbox/index.stories.tsx +0 -39
  140. package/src/Checkbox/index.tsx +0 -2
  141. package/src/Dashboard/Dashboard.styles.ts +0 -108
  142. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  143. package/src/Dashboard/Grid.tsx +0 -70
  144. package/src/Dashboard/Item.tsx +0 -100
  145. package/src/Dashboard/Layout.tsx +0 -79
  146. package/src/Dashboard/index.tsx +0 -9
  147. package/src/Dashboard/utils.ts +0 -28
  148. package/src/Form/Form.styles.ts +0 -11
  149. package/src/Form/Inputs/Checkbox.tsx +0 -57
  150. package/src/Form/Inputs/CheckboxGroup.tsx +0 -76
  151. package/src/Form/index.ts +0 -1
  152. package/src/Graph/Gauge/AnimatedPie.tsx +0 -102
  153. package/src/Graph/Gauge/Gauge.stories.tsx +0 -159
  154. package/src/Graph/Gauge/Gauge.tsx +0 -41
  155. package/src/Graph/Gauge/PieData.tsx +0 -63
  156. package/src/Graph/Gauge/ResponsiveGauge.tsx +0 -148
  157. package/src/Graph/Gauge/Thresholds.tsx +0 -117
  158. package/src/Graph/Gauge/index.ts +0 -1
  159. package/src/Graph/Gauge/models.ts +0 -20
  160. package/src/Graph/HeatMap/HeatMap.stories.tsx +0 -105
  161. package/src/Graph/HeatMap/HeatMap.styles.tsx +0 -29
  162. package/src/Graph/HeatMap/HeatMap.tsx +0 -12
  163. package/src/Graph/HeatMap/HeatMapData.json +0 -137
  164. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +0 -98
  165. package/src/Graph/HeatMap/index.ts +0 -1
  166. package/src/Graph/HeatMap/model.ts +0 -33
  167. package/src/Graph/LineChart/BasicComponents/Axes/UnitLabel.tsx +0 -20
  168. package/src/Graph/LineChart/BasicComponents/Axes/index.tsx +0 -88
  169. package/src/Graph/LineChart/BasicComponents/Axes/models.ts +0 -26
  170. package/src/Graph/LineChart/BasicComponents/Axes/useAxisY.ts +0 -100
  171. package/src/Graph/LineChart/BasicComponents/Grids/index.tsx +0 -20
  172. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/index.tsx +0 -99
  173. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  174. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/index.tsx +0 -81
  175. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  176. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -53
  177. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  178. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -78
  179. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -63
  180. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  181. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +0 -142
  182. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/models.ts +0 -105
  183. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  184. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  185. package/src/Graph/LineChart/BasicComponents/Lines/index.tsx +0 -189
  186. package/src/Graph/LineChart/BasicComponents/Lines/models.ts +0 -45
  187. package/src/Graph/LineChart/BasicComponents/LoadingProgress.tsx +0 -46
  188. package/src/Graph/LineChart/BasicComponents/ThresholdLine.tsx +0 -64
  189. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +0 -77
  190. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +0 -60
  191. package/src/Graph/LineChart/Header/index.tsx +0 -65
  192. package/src/Graph/LineChart/Icons/Downtime.tsx +0 -9
  193. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  194. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  195. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  196. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -96
  197. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  198. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/models.ts +0 -62
  199. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  200. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  201. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  202. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  203. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +0 -81
  204. package/src/Graph/LineChart/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  205. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  206. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  207. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  208. package/src/Graph/LineChart/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  209. package/src/Graph/LineChart/InteractiveComponents/Annotations/index.tsx +0 -49
  210. package/src/Graph/LineChart/InteractiveComponents/Annotations/models.ts +0 -25
  211. package/src/Graph/LineChart/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  212. package/src/Graph/LineChart/InteractiveComponents/Bar.tsx +0 -21
  213. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  214. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  215. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  216. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  217. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  218. package/src/Graph/LineChart/InteractiveComponents/Tooltip/index.tsx +0 -59
  219. package/src/Graph/LineChart/InteractiveComponents/Tooltip/models.ts +0 -9
  220. package/src/Graph/LineChart/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  221. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  222. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/models.ts +0 -9
  223. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  224. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  225. package/src/Graph/LineChart/InteractiveComponents/index.tsx +0 -168
  226. package/src/Graph/LineChart/InteractiveComponents/interactionWithGraphAtoms.ts +0 -52
  227. package/src/Graph/LineChart/Legend/InteractiveValue.tsx +0 -22
  228. package/src/Graph/LineChart/Legend/Legend.styles.ts +0 -117
  229. package/src/Graph/LineChart/Legend/LegendContent.tsx +0 -33
  230. package/src/Graph/LineChart/Legend/LegendHeader.tsx +0 -93
  231. package/src/Graph/LineChart/Legend/index.tsx +0 -200
  232. package/src/Graph/LineChart/Legend/models.ts +0 -16
  233. package/src/Graph/LineChart/Legend/useInteractiveValues.ts +0 -99
  234. package/src/Graph/LineChart/Legend/useLegend.ts +0 -104
  235. package/src/Graph/LineChart/LineChart.styles.ts +0 -45
  236. package/src/Graph/LineChart/LineChart.tsx +0 -320
  237. package/src/Graph/LineChart/LoadingSkeleton.tsx +0 -44
  238. package/src/Graph/LineChart/common/index.ts +0 -35
  239. package/src/Graph/LineChart/graphAtoms.ts +0 -3
  240. package/src/Graph/LineChart/helpers/doc.ts +0 -560
  241. package/src/Graph/LineChart/helpers/index.ts +0 -63
  242. package/src/Graph/LineChart/index.stories.tsx +0 -478
  243. package/src/Graph/LineChart/index.tsx +0 -118
  244. package/src/Graph/LineChart/mockedData/annotationData.json +0 -326
  245. package/src/Graph/LineChart/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  246. package/src/Graph/LineChart/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  247. package/src/Graph/LineChart/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  248. package/src/Graph/LineChart/mockedData/lastDay.json +0 -1326
  249. package/src/Graph/LineChart/mockedData/lastDayAreaStack.json +0 -3106
  250. package/src/Graph/LineChart/mockedData/lastDayForward.json +0 -1338
  251. package/src/Graph/LineChart/mockedData/lastDayThreshold.json +0 -2352
  252. package/src/Graph/LineChart/mockedData/lastMonth.json +0 -1674
  253. package/src/Graph/LineChart/mockedData/lastWeek.json +0 -2202
  254. package/src/Graph/LineChart/mockedData/zoomPreview.json +0 -742
  255. package/src/Graph/LineChart/models.ts +0 -146
  256. package/src/Graph/LineChart/translatedLabels.ts +0 -9
  257. package/src/Graph/LineChart/useLineChartData.ts +0 -49
  258. package/src/Graph/LineChart/useLineChartIntersection.ts +0 -36
  259. package/src/Graph/SingleBar/ResponsiveSingleBar.tsx +0 -197
  260. package/src/Graph/SingleBar/SingleBar.stories.tsx +0 -204
  261. package/src/Graph/SingleBar/SingleBar.tsx +0 -25
  262. package/src/Graph/SingleBar/ThresholdLine.tsx +0 -103
  263. package/src/Graph/SingleBar/Thresholds.tsx +0 -50
  264. package/src/Graph/SingleBar/index.ts +0 -1
  265. package/src/Graph/SingleBar/models.ts +0 -10
  266. package/src/Graph/Text/Text.stories.tsx +0 -67
  267. package/src/Graph/Text/Text.styles.ts +0 -17
  268. package/src/Graph/Text/Text.tsx +0 -91
  269. package/src/Graph/Text/index.ts +0 -1
  270. package/src/Graph/common/margins.ts +0 -1
  271. package/src/Graph/common/models.ts +0 -19
  272. package/src/Graph/common/timeSeries/index.test.ts +0 -624
  273. package/src/Graph/common/timeSeries/index.ts +0 -626
  274. package/src/Graph/common/timeSeries/models.ts +0 -129
  275. package/src/Graph/common/utils.ts +0 -75
  276. package/src/Graph/index.ts +0 -5
  277. package/src/InputField/Number/Number.cypress.spec.tsx +0 -85
  278. package/src/InputField/Number/Number.stories.tsx +0 -66
  279. package/src/InputField/Number/Number.tsx +0 -74
  280. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -127
  281. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  282. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  283. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  284. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  285. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  286. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  287. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  288. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  289. package/src/Listing/Header/index.ts +0 -1
  290. package/src/Listing/Listing.cypress.spec.tsx +0 -122
  291. package/src/Listing/Listing.styles.ts +0 -81
  292. package/src/Listing/ListingDocs.mdx +0 -61
  293. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  294. package/src/Listing/Row/EmptyRow.tsx +0 -30
  295. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  296. package/src/ParentSize/ParentSize.tsx +0 -24
  297. package/src/ParentSize/index.ts +0 -1
  298. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -408
  299. package/src/RichTextEditor/plugins/ToolbarPlugin/AlignPicker.tsx +0 -116
  300. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +0 -155
  301. package/src/RichTextEditor/plugins/ToolbarPlugin/LinkButton.tsx +0 -106
  302. package/src/RichTextEditor/plugins/ToolbarPlugin/ListButton.tsx +0 -155
  303. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +0 -75
  304. package/src/RichTextEditor/plugins/ToolbarPlugin/ToolbarPlugin.styles.ts +0 -32
  305. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  306. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  307. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  308. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -166
  309. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  310. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -61
  311. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  312. package/src/TimePeriods/CustomTimePeriod/SimpleCustomTimePeriod.tsx +0 -28
  313. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  314. package/src/TimePeriods/DateTimePickerInput.tsx +0 -49
  315. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  316. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  317. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -510
  318. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  319. package/src/TimePeriods/helpers/index.ts +0 -26
  320. package/src/TimePeriods/index.stories.tsx +0 -113
  321. package/src/TimePeriods/index.tsx +0 -79
  322. package/src/TimePeriods/mockedData.ts +0 -12
  323. package/src/TimePeriods/models.ts +0 -97
  324. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  325. package/src/TimePeriods/translatedLabels.ts +0 -9
  326. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  327. package/src/TimePeriods/useTimePeriod.ts +0 -49
  328. package/src/Typography/EllipsisTypography.tsx +0 -18
  329. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  330. package/src/Typography/FluidTypography/index.tsx +0 -51
  331. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  332. package/src/Typography/Subtitle.tsx +0 -55
  333. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  334. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  335. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  336. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  337. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  338. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  339. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  340. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  341. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  342. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  343. package/src/api/useGraphQuery/index.ts +0 -187
  344. package/src/api/useGraphQuery/models.ts +0 -20
  345. package/src/base/tokens/README.md +0 -3
  346. package/src/base/tokens/source/$metadata.json +0 -5
  347. package/src/base/tokens/source/base.json +0 -142
  348. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  349. package/src/base/tokens/themes/base.tokens.json +0 -695
  350. package/src/base/tokens/themes/base.tokens.ts +0 -38
  351. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  352. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  353. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  354. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  355. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  356. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  357. package/src/components/Avatar/Avatar.stories.tsx +0 -23
  358. package/src/components/Avatar/Avatar.styles.ts +0 -11
  359. package/src/components/Avatar/Avatar.tsx +0 -32
  360. package/src/components/Avatar/index.ts +0 -1
  361. package/src/components/Button/Button.stories.tsx +0 -34
  362. package/src/components/Button/Button.styles.ts +0 -44
  363. package/src/components/Button/Button.tsx +0 -78
  364. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  365. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  366. package/src/components/Button/Icon/IconButton.tsx +0 -58
  367. package/src/components/Button/Icon/index.tsx +0 -1
  368. package/src/components/Button/index.ts +0 -2
  369. package/src/components/CollapsibleItem/CollapsibleItem.cypress.spec.tsx +0 -76
  370. package/src/components/CollapsibleItem/CollapsibleItem.stories.tsx +0 -51
  371. package/src/components/CollapsibleItem/CollapsibleItem.tsx +0 -76
  372. package/src/components/CollapsibleItem/index.ts +0 -1
  373. package/src/components/CollapsibleItem/useCollapsibleItemStyles.ts +0 -38
  374. package/src/components/DataTable/DataTable.stories.tsx +0 -51
  375. package/src/components/DataTable/DataTable.styles.ts +0 -27
  376. package/src/components/DataTable/DataTable.tsx +0 -35
  377. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  378. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  379. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  380. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  381. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -33
  382. package/src/components/DataTable/Item/DataTableItem.tsx +0 -123
  383. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  384. package/src/components/DataTable/index.ts +0 -10
  385. package/src/components/Form/AccessRights/AccessRights.cypress.spec.tsx +0 -373
  386. package/src/components/Form/AccessRights/AccessRights.stories.tsx +0 -119
  387. package/src/components/Form/AccessRights/AccessRights.styles.ts +0 -10
  388. package/src/components/Form/AccessRights/AccessRights.tsx +0 -60
  389. package/src/components/Form/AccessRights/Actions/Actions.styles.ts +0 -14
  390. package/src/components/Form/AccessRights/Actions/Actions.tsx +0 -81
  391. package/src/components/Form/AccessRights/Actions/useActions.ts +0 -79
  392. package/src/components/Form/AccessRights/List/Item.tsx +0 -90
  393. package/src/components/Form/AccessRights/List/List.styles.tsx +0 -45
  394. package/src/components/Form/AccessRights/List/List.tsx +0 -52
  395. package/src/components/Form/AccessRights/List/ListItemSkeleton.tsx +0 -18
  396. package/src/components/Form/AccessRights/List/ListSkeleton.tsx +0 -22
  397. package/src/components/Form/AccessRights/List/RemoveAccessRight.tsx +0 -38
  398. package/src/components/Form/AccessRights/List/StateChip.tsx +0 -28
  399. package/src/components/Form/AccessRights/List/useItem.ts +0 -64
  400. package/src/components/Form/AccessRights/Provider.tsx +0 -15
  401. package/src/components/Form/AccessRights/ShareInput/ContactSwitch.tsx +0 -50
  402. package/src/components/Form/AccessRights/ShareInput/ShareInput.styles.ts +0 -17
  403. package/src/components/Form/AccessRights/ShareInput/ShareInput.tsx +0 -77
  404. package/src/components/Form/AccessRights/ShareInput/useShareInput.tsx +0 -113
  405. package/src/components/Form/AccessRights/Stats/Stats.tsx +0 -36
  406. package/src/components/Form/AccessRights/atoms.ts +0 -97
  407. package/src/components/Form/AccessRights/common/RoleSelectField.styles.tsx +0 -7
  408. package/src/components/Form/AccessRights/common/RoleSelectField.tsx +0 -45
  409. package/src/components/Form/AccessRights/models.ts +0 -55
  410. package/src/components/Form/AccessRights/storiesData.ts +0 -222
  411. package/src/components/Form/AccessRights/useAccessRightsInitValues.ts +0 -51
  412. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -9
  413. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  414. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -21
  415. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -134
  416. package/src/components/Form/Dashboard/GlobalRefreshFieldOption.tsx +0 -59
  417. package/src/components/Form/Dashboard/index.ts +0 -2
  418. package/src/components/Form/Dashboard/translatedLabels.ts +0 -9
  419. package/src/components/Form/Form.models.ts +0 -1
  420. package/src/components/Form/Form.resource.ts +0 -1
  421. package/src/components/Form/Form.styles.ts +0 -17
  422. package/src/components/Form/FormActions.tsx +0 -57
  423. package/src/components/Form/index.ts +0 -4
  424. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -97
  425. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -126
  426. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  427. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  428. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  429. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  430. package/src/components/Header/PageHeader/PageHeaderMessage.tsx +0 -32
  431. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  432. package/src/components/Header/PageHeader/index.ts +0 -14
  433. package/src/components/Header/index.ts +0 -1
  434. package/src/components/Icon/Icon.styles.ts +0 -0
  435. package/src/components/Icon/Icon.tsx +0 -2
  436. package/src/components/Icon/index.ts +0 -0
  437. package/src/components/Inputs/Switch/Switch.stories.tsx +0 -22
  438. package/src/components/Inputs/Switch/Switch.styles.ts +0 -13
  439. package/src/components/Inputs/Switch/Switch.tsx +0 -18
  440. package/src/components/Inputs/index.ts +0 -1
  441. package/src/components/ItemComposition/Item.tsx +0 -41
  442. package/src/components/ItemComposition/ItemComposition.cypress.spec.tsx +0 -113
  443. package/src/components/ItemComposition/ItemComposition.stories.tsx +0 -92
  444. package/src/components/ItemComposition/ItemComposition.styles.ts +0 -62
  445. package/src/components/ItemComposition/ItemComposition.tsx +0 -71
  446. package/src/components/ItemComposition/index.ts +0 -6
  447. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  448. package/src/components/Layout/AreaIndicator.tsx +0 -35
  449. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  450. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -41
  451. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  452. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -24
  453. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  454. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  455. package/src/components/Layout/PageLayout/index.ts +0 -10
  456. package/src/components/Layout/index.ts +0 -1
  457. package/src/components/List/Item/Avatar.tsx +0 -21
  458. package/src/components/List/Item/AvatarSkeleton.tsx +0 -17
  459. package/src/components/List/Item/ListItem.stories.tsx +0 -41
  460. package/src/components/List/Item/ListItem.styles.ts +0 -63
  461. package/src/components/List/Item/ListItem.tsx +0 -34
  462. package/src/components/List/Item/Text.tsx +0 -27
  463. package/src/components/List/Item/TextSkeleton.tsx +0 -22
  464. package/src/components/List/Item/index.ts +0 -14
  465. package/src/components/List/List.stories.tsx +0 -70
  466. package/src/components/List/List.styles.ts +0 -8
  467. package/src/components/List/List.tsx +0 -19
  468. package/src/components/List/index.ts +0 -6
  469. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  470. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  471. package/src/components/Menu/Button/MenuButton.tsx +0 -67
  472. package/src/components/Menu/Button/index.ts +0 -1
  473. package/src/components/Menu/Menu.stories.tsx +0 -71
  474. package/src/components/Menu/Menu.styles.ts +0 -68
  475. package/src/components/Menu/Menu.tsx +0 -25
  476. package/src/components/Menu/MenuDivider.tsx +0 -13
  477. package/src/components/Menu/MenuItem.tsx +0 -38
  478. package/src/components/Menu/MenuItems.tsx +0 -36
  479. package/src/components/Menu/index.ts +0 -12
  480. package/src/components/Menu/useMenu.tsx +0 -79
  481. package/src/components/Modal/Modal.stories.tsx +0 -142
  482. package/src/components/Modal/Modal.styles.ts +0 -91
  483. package/src/components/Modal/Modal.tsx +0 -79
  484. package/src/components/Modal/ModalActions.tsx +0 -64
  485. package/src/components/Modal/ModalBody.tsx +0 -15
  486. package/src/components/Modal/ModalHeader.tsx +0 -21
  487. package/src/components/Modal/index.ts +0 -12
  488. package/src/components/README.md +0 -3
  489. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.stories.tsx +0 -62
  490. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.styles.tsx +0 -22
  491. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +0 -68
  492. package/src/components/Tooltip/ConfirmationTooltip/TooltipContent.tsx +0 -31
  493. package/src/components/Tooltip/ConfirmationTooltip/index.ts +0 -1
  494. package/src/components/Tooltip/ConfirmationTooltip/models.ts +0 -18
  495. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  496. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  497. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  498. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  499. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  500. package/src/components/Tooltip/Tooltip.tsx +0 -57
  501. package/src/components/Tooltip/index.ts +0 -2
  502. package/src/components/index.ts +0 -13
  503. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  504. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  505. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  506. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  507. package/src/utils/centreonBaseURL.ts +0 -4
  508. package/src/utils/docsURL.ts +0 -31
  509. package/src/utils/index.ts +0 -24
  510. package/src/utils/panelSize.ts +0 -15
  511. package/src/utils/sanitizedHTML.ts +0 -18
  512. package/src/utils/translatedLabel.ts +0 -2
  513. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  514. package/src/utils/useFullscreen/Fullscreen.cypress.spec.tsx +0 -132
  515. package/src/utils/useFullscreen/atoms.ts +0 -3
  516. package/src/utils/useFullscreen/index.ts +0 -2
  517. package/src/utils/useFullscreen/translatedLabels.ts +0 -1
  518. package/src/utils/useFullscreen/useFullscreen.ts +0 -73
  519. package/src/utils/useFullscreen/useFullscreenListener.ts +0 -59
  520. package/src/utils/useInfiniteScrollListing.ts +0 -121
  521. package/src/utils/useLicenseExpirationWarning.cypress.spec.tsx +0 -137
  522. package/src/utils/useLicenseExpirationWarning.ts +0 -52
  523. package/src/utils/useRefreshInterval.ts +0 -39
  524. package/src/utils/useResizeObserver.ts +0 -6
  525. package/src/utils/useThresholds.ts +0 -0
  526. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  527. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  528. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  529. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  530. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  531. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  532. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  533. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  534. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  535. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  536. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  537. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  538. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  539. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  540. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  541. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  542. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  543. /package/src/Typography/{story.utils.tsx → index.tsx} +0 -0
@@ -1,29 +1,19 @@
1
- import {
2
- Formik,
3
- FormikHelpers,
4
- FormikSharedConfig,
5
- FormikValues
6
- } from 'formik';
1
+ import { Formik, FormikHelpers, FormikValues } from 'formik';
7
2
  import * as Yup from 'yup';
8
3
 
9
4
  import FormButtons from './FormButtons';
10
5
  import Inputs from './Inputs';
11
6
  import { Group, InputProps } from './Inputs/models';
12
- import { useStyles } from './Form.styles';
13
7
 
14
8
  export enum GroupDirection {
15
9
  Horizontal = 'horizontal',
16
10
  Vertical = 'vertical'
17
11
  }
18
12
 
19
- export type FormProps<T> = {
13
+ interface Props<T> {
20
14
  Buttons?: React.ComponentType;
21
- areGroupsOpen?: boolean;
22
- children?: JSX.Element;
23
- className?: string;
24
15
  groupDirection?: GroupDirection;
25
16
  groups?: Array<Group>;
26
- groupsClassName?: string;
27
17
  initialValues: T;
28
18
  inputs: Array<InputProps>;
29
19
  isCollapsible?: boolean;
@@ -31,13 +21,9 @@ export type FormProps<T> = {
31
21
  submit: (values: T, bag: FormikHelpers<T>) => void | Promise<void>;
32
22
  validate?: (values: FormikValues) => void;
33
23
  validationSchema: Yup.SchemaOf<T>;
34
- } & Omit<FormikSharedConfig<T>, 'isInitialValid'>;
24
+ }
35
25
 
36
26
  const Form = <T extends object>({
37
- children,
38
- className,
39
- groupsClassName,
40
- areGroupsOpen,
41
27
  initialValues,
42
28
  validate,
43
29
  validationSchema,
@@ -47,18 +33,13 @@ const Form = <T extends object>({
47
33
  Buttons = FormButtons,
48
34
  isLoading = false,
49
35
  isCollapsible = false,
50
- groupDirection = GroupDirection.Vertical,
51
- ...formikSharedConfig
52
- }: FormProps<T>): JSX.Element => {
53
- const { cx, classes } = useStyles();
54
-
36
+ groupDirection = GroupDirection.Vertical
37
+ }: Props<T>): JSX.Element => {
55
38
  if (isLoading) {
56
39
  return (
57
40
  <Inputs
58
41
  isLoading
59
- areGroupsOpen={areGroupsOpen}
60
42
  groups={groups}
61
- groupsClassName={groupsClassName}
62
43
  inputs={inputs}
63
44
  isCollapsible={isCollapsible}
64
45
  />
@@ -67,28 +48,25 @@ const Form = <T extends object>({
67
48
 
68
49
  return (
69
50
  <Formik<T>
51
+ enableReinitialize
52
+ validateOnBlur
53
+ validateOnMount
70
54
  initialValues={initialValues}
71
55
  validate={validate}
72
56
  validationSchema={validationSchema}
73
57
  onSubmit={submit}
74
- {...formikSharedConfig}
75
58
  >
76
59
  <div>
77
- {children}
78
- <div className={cx(className, classes.form)}>
79
- <Inputs
80
- areGroupsOpen={areGroupsOpen}
81
- groupDirection={groupDirection}
82
- groups={groups}
83
- groupsClassName={groupsClassName}
84
- inputs={inputs}
85
- isCollapsible={isCollapsible}
86
- />
87
- <Buttons />
88
- </div>
60
+ <Inputs
61
+ groupDirection={groupDirection}
62
+ groups={groups}
63
+ inputs={inputs}
64
+ isCollapsible={isCollapsible}
65
+ />
66
+ <Buttons />
89
67
  </div>
90
68
  </Formik>
91
69
  );
92
70
  };
93
71
 
94
- export { Form };
72
+ export default Form;
@@ -4,7 +4,6 @@ import { equals, prop } from 'ramda';
4
4
 
5
5
  import { Typography } from '@mui/material';
6
6
  import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
7
- import MailIcon from '@mui/icons-material/MailOutline';
8
7
 
9
8
  import { SelectEntry } from '../InputField/Select';
10
9
  import { Listing } from '../api/models';
@@ -82,7 +81,9 @@ export const basicFormValidationSchema = Yup.object().shape({
82
81
  scopes: Yup.array().of(
83
82
  Yup.string().min(3, '3 characters min').required('Required')
84
83
  ),
85
- sports: Yup.array().of(selectEntryValidationSchema.required('Required'))
84
+ sports: Yup.array()
85
+ .of(selectEntryValidationSchema.required('Required'))
86
+ .min(2, 'Choose at least 2 sports')
86
87
  });
87
88
 
88
89
  const roleEntries: Array<SelectEntry> = [
@@ -114,11 +115,6 @@ export const basicFormInitialValues = {
114
115
  isForced: false,
115
116
  language: 'French',
116
117
  name: '',
117
- notifications: {
118
- channels: { Icon: MailIcon, checked: true, label: 'mail' },
119
- hostevents: ['ok', 'warning'],
120
- includeServices: { checked: true, label: 'Include services for this host' }
121
- },
122
118
  password: '',
123
119
  roleMapping: [
124
120
  {
@@ -161,10 +157,6 @@ export const basicFormGroups: Array<Group> = [
161
157
  TooltipContent: (): JSX.Element => <Typography>Tooltip content</Typography>,
162
158
  name: 'Second group',
163
159
  order: 2
164
- },
165
- {
166
- name: 'Third group',
167
- order: 3
168
160
  }
169
161
  ];
170
162
 
@@ -179,10 +171,6 @@ export const basicFormInputs: Array<InputProps> = [
179
171
  fieldName: 'email',
180
172
  group: 'First group',
181
173
  label: 'Email',
182
- text: {
183
- endAdornment: <MailIcon />,
184
- placeholder: 'Your email here'
185
- },
186
174
  type: InputType.Text
187
175
  },
188
176
  {
@@ -217,41 +205,6 @@ export const basicFormInputs: Array<InputProps> = [
217
205
  },
218
206
  type: InputType.Radio
219
207
  },
220
- {
221
- additionalLabel: 'Notifications',
222
- fieldName: '',
223
- grid: {
224
- alignItems: 'center',
225
- columns: [
226
- {
227
- checkbox: {
228
- direction: 'horizontal'
229
- },
230
- fieldName: 'notifications.channels',
231
- label: 'channels',
232
- type: InputType.Checkbox
233
- },
234
- {
235
- fieldName: 'notifications.includeServices',
236
- label: 'Iclude services',
237
- type: InputType.Checkbox
238
- },
239
- {
240
- checkbox: {
241
- direction: 'horizontal',
242
- labelPlacement: 'top',
243
- options: ['ok', 'warning', 'critical', 'unknown']
244
- },
245
- fieldName: 'notifications.hostevents',
246
- label: 'host events',
247
- type: InputType.CheckboxGroup
248
- }
249
- ]
250
- },
251
- group: 'Third group',
252
- label: 'Notifications',
253
- type: InputType.Grid
254
- },
255
208
  {
256
209
  fieldName: 'anotherText',
257
210
  group: 'First group',
@@ -1,6 +1,8 @@
1
1
  import { Meta } from '@storybook/addon-docs'
2
- import { Typography, Link, Stack } from '@mui/material'
2
+ import { Typography, Box, Paper, Accordion, AccordionSummary, AccordionDetails, Link, Stack } from '@mui/material'
3
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore'
3
4
 
5
+ import { MdxThemeProvider } from './StoryBookThemeProvider'
4
6
 
5
7
  <Meta title="Home" />
6
8
 
@@ -37,3 +39,84 @@ import { Typography, Link, Stack } from '@mui/material'
37
39
  <Typography>20.04</Typography>
38
40
  </Link>
39
41
  </Stack>
42
+ <br />
43
+
44
+ <Accordion>
45
+ <AccordionSummary
46
+ expandIcon={<ExpandMoreIcon />}
47
+ >
48
+ <Typography variant="h5">Add stories</Typography>
49
+ </AccordionSummary>
50
+ <AccordionDetails>
51
+ <ul>
52
+ <li><Typography>Create a file named `index.stories.tsx` along side your component</Typography></li>
53
+ <li>
54
+ <Typography>Add a title, the component and argTypes</Typography>
55
+ <Typography>Example: </Typography>
56
+
57
+ ```typescript
58
+ export default {
59
+ title: 'MyComponent',
60
+ Component: MyComponent,
61
+ argTypes: {
62
+ propA: { control: 'text' },
63
+ propB: { control: 'number' },
64
+ },
65
+ };
66
+ ```
67
+
68
+ </li>
69
+ <li>
70
+ <Typography>Create a playground for your component</Typography>
71
+
72
+ ```typescript
73
+ const Template: ComponentStory<typeof MyComponent> = (args) => (
74
+ <MyComponent {...args} />
75
+ );
76
+
77
+ export const Playground = Template.bind({});
78
+ ```
79
+
80
+ </li>
81
+ <li>
82
+ <Typography>Then add your story</Typography>
83
+
84
+ ```typescript
85
+ export const basic = Template.bind({});
86
+ basic.args = { propA: 'test', propB: 0 };
87
+ ```
88
+
89
+ </li>
90
+ </ul>
91
+ </AccordionDetails>
92
+ </Accordion>
93
+ <Accordion>
94
+ <AccordionSummary
95
+ expandIcon={<ExpandMoreIcon />}
96
+ >
97
+ <Typography variant="h5">Run tests</Typography>
98
+ </AccordionSummary>
99
+ <AccordionDetails>
100
+ <Typography>There are two kinds of tests in Centreon UI.</Typography>
101
+ <Typography>Jest + RTL: Component testing</Typography>
102
+ <Typography>Storyshots: When running them, storybook will capture a snapshot for each and compares them with the older ones</Typography>
103
+ <br />
104
+
105
+ <Typography>Run all the test (Jest + Storyshots)</Typography>
106
+ `pnpm build:storybook && pnpm t`
107
+ <br />
108
+
109
+ <Typography>Run storyshots following one or more story title</Typography>
110
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent"`
111
+ <Typography>Or</Typography>
112
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent|MyOtherComponent"`
113
+ <br />
114
+
115
+ <Typography>Update snapshots</Typography>
116
+ `pnpm build:storybook && pnpm t -- -u`
117
+ <Typography>Or</Typography>
118
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent" -u`
119
+ <Typography>Or</Typography>
120
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent|MyOtherComponent" -u`
121
+ </AccordionDetails>
122
+ </Accordion>
@@ -22,10 +22,6 @@ interface Props {
22
22
 
23
23
  const useStyles = makeStyles<Pick<Props, 'width' | 'height' | 'variant'>>()(
24
24
  (_, { width, height, variant }) => ({
25
- fallbackContainer: {
26
- height: '100%',
27
- width: '100%'
28
- },
29
25
  imageContent: {
30
26
  height,
31
27
  objectFit: variant,
@@ -45,20 +41,14 @@ const ImageContent = ({
45
41
  }: Props): JSX.Element => {
46
42
  const { classes, cx } = useStyles({ height, variant, width });
47
43
  const isImageLoaded = useLoadImage({ alt, imageSrc: imagePath });
48
-
49
44
  if (!isImageLoaded) {
50
- return (
51
- <div className={classes.fallbackContainer} data-testid={alt}>
52
- {fallback}
53
- </div>
54
- );
45
+ return fallback;
55
46
  }
56
47
 
57
48
  return (
58
49
  <img
59
50
  alt={alt}
60
51
  className={cx(classes.imageContent, className)}
61
- data-testid={alt}
62
52
  src={imagePath}
63
53
  />
64
54
  );
@@ -1,8 +1,8 @@
1
1
  import { ComponentStory } from '@storybook/react';
2
2
 
3
3
  import LoadingSkeleton from '../LoadingSkeleton';
4
- import CentreonLogoLight from '../@assets/brand/centreon-logo-one-line-light.svg';
5
- import NotAuthorized from '../@assets/images/not-authorized-template-background-light.svg';
4
+ import CentreonLogoLight from '../../assets/centreon-logo-one-line-light.svg';
5
+ import NotAuthorized from '../../assets/not-authorized-template-background-light.svg';
6
6
 
7
7
  import Image, { ImageVariant } from './Image';
8
8
 
@@ -1,12 +1,12 @@
1
1
  import { RenderResult, screen, waitFor } from '@testing-library/react';
2
2
  import { Provider } from 'jotai';
3
3
 
4
- import { render } from '../../test/testRenderer';
5
- import CentreonLogoLight from '../@assets/brand/centreon-logo-one-line-light.svg';
4
+ import { render } from '../testRenderer';
5
+ import CentreonLogoLight from '../../assets/centreon-logo-one-line-light.svg';
6
6
 
7
7
  import Image from './Image';
8
8
 
9
- jest.mock('../../@assets/centreon-logo-one-line-light.svg');
9
+ jest.mock('../../assets/centreon-logo-one-line-light.svg');
10
10
 
11
11
  const renderImage = (): RenderResult =>
12
12
  render(
@@ -10,15 +10,15 @@ import IconClose from '@mui/icons-material/HighlightOff';
10
10
  const useStyles = makeStyles()((theme) => ({
11
11
  buttonClose: {
12
12
  position: 'absolute',
13
- right: theme.spacing(-0.5),
14
- top: theme.spacing(-1)
13
+ right: theme.spacing(0.5)
15
14
  },
16
15
  tooltip: {
17
16
  backgroundColor: theme.palette.common.white,
18
17
  boxShadow: theme.shadows[3],
19
18
  color: theme.palette.text.primary,
20
19
  fontSize: theme.typography.pxToRem(12),
21
- maxWidth: 500
20
+ maxWidth: 500,
21
+ padding: theme.spacing(1, 2, 1, 1)
22
22
  }
23
23
  }));
24
24
 
@@ -59,7 +59,7 @@ const PersistentTooltip = ({
59
59
  };
60
60
 
61
61
  const title = (
62
- <div style={{ position: 'relative' }}>
62
+ <>
63
63
  <IconButton
64
64
  className={classes.buttonClose}
65
65
  size="small"
@@ -68,15 +68,11 @@ const PersistentTooltip = ({
68
68
  <IconClose fontSize="small" />
69
69
  </IconButton>
70
70
  {children}
71
- </div>
71
+ </>
72
72
  );
73
73
 
74
74
  return (
75
- <Tooltip
76
- classes={{ tooltip: classes.tooltip }}
77
- open={openTooltip || open}
78
- title={title}
79
- >
75
+ <Tooltip classes={{ tooltip: classes.tooltip }} open={open} title={title}>
80
76
  <IconButton
81
77
  aria-label={labelSearchHelp}
82
78
  size="small"
@@ -1,8 +1,8 @@
1
1
  import IconSearch from '@mui/icons-material/Search';
2
2
 
3
- import TextField, { TextProps } from '../Text';
3
+ import TextField, { Props as TextFieldProps } from '../Text';
4
4
 
5
- type Props = Omit<TextProps, 'StartAdornment'>;
5
+ type Props = Omit<TextFieldProps, 'StartAdornment'>;
6
6
 
7
7
  const SearchAdornment = (): JSX.Element => <IconSearch />;
8
8
 
@@ -6,18 +6,36 @@ import {
6
6
  RenderResult,
7
7
  resetMocks,
8
8
  waitFor
9
- } from '../../../../../../test/testRenderer';
9
+ } from '../../../../../testRenderer';
10
+ import { buildListingEndpoint } from '../../../../..';
10
11
  import TestQueryProvider from '../../../../../api/TestQueryProvider';
11
12
 
12
- import { baseEndpoint, getEndpoint, label, optionsData } from './utils';
13
-
14
13
  import MultiConnectedAutocompleteField from '.';
15
14
 
15
+ const baseEndpoint = 'endpoint';
16
+
17
+ const getEndpoint = (parameters): string => {
18
+ return buildListingEndpoint({ baseEndpoint, parameters });
19
+ };
20
+
21
+ const label = 'Multi Connected Autocomplete';
22
+
23
+ const optionsData = {
24
+ meta: {
25
+ limit: 2,
26
+ page: 1,
27
+ total: 20
28
+ },
29
+ result: [
30
+ { id: 0, name: 'My Option 1' },
31
+ { id: 1, name: 'My Option 2' }
32
+ ]
33
+ };
34
+
16
35
  const renderMultiAutocompleteField = (): RenderResult =>
17
36
  render(
18
37
  <TestQueryProvider>
19
38
  <MultiConnectedAutocompleteField
20
- baseEndpoint=""
21
39
  field="host.name"
22
40
  getEndpoint={getEndpoint}
23
41
  label={label}
@@ -1,3 +1,5 @@
1
+ import withMock from 'storybook-addon-mock';
2
+
1
3
  import { buildListingEndpoint } from '../../../..';
2
4
  import { SelectEntry } from '../..';
3
5
  import { Listing } from '../../../../api/models';
@@ -6,6 +8,7 @@ import SingleConnectedAutocompleteField from './Single';
6
8
  import MultiConnectedAutocompleteField from './Multi';
7
9
 
8
10
  export default {
11
+ decorators: [withMock],
9
12
  title: 'InputField/Autocomplete/Connected'
10
13
  };
11
14
 
@@ -7,7 +7,7 @@ import {
7
7
  resetMocks,
8
8
  mockResponse,
9
9
  getFetchCall
10
- } from '../../../../../test/testRenderer';
10
+ } from '../../../../testRenderer';
11
11
  import buildListingEndpoint from '../../../../api/buildListingEndpoint';
12
12
  import { ConditionsSearchParameter } from '../../../../api/buildListingEndpoint/models';
13
13
  import TestQueryProvider from '../../../../api/TestQueryProvider';
@@ -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}
@@ -96,7 +95,9 @@ describe(SingleConnectedAutocompleteField, () => {
96
95
 
97
96
  await waitFor(() => {
98
97
  expect(getFetchCall(2)).toEqual(
99
- `${baseEndpoint}?page=1&search=%7B%22%24and%22%3A%5B%7B%22%24or%22%3A%5B%7B%22host.name%22%3A%7B%22%24lk%22%3A%22%25My%20Option%202%25%22%7D%7D%5D%7D%5D%7D`
98
+ `${baseEndpoint}?page=1&search=${encodeURIComponent(
99
+ '{"$and":[{"host.name":{"$lk":"%My Option 2%"}}]}'
100
+ )}`
100
101
  );
101
102
  });
102
103
  });
@@ -117,7 +118,9 @@ describe(SingleConnectedAutocompleteField, () => {
117
118
 
118
119
  await waitFor(() => {
119
120
  expect(getFetchCall(0)).toEqual(
120
- `${baseEndpoint}?page=1&search=%7B%22%24and%22%3A%5B%7B%22%24or%22%3A%5B%7B%22parent_name%22%3A%7B%22%24eq%22%3A%22Centreon-Server%22%7D%7D%5D%7D%5D%7D`
121
+ `${baseEndpoint}?page=1&search=${encodeURIComponent(
122
+ '{"$and":[{"parent_name":{"$eq":"Centreon-Server"}}]}'
123
+ )}`
121
124
  );
122
125
  });
123
126
  });
@@ -10,30 +10,24 @@ import {
10
10
  pipe,
11
11
  not,
12
12
  has,
13
- omit,
14
- uniqBy
13
+ omit
15
14
  } from 'ramda';
16
15
 
17
16
  import { CircularProgress, useTheme } from '@mui/material';
18
17
 
19
18
  import { Props as AutocompleteFieldProps } from '..';
20
- import {
21
- useDebounce,
22
- useIntersectionObserver,
23
- useDeepCompare
24
- } from '../../../../utils';
19
+ import useIntersectionObserver from '../../../../utils/useIntersectionObserver';
25
20
  import { ListingModel, SelectEntry } from '../../../..';
26
21
  import Option from '../../Option';
27
22
  import {
28
23
  ConditionsSearchParameter,
29
24
  SearchParameter
30
25
  } from '../../../../api/buildListingEndpoint/models';
26
+ import useDebounce from '../../../../utils/useDebounce';
31
27
  import useFetchQuery from '../../../../api/useFetchQuery';
28
+ import { useDeepCompare } from '../../../../utils/useMemoComponent';
32
29
 
33
30
  export interface ConnectedAutoCompleteFieldProps<TData> {
34
- allowUniqOption?: boolean;
35
- baseEndpoint?: string;
36
- changeIdValue: (item: TData) => number | string;
37
31
  conditionField?: keyof SelectEntry;
38
32
  field: string;
39
33
  getEndpoint: ({ search, page }) => string;
@@ -41,7 +35,6 @@ export interface ConnectedAutoCompleteFieldProps<TData> {
41
35
  getRequestHeaders?: HeadersInit;
42
36
  initialPage: number;
43
37
  labelKey?: string;
44
- queryKey?: string;
45
38
  searchConditions?: Array<ConditionsSearchParameter>;
46
39
  }
47
40
 
@@ -60,10 +53,6 @@ const ConnectedAutocompleteField = (
60
53
  getRenderedOptionText = (option): string => option.name?.toString(),
61
54
  getRequestHeaders,
62
55
  displayOptionThumbnail,
63
- queryKey,
64
- allowUniqOption,
65
- baseEndpoint,
66
- changeIdValue,
67
56
  ...props
68
57
  }: ConnectedAutoCompleteFieldProps<TData> &
69
58
  Omit<AutocompleteFieldProps, 'options'>): JSX.Element => {
@@ -74,9 +63,6 @@ const ConnectedAutocompleteField = (
74
63
  const [searchParameter, setSearchParameter] = useState<
75
64
  SearchParameter | undefined
76
65
  >(undefined);
77
-
78
- const [autocompleteChangedValue, setAutocompleteChangedValue] =
79
- useState<Array<SelectEntry>>();
80
66
  const debounce = useDebounce({
81
67
  functionToDebounce: (value): void => {
82
68
  setSearchParameter(getSearchParameter(value));
@@ -91,7 +77,6 @@ const ConnectedAutocompleteField = (
91
77
  const { fetchQuery, isFetching, prefetchNextPage } = useFetchQuery<
92
78
  ListingModel<TData>
93
79
  >({
94
- baseEndpoint,
95
80
  fetchHeaders: getRequestHeaders,
96
81
  getEndpoint: (params) => {
97
82
  return getEndpoint({
@@ -99,16 +84,10 @@ const ConnectedAutocompleteField = (
99
84
  search: searchParameter
100
85
  });
101
86
  },
102
- getQueryKey: () => [
103
- `autocomplete-${queryKey || props.label}`,
104
- page,
105
- searchParameter
106
- ],
87
+ getQueryKey: () => [`autocomplete-${props.label}`, page, searchParameter],
107
88
  isPaginated: true,
108
89
  queryOptions: {
109
- cacheTime: 0,
110
90
  enabled: false,
111
- staleTime: 0,
112
91
  suspense: false
113
92
  }
114
93
  });
@@ -240,24 +219,17 @@ const ConnectedAutocompleteField = (
240
219
 
241
220
  const moreOptions = page > 1 ? options : [];
242
221
 
243
- const formattedList = changeIdValue
244
- ? newOptions.result.map((item) => ({
245
- ...item,
246
- id: changeIdValue(item)
247
- }))
248
- : newOptions.result;
249
-
250
222
  if (!isEmpty(labelKey) && !isNil(labelKey)) {
251
- const list = formattedList.map((item) =>
223
+ const list = newOptions.result.map((item) =>
252
224
  renameKey({ key: labelKey, newKey: 'name', object: item })
253
225
  );
254
226
  setOptions(moreOptions.concat(list as Array<TData>));
255
227
 
256
228
  return;
257
229
  }
258
- setOptions(moreOptions.concat(formattedList));
230
+ setOptions(moreOptions.concat(newOptions.result));
259
231
 
260
- setOptions(moreOptions.concat(formattedList as Array<TData>));
232
+ setOptions(moreOptions.concat(newOptions.result as Array<TData>));
261
233
 
262
234
  const total = prop('total', newOptions.meta) || 1;
263
235
  const limit = prop('limit', newOptions.meta) || 1;
@@ -300,13 +272,6 @@ const ConnectedAutocompleteField = (
300
272
  );
301
273
  }, useDeepCompare([searchConditions]));
302
274
 
303
- useEffect(() => {
304
- if (!autocompleteChangedValue && !props?.value) {
305
- return;
306
- }
307
- setSearchParameter(undefined);
308
- }, [autocompleteChangedValue, props?.value]);
309
-
310
275
  useEffect(() => {
311
276
  if (!optionsOpen) {
312
277
  return;
@@ -320,11 +285,8 @@ const ConnectedAutocompleteField = (
320
285
  filterOptions={(opt): SelectEntry => opt}
321
286
  loading={isFetching}
322
287
  open={optionsOpen}
323
- options={
324
- allowUniqOption ? uniqBy(getRenderedOptionText, options) : options
325
- }
288
+ options={options}
326
289
  renderOption={renderOptions}
327
- onChange={(_, value) => setAutocompleteChangedValue(value)}
328
290
  onClose={(): void => setOptionsOpen(false)}
329
291
  onOpen={(): void => setOptionsOpen(true)}
330
292
  onTextChange={changeText}
@@ -1,6 +1,7 @@
1
1
  import { useState } from 'react';
2
2
 
3
3
  import { isNil, not } from 'ramda';
4
+ import withMock from 'storybook-addon-mock';
4
5
 
5
6
  import { Tooltip, Typography } from '@mui/material';
6
7
 
@@ -14,6 +15,7 @@ import MultiDraggableAutocompleteField from './Multi';
14
15
  import { ItemActionProps } from '.';
15
16
 
16
17
  export default {
18
+ decorators: [withMock],
17
19
  title: 'InputField/Autocomplete/Draggable'
18
20
  };
19
21