@centreon/ui 23.10.121 → 24.4.1-0

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 (365) hide show
  1. package/package.json +59 -41
  2. package/public/mockServiceWorker.js +2 -2
  3. package/src/ActionsList/ActionsList.styles.ts +40 -71
  4. package/src/Button/Icon/index.stories.tsx +1 -1
  5. package/src/Button/Icon/index.tsx +2 -2
  6. package/src/Button/Save/StartIcon.tsx +3 -3
  7. package/src/Button/Save/index.tsx +9 -5
  8. package/src/Checkbox/Checkbox.tsx +2 -2
  9. package/src/Checkbox/CheckboxGroup/index.tsx +2 -2
  10. package/src/Checkbox/fonts/roboto-bold-webfont.ttf +0 -0
  11. package/src/Checkbox/fonts/roboto-bold-webfont.woff +0 -0
  12. package/src/Checkbox/fonts/roboto-bold-webfont.woff2 +0 -0
  13. package/src/Checkbox/fonts/roboto-light-webfont.ttf +0 -0
  14. package/src/Checkbox/fonts/roboto-light-webfont.woff +0 -0
  15. package/src/Checkbox/fonts/roboto-light-webfont.woff2 +0 -0
  16. package/src/Checkbox/fonts/roboto-medium-webfont.ttf +0 -0
  17. package/src/Checkbox/fonts/roboto-medium-webfont.woff +0 -0
  18. package/src/Checkbox/fonts/roboto-medium-webfont.woff2 +0 -0
  19. package/src/Checkbox/fonts/roboto-regular-webfont.ttf +0 -0
  20. package/src/Checkbox/fonts/roboto-regular-webfont.woff +0 -0
  21. package/src/Checkbox/fonts/roboto-regular-webfont.woff2 +0 -0
  22. package/src/Dashboard/Dashboard.styles.ts +6 -5
  23. package/src/Dashboard/Item.tsx +1 -1
  24. package/src/Dashboard/Layout.tsx +2 -2
  25. package/src/Dashboard/utils.ts +1 -1
  26. package/src/Dialog/Confirm/index.tsx +10 -2
  27. package/src/Dialog/UnsavedChanges/index.tsx +21 -20
  28. package/src/Dialog/UnsavedChanges/translatedLabels.ts +4 -6
  29. package/src/Dialog/index.tsx +9 -2
  30. package/src/FallbackPage/FallbackPage.tsx +3 -3
  31. package/src/FileDropZone/index.tsx +3 -1
  32. package/src/Form/Form.cypress.spec.tsx +133 -0
  33. package/src/Form/Inputs/Grid.tsx +8 -4
  34. package/src/Form/Inputs/List/Content.tsx +62 -0
  35. package/src/Form/Inputs/List/List.styles.ts +29 -0
  36. package/src/Form/Inputs/List/List.tsx +58 -0
  37. package/src/Form/Inputs/List/useList.ts +81 -0
  38. package/src/Form/Inputs/Text.tsx +3 -1
  39. package/src/Form/Inputs/index.tsx +3 -1
  40. package/src/Form/Inputs/models.ts +23 -13
  41. package/src/Graph/BarStack/BarStack.cypress.spec.tsx +139 -0
  42. package/src/Graph/BarStack/BarStack.stories.tsx +123 -0
  43. package/src/Graph/BarStack/BarStack.styles.ts +37 -0
  44. package/src/Graph/BarStack/BarStack.tsx +14 -0
  45. package/src/Graph/BarStack/ResponsiveBarStack.tsx +211 -0
  46. package/src/Graph/BarStack/index.ts +1 -0
  47. package/src/Graph/BarStack/models.ts +20 -0
  48. package/src/Graph/BarStack/useResponsiveBarStack.ts +131 -0
  49. package/src/Graph/Gauge/Gauge.cypress.spec.tsx +102 -0
  50. package/src/Graph/Gauge/Gauge.tsx +1 -1
  51. package/src/Graph/HeatMap/HeatMap.cypress.spec.tsx +145 -0
  52. package/src/Graph/HeatMap/HeatMap.stories.tsx +0 -25
  53. package/src/Graph/HeatMap/HeatMap.styles.tsx +1 -0
  54. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +20 -10
  55. package/src/Graph/HeatMap/model.ts +1 -0
  56. package/src/Graph/Legend/Legend.tsx +21 -0
  57. package/src/Graph/Legend/index.ts +1 -0
  58. package/src/Graph/Legend/models.ts +11 -0
  59. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/index.tsx +2 -1
  60. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/index.tsx +3 -4
  61. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +2 -2
  62. package/src/Graph/LineChart/BasicComponents/ThresholdLine.tsx +3 -1
  63. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +2 -2
  64. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +3 -5
  65. package/src/Graph/LineChart/Header/index.tsx +3 -31
  66. package/src/Graph/LineChart/Icons/Downtime.tsx +3 -3
  67. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +2 -2
  68. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTickGraph.ts +9 -11
  69. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +1 -1
  70. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/GraphValueTooltip.tsx +68 -0
  71. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/useGraphValueTooltip.ts +27 -0
  72. package/src/Graph/LineChart/InteractiveComponents/GraphValueTooltip/useGraphValueTooltipStyles.ts +31 -0
  73. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/index.tsx +2 -1
  74. package/src/Graph/LineChart/InteractiveComponents/index.tsx +132 -17
  75. package/src/Graph/LineChart/InteractiveComponents/interactionWithGraphAtoms.ts +7 -27
  76. package/src/Graph/LineChart/Legend/Legend.styles.ts +75 -33
  77. package/src/Graph/LineChart/Legend/LegendContent.tsx +12 -6
  78. package/src/Graph/LineChart/Legend/LegendHeader.tsx +66 -27
  79. package/src/Graph/LineChart/Legend/index.tsx +35 -45
  80. package/src/Graph/LineChart/Legend/models.ts +5 -0
  81. package/src/Graph/LineChart/Legend/useLegend.ts +12 -13
  82. package/src/Graph/LineChart/LineChart.cypress.spec.tsx +144 -0
  83. package/src/Graph/LineChart/LineChart.styles.ts +8 -0
  84. package/src/Graph/LineChart/LineChart.tsx +118 -117
  85. package/src/Graph/LineChart/LoadingSkeleton.tsx +2 -2
  86. package/src/Graph/LineChart/helpers/doc.ts +16 -13
  87. package/src/Graph/LineChart/helpers/index.ts +1 -1
  88. package/src/Graph/LineChart/index.stories.tsx +17 -2
  89. package/src/Graph/LineChart/index.tsx +6 -7
  90. package/src/Graph/LineChart/mockedData/curvesWithSameColor.json +252 -0
  91. package/src/Graph/LineChart/mockedData/lastDayWithIncompleteValues.json +1320 -0
  92. package/src/Graph/LineChart/mockedData/lastDayWithNullValues.json +1314 -0
  93. package/src/Graph/LineChart/models.ts +12 -1
  94. package/src/Graph/LineChart/useLineChartData.ts +57 -18
  95. package/src/Graph/PieChart/PieChart.cypress.spec.tsx +154 -0
  96. package/src/Graph/PieChart/PieChart.stories.tsx +194 -0
  97. package/src/Graph/PieChart/PieChart.styles.ts +39 -0
  98. package/src/Graph/PieChart/PieChart.tsx +14 -0
  99. package/src/Graph/PieChart/ResponsivePie.tsx +245 -0
  100. package/src/Graph/PieChart/index.ts +1 -0
  101. package/src/Graph/PieChart/models.ts +20 -0
  102. package/src/Graph/PieChart/useResponsivePie.ts +81 -0
  103. package/src/Graph/SingleBar/SingleBar.cypress.spec.tsx +121 -0
  104. package/src/Graph/SingleBar/Thresholds.tsx +2 -2
  105. package/src/Graph/Text/Text.cypress.spec.tsx +101 -0
  106. package/src/Graph/Text/Text.stories.tsx +60 -4
  107. package/src/Graph/Text/Text.styles.ts +12 -1
  108. package/src/Graph/Text/Text.tsx +17 -12
  109. package/src/Graph/Tree/DescendantNodes.tsx +88 -0
  110. package/src/Graph/Tree/Links.tsx +64 -0
  111. package/src/Graph/Tree/StandaloneTree.tsx +32 -0
  112. package/src/Graph/Tree/Tree.cypress.spec.tsx +171 -0
  113. package/src/Graph/Tree/Tree.stories.tsx +144 -0
  114. package/src/Graph/Tree/Tree.tsx +116 -0
  115. package/src/Graph/Tree/constants.ts +2 -0
  116. package/src/Graph/Tree/index.ts +4 -0
  117. package/src/Graph/Tree/models.ts +52 -0
  118. package/src/Graph/Tree/stories/contents.tsx +164 -0
  119. package/src/Graph/Tree/stories/datas.ts +305 -0
  120. package/src/Graph/Tree/utils.ts +49 -0
  121. package/src/Graph/common/testUtils.ts +71 -0
  122. package/src/Graph/common/timeSeries/index.ts +53 -15
  123. package/src/Graph/common/utils.ts +68 -1
  124. package/src/Graph/index.ts +4 -0
  125. package/src/Icon/BaseIcon.tsx +32 -0
  126. package/src/Icon/DowntimeIcon.tsx +14 -0
  127. package/src/InputField/Number/Number.cypress.spec.tsx +85 -0
  128. package/src/InputField/Number/Number.stories.tsx +66 -0
  129. package/src/InputField/Number/Number.tsx +74 -0
  130. package/src/InputField/Search/index.tsx +2 -2
  131. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +1 -0
  132. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +1 -0
  133. package/src/InputField/Select/Autocomplete/Connected/index.tsx +25 -10
  134. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  135. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
  136. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
  137. package/src/InputField/Select/Autocomplete/Multi/index.tsx +4 -2
  138. package/src/InputField/Select/Autocomplete/index.tsx +129 -116
  139. package/src/InputField/Select/IconPopover/index.tsx +3 -3
  140. package/src/InputField/Select/index.tsx +15 -2
  141. package/src/InputField/Text/index.tsx +46 -41
  142. package/src/Listing/ActionBar/index.tsx +11 -10
  143. package/src/Listing/Cell/DataCell.styles.ts +3 -0
  144. package/src/Listing/Cell/DataCell.tsx +23 -5
  145. package/src/Listing/Header/ListingHeader.tsx +1 -1
  146. package/src/Listing/Listing.cypress.spec.tsx +218 -33
  147. package/src/Listing/Listing.styles.ts +4 -7
  148. package/src/Listing/Row/Row.tsx +7 -3
  149. package/src/Listing/index.stories.tsx +39 -5
  150. package/src/Listing/index.test.tsx +1 -1
  151. package/src/Listing/index.tsx +207 -149
  152. package/src/Listing/models.ts +1 -0
  153. package/src/Listing/useStyleTable.ts +1 -0
  154. package/src/Module/LicensedModule/LicenseCheck/index.tsx +24 -9
  155. package/src/Module/LicensedModule/index.tsx +7 -1
  156. package/src/Module/Module.cypress.spec.tsx +129 -0
  157. package/src/Module/index.tsx +2 -4
  158. package/src/Panel/index.tsx +1 -1
  159. package/src/PopoverMenu/index.tsx +9 -8
  160. package/src/RichTextEditor/ContentEditable.tsx +195 -195
  161. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +100 -52
  162. package/src/RichTextEditor/RichTextEditor.tsx +21 -4
  163. package/src/RichTextEditor/plugins/ToolbarPlugin/AlignPicker.tsx +21 -20
  164. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +35 -77
  165. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +29 -83
  166. package/src/RichTextEditor/plugins/ToolbarPlugin/LinkButton.tsx +106 -0
  167. package/src/RichTextEditor/plugins/ToolbarPlugin/ListButton.tsx +155 -0
  168. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +23 -39
  169. package/src/RichTextEditor/plugins/ToolbarPlugin/ToolbarPlugin.styles.ts +24 -14
  170. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +6 -0
  171. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +5 -10
  172. package/src/RichTextEditor/translatedLabels.ts +3 -0
  173. package/src/SortableItems/index.tsx +2 -7
  174. package/src/StoryBookThemeProvider/index.tsx +35 -36
  175. package/src/ThemeProvider/index.tsx +39 -12
  176. package/src/ThemeProvider/palettes.ts +15 -12
  177. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +6 -7
  178. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +8 -3
  179. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -2
  180. package/src/TimePeriods/DateTimePickerInput.tsx +56 -19
  181. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +12 -9
  182. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +9 -33
  183. package/src/TimePeriods/helpers/index.ts +1 -1
  184. package/src/TimePeriods/index.stories.tsx +12 -4
  185. package/src/TimePeriods/index.tsx +2 -2
  186. package/src/TopCounterElements/TopCounterLayout.tsx +3 -0
  187. package/src/TopCounterElements/useCloseOnLegacyPage.tsx +42 -0
  188. package/src/Typography/FluidTypography/FluidTypography.cypress.spec.tsx +27 -0
  189. package/src/Typography/FluidTypography/index.stories.tsx +2 -2
  190. package/src/Typography/FluidTypography/index.tsx +21 -28
  191. package/src/Typography/Subtitle.tsx +55 -0
  192. package/src/api/QueryProvider.tsx +1 -1
  193. package/src/api/TestQueryProvider.tsx +1 -1
  194. package/src/api/buildListingEndpoint/models.ts +2 -1
  195. package/src/api/customFetch.ts +12 -3
  196. package/src/api/index.ts +3 -3
  197. package/src/api/useFetchQuery/index.ts +49 -28
  198. package/src/api/useGraphQuery/index.ts +26 -5
  199. package/src/api/useGraphQuery/models.ts +5 -0
  200. package/src/api/useMutationQuery/index.test.ts +4 -4
  201. package/src/api/useMutationQuery/index.ts +65 -20
  202. package/src/components/Button/Icon/IconButton.tsx +6 -2
  203. package/src/components/CollapsibleItem/CollapsibleItem.cypress.spec.tsx +76 -0
  204. package/src/components/CollapsibleItem/CollapsibleItem.stories.tsx +26 -0
  205. package/src/components/CollapsibleItem/CollapsibleItem.tsx +43 -14
  206. package/src/components/CollapsibleItem/useCollapsibleItemStyles.ts +24 -1
  207. package/src/components/DataTable/DataListing.tsx +6 -0
  208. package/src/components/DataTable/DataTable.cypress.spec.tsx +174 -0
  209. package/src/components/DataTable/DataTable.stories.tsx +40 -0
  210. package/src/components/DataTable/DataTable.styles.ts +3 -0
  211. package/src/components/DataTable/DataTable.tsx +3 -3
  212. package/src/components/DataTable/Item/DataTableItem.styles.ts +7 -2
  213. package/src/components/DataTable/Item/DataTableItem.tsx +4 -60
  214. package/src/components/DataTable/index.ts +3 -1
  215. package/src/components/Form/AccessRights/AccessRights.cypress.spec.tsx +373 -0
  216. package/src/components/Form/AccessRights/AccessRights.stories.tsx +119 -0
  217. package/src/components/Form/AccessRights/AccessRights.styles.ts +10 -0
  218. package/src/components/Form/AccessRights/AccessRights.tsx +60 -0
  219. package/src/components/Form/AccessRights/Actions/Actions.styles.ts +14 -0
  220. package/src/components/Form/AccessRights/Actions/Actions.tsx +81 -0
  221. package/src/components/Form/AccessRights/Actions/useActions.ts +79 -0
  222. package/src/components/Form/AccessRights/List/Item.tsx +90 -0
  223. package/src/components/Form/AccessRights/List/List.styles.tsx +45 -0
  224. package/src/components/Form/AccessRights/List/List.tsx +52 -0
  225. package/src/components/Form/AccessRights/List/ListItemSkeleton.tsx +18 -0
  226. package/src/components/Form/AccessRights/List/ListSkeleton.tsx +22 -0
  227. package/src/components/Form/AccessRights/List/RemoveAccessRight.tsx +38 -0
  228. package/src/components/Form/AccessRights/List/StateChip.tsx +28 -0
  229. package/src/components/Form/AccessRights/List/useItem.ts +64 -0
  230. package/src/components/Form/AccessRights/Provider.tsx +15 -0
  231. package/src/components/Form/AccessRights/ShareInput/ContactSwitch.tsx +50 -0
  232. package/src/components/Form/AccessRights/ShareInput/ShareInput.styles.ts +17 -0
  233. package/src/components/Form/AccessRights/ShareInput/ShareInput.tsx +78 -0
  234. package/src/components/Form/AccessRights/ShareInput/useShareInput.tsx +113 -0
  235. package/src/components/Form/AccessRights/Stats/Stats.tsx +36 -0
  236. package/src/components/Form/AccessRights/atoms.ts +97 -0
  237. package/src/components/Form/AccessRights/common/RoleSelectField.styles.tsx +7 -0
  238. package/src/components/Form/AccessRights/common/RoleSelectField.tsx +45 -0
  239. package/src/components/Form/AccessRights/models.ts +55 -0
  240. package/src/components/Form/AccessRights/storiesData.ts +222 -0
  241. package/src/components/Form/AccessRights/useAccessRightsInitValues.ts +51 -0
  242. package/src/components/Form/Dashboard/DashboardDuplicationForm.tsx +85 -0
  243. package/src/components/Form/Dashboard/DashboardForm.tsx +15 -12
  244. package/src/components/Form/Dashboard/index.ts +1 -0
  245. package/src/components/Form/FormActions.tsx +7 -2
  246. package/src/components/Form/index.ts +2 -1
  247. package/src/components/ItemComposition/Item.tsx +1 -1
  248. package/src/components/ItemComposition/ItemComposition.cypress.spec.tsx +113 -0
  249. package/src/components/ItemComposition/ItemComposition.stories.tsx +14 -0
  250. package/src/components/ItemComposition/ItemComposition.styles.ts +36 -3
  251. package/src/components/ItemComposition/ItemComposition.tsx +41 -17
  252. package/src/components/Layout/PageLayout/PageLayout.tsx +1 -1
  253. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +1 -0
  254. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +1 -0
  255. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +5 -1
  256. package/src/components/Layout/PageLayout/PageQuickAccess.tsx +76 -0
  257. package/src/components/Layout/PageLayout/index.ts +3 -1
  258. package/src/components/Layout/PageLayout.cypress.spec.tsx +66 -0
  259. package/src/components/List/Item/ListItem.styles.ts +6 -0
  260. package/src/components/List/Item/ListItem.tsx +6 -4
  261. package/src/components/List/Item/Text.tsx +5 -3
  262. package/src/components/Menu/Button/MenuButton.tsx +4 -2
  263. package/src/components/Menu/MenuItem.tsx +5 -3
  264. package/src/components/Menu/MenuItems.tsx +4 -3
  265. package/src/components/Modal/ConfirmationModal/ConfirmationModal.cypress.spec.tsx +168 -0
  266. package/src/components/Modal/ConfirmationModal/ConfirmationModal.stories.tsx +62 -0
  267. package/src/components/Modal/ConfirmationModal/ConfirmationModal.tsx +87 -0
  268. package/src/components/Modal/Modal.styles.ts +10 -2
  269. package/src/components/Modal/ModalActions.tsx +4 -2
  270. package/src/components/Modal/index.ts +2 -0
  271. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.stories.tsx +3 -3
  272. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +1 -1
  273. package/src/components/Tooltip/ConfirmationTooltip/models.ts +1 -1
  274. package/src/components/Zoom/Minimap.tsx +127 -0
  275. package/src/components/Zoom/Zoom.cypress.spec.tsx +246 -0
  276. package/src/components/Zoom/Zoom.stories.tsx +115 -0
  277. package/src/components/Zoom/Zoom.styles.tsx +68 -0
  278. package/src/components/Zoom/Zoom.tsx +61 -0
  279. package/src/components/Zoom/ZoomContent.tsx +167 -0
  280. package/src/components/Zoom/constants.ts +2 -0
  281. package/src/components/Zoom/localPoint.ts +51 -0
  282. package/src/components/Zoom/models.ts +25 -0
  283. package/src/components/Zoom/useMinimap.ts +156 -0
  284. package/src/components/Zoom/useZoom.ts +70 -0
  285. package/src/components/Zoom/utils.ts +55 -0
  286. package/src/components/index.ts +1 -0
  287. package/src/fonts/roboto-bold-webfont.ttf +0 -0
  288. package/src/fonts/roboto-bold-webfont.woff +0 -0
  289. package/src/fonts/roboto-bold-webfont.woff2 +0 -0
  290. package/src/fonts/roboto-light-webfont.ttf +0 -0
  291. package/src/fonts/roboto-light-webfont.woff +0 -0
  292. package/src/fonts/roboto-light-webfont.woff2 +0 -0
  293. package/src/fonts/roboto-medium-webfont.ttf +0 -0
  294. package/src/fonts/roboto-medium-webfont.woff +0 -0
  295. package/src/fonts/roboto-medium-webfont.woff2 +0 -0
  296. package/src/fonts/roboto-regular-webfont.ttf +0 -0
  297. package/src/fonts/roboto-regular-webfont.woff +0 -0
  298. package/src/fonts/roboto-regular-webfont.woff2 +0 -0
  299. package/src/index.ts +6 -0
  300. package/src/queryParameters/url/index.ts +5 -1
  301. package/src/utils/index.ts +3 -1
  302. package/src/utils/useFullscreen/Fullscreen.cypress.spec.tsx +130 -0
  303. package/src/utils/useFullscreen/atoms.ts +3 -0
  304. package/src/utils/useFullscreen/index.ts +2 -0
  305. package/src/utils/useFullscreen/translatedLabels.ts +1 -0
  306. package/src/utils/useFullscreen/useFullscreen.ts +73 -0
  307. package/src/utils/useFullscreen/useFullscreenListener.ts +62 -0
  308. package/src/utils/useInfiniteScrollListing.ts +31 -8
  309. package/src/utils/{useLicenseExpirationWarning.cypress.spec.tsx → useLicenseExpirationWarning.test.tsx} +48 -37
  310. package/src/utils/useLicenseExpirationWarning.ts +18 -18
  311. package/src/utils/useLocaleDateTimeFormat/index.ts +3 -0
  312. package/src/utils/usePluralizedTranslation.ts +21 -0
  313. package/src/@assets/icons/downtime.icon.svg +0 -1
  314. package/src/Graph/LineChart/BasicComponents/LoadingProgress.tsx +0 -46
  315. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -96
  316. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  317. package/src/Graph/LineChart/Legend/InteractiveValue.tsx +0 -22
  318. package/src/Graph/LineChart/Legend/Marker.tsx +0 -43
  319. package/src/Graph/LineChart/Legend/useInteractiveValues.ts +0 -99
  320. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  321. package/src/components/Form/AccessRights/AccessRights.resource.ts +0 -45
  322. package/src/components/Form/AccessRights/AccessRightsForm.stories.tsx +0 -59
  323. package/src/components/Form/AccessRights/AccessRightsForm.styles.ts +0 -21
  324. package/src/components/Form/AccessRights/AccessRightsForm.tsx +0 -67
  325. package/src/components/Form/AccessRights/AccessRightsFormActions.tsx +0 -80
  326. package/src/components/Form/AccessRights/Input/AddAction.tsx +0 -31
  327. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.stories.tsx +0 -54
  328. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.tsx +0 -72
  329. package/src/components/Form/AccessRights/Input/ContactAccessRightsInput.styles.ts +0 -22
  330. package/src/components/Form/AccessRights/Input/ContactInputField.tsx +0 -105
  331. package/src/components/Form/AccessRights/Input/RoleInputField.tsx +0 -29
  332. package/src/components/Form/AccessRights/List/ContactAccessRightsList.stories.tsx +0 -97
  333. package/src/components/Form/AccessRights/List/ContactAccessRightsList.styles.ts +0 -71
  334. package/src/components/Form/AccessRights/List/ContactAccessRightsList.tsx +0 -51
  335. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.stories.tsx +0 -116
  336. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.tsx +0 -118
  337. package/src/components/Form/AccessRights/List/ContactAccessRightsListItemSkeleton.tsx +0 -26
  338. package/src/components/Form/AccessRights/List/ContactAccessRightsListSkeleton.tsx +0 -28
  339. package/src/components/Form/AccessRights/Stats/AccessRightsStats.styles.ts +0 -18
  340. package/src/components/Form/AccessRights/Stats/AccessRightsStats.tsx +0 -41
  341. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -52
  342. package/src/components/Form/AccessRights/common/GroupLabel.styles.ts +0 -18
  343. package/src/components/Form/AccessRights/common/GroupLabel.tsx +0 -15
  344. package/src/components/Form/AccessRights/common/Input.styles.ts +0 -48
  345. package/src/components/Form/AccessRights/common/RoleInputSelect.styles.ts +0 -11
  346. package/src/components/Form/AccessRights/common/RoleInputSelect.tsx +0 -57
  347. package/src/components/Form/AccessRights/index.ts +0 -3
  348. package/src/components/Form/AccessRights/useAccessRightsForm.test.tsx +0 -531
  349. package/src/components/Form/AccessRights/useAccessRightsForm.tsx +0 -282
  350. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +0 -41
  351. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  352. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  353. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  354. /package/{public → src/Button}/fonts/roboto-bold-webfont.ttf +0 -0
  355. /package/{public → src/Button}/fonts/roboto-bold-webfont.woff +0 -0
  356. /package/{public → src/Button}/fonts/roboto-bold-webfont.woff2 +0 -0
  357. /package/{public → src/Button}/fonts/roboto-light-webfont.ttf +0 -0
  358. /package/{public → src/Button}/fonts/roboto-light-webfont.woff +0 -0
  359. /package/{public → src/Button}/fonts/roboto-light-webfont.woff2 +0 -0
  360. /package/{public → src/Button}/fonts/roboto-medium-webfont.ttf +0 -0
  361. /package/{public → src/Button}/fonts/roboto-medium-webfont.woff +0 -0
  362. /package/{public → src/Button}/fonts/roboto-medium-webfont.woff2 +0 -0
  363. /package/{public → src/Button}/fonts/roboto-regular-webfont.ttf +0 -0
  364. /package/{public → src/Button}/fonts/roboto-regular-webfont.woff +0 -0
  365. /package/{public → src/Button}/fonts/roboto-regular-webfont.woff2 +0 -0
