@centreon/ui 23.10.36 → 23.10.37

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 (386) 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 +26 -84
  6. package/{test/setupTests.js → setupTests.js} +1 -1
  7. package/src/Button/Icon/index.tsx +1 -1
  8. package/src/Button/Save/index.stories.tsx +5 -10
  9. package/src/Button/Save/index.tsx +1 -1
  10. package/src/Dialog/Confirm/index.tsx +4 -14
  11. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  12. package/src/Dialog/index.tsx +2 -14
  13. package/src/FallbackPage/FallbackPage.tsx +2 -2
  14. package/src/FileDropZone/index.tsx +1 -1
  15. package/src/Form/CollapsibleGroup.tsx +5 -11
  16. package/src/Form/FormButtons.tsx +4 -2
  17. package/src/Form/Inputs/Autocomplete.tsx +1 -1
  18. package/src/Form/Inputs/Grid.tsx +2 -4
  19. package/src/Form/Inputs/Radio.tsx +1 -1
  20. package/src/Form/Inputs/Switch.tsx +1 -1
  21. package/src/Form/Inputs/Text.tsx +7 -18
  22. package/src/Form/Inputs/index.tsx +12 -30
  23. package/src/Form/Inputs/models.ts +1 -15
  24. package/src/Form/{Form.stories.tsx → index.stories.tsx} +3 -2
  25. package/src/Form/{Form.tsx → index.tsx} +16 -38
  26. package/src/Form/storiesData.tsx +3 -50
  27. package/src/Home.stories.mdx +84 -1
  28. package/src/Image/index.stories.tsx +2 -2
  29. package/src/Image/index.test.tsx +3 -3
  30. package/src/InputField/Search/PersistentTooltip.tsx +2 -7
  31. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +22 -3
  32. package/src/InputField/Select/Autocomplete/Connected/index.stories.tsx +3 -0
  33. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +1 -1
  34. package/src/InputField/Select/Autocomplete/Connected/index.tsx +3 -16
  35. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +2 -0
  36. package/src/InputField/Select/Autocomplete/index.stories.tsx +10 -1
  37. package/src/InputField/Select/Autocomplete/index.tsx +1 -1
  38. package/src/InputField/Select/index.tsx +1 -1
  39. package/src/InputField/Text/index.tsx +2 -4
  40. package/src/Listing/ActionBar/index.tsx +1 -1
  41. package/src/Listing/Cell/DataCell.tsx +63 -26
  42. package/src/Listing/Cell/index.tsx +1 -1
  43. package/src/Listing/Header/{_internals/PredefinedSelectionList.tsx → PredefinedSelectionList.tsx} +1 -1
  44. package/src/Listing/Header/{Cell/ListingHeaderCell.tsx → SortableCell/Content.tsx} +81 -16
  45. package/src/Listing/Header/SortableCell/DraggableIcon.tsx +41 -0
  46. package/src/Listing/Header/{ListingHeader.tsx → index.tsx} +102 -25
  47. package/src/Listing/{Row/Row.tsx → Row.tsx} +6 -4
  48. package/src/Listing/Skeleton.tsx +11 -0
  49. package/src/Listing/index.stories.tsx +4 -34
  50. package/src/Listing/index.test.tsx +1 -1
  51. package/src/Listing/index.tsx +128 -21
  52. package/src/Listing/useStyleTable.ts +1 -1
  53. package/src/ListingPage/index.tsx +1 -1
  54. package/src/Logo/CentreonLogo.tsx +2 -2
  55. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  56. package/src/Panel/Memoized.tsx +1 -1
  57. package/src/Panel/Section/index.test.tsx +1 -1
  58. package/src/Panel/Section/index.tsx +1 -1
  59. package/src/Panel/index.tsx +4 -6
  60. package/src/RichTextEditor/ContentEditable.tsx +7 -27
  61. package/src/RichTextEditor/RichTextEditor.tsx +45 -86
  62. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +0 -1
  63. package/src/Snackbar/index.tsx +4 -14
  64. package/src/Snackbar/useSnackbar.tsx +1 -5
  65. package/src/SortableItems/SortableItem.tsx +1 -1
  66. package/src/ThemeProvider/index.tsx +4 -37
  67. package/src/ThemeProvider/palettes.ts +201 -389
  68. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  69. package/src/WallpaperPage/index.stories.tsx +1 -1
  70. package/src/Wizard/ActionsBar.test.tsx +1 -1
  71. package/src/Wizard/index.stories.tsx +18 -5
  72. package/src/Wizard/index.test.tsx +1 -1
  73. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  74. package/src/api/TestQueryProvider.tsx +1 -2
  75. package/src/api/customFetch.ts +0 -10
  76. package/src/api/useFetchQuery/index.ts +7 -8
  77. package/src/api/useMutationQuery/index.ts +13 -18
  78. package/src/api/useRequest/index.ts +6 -9
  79. package/src/index.ts +19 -7
  80. package/src/storyshots.test.js +52 -0
  81. package/{test → src}/testRenderer.tsx +1 -1
  82. package/src/utils/getNormalizedId.ts +3 -1
  83. package/src/utils/useCopyToClipboard.ts +3 -2
  84. package/src/utils/useDebounce.ts +3 -1
  85. package/src/utils/useDeepCallback.ts +3 -1
  86. package/src/utils/useDeepMemo.ts +3 -1
  87. package/src/utils/useIntersectionObserver.ts +5 -5
  88. package/src/utils/useKeyObserver.tsx +3 -1
  89. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  90. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -1
  91. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  92. package/src/utils/useMemoComponent.ts +1 -1
  93. package/testRunner.js +36 -0
  94. package/tsconfig.json +29 -0
  95. package/types/declarations.d.ts +9 -0
  96. package/public/README.md +0 -39
  97. package/public/mockServiceWorker.js +0 -303
  98. package/src/@assets/README.md +0 -5
  99. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  100. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  101. package/src/@assets/icons/downtime.icon.svg +0 -1
  102. package/src/@types/aria-attributes.d.ts +0 -10
  103. package/src/@types/data-attributes.d.ts +0 -3
  104. package/src/@types/globals.d.ts +0 -9
  105. package/src/@types/vite-env.d.ts +0 -2
  106. package/src/Checkbox/Checkbox.tsx +0 -107
  107. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  108. package/src/Checkbox/CheckboxGroup/index.tsx +0 -66
  109. package/src/Checkbox/index.stories.tsx +0 -39
  110. package/src/Checkbox/index.tsx +0 -2
  111. package/src/Dashboard/Dashboard.styles.ts +0 -85
  112. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  113. package/src/Dashboard/Grid.tsx +0 -70
  114. package/src/Dashboard/Item.tsx +0 -81
  115. package/src/Dashboard/Layout.tsx +0 -74
  116. package/src/Dashboard/index.tsx +0 -9
  117. package/src/Dashboard/utils.ts +0 -28
  118. package/src/Form/Form.styles.ts +0 -11
  119. package/src/Form/Inputs/Checkbox.tsx +0 -57
  120. package/src/Form/Inputs/CheckboxGroup.tsx +0 -76
  121. package/src/Form/index.ts +0 -1
  122. package/src/Graph/BasicComponents/Axes/UnitLabel.tsx +0 -20
  123. package/src/Graph/BasicComponents/Axes/index.tsx +0 -88
  124. package/src/Graph/BasicComponents/Axes/models.ts +0 -26
  125. package/src/Graph/BasicComponents/Axes/useAxisY.ts +0 -100
  126. package/src/Graph/BasicComponents/Grids/index.tsx +0 -20
  127. package/src/Graph/BasicComponents/Lines/RegularLines/index.tsx +0 -91
  128. package/src/Graph/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  129. package/src/Graph/BasicComponents/Lines/StackedLines/index.tsx +0 -76
  130. package/src/Graph/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  131. package/src/Graph/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -51
  132. package/src/Graph/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  133. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -73
  134. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -59
  135. package/src/Graph/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  136. package/src/Graph/BasicComponents/Lines/Threshold/index.tsx +0 -138
  137. package/src/Graph/BasicComponents/Lines/Threshold/models.ts +0 -105
  138. package/src/Graph/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  139. package/src/Graph/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  140. package/src/Graph/BasicComponents/Lines/index.tsx +0 -180
  141. package/src/Graph/BasicComponents/Lines/models.ts +0 -42
  142. package/src/Graph/BasicComponents/LoadingProgress.tsx +0 -46
  143. package/src/Graph/BasicComponents/useFilterLines.ts +0 -60
  144. package/src/Graph/Graph.styles.ts +0 -45
  145. package/src/Graph/Graph.tsx +0 -217
  146. package/src/Graph/Header/index.tsx +0 -65
  147. package/src/Graph/Icons/Downtime.tsx +0 -9
  148. package/src/Graph/InteractiveComponents/AnchorPoint/AnchorPoint.styles.ts +0 -58
  149. package/src/Graph/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  150. package/src/Graph/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  151. package/src/Graph/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  152. package/src/Graph/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -70
  153. package/src/Graph/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  154. package/src/Graph/InteractiveComponents/AnchorPoint/models.ts +0 -62
  155. package/src/Graph/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  156. package/src/Graph/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  157. package/src/Graph/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  158. package/src/Graph/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  159. package/src/Graph/InteractiveComponents/Annotations/Annotation/index.tsx +0 -81
  160. package/src/Graph/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  161. package/src/Graph/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  162. package/src/Graph/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  163. package/src/Graph/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  164. package/src/Graph/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  165. package/src/Graph/InteractiveComponents/Annotations/index.tsx +0 -49
  166. package/src/Graph/InteractiveComponents/Annotations/models.ts +0 -25
  167. package/src/Graph/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  168. package/src/Graph/InteractiveComponents/Bar.tsx +0 -21
  169. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  170. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  171. package/src/Graph/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  172. package/src/Graph/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  173. package/src/Graph/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  174. package/src/Graph/InteractiveComponents/Tooltip/index.tsx +0 -59
  175. package/src/Graph/InteractiveComponents/Tooltip/models.ts +0 -9
  176. package/src/Graph/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  177. package/src/Graph/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  178. package/src/Graph/InteractiveComponents/ZoomPreview/models.ts +0 -9
  179. package/src/Graph/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  180. package/src/Graph/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  181. package/src/Graph/InteractiveComponents/index.tsx +0 -168
  182. package/src/Graph/InteractiveComponents/interactionWithGraphAtoms.ts +0 -51
  183. package/src/Graph/Legend/InteractiveValue.tsx +0 -22
  184. package/src/Graph/Legend/Legend.styles.ts +0 -71
  185. package/src/Graph/Legend/LegendContent.tsx +0 -27
  186. package/src/Graph/Legend/LegendHeader.tsx +0 -45
  187. package/src/Graph/Legend/Marker.tsx +0 -43
  188. package/src/Graph/Legend/index.tsx +0 -166
  189. package/src/Graph/Legend/models.ts +0 -11
  190. package/src/Graph/Legend/useInteractiveValues.ts +0 -86
  191. package/src/Graph/Legend/useLegend.ts +0 -114
  192. package/src/Graph/LoadingSkeleton.tsx +0 -44
  193. package/src/Graph/common/index.ts +0 -35
  194. package/src/Graph/graphAtoms.ts +0 -6
  195. package/src/Graph/helpers/doc.ts +0 -560
  196. package/src/Graph/helpers/index.ts +0 -58
  197. package/src/Graph/index.stories.tsx +0 -372
  198. package/src/Graph/index.tsx +0 -90
  199. package/src/Graph/mockedData/annotationData.json +0 -326
  200. package/src/Graph/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  201. package/src/Graph/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  202. package/src/Graph/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  203. package/src/Graph/mockedData/lastDay.json +0 -1326
  204. package/src/Graph/mockedData/lastDayAreaStack.json +0 -3106
  205. package/src/Graph/mockedData/lastDayForward.json +0 -1338
  206. package/src/Graph/mockedData/lastDayThreshold.json +0 -2352
  207. package/src/Graph/mockedData/lastMonth.json +0 -1674
  208. package/src/Graph/mockedData/lastWeek.json +0 -2202
  209. package/src/Graph/mockedData/zoomPreview.json +0 -742
  210. package/src/Graph/models.ts +0 -150
  211. package/src/Graph/timeSeries/index.test.ts +0 -506
  212. package/src/Graph/timeSeries/index.ts +0 -512
  213. package/src/Graph/timeSeries/models.ts +0 -120
  214. package/src/Graph/translatedLabels.ts +0 -9
  215. package/src/Graph/useGraphData.ts +0 -47
  216. package/src/Graph/useGraphIntersection.ts +0 -36
  217. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -161
  218. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  219. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  220. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  221. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  222. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  223. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  224. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  225. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  226. package/src/Listing/Header/index.ts +0 -1
  227. package/src/Listing/Listing.styles.ts +0 -76
  228. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  229. package/src/Listing/Row/EmptyRow.tsx +0 -30
  230. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  231. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -204
  232. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  233. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  234. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  235. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -163
  236. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  237. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -61
  238. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  239. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  240. package/src/TimePeriods/DateTimePickerInput.tsx +0 -49
  241. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  242. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  243. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -510
  244. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  245. package/src/TimePeriods/helpers/index.ts +0 -26
  246. package/src/TimePeriods/index.stories.tsx +0 -98
  247. package/src/TimePeriods/index.tsx +0 -78
  248. package/src/TimePeriods/mockedData.ts +0 -12
  249. package/src/TimePeriods/models.ts +0 -97
  250. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  251. package/src/TimePeriods/translatedLabels.ts +0 -9
  252. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  253. package/src/TimePeriods/useTimePeriod.ts +0 -49
  254. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  255. package/src/Typography/FluidTypography/index.tsx +0 -51
  256. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  257. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  258. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  259. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  260. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  261. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  262. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  263. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  264. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  265. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  266. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  267. package/src/base/tokens/README.md +0 -3
  268. package/src/base/tokens/source/$metadata.json +0 -5
  269. package/src/base/tokens/source/base.json +0 -142
  270. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  271. package/src/base/tokens/themes/base.tokens.json +0 -695
  272. package/src/base/tokens/themes/base.tokens.ts +0 -38
  273. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  274. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  275. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  276. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  277. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  278. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  279. package/src/components/Button/Button.stories.tsx +0 -34
  280. package/src/components/Button/Button.styles.ts +0 -44
  281. package/src/components/Button/Button.tsx +0 -78
  282. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  283. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  284. package/src/components/Button/Icon/IconButton.tsx +0 -58
  285. package/src/components/Button/Icon/index.tsx +0 -1
  286. package/src/components/Button/index.ts +0 -2
  287. package/src/components/DataTable/DataTable.stories.tsx +0 -51
  288. package/src/components/DataTable/DataTable.styles.ts +0 -27
  289. package/src/components/DataTable/DataTable.tsx +0 -35
  290. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  291. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  292. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  293. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  294. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -39
  295. package/src/components/DataTable/Item/DataTableItem.tsx +0 -102
  296. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  297. package/src/components/DataTable/index.ts +0 -10
  298. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -4
  299. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  300. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -19
  301. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -104
  302. package/src/components/Form/Dashboard/DashboardFormActions.tsx +0 -56
  303. package/src/components/Form/Dashboard/index.ts +0 -2
  304. package/src/components/Form/Dashboard/translatedLabels.ts +0 -6
  305. package/src/components/Form/Form.models.ts +0 -1
  306. package/src/components/Form/index.ts +0 -2
  307. package/src/components/Header/Header.styles.ts +0 -0
  308. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -88
  309. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -99
  310. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  311. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  312. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  313. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  314. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  315. package/src/components/Header/PageHeader/index.ts +0 -12
  316. package/src/components/Header/index.ts +0 -1
  317. package/src/components/Icon/Icon.styles.ts +0 -0
  318. package/src/components/Icon/Icon.tsx +0 -2
  319. package/src/components/Icon/index.ts +0 -0
  320. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  321. package/src/components/Layout/AreaIndicator.tsx +0 -35
  322. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  323. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -40
  324. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  325. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -15
  326. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  327. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  328. package/src/components/Layout/PageLayout/index.ts +0 -10
  329. package/src/components/Layout/index.ts +0 -1
  330. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  331. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  332. package/src/components/Menu/Button/MenuButton.tsx +0 -62
  333. package/src/components/Menu/Button/index.ts +0 -1
  334. package/src/components/Menu/Menu.stories.tsx +0 -71
  335. package/src/components/Menu/Menu.styles.ts +0 -70
  336. package/src/components/Menu/Menu.tsx +0 -25
  337. package/src/components/Menu/MenuDivider.tsx +0 -13
  338. package/src/components/Menu/MenuItem.tsx +0 -36
  339. package/src/components/Menu/MenuItems.tsx +0 -35
  340. package/src/components/Menu/index.ts +0 -12
  341. package/src/components/Menu/useMenu.tsx +0 -79
  342. package/src/components/Modal/Modal.stories.tsx +0 -111
  343. package/src/components/Modal/Modal.styles.ts +0 -55
  344. package/src/components/Modal/Modal.tsx +0 -59
  345. package/src/components/Modal/ModalActions.tsx +0 -59
  346. package/src/components/Modal/ModalBody.tsx +0 -15
  347. package/src/components/Modal/ModalHeader.tsx +0 -21
  348. package/src/components/Modal/index.ts +0 -12
  349. package/src/components/README.md +0 -3
  350. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  351. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  352. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  353. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  354. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  355. package/src/components/Tooltip/Tooltip.styles.ts +0 -5
  356. package/src/components/Tooltip/Tooltip.tsx +0 -46
  357. package/src/components/Tooltip/index.ts +0 -1
  358. package/src/components/index.ts +0 -8
  359. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  360. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  361. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  362. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  363. package/src/utils/docsURL.ts +0 -31
  364. package/src/utils/index.ts +0 -18
  365. package/src/utils/panelSize.ts +0 -15
  366. package/src/utils/sanitizedHTML.ts +0 -18
  367. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  368. package/src/utils/useResizeObserver.ts +0 -6
  369. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  370. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  371. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  372. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  373. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  374. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  375. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  376. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  377. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  378. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  379. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  380. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  381. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  382. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  383. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  384. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  385. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  386. /package/src/Typography/{story.utils.tsx → index.tsx} +0 -0
