@centreon/ui 23.10.68 → 23.10.69

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 (498) 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 +31 -96
  6. package/{test/setupTests.js → setupTests.js} +1 -1
  7. package/src/ActionsList/index.tsx +13 -29
  8. package/src/Button/Icon/index.tsx +2 -11
  9. package/src/Button/Save/index.stories.tsx +5 -10
  10. package/src/Button/Save/index.tsx +1 -1
  11. package/src/Dialog/Confirm/index.tsx +4 -17
  12. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  13. package/src/Dialog/index.tsx +2 -14
  14. package/src/FallbackPage/FallbackPage.tsx +2 -2
  15. package/src/FileDropZone/index.tsx +1 -1
  16. package/src/Form/CollapsibleGroup.tsx +5 -15
  17. package/src/Form/FormButtons.tsx +4 -2
  18. package/src/Form/Inputs/Autocomplete.tsx +1 -1
  19. package/src/Form/Inputs/Grid.tsx +2 -4
  20. package/src/Form/Inputs/Radio.tsx +1 -1
  21. package/src/Form/Inputs/Switch.tsx +1 -1
  22. package/src/Form/Inputs/Text.tsx +7 -18
  23. package/src/Form/Inputs/index.tsx +15 -31
  24. package/src/Form/Inputs/models.ts +3 -18
  25. package/src/Form/{Form.stories.tsx → index.stories.tsx} +3 -2
  26. package/src/Form/{Form.tsx → index.tsx} +16 -38
  27. package/src/Form/storiesData.tsx +3 -50
  28. package/src/Home.stories.mdx +84 -1
  29. package/src/Image/Image.tsx +1 -11
  30. package/src/Image/index.stories.tsx +2 -2
  31. package/src/Image/index.test.tsx +3 -3
  32. package/src/InputField/Search/PersistentTooltip.tsx +2 -7
  33. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +22 -3
  34. package/src/InputField/Select/Autocomplete/Connected/index.stories.tsx +3 -0
  35. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +1 -1
  36. package/src/InputField/Select/Autocomplete/Connected/index.tsx +4 -25
  37. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +2 -0
  38. package/src/InputField/Select/Autocomplete/Multi/index.tsx +4 -11
  39. package/src/InputField/Select/Autocomplete/index.stories.tsx +10 -1
  40. package/src/InputField/Select/Autocomplete/index.tsx +2 -5
  41. package/src/InputField/Select/index.tsx +1 -1
  42. package/src/InputField/Text/index.tsx +9 -14
  43. package/src/Listing/ActionBar/index.tsx +8 -15
  44. package/src/Listing/Cell/DataCell.tsx +69 -44
  45. package/src/Listing/Cell/index.tsx +8 -88
  46. package/src/Listing/Header/{_internals/PredefinedSelectionList.tsx → PredefinedSelectionList.tsx} +1 -1
  47. package/src/Listing/Header/{Cell/ListingHeaderCell.tsx → SortableCell/Content.tsx} +83 -18
  48. package/src/Listing/Header/SortableCell/DraggableIcon.tsx +41 -0
  49. package/src/Listing/Header/{ListingHeader.tsx → index.tsx} +105 -28
  50. package/src/Listing/{Row/Row.tsx → Row.tsx} +11 -12
  51. package/src/Listing/Skeleton.tsx +11 -0
  52. package/src/Listing/index.stories.tsx +39 -142
  53. package/src/Listing/index.test.tsx +1 -1
  54. package/src/Listing/index.tsx +167 -133
  55. package/src/Listing/models.ts +0 -1
  56. package/src/Listing/tableAtoms.ts +10 -15
  57. package/src/Listing/useStyleTable.ts +9 -9
  58. package/src/ListingPage/index.tsx +1 -1
  59. package/src/Logo/CentreonLogo.tsx +2 -2
  60. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  61. package/src/Panel/Memoized.tsx +1 -1
  62. package/src/Panel/Section/index.test.tsx +1 -1
  63. package/src/Panel/Section/index.tsx +1 -1
  64. package/src/Panel/index.tsx +6 -10
  65. package/src/RichTextEditor/ContentEditable.tsx +19 -56
  66. package/src/RichTextEditor/RichTextEditor.tsx +47 -152
  67. package/src/RichTextEditor/index.stories.tsx +0 -5
  68. package/src/RichTextEditor/plugins/AutoLinkPlugin/index.tsx +5 -53
  69. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +16 -54
  70. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +10 -3
  71. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +3 -7
  72. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +7 -33
  73. package/src/Snackbar/index.tsx +4 -14
  74. package/src/Snackbar/useSnackbar.tsx +1 -5
  75. package/src/SortableItems/SortableItem.tsx +2 -3
  76. package/src/ThemeProvider/index.tsx +33 -41
  77. package/src/ThemeProvider/palettes.ts +201 -419
  78. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  79. package/src/WallpaperPage/index.stories.tsx +1 -1
  80. package/src/Wizard/ActionsBar.test.tsx +1 -1
  81. package/src/Wizard/WizardContent.tsx +3 -2
  82. package/src/Wizard/index.stories.tsx +18 -5
  83. package/src/Wizard/index.test.tsx +1 -1
  84. package/src/Wizard/index.tsx +3 -15
  85. package/src/Wizard/models.ts +0 -6
  86. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  87. package/src/api/TestQueryProvider.tsx +1 -2
  88. package/src/api/customFetch.ts +0 -10
  89. package/src/api/useFetchQuery/index.ts +15 -18
  90. package/src/api/useMutationQuery/index.ts +17 -32
  91. package/src/api/useRequest/index.ts +6 -9
  92. package/src/index.ts +19 -11
  93. package/src/storyshots.test.js +52 -0
  94. package/{test → src}/testRenderer.tsx +1 -1
  95. package/src/utils/getNormalizedId.ts +3 -1
  96. package/src/utils/useCopyToClipboard.ts +3 -2
  97. package/src/utils/useDebounce.ts +3 -1
  98. package/src/utils/useDeepCallback.ts +3 -1
  99. package/src/utils/useDeepMemo.ts +3 -1
  100. package/src/utils/useIntersectionObserver.ts +5 -5
  101. package/src/utils/useKeyObserver.tsx +3 -1
  102. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  103. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -1
  104. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  105. package/src/utils/useMemoComponent.ts +1 -1
  106. package/testRunner.js +36 -0
  107. package/tsconfig.json +29 -0
  108. package/types/declarations.d.ts +9 -0
  109. package/public/README.md +0 -39
  110. package/public/mockServiceWorker.js +0 -303
  111. package/src/@assets/README.md +0 -5
  112. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  113. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  114. package/src/@assets/icons/downtime.icon.svg +0 -1
  115. package/src/@types/aria-attributes.d.ts +0 -10
  116. package/src/@types/data-attributes.d.ts +0 -3
  117. package/src/@types/globals.d.ts +0 -9
  118. package/src/@types/vite-env.d.ts +0 -2
  119. package/src/Checkbox/Checkbox.tsx +0 -107
  120. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  121. package/src/Checkbox/CheckboxGroup/index.tsx +0 -66
  122. package/src/Checkbox/index.stories.tsx +0 -39
  123. package/src/Checkbox/index.tsx +0 -2
  124. package/src/Dashboard/Dashboard.styles.ts +0 -95
  125. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  126. package/src/Dashboard/Grid.tsx +0 -70
  127. package/src/Dashboard/Item.tsx +0 -93
  128. package/src/Dashboard/Layout.tsx +0 -76
  129. package/src/Dashboard/index.tsx +0 -9
  130. package/src/Dashboard/utils.ts +0 -28
  131. package/src/Form/Form.styles.ts +0 -11
  132. package/src/Form/Inputs/Checkbox.tsx +0 -57
  133. package/src/Form/Inputs/CheckboxGroup.tsx +0 -76
  134. package/src/Form/index.ts +0 -1
  135. package/src/Graph/Gauge/AnimatedPie.tsx +0 -98
  136. package/src/Graph/Gauge/Gauge.stories.tsx +0 -146
  137. package/src/Graph/Gauge/Gauge.tsx +0 -42
  138. package/src/Graph/Gauge/PieData.tsx +0 -63
  139. package/src/Graph/Gauge/ResponsiveGauge.tsx +0 -141
  140. package/src/Graph/Gauge/Thresholds.tsx +0 -117
  141. package/src/Graph/Gauge/index.ts +0 -1
  142. package/src/Graph/Gauge/models.ts +0 -20
  143. package/src/Graph/LineChart/BasicComponents/Axes/UnitLabel.tsx +0 -20
  144. package/src/Graph/LineChart/BasicComponents/Axes/index.tsx +0 -88
  145. package/src/Graph/LineChart/BasicComponents/Axes/models.ts +0 -26
  146. package/src/Graph/LineChart/BasicComponents/Axes/useAxisY.ts +0 -100
  147. package/src/Graph/LineChart/BasicComponents/Grids/index.tsx +0 -20
  148. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/index.tsx +0 -94
  149. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  150. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/index.tsx +0 -79
  151. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  152. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -53
  153. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  154. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -78
  155. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -63
  156. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  157. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +0 -142
  158. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/models.ts +0 -105
  159. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  160. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  161. package/src/Graph/LineChart/BasicComponents/Lines/index.tsx +0 -189
  162. package/src/Graph/LineChart/BasicComponents/Lines/models.ts +0 -45
  163. package/src/Graph/LineChart/BasicComponents/LoadingProgress.tsx +0 -46
  164. package/src/Graph/LineChart/BasicComponents/ThresholdLine.tsx +0 -64
  165. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +0 -77
  166. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +0 -62
  167. package/src/Graph/LineChart/Header/index.tsx +0 -65
  168. package/src/Graph/LineChart/Icons/Downtime.tsx +0 -9
  169. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  170. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  171. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  172. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -96
  173. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  174. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/models.ts +0 -62
  175. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  176. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  177. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  178. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  179. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +0 -81
  180. package/src/Graph/LineChart/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  181. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  182. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  183. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  184. package/src/Graph/LineChart/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  185. package/src/Graph/LineChart/InteractiveComponents/Annotations/index.tsx +0 -49
  186. package/src/Graph/LineChart/InteractiveComponents/Annotations/models.ts +0 -25
  187. package/src/Graph/LineChart/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  188. package/src/Graph/LineChart/InteractiveComponents/Bar.tsx +0 -21
  189. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  190. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  191. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  192. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  193. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  194. package/src/Graph/LineChart/InteractiveComponents/Tooltip/index.tsx +0 -59
  195. package/src/Graph/LineChart/InteractiveComponents/Tooltip/models.ts +0 -9
  196. package/src/Graph/LineChart/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  197. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  198. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/models.ts +0 -9
  199. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  200. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  201. package/src/Graph/LineChart/InteractiveComponents/index.tsx +0 -168
  202. package/src/Graph/LineChart/InteractiveComponents/interactionWithGraphAtoms.ts +0 -52
  203. package/src/Graph/LineChart/Legend/InteractiveValue.tsx +0 -22
  204. package/src/Graph/LineChart/Legend/Legend.styles.ts +0 -71
  205. package/src/Graph/LineChart/Legend/LegendContent.tsx +0 -27
  206. package/src/Graph/LineChart/Legend/LegendHeader.tsx +0 -45
  207. package/src/Graph/LineChart/Legend/Marker.tsx +0 -43
  208. package/src/Graph/LineChart/Legend/index.tsx +0 -171
  209. package/src/Graph/LineChart/Legend/models.ts +0 -11
  210. package/src/Graph/LineChart/Legend/useInteractiveValues.ts +0 -99
  211. package/src/Graph/LineChart/Legend/useLegend.ts +0 -111
  212. package/src/Graph/LineChart/LineChart.styles.ts +0 -45
  213. package/src/Graph/LineChart/LineChart.tsx +0 -303
  214. package/src/Graph/LineChart/LoadingSkeleton.tsx +0 -44
  215. package/src/Graph/LineChart/common/index.ts +0 -35
  216. package/src/Graph/LineChart/graphAtoms.ts +0 -3
  217. package/src/Graph/LineChart/helpers/doc.ts +0 -560
  218. package/src/Graph/LineChart/helpers/index.ts +0 -63
  219. package/src/Graph/LineChart/index.stories.tsx +0 -478
  220. package/src/Graph/LineChart/index.tsx +0 -114
  221. package/src/Graph/LineChart/mockedData/annotationData.json +0 -326
  222. package/src/Graph/LineChart/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  223. package/src/Graph/LineChart/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  224. package/src/Graph/LineChart/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  225. package/src/Graph/LineChart/mockedData/lastDay.json +0 -1326
  226. package/src/Graph/LineChart/mockedData/lastDayAreaStack.json +0 -3106
  227. package/src/Graph/LineChart/mockedData/lastDayForward.json +0 -1338
  228. package/src/Graph/LineChart/mockedData/lastDayThreshold.json +0 -2352
  229. package/src/Graph/LineChart/mockedData/lastMonth.json +0 -1674
  230. package/src/Graph/LineChart/mockedData/lastWeek.json +0 -2202
  231. package/src/Graph/LineChart/mockedData/zoomPreview.json +0 -742
  232. package/src/Graph/LineChart/models.ts +0 -146
  233. package/src/Graph/LineChart/translatedLabels.ts +0 -9
  234. package/src/Graph/LineChart/useLineChartData.ts +0 -49
  235. package/src/Graph/LineChart/useLineChartIntersection.ts +0 -36
  236. package/src/Graph/SingleBar/ResponsiveSingleBar.tsx +0 -171
  237. package/src/Graph/SingleBar/SingleBar.stories.tsx +0 -168
  238. package/src/Graph/SingleBar/SingleBar.tsx +0 -25
  239. package/src/Graph/SingleBar/ThresholdLine.tsx +0 -72
  240. package/src/Graph/SingleBar/Thresholds.tsx +0 -46
  241. package/src/Graph/SingleBar/index.ts +0 -1
  242. package/src/Graph/SingleBar/models.ts +0 -8
  243. package/src/Graph/Text/Text.stories.tsx +0 -67
  244. package/src/Graph/Text/Text.styles.ts +0 -17
  245. package/src/Graph/Text/Text.tsx +0 -91
  246. package/src/Graph/Text/index.ts +0 -1
  247. package/src/Graph/common/margins.ts +0 -1
  248. package/src/Graph/common/models.ts +0 -19
  249. package/src/Graph/common/timeSeries/index.test.ts +0 -609
  250. package/src/Graph/common/timeSeries/index.ts +0 -624
  251. package/src/Graph/common/timeSeries/models.ts +0 -127
  252. package/src/Graph/common/utils.ts +0 -75
  253. package/src/Graph/index.ts +0 -4
  254. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -159
  255. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  256. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  257. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  258. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  259. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  260. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  261. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  262. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  263. package/src/Listing/Header/index.ts +0 -1
  264. package/src/Listing/Listing.cypress.spec.tsx +0 -120
  265. package/src/Listing/Listing.styles.ts +0 -76
  266. package/src/Listing/ListingDocs.mdx +0 -61
  267. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  268. package/src/Listing/Row/EmptyRow.tsx +0 -30
  269. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  270. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -337
  271. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +0 -197
  272. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +0 -92
  273. package/src/RichTextEditor/plugins/ToolbarPlugin/ToolbarPlugin.styles.ts +0 -7
  274. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  275. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  276. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  277. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -163
  278. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  279. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -61
  280. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  281. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  282. package/src/TimePeriods/DateTimePickerInput.tsx +0 -49
  283. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  284. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  285. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -510
  286. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  287. package/src/TimePeriods/helpers/index.ts +0 -26
  288. package/src/TimePeriods/index.stories.tsx +0 -98
  289. package/src/TimePeriods/index.tsx +0 -78
  290. package/src/TimePeriods/mockedData.ts +0 -12
  291. package/src/TimePeriods/models.ts +0 -97
  292. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  293. package/src/TimePeriods/translatedLabels.ts +0 -9
  294. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  295. package/src/TimePeriods/useTimePeriod.ts +0 -49
  296. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  297. package/src/Typography/FluidTypography/index.tsx +0 -51
  298. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  299. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  300. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  301. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  302. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  303. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  304. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  305. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  306. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  307. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  308. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  309. package/src/api/useGraphQuery/index.ts +0 -126
  310. package/src/api/useGraphQuery/models.ts +0 -12
  311. package/src/base/tokens/README.md +0 -3
  312. package/src/base/tokens/source/$metadata.json +0 -5
  313. package/src/base/tokens/source/base.json +0 -142
  314. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  315. package/src/base/tokens/themes/base.tokens.json +0 -695
  316. package/src/base/tokens/themes/base.tokens.ts +0 -38
  317. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  318. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  319. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  320. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  321. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  322. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  323. package/src/components/Avatar/Avatar.stories.tsx +0 -23
  324. package/src/components/Avatar/Avatar.styles.ts +0 -11
  325. package/src/components/Avatar/Avatar.tsx +0 -32
  326. package/src/components/Avatar/index.ts +0 -1
  327. package/src/components/Button/Button.stories.tsx +0 -34
  328. package/src/components/Button/Button.styles.ts +0 -44
  329. package/src/components/Button/Button.tsx +0 -78
  330. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  331. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  332. package/src/components/Button/Icon/IconButton.tsx +0 -58
  333. package/src/components/Button/Icon/index.tsx +0 -1
  334. package/src/components/Button/index.ts +0 -2
  335. package/src/components/CollapsibleItem/CollapsibleItem.stories.tsx +0 -25
  336. package/src/components/CollapsibleItem/CollapsibleItem.tsx +0 -47
  337. package/src/components/CollapsibleItem/index.ts +0 -1
  338. package/src/components/CollapsibleItem/useCollapsibleItemStyles.ts +0 -15
  339. package/src/components/DataTable/DataTable.stories.tsx +0 -51
  340. package/src/components/DataTable/DataTable.styles.ts +0 -27
  341. package/src/components/DataTable/DataTable.tsx +0 -35
  342. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  343. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  344. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  345. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  346. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -39
  347. package/src/components/DataTable/Item/DataTableItem.tsx +0 -102
  348. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  349. package/src/components/DataTable/index.ts +0 -10
  350. package/src/components/Form/AccessRights/AccessRights.resource.ts +0 -45
  351. package/src/components/Form/AccessRights/AccessRightsForm.stories.tsx +0 -59
  352. package/src/components/Form/AccessRights/AccessRightsForm.styles.ts +0 -21
  353. package/src/components/Form/AccessRights/AccessRightsForm.tsx +0 -67
  354. package/src/components/Form/AccessRights/AccessRightsFormActions.tsx +0 -80
  355. package/src/components/Form/AccessRights/Input/AddAction.tsx +0 -31
  356. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.stories.tsx +0 -54
  357. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.tsx +0 -72
  358. package/src/components/Form/AccessRights/Input/ContactAccessRightsInput.styles.ts +0 -22
  359. package/src/components/Form/AccessRights/Input/ContactInputField.tsx +0 -105
  360. package/src/components/Form/AccessRights/Input/RoleInputField.tsx +0 -29
  361. package/src/components/Form/AccessRights/List/ContactAccessRightsList.stories.tsx +0 -97
  362. package/src/components/Form/AccessRights/List/ContactAccessRightsList.styles.ts +0 -71
  363. package/src/components/Form/AccessRights/List/ContactAccessRightsList.tsx +0 -51
  364. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.stories.tsx +0 -116
  365. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.tsx +0 -118
  366. package/src/components/Form/AccessRights/List/ContactAccessRightsListItemSkeleton.tsx +0 -26
  367. package/src/components/Form/AccessRights/List/ContactAccessRightsListSkeleton.tsx +0 -28
  368. package/src/components/Form/AccessRights/Stats/AccessRightsStats.styles.ts +0 -18
  369. package/src/components/Form/AccessRights/Stats/AccessRightsStats.tsx +0 -41
  370. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -52
  371. package/src/components/Form/AccessRights/common/GroupLabel.styles.ts +0 -18
  372. package/src/components/Form/AccessRights/common/GroupLabel.tsx +0 -15
  373. package/src/components/Form/AccessRights/common/Input.styles.ts +0 -48
  374. package/src/components/Form/AccessRights/common/RoleInputSelect.styles.ts +0 -11
  375. package/src/components/Form/AccessRights/common/RoleInputSelect.tsx +0 -57
  376. package/src/components/Form/AccessRights/index.ts +0 -3
  377. package/src/components/Form/AccessRights/useAccessRightsForm.test.tsx +0 -531
  378. package/src/components/Form/AccessRights/useAccessRightsForm.tsx +0 -282
  379. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +0 -41
  380. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -4
  381. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  382. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -13
  383. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -101
  384. package/src/components/Form/Dashboard/index.ts +0 -2
  385. package/src/components/Form/Dashboard/translatedLabels.ts +0 -6
  386. package/src/components/Form/Form.models.ts +0 -1
  387. package/src/components/Form/Form.resource.ts +0 -1
  388. package/src/components/Form/Form.styles.ts +0 -17
  389. package/src/components/Form/FormActions.tsx +0 -57
  390. package/src/components/Form/index.ts +0 -3
  391. package/src/components/Header/Header.styles.ts +0 -0
  392. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -97
  393. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -99
  394. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  395. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  396. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  397. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  398. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  399. package/src/components/Header/PageHeader/index.ts +0 -12
  400. package/src/components/Header/index.ts +0 -1
  401. package/src/components/Icon/Icon.styles.ts +0 -0
  402. package/src/components/Icon/Icon.tsx +0 -2
  403. package/src/components/Icon/index.ts +0 -0
  404. package/src/components/Inputs/Switch/Switch.stories.tsx +0 -22
  405. package/src/components/Inputs/Switch/Switch.styles.ts +0 -13
  406. package/src/components/Inputs/Switch/Switch.tsx +0 -18
  407. package/src/components/Inputs/index.ts +0 -1
  408. package/src/components/ItemComposition/Item.tsx +0 -41
  409. package/src/components/ItemComposition/ItemComposition.stories.tsx +0 -78
  410. package/src/components/ItemComposition/ItemComposition.styles.ts +0 -26
  411. package/src/components/ItemComposition/ItemComposition.tsx +0 -45
  412. package/src/components/ItemComposition/index.ts +0 -6
  413. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  414. package/src/components/Layout/AreaIndicator.tsx +0 -35
  415. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  416. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -40
  417. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  418. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -15
  419. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  420. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  421. package/src/components/Layout/PageLayout/index.ts +0 -10
  422. package/src/components/Layout/index.ts +0 -1
  423. package/src/components/List/Item/Avatar.tsx +0 -21
  424. package/src/components/List/Item/AvatarSkeleton.tsx +0 -17
  425. package/src/components/List/Item/ListItem.stories.tsx +0 -41
  426. package/src/components/List/Item/ListItem.styles.ts +0 -57
  427. package/src/components/List/Item/ListItem.tsx +0 -32
  428. package/src/components/List/Item/Text.tsx +0 -25
  429. package/src/components/List/Item/TextSkeleton.tsx +0 -22
  430. package/src/components/List/Item/index.ts +0 -14
  431. package/src/components/List/List.stories.tsx +0 -70
  432. package/src/components/List/List.styles.ts +0 -8
  433. package/src/components/List/List.tsx +0 -19
  434. package/src/components/List/index.ts +0 -6
  435. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  436. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  437. package/src/components/Menu/Button/MenuButton.tsx +0 -62
  438. package/src/components/Menu/Button/index.ts +0 -1
  439. package/src/components/Menu/Menu.stories.tsx +0 -71
  440. package/src/components/Menu/Menu.styles.ts +0 -70
  441. package/src/components/Menu/Menu.tsx +0 -25
  442. package/src/components/Menu/MenuDivider.tsx +0 -13
  443. package/src/components/Menu/MenuItem.tsx +0 -36
  444. package/src/components/Menu/MenuItems.tsx +0 -35
  445. package/src/components/Menu/index.ts +0 -12
  446. package/src/components/Menu/useMenu.tsx +0 -79
  447. package/src/components/Modal/Modal.stories.tsx +0 -142
  448. package/src/components/Modal/Modal.styles.ts +0 -87
  449. package/src/components/Modal/Modal.tsx +0 -79
  450. package/src/components/Modal/ModalActions.tsx +0 -62
  451. package/src/components/Modal/ModalBody.tsx +0 -15
  452. package/src/components/Modal/ModalHeader.tsx +0 -21
  453. package/src/components/Modal/index.ts +0 -12
  454. package/src/components/README.md +0 -3
  455. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  456. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  457. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  458. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  459. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  460. package/src/components/Tooltip/Tooltip.styles.ts +0 -5
  461. package/src/components/Tooltip/Tooltip.tsx +0 -46
  462. package/src/components/Tooltip/index.ts +0 -1
  463. package/src/components/index.ts +0 -13
  464. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  465. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  466. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  467. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  468. package/src/utils/centreonBaseURL.ts +0 -4
  469. package/src/utils/docsURL.ts +0 -31
  470. package/src/utils/index.ts +0 -22
  471. package/src/utils/panelSize.ts +0 -15
  472. package/src/utils/sanitizedHTML.ts +0 -18
  473. package/src/utils/translatedLabel.ts +0 -2
  474. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  475. package/src/utils/useInfiniteScrollListing.ts +0 -106
  476. package/src/utils/useLicenseExpirationWarning.cypress.spec.tsx +0 -137
  477. package/src/utils/useLicenseExpirationWarning.ts +0 -52
  478. package/src/utils/useRefreshInterval.ts +0 -21
  479. package/src/utils/useResizeObserver.ts +0 -6
  480. package/src/utils/useThresholds.ts +0 -0
  481. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  482. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  483. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  484. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  485. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  486. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  487. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  488. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  489. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  490. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  491. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  492. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  493. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  494. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  495. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  496. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  497. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  498. /package/src/Typography/{story.utils.tsx → index.tsx} +0 -0
