@centreon/ui 24.4.60 → 24.4.62

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