@@ -2,22 +2,67 @@ import * as React from 'react';
2
2
 
3
3
  import { closestCenter, DraggableSyntheticListeners } from '@dnd-kit/core';
4
4
  import { horizontalListSortingStrategy } from '@dnd-kit/sortable';
5
- import { equals, find, map, pick, propEq } from 'ramda';
5
+ import { equals, find, isEmpty, map, not, pick, propEq } from 'ramda';
6
+ import { makeStyles, withStyles } from 'tss-react/mui';
6
7
 
7
- import { TableHead, TableRow } from '@mui/material';
8
+ import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
9
+ import {
10
+ TableCell,
11
+ TableCellBaseProps,
12
+ TableHead,
13
+ TableRow
14
+ } from '@mui/material';
8
15
 
9
16
  import { ListingVariant } from '@centreon/ui-context';
10
17
 
11
18
  import { getVisibleColumns, Props as ListingProps } from '..';
19
+ import PopoverMenu from '../../PopoverMenu';
12
20
  import SortableItems from '../../SortableItems';
13
- import { Column } from '../models';
21
+ import Checkbox from '../Checkbox';
22
+ import { Column, PredefinedRowSelection } from '../models';
23
+ import { labelPredefinedRowsSelectionMenu } from '../translatedLabels';
14
24
 