@@ -18,46 +18,50 @@ import {
18
18
  map,
19
19
  not,
20
20
  pick,
21
- pluck,
22
21
  prop,
23
22
  propEq,
24
- reduce,
25
23
  reject,
26
24
  slice,
27
25
  subtract,
28
26
  uniqBy
29
27
  } from 'ramda';
30
28
  import { useTranslation } from 'react-i18next';
31
- import { useAtomValue } from 'jotai';
29
+ import { makeStyles } from 'tss-react/mui';
32
30
 
33
- 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';
34
39
 
35
40
  import { ListingVariant } from '@centreon/ui-context';
36
41
 
37
- import { useKeyObserver, useMemoComponent } from '../utils';
42
+ import useKeyObserver from '../utils/useKeyObserver';
43
+ import useMemoComponent from '../utils/useMemoComponent';
38
44
 
39
45
  import ListingActionBar from './ActionBar';
40
46
  import Cell from './Cell';
41
47
  import DataCell from './Cell/DataCell';
42
48
  import Checkbox from './Checkbox';
43
49
  import getCumulativeOffset from './getCumulativeOffset';
50
+ import ListingHeader, { headerHeight } from './Header/index';
44
51
  import {
45
52
  Column,
46
53
  ColumnConfiguration,
47
54
  PredefinedRowSelection,
48
55
  RowColorCondition,
49
56
  RowId,
50
- SortOrder
57
+ SortOrder,
58
+ TableStyleAtom as TableStyle
51
59
  } from './models';