@@ -1,36 +1,35 @@
1
- import * as React from 'react';
2
- import { useMemo } from 'react';
3
-
4
- import {
5
- ThemeProvider as MuiThemeProvider,
6
- StyledEngineProvider,
7
- createTheme,
8
- CssBaseline
9
- } from '@mui/material';
10
-
11
- import { ThemeMode } from '@centreon/ui-context';
12
-
13
- import { getTheme } from '../ThemeProvider';
14
-
15
- interface Props {
16
- children: React.ReactElement;
17
- themeMode: ThemeMode;
18
- }
19
-
20
- const StoryBookThemeProvider = ({
21
- children,
22
- themeMode
23
- }: Props): JSX.Element => {
24
- const theme = useMemo(() => createTheme(getTheme(themeMode)), [themeMode]);
25
-
26
- return (
27
- <StyledEngineProvider injectFirst>
28
- <MuiThemeProvider theme={theme}>
29
- {children}
30
- <CssBaseline />
31
- </MuiThemeProvider>
32
- </StyledEngineProvider>
33
- );
34
- };
35
-
36
- export default StoryBookThemeProvider;
1
+ import { useMemo } from 'react';
2
+
3
+ import {
4
+ CssBaseline,
5
+ ThemeProvider as MuiThemeProvider,
6
+ StyledEngineProvider,
7
+ createTheme
8
+ } from '@mui/material';
9
+
10
+ import { ThemeMode } from '@centreon/ui-context';
11
+
12
+ import { getTheme } from '../ThemeProvider';
13
+
14
+ interface Props {
15
+ children: React.ReactElement;
16
+ themeMode: ThemeMode;
17
+ }
18
+
19
+ const StoryBookThemeProvider = ({
20
+ children,
21
+ themeMode
22
+ }: Props): JSX.Element => {
23
+ const theme = useMemo(() => createTheme(getTheme(themeMode)), [themeMode]);
24
+
25
+ return (
26
+ <StyledEngineProvider injectFirst>
27
+ <MuiThemeProvider theme={theme}>
28
+ {children}
29
+ <CssBaseline />
30
+ </MuiThemeProvider>
31
+ </StyledEngineProvider>
32
+ );
33
+ };
34
+
35
+ export default StoryBookThemeProvider;
@@ -1,31 +1,31 @@
1
- import * as React from 'react';
1
+ import { ReactNode, useMemo } from 'react';
2
2
 
