@centreon/ui 24.4.59 → 24.4.60

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