15
- import ListingHeaderCell from './Cell/ListingHeaderCell';
16
- import { useStyles } from './ListingHeader.styles';
17
- import {
18
- SelectActionListingHeaderCell,
19
- SelectActionListingHeaderCellProps
20
- } from './Cell/SelectActionListingHeaderCell';
25
+ import PredefinedSelectionList from './PredefinedSelectionList';
26
+ import SortableHeaderCellContent from './SortableCell/Content';
27
+
28
+ const height = 28;
29
+
30
+ const HeaderCell = withStyles(TableCell, (theme) => ({
31
+ root: {
32
+ padding: theme.spacing(0)
33
+ }
34
+ }));
35
+
36
+ const useStyles = makeStyles()((theme) => ({
37
+ checkbox: {
38
+ '&.Mui-checked': {
39
+ color: theme.palette.common.white
40
+ },
41
+ '&.MuiCheckbox-indeterminate': {
42
+ color: theme.palette.common.white
43
+ },
44
+ color: theme.palette.common.white
45
+ },
46
+ checkboxHeaderCell: {
47
+ alignItems: 'center',
48
+ backgroundColor: theme.palette.background.listingHeader,
49
+ borderBottom: 'none',
50
+ display: 'flex',
51
+ justifyContent: 'start',
52
+ minWidth: theme.spacing(51 / 8),
53
+ padding: 0
54
+ },
55
+ headerLabelDragging: {
56
+ cursor: 'grabbing'
57
+ },
58
+ predefinedRowsMenu: {
59
+ color: theme.palette.common.white,
60
+ width: theme.spacing(2)
61
+ },
62
+ row: {
63
+ display: 'contents'
64
+ }
65
+ }));
21
66
 