3
3
  import { useAtomValue } from 'jotai';
4
- import { CSSInterpolation } from 'tss-react';
5
4
  import { equals } from 'ramda';
5
+ import { CSSInterpolation } from 'tss-react';
6
6
 
7
7
  import {
8
8
  ButtonProps,
9
- createTheme,
10
9
  InputBaseProps,
10
+ ThemeProvider as MuiThemeProvider,
11
11
  StyledEngineProvider,
12
12
  Theme,
13
- ThemeProvider as MuiThemeProvider
13
+ createTheme
14
14
  } from '@mui/material';
15
- import CssBaseline from '@mui/material/CssBaseline';
16
15
  import { autocompleteClasses } from '@mui/material/Autocomplete';
16
+ import CssBaseline from '@mui/material/CssBaseline';
17
17
  import { ThemeOptions } from '@mui/material/styles/createTheme';
18
18
 
19
19
  import { ThemeMode, userAtom } from '@centreon/ui-context';
20
- import RobotoLightWoff2 from '@centreon/ui/fonts/roboto-light-webfont.woff2';
21
- import RobotoRegularWoff2 from '@centreon/ui/fonts/roboto-regular-webfont.woff2';
22
- import RobotoMediumWoff2 from '@centreon/ui/fonts/roboto-medium-webfont.woff2';
23
- import RobotoBoldWoff2 from '@centreon/ui/fonts/roboto-bold-webfont.woff2';
20
+
21
+ import RobotoBoldWoff2 from '../fonts/roboto-bold-webfont.woff2';
22
+ import RobotoLightWoff2 from '../fonts/roboto-light-webfont.woff2';
23
+ import RobotoMediumWoff2 from '../fonts/roboto-medium-webfont.woff2';
24
+ import RobotoRegularWoff2 from '../fonts/roboto-regular-webfont.woff2';
24
25
 