52
- import ListingRow from './Row/Row';
60
+ import ListingRow from './Row';
61
+ import ListingLoadingSkeleton from './Skeleton';
53
62
  import { labelNoResultFound } from './translatedLabels';
54
63
  import useResizeObserver from './useResizeObserver';
55
64
  import useStyleTable from './useStyleTable';
56
- import { loadingIndicatorHeight, useListingStyles } from './Listing.styles';
57
- import { EmptyResult } from './EmptyResult/EmptyResult';
58
- import { SkeletonLoader } from './Row/SkeletonLoaderRows';
59
- import { ListingHeader } from './Header';
60
- import { subItemsPivotsAtom } from './tableAtoms';
61
65
 
62
66
  const getVisibleColumns = ({
63
67
  columnConfiguration,
@@ -74,6 +78,88 @@ const getVisibleColumns = ({
74
78
  ) as Array<Column>;
75
79
  };
76
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
+
77
163
  interface CustomStyle {
78
164
  customStyleViewerModeContainer?: string;
79
165
  customStyleViewerModeIcon?: string;
@@ -102,7 +188,6 @@ export interface Props<TRow> {
102
188
  headerMemoProps?: Array<unknown>;
103
189
  innerScrollDisabled?: boolean;
104
190
  limit?: number;
105
- listingVariant?: ListingVariant;
106
191
  loading?: boolean;
107
192
  moveTablePagination?: boolean;
108
193
  onLimitChange?: (limit) => void;
@@ -111,7 +196,7 @@ export interface Props<TRow> {
111
196
  onRowClick?: (row: TRow) => void;
112
197
  onSelectColumns?: (selectedColumnIds: Array<string>) => void;
113
198
  onSelectRows?: (rows: Array<TRow>) => void;
114
- onSort?: (sortParams: { sortField: string; sortOrder: SortOrder }) => void;
199
+ onSort?: (sortParams) => void;
115
200
  paginated?: boolean;
116
201
  predefinedRowsSelection?: Array<PredefinedRowSelection>;
117
202
  rowColorConditions?: Array<RowColorCondition>;
@@ -119,16 +204,9 @@ export interface Props<TRow> {
119
204
  selectedRows?: Array<TRow>;
120
205
  sortField?: string;
121
206
  sortOrder?: SortOrder;
122
- subItems?: {
123
- canCheckSubItems: boolean;
124
- enable: boolean;
125
- labelCollapse: string;
126
- labelExpand: string;
127
- rowProperty: string;
128
- };
129
207
  totalRows?: number;
208
+ viewMode?: ListingVariant;
130
209
  viewerModeConfiguration?: ViewerModeConfiguration;
131
- visualizationActions?: JSX.Element;
132
210
  widthToMoveTablePagination?: number;
133
211
  }
134
212
 
@@ -140,7 +218,6 @@ export const performanceRowsLimit = 60;
140
218
 
141
219
  const Listing = <TRow extends { id: RowId }>({
142
220
  limit = 10,
143
- visualizationActions,
144
221
  columns,
145
222
  columnConfiguration = defaultColumnConfiguration,
146
223
  customPaginationClassName,
@@ -170,17 +247,10 @@ const Listing = <TRow extends { id: RowId }>({
170
247
  predefinedRowsSelection = [],
171
248
  actionsBarMemoProps = [],
172
249
  moveTablePagination,
173
- listingVariant = ListingVariant.compact,
250
+ viewMode = ListingVariant.compact,
174
251
  widthToMoveTablePagination,
175
252
  getHighlightRowCondition,
176
- viewerModeConfiguration,
177
- subItems = {
178
- canCheckSubItems: false,
179
- enable: false,
180
- labelCollapse: 'Collapse',
181
- labelExpand: 'Expand',
182
- rowProperty: ''
183
- }
253
+ viewerModeConfiguration
184
254
  }: Props<TRow>): JSX.Element => {
185
255
  const currentVisibleColumns = getVisibleColumns({
186
256
  columnConfiguration,
@@ -189,9 +259,17 @@ const Listing = <TRow extends { id: RowId }>({
189
259
  const { dataStyle, getGridTemplateColumn } = useStyleTable({
190
260
  checkable,
191
261
  currentVisibleColumns,
192
- listingVariant
262
+ viewMode
193
263
  });
194
264
 
265
+ const { classes } = useStyles({
266
+ checkable,
267
+ currentVisibleColumns,
268
+ dataStyle,
269
+ getGridTemplateColumn,
270
+ rows,
271
+ viewMode
272
+ });
195
273
  const { t } = useTranslation();
196
274
 
197
275
  const [tableTopOffset, setTableTopOffset] = React.useState(0);
@@ -205,36 +283,7 @@ const Listing = <TRow extends { id: RowId }>({
205
283
  const containerRef = React.useRef<HTMLDivElement>();
206
284
  const actionBarRef = React.useRef<HTMLDivElement>();
207
285
 
208
- const subItemsPivots = useAtomValue(subItemsPivotsAtom);
209
-
210
- const rowsToDisplay = React.useMemo(
211
- () =>
212
- subItems?.enable
213
- ? reduce<TRow, Array<TRow>>(
214
- (acc, row): Array<TRow> => {
215
- if (
216
- row[subItems.rowProperty] &&
217
- subItemsPivots.includes(row.id)
218
- ) {
219
- return [...acc, row, ...row[subItems.rowProperty]];
220
- }
221
-
222
- return [...acc, row];
223
- },
224
- [],
225
- rows
226
- )
227
- : rows,
228
- [rows, subItemsPivots, subItems]
229
- );
230
-
231
- const { classes, theme } = useListingStyles({
232
- dataStyle,
233
- getGridTemplateColumn,
234
- limit,
235
- listingVariant,
236
- rows: rowsToDisplay
237
- });
286
+ const theme = useTheme();
238
287
 
239
288
  useResizeObserver({
240
289
  onResize: () => {
@@ -441,9 +490,9 @@ const Listing = <TRow extends { id: RowId }>({
441
490
 
442
491
  return `calc(100vh - ${tableTopOffset}px - ${
443
492
  actionBarRef.current?.offsetHeight
444
- }px - ${
445
- dataStyle.header.height
446
- }px - ${loadingIndicatorHeight}px - ${theme.spacing(1)})`;
493
+ }px - ${headerHeight}px - ${loadingIndicatorHeight}px - ${theme.spacing(
494
+ 1
495
+ )})`;
447
496
  };
448
497
 
449
498
  const changeLimit = (updatedLimit: string): void => {
@@ -466,19 +515,6 @@ const Listing = <TRow extends { id: RowId }>({
466
515
 
467
516
  const areColumnsEditable = not(isNil(onSelectColumns));
468
517
 
469
- const allSubItemIds = React.useMemo(
470
- () =>
471
- reduce<TRow | number, Array<string | number>>(
472
- (acc, row) => [
473
- ...acc,
474
- ...pluck('id', row[subItems?.rowProperty || ''] || [])
475
- ],
476
- [],
477
- rows
478
- ),
479
- [rows, subItems]
480
- );
481
-
482
518
  return (
483
519
  <>
484
520
  {loading && rows.length > 0 && (
@@ -503,12 +539,11 @@ const Listing = <TRow extends { id: RowId }>({
503
539
  currentPage={currentPage}
504
540
  customPaginationClassName={customPaginationClassName}
505
541
  limit={limit}
506
- listingVariant={listingVariant}
507
542
  moveTablePagination={moveTablePagination}
508
543
  paginated={paginated}
509
544
  totalRows={totalRows}
545
+ viewMode={viewMode}
510
546
  viewerModeConfiguration={viewerModeConfiguration}
511
- visualizationActions={visualizationActions}
512
547
  widthToMoveTablePagination={widthToMoveTablePagination}
513
548
  onLimitChange={changeLimit}
514
549
  onPaginate={onPaginate}
@@ -535,13 +570,13 @@ const Listing = <TRow extends { id: RowId }>({
535
570
  checkable={checkable}
536
571
  columnConfiguration={columnConfiguration}
537
572
  columns={columns}
538
- listingVariant={listingVariant}
539
573
  memoProps={headerMemoProps}
540
574
  predefinedRowsSelection={predefinedRowsSelection}
541
575
  rowCount={limit - emptyRows}
542
576
  selectedRowCount={selectedRows.length}
543
577
  sortField={sortField}
544
578
  sortOrder={sortOrder}
579
+ viewMode={viewMode}
545
580
  onSelectAllClick={selectAllRows}
546
581
  onSelectColumns={onSelectColumns}
547
582
  onSelectRowsWithCondition={onSelectRowsWithCondition}
@@ -553,16 +588,14 @@ const Listing = <TRow extends { id: RowId }>({
553
588
  component="div"
554
589
  onMouseLeave={clearHoveredRow}
555
590
  >
556
- {rowsToDisplay.map((row, index) => {
591
+ {rows.map((row, index) => {
557
592
  const isRowSelected = isSelected(row);
593
+
558
594
  const isRowHovered = equals(hoveredRowId, getId(row));
559
- const isSubItem = allSubItemIds.includes(row.id);
560
595
 
561
596
  return (
562
597
  <ListingRow
563
- checkable={
564
- checkable && (!isSubItem || subItems.canCheckSubItems)
565
- }
598
+ checkable={checkable}
566
599
  columnConfiguration={columnConfiguration}
567
600
  columnIds={columns.map(prop('id'))}
568
601
  disableRowCondition={disableRowCondition}
@@ -576,12 +609,11 @@ const Listing = <TRow extends { id: RowId }>({
576
609
  }
577
610
  lastSelectionIndex={lastSelectionIndex}
578
611
  limit={limit}
579
- listingVariant={listingVariant}
580
612
  row={row}
581
613
  rowColorConditions={rowColorConditions}
582
614
  shiftKeyDownRowPivot={shiftKeyDownRowPivot}
583
- subItemsPivots={subItemsPivots}
584
615
  tabIndex={-1}
616
+ viewMode={viewMode}
585
617
  visibleColumns={visibleColumns}
586
618
  onClick={(): void => {
587
619
  onRowClick(row);
@@ -589,64 +621,66 @@ const Listing = <TRow extends { id: RowId }>({
589
621
  onFocus={(): void => hoverRow(row)}
590
622
  onMouseOver={(): void => hoverRow(row)}
591
623
  >
592
- {checkable &&
593
- (!isSubItem || subItems.canCheckSubItems ? (
594
- <Cell
595
- align="left"
596
- className={classes.checkbox}
597
- disableRowCondition={disableRowCondition}
598
- isRowHovered={isRowHovered}
599
- row={row}
600
- rowColorConditions={rowColorConditions}
601
- onClick={(event): void => selectRow(event, row)}
602
- >
603
- <Checkbox
604
- checked={isRowSelected}
605
- disabled={
606
- disableRowCheckCondition(row) ||
607
- disableRowCondition(row)
608
- }
609
- inputProps={{
610
- 'aria-label': `Select row ${getId(row)}`
611
- }}
612
- />
613
- </Cell>
614
- ) : (
615
- <Cell
616
- align="left"
617
- disableRowCondition={disableRowCondition}
618
- isRowHovered={isRowHovered}
619
- row={row}
620
- rowColorConditions={rowColorConditions}
624
+ {checkable && (
625
+ <Cell
626
+ align="left"
627
+ className={classes.checkbox}
628
+ disableRowCondition={disableRowCondition}
629
+ isRowHovered={isRowHovered}
630
+ row={row}
631
+ rowColorConditions={rowColorConditions}
632
+ onClick={(event): void => selectRow(event, row)}
633
+ >
634
+ <Checkbox
635
+ checked={isRowSelected}
636
+ disabled={
637
+ disableRowCheckCondition(row) ||
638
+ disableRowCondition(row)
639
+ }
640
+ inputProps={{
641
+ 'aria-label': `Select row ${getId(row)}`
642
+ }}
621
643
  />
622
- ))}
644
+ </Cell>
645
+ )}
623
646
 
624
647
  {visibleColumns.map((column) => (
625
648
  <DataCell
649
+ areColumnsEditable={areColumnsEditable}
626
650
  column={column}
627
651
  disableRowCondition={disableRowCondition}
628
652
  getHighlightRowCondition={getHighlightRowCondition}
629
653
  isRowHovered={isRowHovered}
630
654
  isRowSelected={isRowSelected}
631
655
  key={`${getId(row)}-${column.id}`}
632
- labelCollapse={subItems.labelCollapse}
633
- labelExpand={subItems.labelExpand}
634
- listingVariant={listingVariant}
635
656
  row={row}
636
657
  rowColorConditions={rowColorConditions}
637
- subItemsRowProperty={subItems?.rowProperty}
658
+ viewMode={viewMode}
638
659
  />
639
660
  ))}
640
661
  </ListingRow>
641
662
  );
642
663
  })}
643
-
644
- {rows.length < 1 &&
645
- (loading ? (
646
- <SkeletonLoader rows={limit} />
647
- ) : (
648
- <EmptyResult label={t(labelNoResultFound)} />
649
- ))}
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
+ )}
650
684
  </TableBody>
651
685
  </Table>
652
686
  </Box>
@@ -677,7 +711,7 @@ export const MemoizedListing = <TRow extends { id: string | number }>({
677
711
  columnConfiguration,
678
712
  moveTablePagination,
679
713
  widthToMoveTablePagination,
680
- listingVariant,
714
+ viewMode,
681
715
  ...props
682
716
  }: MemoizedListingProps<TRow>): JSX.Element =>
683
717
  useMemoComponent({
@@ -689,7 +723,6 @@ export const MemoizedListing = <TRow extends { id: string | number }>({
689
723
  currentPage={currentPage}
690
724
  innerScrollDisabled={innerScrollDisabled}
691
725
  limit={limit}
692
- listingVariant={listingVariant}
693
726
  loading={loading}
694
727
  moveTablePagination={moveTablePagination}
695
728
  paginated={paginated}
@@ -699,6 +732,7 @@ export const MemoizedListing = <TRow extends { id: string | number }>({
699
732
  sortField={sortField}
700
733
  sortOrder={sortOrder}
701
734
  totalRows={totalRows}
735
+ viewMode={viewMode}
702
736
  widthToMoveTablePagination={widthToMoveTablePagination}
703
737
  {...props}
704
738
  />
@@ -722,7 +756,7 @@ export const MemoizedListing = <TRow extends { id: string | number }>({
722
756
  sortOrder,
723
757
  sortField,
724
758
  innerScrollDisabled,
725
- listingVariant
759
+ viewMode
726
760
  ]
727
761
  });
728
762
 
@@ -19,7 +19,6 @@ export interface Column {
19
19
  compact?: boolean;
20
20
  disablePadding?: boolean;
21
21
  disabled?: boolean;
22
- displaySubItemsCaret?: boolean;
23
22
  getColSpan?: (isSelected) => number | undefined;
24
23
  getFormattedString?: (row) => string | null;
25
24
  getHiddenCondition?: (isSelected) => boolean;
@@ -32,19 +32,14 @@ export const tableStyleAtom = atom<TableStyleAtom>({
32
32
  }
33
33
  });
34
34
 
35
- export const tableStyleDerivedAtom = atom(
36
- null,
37
- (get, set, { listingVariant }) => {
38
- const tableStyle = get(tableStyleAtom);
39
-
40
- const isExtendedMode = equals(listingVariant, ListingVariant.extended);
41
-
42
- set(tableStyleAtom, {
43
- ...tableStyle,
44
- body: isExtendedMode ? extendedTableBody : compactTableBody,
45
- header: isExtendedMode ? extendedTableHeader : compactTableHeader
46
- });
47
- }
48
- );
35
+ export const tableStyleDerivedAtom = atom(null, (get, set, { viewMode }) => {
36
+ const tableStyle = get(tableStyleAtom);
37
+
38
+ const isExtendedMode = equals(viewMode, ListingVariant.extended);
49
39
 
50
- export const subItemsPivotsAtom = atom<Array<number | string>>([]);
40
+ set(tableStyleAtom, {
41
+ ...tableStyle,
42
+ body: isExtendedMode ? extendedTableBody : compactTableBody,
43
+ header: isExtendedMode ? extendedTableHeader : compactTableHeader
44
+ });
45
+ });
@@ -14,7 +14,7 @@ import { tableStyleAtom, tableStyleDerivedAtom } from './tableAtoms';
14
14
  interface TableStyle {
15
15
  checkable?: boolean;
16
16
  currentVisibleColumns?: Array<Column>;
17
- listingVariant?: ListingVariant;
17
+ viewMode?: ListingVariant;
18
18
  }
19
19
 
20
20
  interface TableStyleState {
@@ -27,30 +27,30 @@ const isCompactMode = equals<ListingVariant | undefined>(
27
27
  );
28
28
 
29
29
  interface GetTextStyleProps {
30
- listingVariant?: ListingVariant;
31
30
  theme: Theme;
31
+ viewMode?: ListingVariant;
32
32
  }
33
33
 
34
34
  export const getTextStyleByViewMode = ({
35
- listingVariant,
35
+ viewMode,
36
36
  theme
37
37
  }: GetTextStyleProps): CSSObject =>
38
38
  pick(
39
39
  ['color', 'fontSize', 'lineHeight'],
40
- theme.typography[isCompactMode(listingVariant) ? 'body2' : 'body1']
40
+ theme.typography[isCompactMode(viewMode) ? 'body2' : 'body1']
41
41
  );
42
42
 
43
43
  const useStyleTable = ({
44
44
  checkable,
45
45
  currentVisibleColumns,
46
- listingVariant
46
+ viewMode
47
47
  }: TableStyle): TableStyleState => {
48
48
  const dataStyle = useAtomValue(tableStyleAtom);
49
49
 
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 }) => {
@@ -69,10 +69,10 @@ const useStyleTable = ({
69
69
  };
70
70
 
71
71
  useEffect(() => {
72
- if (listingVariant) {
73
- updateStyleTable({ listingVariant });
72
+ if (viewMode) {
73
+ updateStyleTable({ viewMode });
74
74
  }
75
- }, [listingVariant]);
75
+ }, [viewMode]);
76
76
 
77
77
  return {
78
78
  dataStyle,
@@ -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