22
67
  type Props = Pick<
23
68
  ListingProps<unknown>,
@@ -32,9 +77,13 @@ type Props = Pick<
32
77
  > & {
33
78
  areColumnsEditable: boolean;
34
79
  memoProps: Array<unknown>;
80
+ onSelectAllClick: (event) => void;
81
+ onSelectRowsWithCondition: (condition) => void;
82
+ predefinedRowsSelection: Array<PredefinedRowSelection>;
35
83
  rowCount: number;
84
+ selectedRowCount: number;
36
85
  viewMode?: ListingVariant;
37
- } & SelectActionListingHeaderCellProps;
86
+ };
38
87
 
39
88
  interface ContentProps extends Pick<Props, 'sortField' | 'sortOrder'> {
40
89
  attributes;
@@ -47,21 +96,21 @@ interface ContentProps extends Pick<Props, 'sortField' | 'sortOrder'> {
47
96
  }
48
97
 
49
98
  const ListingHeader = ({
99
+ onSelectAllClick,
50
100
  sortOrder,
51
101
  sortField,
102
+ selectedRowCount,
52
103
  rowCount,
53
104
  columns,
54
105
  columnConfiguration,
55
106
  onSort,
56
107
  onSelectColumns,
57
108
  checkable,
109
+ predefinedRowsSelection,
110
+ onSelectRowsWithCondition,
58
111
  memoProps,
59
112
  areColumnsEditable,
60
- viewMode,
61
- onSelectAllClick,
62
- selectedRowCount,
63
- predefinedRowsSelection,
64
- onSelectRowsWithCondition
113
+ viewMode
65
114
  }: Props): JSX.Element => {
66
115
  const { classes, cx } = useStyles();
67
116
 
@@ -85,7 +134,7 @@ const ListingHeader = ({
85
134
  id
86
135
  }: ContentProps): JSX.Element => {
87
136
  return (
88
- <ListingHeaderCell
137
+ <SortableHeaderCellContent
89
138
  areColumnsEditable={areColumnsEditable}
90
139
  column={getColumnById(id)}
91
140
  columnConfiguration={columnConfiguration}
@@ -105,17 +154,45 @@ const ListingHeader = ({
105
154
  [columnConfiguration, columns, sortField, sortOrder]
106
155
  );
107
156
 
157
+ const hasRows = not(equals(rowCount, 0));
158
+
108
159
  return (
109
160
  <TableHead className={cx(classes.row, 'listingHeader')} component="div">
110
161
  <TableRow className={classes.row} component="div">
111
162
  {checkable && (
112
- <SelectActionListingHeaderCell
113
- predefinedRowsSelection={predefinedRowsSelection}
114
- rowCount={rowCount}
115
- selectedRowCount={selectedRowCount}
116
- onSelectAllClick={onSelectAllClick}
117
- onSelectRowsWithCondition={onSelectRowsWithCondition}
118
- />
163
+ <TableCell
164
+ className={classes.checkboxHeaderCell}
165
+ component={
166
+ 'div' as unknown as React.ElementType<TableCellBaseProps>
167
+ }
168
+ >
169
+ <Checkbox
170
+ checked={hasRows && selectedRowCount === rowCount}
171
+ className={classes.checkbox}
172
+ indeterminate={
173
+ hasRows && selectedRowCount > 0 && selectedRowCount < rowCount
174
+ }
175
+ inputProps={{ 'aria-label': 'Select all' }}
176
+ onChange={onSelectAllClick}
177
+ />
178
+ {not(isEmpty(predefinedRowsSelection)) ? (
179
+ <PopoverMenu
180
+ className={classes.predefinedRowsMenu}
181
+ icon={<ArrowDropDownIcon />}
182
+ title={labelPredefinedRowsSelectionMenu}
183
+ >
184
+ {({ close }): JSX.Element => (
185
+ <PredefinedSelectionList
186
+ close={close}
187
+ predefinedRowsSelection={predefinedRowsSelection}
188
+ onSelectRowsWithCondition={onSelectRowsWithCondition}
189
+ />
190
+ )}
191
+ </PopoverMenu>
192
+ ) : (
193
+ <div className={classes.predefinedRowsMenu} />
194
+ )}
195
+ </TableCell>
119
196
  )}
120
197
  <SortableItems
121
198
  updateSortableItemsOnItemsChange
@@ -140,7 +217,6 @@ const columnMemoProps = [
140
217
  'label',
141
218
  'rowMemoProps',
142
219
  'sortField',
143
- 'sortOrder',
144
220
  'sortable',
145
221
  'type'
146
222
  ];
@@ -163,4 +239,5 @@ const MemoizedListingHeader = React.memo<Props>(
163
239
  equals(prevProps.viewMode, nextProps.viewMode)
164
240
  );
165
241
 
166
- export { MemoizedListingHeader as ListingHeader };
242
+ export default MemoizedListingHeader;
243
+ export { height as headerHeight, HeaderCell };
@@ -9,10 +9,12 @@ import { TableRowProps, TableRow, useTheme } from '@mui/material';
9
9
 
10
10
  import { ListingVariant } from '@centreon/ui-context';
11
11
 
12
- import { useViewportIntersection } from '../../utils/useViewportIntersection';
13
- import LoadingSkeleton from '../../LoadingSkeleton';
14
- import { Column, ColumnConfiguration, RowColorCondition } from '../models';
15
- import { performanceRowsLimit } from '../index';
12
+ import { useViewportIntersection } from '../utils/useViewportIntersection';
13
+ import LoadingSkeleton from '../LoadingSkeleton';
14
+
15
+ import { Column, ColumnConfiguration, RowColorCondition } from './models';
16
+
17
+ import { performanceRowsLimit } from '.';
16
18
 
17
19
  const useStyles = makeStyles()((theme) => {
18
20
  return {
@@ -0,0 +1,11 @@
1
+ import LoadingSkeleton from '../LoadingSkeleton';
2
+
3
+ const ListingLoadingSkeleton = (): JSX.Element => (
4
+ <>
5
+ {['skeleton1', 'skeleton2', 'skeleton3'].map((key) => (
6
+ <LoadingSkeleton height={20} key={key} variant="text" width="100%" />
7
+ ))}
8
+ </>
9
+ );
10
+
11
+ export default ListingLoadingSkeleton;
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable react/prop-types */
2
- import { useState } from 'react';
2
+ import { React, useState } from 'react';
3
3
 
4
4
  import { ComponentMeta, ComponentStory } from '@storybook/react';
5
5
  import { equals, prop } from 'ramda';
@@ -12,7 +12,7 @@ import { ListingVariant } from '@centreon/ui-context';
12
12
 
13
13
  import { ListingProps } from '..';
14
14
 
15
- import { Column, ColumnType, SortOrder } from './models';
15
+ import { Column, ColumnType } from './models';
16
16
 
17
17
  import Listing from '.';
18
18
 
@@ -153,7 +153,7 @@ const Story = ({
153
153
  limit={listing.length}
154
154
  predefinedRowsSelection={predefinedRowsSelection}
155
155
  rowColorConditions={rowColorConditions}
156
- rows={props.rows ?? listing}
156
+ rows={listing}
157
157
  selectedRows={selected}
158
158
  totalRows={listing.length}
159
159
  viewerModeConfiguration={viewerModeConfiguration}
@@ -191,10 +191,6 @@ export const loadingWithData = (): JSX.Element => {
191
191
  return <Story loading />;
192
192
  };
193
193
 
194
- export const asEmptyState = (): JSX.Element => {
195
- return <Story rows={[]} />;
196
- };
197
-
198
194
  const actions = (
199
195
  <Button color="primary" size="small" variant="contained">
200
196
  Action
@@ -214,14 +210,12 @@ const editableColumns = [
214
210
  getFormattedString: ({ name }): string => name,
215
211
  id: 'name',
216
212
  label: 'Name',
217
- sortable: true,
218
213
  type: ColumnType.string
219
214
  },
220
215
  {
221
216
  getFormattedString: ({ description }): string => description,
222
217
  id: 'description',
223
218
  label: 'Description',
224
- sortable: true,
225
219
  type: ColumnType.string
226
220
  },
227
221
  {
@@ -249,26 +243,6 @@ const ListingWithEditableColumns = (): JSX.Element => {
249
243
  setSelectedColumnIds(defaultColumnIds);
250
244
  };
251
245
 
252
- const [sortedRows, setSortedRows] = useState(listing);
253
- const [sortParams, setSortParams] = useState({
254
- sortField: editableColumns[0].id,
255
- sortOrder: 'desc'
256
- });
257
-
258
- const onSort = (params: {
259
- sortField: string;
260
- sortOrder: SortOrder;
261
- }): void => {
262
- const rows = [...sortedRows];
263
- rows.sort((a, b) =>
264
- params.sortOrder === 'desc'
265
- ? a[params.sortField]?.localeCompare(b[params.sortField])
266
- : b[params.sortField]?.localeCompare(a[params.sortField])
267
- );
268
- setSortedRows(rows);
269
- setSortParams(params);
270
- };
271
-
272
246
  return (
273
247
  <Story
274
248
  columnConfiguration={{
@@ -276,17 +250,13 @@ const ListingWithEditableColumns = (): JSX.Element => {
276
250
  sortable: true
277
251
  }}
278
252
  columns={editableColumns}
279
- rows={sortedRows}
280
- sortField={sortParams.sortField}
281
- sortOrder={sortParams.sortOrder as SortOrder}
282
253
  onResetColumns={resetColumns}
283
254
  onSelectColumns={setSelectedColumnIds}
284
- onSort={onSort}
285
255
  />
286
256
  );
287
257
  };
288
258
 
289
- export const withEditableAndSortableColumns = (): JSX.Element => (
259
+ export const withEditableColumns = (): JSX.Element => (
290
260
  <ListingWithEditableColumns />
291
261
  );
292
262
 
@@ -2,7 +2,7 @@ import { useState } from 'react';
2
2
 
3
3
  import { prop } from 'ramda';
4
4
 
5
- import { render, fireEvent, within } from '../../test/testRenderer';
5
+ import { render, fireEvent, within } from '../testRenderer';
6
6
 
7
7
  import { ColumnType } from './models';
8
8
  import { labelAddColumns } from './translatedLabels';
@@ -26,34 +26,42 @@ import {
26
26
  uniqBy
27
27
  } from 'ramda';
28
28
  import { useTranslation } from 'react-i18next';
29
+ import { makeStyles } from 'tss-react/mui';
29
30
 
30
- import { Box, LinearProgress, Table, TableBody } from '@mui/material';
31
+ import {
32
+ Box,
33
+ LinearProgress,
34
+ Table,
35
+ TableBody,
36
+ TableRow,
37
+ useTheme
38
+ } from '@mui/material';
31
39
 
32
40
  import { ListingVariant } from '@centreon/ui-context';
33
41
 
34
- import { useKeyObserver, useMemoComponent } from '../utils';
42
+ import useKeyObserver from '../utils/useKeyObserver';
43
+ import useMemoComponent from '../utils/useMemoComponent';
35
44
 
36
45
  import ListingActionBar from './ActionBar';
37
46
  import Cell from './Cell';
38
47
  import DataCell from './Cell/DataCell';
39
48
  import Checkbox from './Checkbox';
40
49
  import getCumulativeOffset from './getCumulativeOffset';
50
+ import ListingHeader, { headerHeight } from './Header/index';
41
51
  import {
42
52
  Column,
43
53
  ColumnConfiguration,
44
54
  PredefinedRowSelection,
45
55
  RowColorCondition,
46
56
  RowId,
47
- SortOrder
57
+ SortOrder,
58
+ TableStyleAtom as TableStyle
48
59
  } from './models';
49
- import ListingRow from './Row/Row';
60
+ import ListingRow from './Row';
61
+ import ListingLoadingSkeleton from './Skeleton';
50
62
  import { labelNoResultFound } from './translatedLabels';
51
63
  import useResizeObserver from './useResizeObserver';
52
64
  import useStyleTable from './useStyleTable';
53
- import { loadingIndicatorHeight, useStyles } from './Listing.styles';
54
- import { EmptyResult } from './EmptyResult/EmptyResult';
55
- import { SkeletonLoader } from './Row/SkeletonLoaderRows';
56
- import { ListingHeader } from './Header';
57
65
 
58
66
  const getVisibleColumns = ({
59
67
  columnConfiguration,
@@ -70,6 +78,88 @@ const getVisibleColumns = ({
70
78
  ) as Array<Column>;
71
79
  };
72
80
 
81
+ const loadingIndicatorHeight = 3;
82
+
83
+ interface StylesProps {
84
+ checkable: boolean;
85
+ currentVisibleColumns: Array<Column>;
86
+ dataStyle: TableStyle;
87
+ getGridTemplateColumn: string;
88
+ rows: Array<unknown>;
89
+ viewMode: ListingVariant;
90
+ }
91
+
92
+ const useStyles = makeStyles<StylesProps>()(
93
+ (
94
+ theme,
95
+ { dataStyle, getGridTemplateColumn, rows, checkable, currentVisibleColumns }
96
+ ) => ({
97
+ actionBar: {
98
+ alignItems: 'center',
99
+ display: 'flex'
100
+ },
101
+ checkbox: {
102
+ justifyContent: 'start'
103
+ },
104
+ container: {
105
+ background: 'none',
106
+ display: 'flex',
107
+ flexDirection: 'column',
108
+ height: '100%',
109
+ width: '100%'
110
+ },
111
+ emptyDataCell: {
112
+ flexDirection: 'column',
113
+ gridColumn: `auto / span ${
114
+ checkable
115
+ ? currentVisibleColumns.length + 1
116
+ : currentVisibleColumns.length
117
+ }`,
118
+ justifyContent: 'center'
119
+ },
120
+ emptyDataRow: {
121
+ display: 'contents'
122
+ },
123
+ loadingIndicator: {
124
+ height: loadingIndicatorHeight,
125
+ width: '100%'
126
+ },
127
+ table: {
128
+ '.listingHeader > div > div:first-of-type': {
129
+ paddingLeft: theme.spacing(1.5)
130
+ },
131
+ '.listingHeader div div': {
132
+ backgroundColor: theme.palette.background.listingHeader,
133
+ boxShadow: `-1px 0px 0px 0px ${theme.palette.background.listingHeader}`,
134
+ height: dataStyle.header.height,
135
+ padding: 0
136
+ },
137
+ alignItems: 'center',
138
+ display: 'grid',
139
+ gridTemplateColumns: getGridTemplateColumn,
140
+ gridTemplateRows: `${theme.spacing(dataStyle.header.height / 8)} repeat(${
141
+ rows?.length
142
+ }, ${dataStyle.body.height}px)`,
143
+ position: 'relative'
144
+ },
145
+ tableBody: {
146
+ '.MuiTableRow-root > div:first-of-type': {
147
+ paddingLeft: theme.spacing(1.5)
148
+ },
149
+
150
+ display: 'contents',
151
+ 'div:first-of-type': {
152
+ gridColumnStart: 1
153
+ },
154
+ position: 'relative'
155
+ },
156
+ tableWrapper: {
157
+ borderBottom: 'none',
158
+ overflow: 'auto'
159
+ }
160
+ })
161
+ );
162
+
73
163
  interface CustomStyle {
74
164
  customStyleViewerModeContainer?: string;
75
165
  customStyleViewerModeIcon?: string;
@@ -106,7 +196,7 @@ export interface Props<TRow> {
106
196
  onRowClick?: (row: TRow) => void;
107
197
  onSelectColumns?: (selectedColumnIds: Array<string>) => void;
108
198
  onSelectRows?: (rows: Array<TRow>) => void;
109
- onSort?: (sortParams: { sortField: string; sortOrder: SortOrder }) => void;
199
+ onSort?: (sortParams) => void;
110
200
  paginated?: boolean;
111
201
  predefinedRowsSelection?: Array<PredefinedRowSelection>;
112
202
  rowColorConditions?: Array<RowColorCondition>;
@@ -172,10 +262,11 @@ const Listing = <TRow extends { id: RowId }>({
172
262
  viewMode
173
263
  });
174
264
 
175
- const { classes, theme } = useStyles({
265
+ const { classes } = useStyles({
266
+ checkable,
267
+ currentVisibleColumns,
176
268
  dataStyle,
177
269
  getGridTemplateColumn,
178
- limit,
179
270
  rows,
180
271
  viewMode
181
272
  });
@@ -192,6 +283,8 @@ const Listing = <TRow extends { id: RowId }>({
192
283
  const containerRef = React.useRef<HTMLDivElement>();
193
284
  const actionBarRef = React.useRef<HTMLDivElement>();
194
285
 
286
+ const theme = useTheme();
287
+
195
288
  useResizeObserver({
196
289
  onResize: () => {
197
290
  setTableTopOffset(getCumulativeOffset(containerRef.current));
@@ -397,9 +490,9 @@ const Listing = <TRow extends { id: RowId }>({
397
490
 
398
491
  return `calc(100vh - ${tableTopOffset}px - ${
399
492
  actionBarRef.current?.offsetHeight
400
- }px - ${
401
- dataStyle.header.height
402
- }px - ${loadingIndicatorHeight}px - ${theme.spacing(1)})`;
493
+ }px - ${headerHeight}px - ${loadingIndicatorHeight}px - ${theme.spacing(
494
+ 1
495
+ )})`;
403
496
  };
404
497
 
405
498
  const changeLimit = (updatedLimit: string): void => {
@@ -553,6 +646,7 @@ const Listing = <TRow extends { id: RowId }>({
553
646
 
554
647
  {visibleColumns.map((column) => (
555
648
  <DataCell
649
+ areColumnsEditable={areColumnsEditable}
556
650
  column={column}
557
651
  disableRowCondition={disableRowCondition}
558
652
  getHighlightRowCondition={getHighlightRowCondition}
@@ -567,13 +661,26 @@ const Listing = <TRow extends { id: RowId }>({
567
661
  </ListingRow>
568
662
  );
569
663
  })}
570
-
571
- {rows.length < 1 &&
572
- (loading ? (
573
- <SkeletonLoader rows={limit} />
574
- ) : (
575
- <EmptyResult label={t(labelNoResultFound)} />
576
- ))}
664
+ {rows.length < 1 && (
665
+ <TableRow
666
+ className={classes.emptyDataRow}
667
+ component="div"
668
+ tabIndex={-1}
669
+ >
670
+ <Cell
671
+ align="center"
672
+ className={classes.emptyDataCell}
673
+ disableRowCondition={(): boolean => false}
674
+ isRowHovered={false}
675
+ >
676
+ {loading ? (
677
+ <ListingLoadingSkeleton />
678
+ ) : (
679
+ t(labelNoResultFound)
680
+ )}
681
+ </Cell>
682
+ </TableRow>
683
+ )}
577
684
  </TableBody>
578
685
  </Table>
579
686
  </Box>
@@ -50,7 +50,7 @@ const useStyleTable = ({
50
50
  const updateStyleTable = useSetAtom(tableStyleDerivedAtom);
51
51
 
52
52
  const getGridTemplateColumn = (): string => {
53
- const checkbox = checkable ? 'fit-content(1rem) ' : ''; // SelectAction (checkbox) cell adjusts to content
53
+ const checkbox = checkable ? '50px ' : '';
54
54
 
55
55
  const columnTemplate = currentVisibleColumns
56
56
  ?.map(({ width, shortLabel }) => {
@@ -4,7 +4,7 @@ import { makeStyles } from 'tss-react/mui';
4
4
 
5
5
  import { Box } from '@mui/material';
6
6
 
7
- import { useMemoComponent } from '../utils';
7
+ import useMemoComponent from '../utils/useMemoComponent';
8
8
  import WithPanel from '../Panel/WithPanel';
9
9
 
10
10
  import FilterSkeleton from './FilterSkeleton';
@@ -6,8 +6,8 @@ import { makeStyles } from 'tss-react/mui';
6
6
  import { Image, ImageVariant } from '..';
7
7
  import LoadingSkeleton from '../LoadingSkeleton';
8
8
  import { useThemeMode } from '../utils/useThemeMode';
9
- import CentreonLogoLight from '../@assets/brand/centreon-logo-one-line-light.svg';
10
- import CentreonLogoDark from '../@assets/brand/centreon-logo-one-line-dark.svg';
9
+ import CentreonLogoLight from '../../assets/centreon-logo-one-line-light.svg';
10
+ import CentreonLogoDark from '../../assets/centreon-logo-one-line-dark.svg';
11
11
 
12
12
  import { labelCentreonLogo } from './translatedLabels';
13
13
 
@@ -1,4 +1,5 @@
1
1
  import { ComponentMeta, ComponentStory } from '@storybook/react';
2
+ import withMock from 'storybook-addon-mock';
2
3
  import { makeStyles } from 'tss-react/mui';
3
4
 
4
5
  import { Alert, Container } from '@mui/material';
@@ -19,6 +20,7 @@ export default {
19
20
  moduleName: { control: 'text' }
20
21
  },
21
22
  component: LicenseCheck,
23
+ decorators: [withMock],
22
24
  title: 'LicenseCheck'
23
25
  } as ComponentMeta<typeof LicenseCheck>;
24
26
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { forwardRef } from 'react';
4
4
 
5
- import { useMemoComponent } from '../utils';
5
+ import useMemoComponent from '../utils/useMemoComponent';
6
6
 
7
7
  import Panel, { Props } from '.';
8
8
 
@@ -1,4 +1,4 @@
1
- import { render, fireEvent } from '../../../test/testRenderer';
1
+ import { render, fireEvent } from '../../testRenderer';
2
2
 
3
3
  import SectionPanel from '.';
4
4
 
@@ -6,7 +6,7 @@ import ForwardIcon from '@mui/icons-material/ArrowForwardIos';
6
6
 
7
7
  import Panel from '..';
8
8
  import ContentWithCircularLoading from '../../ContentWithCircularProgress';
9
- import { useMemoComponent } from '../../utils';
9
+ import useMemoComponent from '../../utils/useMemoComponent';
10
10
 
11
11
  import ExpandableSection from './ExpandableSection';
12
12
 
@@ -33,7 +33,7 @@ const useStyles = makeStyles<StylesProps>()(
33
33
  height: '100%'
34
34
  },
35
35
  container: {
36
- backgroundColor: theme.palette.background.panel,
36
+ backgroundColor: theme.palette.background.default,
37
37
  borderTopRightRadius: 0,
38
38
  display: 'grid',
39
39
  gridTemplate: 'auto auto 1fr / 1fr',
@@ -85,7 +85,6 @@ export interface Tab {
85
85
  }
86
86
 
87
87
  export interface Props {
88
- className?: string;
89
88
  header: React.ReactElement;
90
89
  headerBackgroundColor?: string;
91
90
  labelClose?: string;
@@ -112,12 +111,11 @@ const Panel = React.forwardRef(
112
111
  width = 550,
113
112
  minWidth = 550,
114
113
  headerBackgroundColor,
115
- onResize,
116
- className
114
+ onResize
117
115
  }: Props,
118
116
  ref
119
117
  ): JSX.Element => {
120
- const { classes, cx } = useStyles({
118
+ const { classes } = useStyles({
121
119
  hasTabs: !isEmpty(tabs),
122
120
  headerBackgroundColor,
123
121
  width
@@ -181,7 +179,7 @@ const Panel = React.forwardRef(
181
179
  exit: 50
182
180
  }}
183
181
  >
184
- <Paper className={cx(classes.container, className)} elevation={2}>
182
+ <Paper className={classes.container} elevation={2}>
185
183
  {!isNil(onResize) && (
186
184
  <div className={classes.dragger} role="none" onMouseDown={resize} />
187
185
  )}