25
26
  import { getPalette } from './palettes';
26
27
 
27
28
  declare module '@mui/styles/defaultTheme' {
28
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
29
29
  interface DefaultTheme extends Theme {}
30
30
  }
31
31
 
@@ -147,6 +147,30 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
147
147
  },
148
148
  MuiCssBaseline: {
149
149
  styleOverrides: (theme) => `
150
+ ::-webkit-scrollbar {
151
+ height: ${theme.spacing(1)};
152
+ width: ${theme.spacing(1)};
153
+ background-color: transparent;
154
+ }
155
+ ::-webkit-scrollbar-thumb {
156
+ background-color: ${
157
+ equals(mode, 'dark')
158
+ ? theme.palette.divider
159
+ : theme.palette.text.disabled
160
+ };
161
+ border-radius: ${theme.spacing(0.5)};
162
+ }
163
+ ::-webkit-scrollbar-thumb:hover {
164
+ background-color: ${theme.palette.primary.main};
165
+ }
166
+ * {
167
+ scrollbar-color: ${
168
+ equals(mode, 'dark')
169
+ ? theme.palette.divider
170
+ : theme.palette.text.disabled
171
+ } ${theme.palette.background.default};
172
+ scrollbar-width: thin;
173
+ }
150
174
  html {
151
175
  margin: 0;
152
176
  padding: 0;
@@ -160,6 +184,9 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
160
184
  padding: 0;
161
185
  width: 100%;
162
186
  }
187
+ #root {
188
+ background-color: ${theme.palette.background.paper};
189
+ }
163
190
  @font-face {
164
191
  font-family: 'Roboto';
165
192
  font-style: normal;
@@ -266,13 +293,13 @@ export const getTheme = (mode: ThemeMode): ThemeOptions => ({
266
293
  });
267
294
 
268
295
  interface Props {
269
- children: React.ReactNode;
296
+ children: ReactNode;
270
297
  }
271
298
 
272
299
  const ThemeProvider = ({ children }: Props): JSX.Element => {
273
300
  const { themeMode } = useAtomValue(userAtom);
274
301
 
275
- const theme = React.useMemo(
302
+ const theme = useMemo(
276
303
  () => createTheme(getTheme(themeMode || ThemeMode.light)),
277
304
  [themeMode]
278
305
  );
@@ -1,6 +1,9 @@
1
1
  import { equals } from 'ramda';
2
2
 
3
- import { alpha, PaletteOptions } from '@mui/material';
3
+ import {
4
+ type PaletteOptions as PaletteOptionsModel,
5
+ alpha
6
+ } from '@mui/material';
4
7
 
5
8
  import { ThemeMode } from '@centreon/ui-context';
6
9
 
@@ -140,10 +143,10 @@ declare module '@mui/material/Badge' {
140
143
  }
141
144
  }
142
145
 
143
- export const lightPalette: PaletteOptions = {
146
+ export const lightPalette: PaletteOptionsModel = {
144
147
  action: {
145
- acknowledged: '#67532C',
146
- acknowledgedBackground: '#F5F1E9',
148
+ acknowledged: '#745F35',
149
+ acknowledgedBackground: '#DFD2B9',
147
150
  activatedOpacity: 0.12,
148
151
  active: '#666666',
149
152
  disabled: '#999999',
@@ -152,8 +155,8 @@ export const lightPalette: PaletteOptions = {
152
155
  focusOpacity: 0.12,
153
156
  hover: 'rgba(0, 0, 0, 0.06)',
154
157
  hoverOpacity: 0.06,
155
- inDowntime: '#4B2352',
156
- inDowntimeBackground: '#F0E9F8',
158
+ inDowntime: '#512980',
159
+ inDowntimeBackground: '#E5D8F3',
157
160
  selected: 'rgba(102, 102, 102, 0.3)',
158
161
  selectedOpacity: 0.3
159
162
  },
@@ -280,10 +283,10 @@ export const lightPalette: PaletteOptions = {
280
283
  }
281
284
  };
282
285
 
283
- export const darkPalette: PaletteOptions = {
286
+ export const darkPalette: PaletteOptionsModel = {
284
287
  action: {
285
- acknowledged: '#67532C',
286
- acknowledgedBackground: '#67532C',
288
+ acknowledged: '#DFD2B9',
289
+ acknowledgedBackground: '#745F35',
287
290
  activatedOpacity: 0.3,
288
291
  active: '#B5B5B5',
289
292
  disabled: '#999999',
@@ -292,8 +295,8 @@ export const darkPalette: PaletteOptions = {
292
295
  focusOpacity: 0.3,
293
296
  hover: 'rgba(255, 255, 255, 0.16)',
294
297
  hoverOpacity: 0.16,
295
- inDowntime: '#4B2352',
296
- inDowntimeBackground: '#4B2352',
298
+ inDowntime: '#E5D8F3',
299
+ inDowntimeBackground: '#512980',
297
300
  selected: 'rgba(255, 255, 255, 0.5)',
298
301
  selectedOpacity: 0.5
299
302
  },
@@ -418,5 +421,5 @@ export const darkPalette: PaletteOptions = {
418
421
  }
419
422
  };
420
423
 
421
- export const getPalette = (mode: ThemeMode): PaletteOptions =>
424
+ export const getPalette = (mode: ThemeMode): PaletteOptionsModel =>
422
425
  equals(mode, ThemeMode.dark) ? darkPalette : lightPalette;
@@ -12,22 +12,21 @@ const useStyles = makeStyles()((theme) => ({
12
12
  },
13
13
  containerDates: {
14
14
  display: 'flex',
15
- gap: theme.spacing(0.5),
16
15
  [theme.breakpoints.down('sm')]: {
17
- columnGap: theme.spacing(0.5),
18
- flexDirection: 'column'
16
+ flexDirection: 'column',
17
+ gap: theme.spacing(0.5)
19
18
  }
20
19
  },
21
20
  date: {
22
- minWidth: theme.spacing(12.5),
21
+ minWidth: theme.spacing(12),
23
22
  textAlign: 'start'
24
23
  },
25
24
  error: {
26
25
  textAlign: 'center'
27
26
  },
28
27
  label: {
29
- minWidth: theme.spacing(3),
30
- textAlign: 'start'
28
+ minWidth: theme.spacing(3.5),
29
+ textAlign: 'end'
31
30
  },
32
31
 
33
32
  picker: {
@@ -39,7 +38,7 @@ const useStyles = makeStyles()((theme) => ({
39
38
  },
40
39
  timeContainer: {
41
40
  alignItems: 'center',
42
- columnGap: theme.spacing(1),
41
+ columnGap: theme.spacing(0.5),
43
42
  display: 'flex',
44
43
  flexDirection: 'row',
45
44
  [theme.breakpoints.down('sm')]: {
@@ -2,12 +2,15 @@ import { useAtomValue } from 'jotai';
2
2
  import { makeStyles } from 'tss-react/mui';
3
3
  import { equals } from 'ramda';
4
4
  import { useTranslation } from 'react-i18next';
5
+ import dayjs from 'dayjs';
6
+ import utc from 'dayjs/plugin/utc';
7
+ import timezone from 'dayjs/plugin/timezone';
5
8
 
9
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
6
10
  import { Typography } from '@mui/material';
7
11
  import { LocalizationProvider } from '@mui/x-date-pickers';
8
12
 
9
13
  import { userAtom } from '@centreon/ui-context';
10
- import { useDateTimePickerAdapter } from '@centreon/ui';
11
14
 
12
15
  import DateTimePickerInput from '../../DateTimePickerInput';
13
16
  import {
@@ -20,6 +23,9 @@ import ErrorText from './ErrorText';
20
23
  import { PickersData, PickersStartEndDateDirection } from './models';
21
24
  import { PickersStartEndDateModel } from './usePickersStartEndDate';
22
25
 
26
+ dayjs.extend(utc);
27
+ dayjs.extend(timezone);
28
+
23
29
  const useStyles = makeStyles()((theme) => ({
24
30
  error: {
25
31
  textAlign: 'center'
@@ -104,7 +110,6 @@ const PickersStartEndDate = ({
104
110
  direction = PickersStartEndDateDirection.column
105
111
  }: Props): JSX.Element => {
106
112
  const { classes, cx } = useStyles();
107
- const { Adapter } = useDateTimePickerAdapter();
108
113
 
109
114
  const { locale } = useAtomValue(userAtom);
110
115
  const error = useAtomValue(errorTimePeriodAtom);
@@ -126,7 +131,7 @@ const PickersStartEndDate = ({
126
131
  return (
127
132
  <LocalizationProvider
128
133
  adapterLocale={locale.substring(0, 2)}
129
- dateAdapter={Adapter}
134
+ dateAdapter={AdapterDayjs}
130
135
  >
131
136
  <div className={styleContainer}>
132
137
  <PickerDateWithLabel
@@ -18,8 +18,6 @@ export interface PickersData {
18
18
  getError?: (value: boolean) => void;
19
19
  isDisabledEndPicker?: boolean;
20
20
  isDisabledStartPicker?: boolean;
21
- onCloseEndPicker?: (isClosed: boolean) => void;
22
- onCloseStartPicker?: (isClosed: boolean) => void;
23
21
  rangeEndDate?: RangeDate;
24
22
  rangeStartDate?: RangeDate;
25
23
  }
@@ -1,48 +1,85 @@
1
- import dayjs from 'dayjs';
1
+ import { useCallback } from 'react';
2
2
 
3
- import { DateTimePicker } from '@mui/x-date-pickers';
3
+ import dayjs, { Dayjs } from 'dayjs';
4
+ import { useAtomValue } from 'jotai';
5
+ import { equals } from 'ramda';
4
6
 
5
- import { useDateTimePickerAdapter } from '@centreon/ui';
7
+ import {
8
+ DateTimePicker,
9
+ DateTimePickerProps,
10
+ LocalizationProvider
11
+ } from '@mui/x-date-pickers';
12
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
13
+
14
+ import { userAtom } from '@centreon/ui-context';
6
15
 
7
16
  import { CustomTimePeriodProperty } from './models';
8
17
 
18
+ interface ChangeDateProps {
19
+ date: Date;
20
+ property: CustomTimePeriodProperty | string;
21
+ }
22
+
9
23
  interface Props {
10
- changeDate: (props) => void;
24
+ changeDate: (props: ChangeDateProps) => void;
11
25
  date: Date | null;
12
26
  desktopMediaQuery?: string;
13
27
  disabled?: boolean;
14
28
  maxDate?: Date;
15
29
  minDate?: Date;
16
- property: CustomTimePeriodProperty;
30
+ minDateTime?: Date;
31
+ property: CustomTimePeriodProperty | string;
17
32
  }
18
33
 
19
34
  const DateTimePickerInput = ({
20
35
  date,
21
36
  maxDate,
22
37
  minDate,
38
+ minDateTime,
23
39
  property,
24
40
  changeDate,
25
41
  disabled = false,
26
- desktopMediaQuery
27
- }: Props): JSX.Element => {
28
- const { desktopPickerMediaQuery } = useDateTimePickerAdapter();
42
+ desktopMediaQuery,
43
+ ...rest
44
+ }: Props & DateTimePickerProps<dayjs.Dayjs>): JSX.Element => {
45
+ const desktopPickerMediaQuery =
46
+ '@media (min-width: 1024px) or (pointer: fine)';
47
+
48
+ const { timezone, locale } = useAtomValue(userAtom);
49
+
50
+ const isUTC = equals(timezone, 'UTC');
29
51
 
30
52
  const changeTime = (newValue: dayjs.Dayjs | null): void => {
31
53
  changeDate({ date: dayjs(newValue).toDate(), property });
32
54
  };
33
55
 
56
+ const formatDate = useCallback(
57
+ (currentDate: Date | null): Dayjs => {
58
+ return isUTC ? dayjs.utc(currentDate) : dayjs.tz(currentDate, timezone);
59
+ },
60
+ [isUTC, timezone]
61
+ );
62
+
34
63
  return (
35
- <DateTimePicker<dayjs.Dayjs>
36
- dayOfWeekFormatter={(day: string): string =>
37
- day.substring(0, 2).toUpperCase()
38
- }
39
- desktopModeMediaQuery={desktopMediaQuery ?? desktopPickerMediaQuery}
40
- disabled={disabled}
41
- maxDate={maxDate && dayjs(maxDate)}
42
- minDate={minDate && dayjs(minDate)}
43
- value={dayjs(date)}
44
- onChange={changeTime}
45
- />
64
+ <LocalizationProvider
65
+ adapterLocale={locale.substring(0, 2)}
66
+ dateAdapter={AdapterDayjs}
67
+ dateLibInstance={dayjs}
68
+ >
69
+ <DateTimePicker<dayjs.Dayjs>
70
+ dayOfWeekFormatter={(dayOfWeek) =>
71
+ dayOfWeek.substring(0, 2).toLocaleUpperCase()
72
+ }
73
+ desktopModeMediaQuery={desktopMediaQuery ?? desktopPickerMediaQuery}
74
+ disabled={disabled}
75
+ maxDate={maxDate && formatDate(maxDate)}
76
+ minDate={minDate && formatDate(minDate)}
77
+ minDateTime={minDateTime && formatDate(minDateTime)}
78
+ value={formatDate(date)}
79
+ onChange={changeTime}
80
+ {...rest}
81
+ />
82
+ </LocalizationProvider>
46
83
  );
47
84
  };
48
85
 
@@ -1,5 +1,5 @@
1
1
  import dayjs from 'dayjs';
2
- import 'dayjs/locale/fr';
2
+ import 'dayjs/locale/en';
3
3
  import localizedFormatPlugin from 'dayjs/plugin/localizedFormat';
4
4
  import timezonePlugin from 'dayjs/plugin/timezone';
5
5
  import utcPlugin from 'dayjs/plugin/utc';
@@ -19,18 +19,18 @@ dayjs.extend(localizedFormatPlugin);
19
19
 
20
20
  const data = [
21
21
  {
22
- locale: 'fr_FR',
23
- resolution: { height: 720, width: 500 },
22
+ locale: 'en_US',
23
+ resolution: { height: 590, width: 500 },
24
24
  timezone: 'Europe/Paris'
25
25
  },
26
26
  {
27
- locale: 'fr_FR',
28
- resolution: { height: 720, width: 200 },
27
+ locale: 'en_US',
28
+ resolution: { height: 590, width: 200 },
29
29
  timezone: 'Europe/Paris'
30
30
  },
31
31
  {
32
- locale: 'fr_FR',
33
- resolution: { height: 720, width: 1024 },
32
+ locale: 'en_US',
33
+ resolution: { height: 590, width: 1024 },
34
34
  timezone: 'Europe/Paris'
35
35
  }
36
36
  ];
@@ -45,7 +45,7 @@ data.forEach((item) =>
45
45
 
46
46
  store.set(userAtom, {
47
47
  ...retrievedUser,
48
- locale: 'fr_FR',
48
+ locale: 'en_US',
49
49
  timezone: 'Europe/Paris'
50
50
  });
51
51
 
@@ -59,7 +59,10 @@ data.forEach((item) =>
59
59
  });
60
60
 
61
61
  it(`displays correctly the dates design when screen resolution is ${width}px`, () => {
62
- cy.makeSnapshot(`${width}px`);
62
+ cy.makeSnapshotWithCustomResolution({
63
+ resolution: { height, width },
64
+ title: `${width}px`
65
+ });
63
66
  });
64
67
  })
65
68
  );
@@ -3,15 +3,10 @@ import localizedFormatPlugin from 'dayjs/plugin/localizedFormat';
3
3
  import timezonePlugin from 'dayjs/plugin/timezone';
4
4
  import utcPlugin from 'dayjs/plugin/utc';
5
5
  import { Provider, createStore } from 'jotai';
6
- import { equals, inc } from 'ramda';
6
+ import { equals } from 'ramda';
7
7
  import { renderHook } from '@testing-library/react';
8
8
 
9
- import { LocalizationProvider } from '@mui/x-date-pickers';
10
-
11
- import {
12
- useLocaleDateTimeFormat,
13
- useDateTimePickerAdapter
14
- } from '@centreon/ui';
9
+ import { useLocaleDateTimeFormat } from '@centreon/ui';
15
10
  import { ListingVariant, userAtom } from '@centreon/ui-context';
16
11
 
17
12
  import { CustomTimePeriodProperty } from './models';
@@ -297,10 +292,6 @@ testData.forEach((item) =>
297
292
  beforeEach(() => {
298
293
  cy.viewport('macbook-13');
299
294
 
300
- const { result } = renderHook(() => useDateTimePickerAdapter());
301
-
302
- const { Adapter } = result.current;
303
-
304
295
  const store = createStore();
305
296
  store.set(userAtom, {
306
297
  ...retrievedUser,
@@ -311,31 +302,16 @@ testData.forEach((item) =>
311
302
  cy.mount({
312
303
  Component: (
313
304
  <Provider store={store}>
314
- <LocalizationProvider adapterLocale="en" dateAdapter={Adapter}>
315
- <DateTimePickerInput
316
- changeDate={cy.stub()}
317
- date={new Date(item.initialDate)}
318
- desktopMediaQuery="@media (min-width: 1024px)"
319
- property={CustomTimePeriodProperty.start}
320
- />
321
- </LocalizationProvider>
305
+ <DateTimePickerInput
306
+ changeDate={cy.stub()}
307
+ date={new Date(item.initialDate)}
308
+ property={CustomTimePeriodProperty.start}
309
+ />
322
310
  </Provider>
323
311
  )
324
312
  });
325
313
  });
326
314
 
327
- it('checks input calendar value contains correct date', () => {
328
- const { result } = renderHook(() => useLocaleDateTimeFormat());
329
- const { format } = result.current;
330
-
331
- const dateInput = format({
332
- date: dayjs(item.initialDate).tz(item.timezone),
333
- formatString: 'L hh:mm A'
334
- });
335
-
336
- cy.get('input').should('have.value', dateInput);
337
- });
338
-
339
315
  it(`displays the correct number of days for the current month when the ${item.button} button is clicked`, () => {
340
316
  cy.get('button').click();
341
317
  item.data.forEach((element) => {
@@ -389,7 +365,7 @@ testData.forEach((item) =>
389
365
 
390
366
  cy.get('[role="rowgroup"]').children().as('listWeeks');
391
367
 
392
- cy.get('@listWeeks').should('have.length', inc(numberWeeks));
368
+ cy.get('@listWeeks').should('have.length', numberWeeks);
393
369
  cy.get('@listWeeks').eq(0).as('firstWeek');
394
370
  cy.get('@firstWeek').children().as('listDaysInFirstWeek');
395
371
 
@@ -416,7 +392,7 @@ testData.forEach((item) =>
416
392
 
417
393
  cy.get('[role="rowgroup"]').children().as('listWeeks');
418
394
 
419
- cy.get('@listWeeks').should('have.length', inc(numberWeeks));
395
+ cy.get('@listWeeks').should('have.length', numberWeeks);
420
396
 
421
397
  cy.get('@listWeeks')
422
398
  .eq(numberWeeks - 1)
@@ -23,4 +23,4 @@ export const getTimePeriodById = ({
23
23
  id,
24
24
  timePeriods
25
25
  }: TimePeriodById): TimePeriod =>
26
- find<TimePeriod>(propEq('id', id))(timePeriods) as TimePeriod;
26
+ find<TimePeriod>(propEq(id, 'id'))(timePeriods) as TimePeriod;
@@ -88,20 +88,27 @@ const args = {
88
88
  ]
89
89
  };
90
90
 
91
+ const parameters = {
92
+ chromatic: { diffThreshold: 0.1 }
93
+ };
94
+
91
95
  export const BasicTimePeriod: Story = {
92
96
  ...Template,
93
- argTypes
97
+ argTypes,
98
+ parameters
94
99
  };
95
100
 
96
101
  export const WithExtraTimePeriods: Story = {
97
102
  ...Template,
98
103
  argTypes,
99
- args
104
+ args,
105
+ parameters
100
106
  };
101
107
 
102
108
  export const WithExternalComponent: Story = {
103
109
  ...TemplateWithExternalComponent,
104
- argTypes
110
+ argTypes,
111
+ parameters
105
112
  };
106
113
 
107
114
  export const SimpleTimePeriod: StorySimpleTimePeriod = {
@@ -109,5 +116,6 @@ export const SimpleTimePeriod: StorySimpleTimePeriod = {
109
116
  args: {
110
117
  endDate: dayjs(Date.now()).toDate(),
111
118
  startDate: dayjs(Date.now()).subtract(29, 'day').toDate()
112
- }
119
+ },
120
+ parameters
113
121
  };
@@ -20,7 +20,7 @@ import { useStyles } from './TimePeriods.styles';
20
20
  import {
21
21
  CustomTimePeriod as CustomTimePeriodModel,
22
22
  EndStartInterval,
23
- TimePeriod
23
+ TimePeriod as TimePeriodModel
24
24
  } from './models';
25
25
  import useTimePeriod from './useTimePeriod';
26
26
 
@@ -34,7 +34,7 @@ interface Parameters extends EndStartInterval {
34
34
  export interface Props {
35
35
  adjustTimePeriodData?: Omit<CustomTimePeriodModel, 'timelineEventsLimit'>;
36
36
  disabled?: boolean;
37
- extraTimePeriods?: Array<Omit<TimePeriod, 'timelineEventsLimit'>>;
37
+ extraTimePeriods?: Array<Omit<TimePeriodModel, 'timelineEventsLimit'>>;
38
38
  getIsError?: (value: boolean) => void;
39
39
  getParameters?: ({ start, end, timelineEventsLimit }: Parameters) => void;
40
40
  renderExternalComponent?: ReactNode;
@@ -7,6 +7,8 @@ import ExpandLessIcon from '@mui/icons-material/ExpandLess';
7
7
  import { Badge, ClickAwayListener } from '@mui/material';
8
8
  import type { SvgIcon } from '@mui/material';
9
9
 
10
+ import useCloseOnLegacyPage from './useCloseOnLegacyPage';
11
+
10
12
  const useStyles = makeStyles()((theme) => ({
11
13
  button: {
12
14
  '& > svg': {
@@ -115,6 +117,7 @@ const TopCounterLayout = ({
115
117
  const [toggled, setToggled] = useState(false);
116
118
 
117
119
  const subMenuId = title.replace(/[^A-Za-z]/, '-');
120
+ useCloseOnLegacyPage({ setToggled });
118
121
 
119
122
  useEffect(() => {
120
123
  const closeMenu = (): void => setToggled(false);