@centreon/ui 24.4.18 → 24.4.20

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 (549) 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 +34 -104
  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.tsx +3 -12
  10. package/src/Button/Save/Content.tsx +9 -26
  11. package/src/Button/Save/StartIcon.tsx +3 -3
  12. package/src/Button/Save/index.stories.tsx +5 -10
  13. package/src/Button/Save/index.tsx +4 -11
  14. package/src/Dialog/Confirm/index.tsx +4 -17
  15. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  16. package/src/Dialog/index.tsx +2 -14
  17. package/src/FallbackPage/FallbackPage.tsx +5 -5
  18. package/src/FileDropZone/index.tsx +2 -4
  19. package/src/Form/CollapsibleGroup.tsx +5 -15
  20. package/src/Form/FormButtons.tsx +4 -2
  21. package/src/Form/Inputs/Autocomplete.tsx +1 -1
  22. package/src/Form/Inputs/ConnectedAutocomplete.tsx +1 -3
  23. package/src/Form/Inputs/Grid.tsx +2 -4
  24. package/src/Form/Inputs/Radio.tsx +5 -16
  25. package/src/Form/Inputs/Switch.tsx +1 -1
  26. package/src/Form/Inputs/Text.tsx +7 -18
  27. package/src/Form/Inputs/index.tsx +16 -34
  28. package/src/Form/Inputs/models.ts +4 -28
  29. package/src/Form/{Form.stories.tsx → index.stories.tsx} +3 -2
  30. package/src/Form/{Form.tsx → index.tsx} +16 -38
  31. package/src/Form/storiesData.tsx +3 -50
  32. package/src/Home.stories.mdx +84 -1
  33. package/src/Image/Image.tsx +1 -11
  34. package/src/Image/index.stories.tsx +2 -2
  35. package/src/Image/index.test.tsx +3 -3
  36. package/src/InputField/Search/PersistentTooltip.tsx +6 -10
  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 +12 -44
  41. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  42. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +1 -1
  43. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +2 -0
  44. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +1 -1
  45. package/src/InputField/Select/Autocomplete/Multi/index.tsx +15 -32
  46. package/src/InputField/Select/Autocomplete/index.stories.tsx +10 -1
  47. package/src/InputField/Select/Autocomplete/index.tsx +2 -5
  48. package/src/InputField/Select/IconPopover/index.tsx +2 -2
  49. package/src/InputField/Select/index.tsx +2 -3
  50. package/src/InputField/Text/index.tsx +9 -19
  51. package/src/Listing/ActionBar/index.tsx +8 -15
  52. package/src/Listing/Cell/DataCell.tsx +69 -58
  53. package/src/Listing/Cell/index.tsx +8 -88
  54. package/src/Listing/Header/{_internals/PredefinedSelectionList.tsx → PredefinedSelectionList.tsx} +1 -1
  55. package/src/Listing/Header/{Cell/ListingHeaderCell.tsx → SortableCell/Content.tsx} +83 -18
  56. package/src/Listing/Header/SortableCell/DraggableIcon.tsx +41 -0
  57. package/src/Listing/Header/{ListingHeader.tsx → index.tsx} +106 -29
  58. package/src/Listing/{Row/Row.tsx → Row.tsx} +11 -12
  59. package/src/Listing/Skeleton.tsx +11 -0
  60. package/src/Listing/index.stories.tsx +40 -155
  61. package/src/Listing/index.test.tsx +1 -1
  62. package/src/Listing/index.tsx +263 -217
  63. package/src/Listing/models.ts +0 -1
  64. package/src/Listing/tableAtoms.ts +10 -15
  65. package/src/Listing/useStyleTable.ts +9 -9
  66. package/src/ListingPage/index.stories.tsx +8 -21
  67. package/src/ListingPage/index.tsx +38 -20
  68. package/src/Logo/CentreonLogo.tsx +2 -2
  69. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  70. package/src/Module/LicensedModule/LicenseCheck/index.tsx +10 -25
  71. package/src/Module/LicensedModule/index.tsx +1 -7
  72. package/src/Module/index.tsx +4 -2
  73. package/src/Panel/Memoized.tsx +1 -1
  74. package/src/Panel/Section/index.test.tsx +1 -1
  75. package/src/Panel/Section/index.tsx +1 -1
  76. package/src/Panel/index.tsx +6 -10
  77. package/src/PopoverMenu/index.tsx +4 -18
  78. package/src/RichTextEditor/ContentEditable.tsx +24 -70
  79. package/src/RichTextEditor/RichTextEditor.tsx +47 -172
  80. package/src/RichTextEditor/index.stories.tsx +0 -14
  81. package/src/RichTextEditor/plugins/AutoLinkPlugin/index.tsx +5 -53
  82. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +16 -54
  83. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +92 -31
  84. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +3 -13
  85. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +10 -35
  86. package/src/RichTextEditor/translatedLabels.ts +0 -3
  87. package/src/Snackbar/index.tsx +4 -14
  88. package/src/Snackbar/useSnackbar.tsx +1 -5
  89. package/src/SortableItems/SortableItem.tsx +2 -3
  90. package/src/SortableItems/index.tsx +7 -2
  91. package/src/ThemeProvider/index.tsx +10 -42
  92. package/src/ThemeProvider/palettes.ts +201 -422
  93. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  94. package/src/WallpaperPage/index.stories.tsx +1 -1
  95. package/src/Wizard/ActionsBar.test.tsx +1 -1
  96. package/src/Wizard/WizardContent.tsx +3 -2
  97. package/src/Wizard/index.stories.tsx +18 -5
  98. package/src/Wizard/index.test.tsx +1 -1
  99. package/src/Wizard/index.tsx +5 -20
  100. package/src/Wizard/models.ts +0 -7
  101. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  102. package/src/api/QueryProvider.tsx +1 -1
  103. package/src/api/TestQueryProvider.tsx +1 -2
  104. package/src/api/buildListingEndpoint/getSearchQueryParameterValue.ts +26 -35
  105. package/src/api/buildListingEndpoint/index.test.ts +2 -2
  106. package/src/api/buildListingEndpoint/index.ts +1 -1
  107. package/src/api/buildListingEndpoint/models.ts +2 -2
  108. package/src/api/customFetch.ts +3 -22
  109. package/src/api/useFetchQuery/index.ts +37 -56
  110. package/src/api/useMutationQuery/index.ts +22 -70
  111. package/src/api/useRequest/index.ts +6 -9
  112. package/src/index.ts +21 -31
  113. package/src/queryParameters/url/index.ts +1 -5
  114. package/src/storyshots.test.js +52 -0
  115. package/{test → src}/testRenderer.tsx +1 -1
  116. package/src/utils/getNormalizedId.ts +3 -1
  117. package/src/utils/useCopyToClipboard.ts +3 -2
  118. package/src/utils/useDebounce.ts +5 -8
  119. package/src/utils/useDeepCallback.ts +3 -1
  120. package/src/utils/useDeepMemo.ts +3 -1
  121. package/src/utils/useIntersectionObserver.ts +5 -5
  122. package/src/utils/useKeyObserver.tsx +3 -1
  123. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  124. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -4
  125. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  126. package/src/utils/useMemoComponent.ts +1 -1
  127. package/testRunner.js +36 -0
  128. package/tsconfig.json +29 -0
  129. package/types/declarations.d.ts +9 -0
  130. package/public/README.md +0 -39
  131. package/public/mockServiceWorker.js +0 -303
  132. package/src/@assets/README.md +0 -5
  133. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  134. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  135. package/src/@assets/icons/downtime.icon.svg +0 -1
  136. package/src/@types/aria-attributes.d.ts +0 -10
  137. package/src/@types/data-attributes.d.ts +0 -3
  138. package/src/@types/globals.d.ts +0 -9
  139. package/src/@types/vite-env.d.ts +0 -2
  140. package/src/ActionsList/ActionsList.styles.ts +0 -116
  141. package/src/ActionsList/models.ts +0 -8
  142. package/src/Checkbox/Checkbox.tsx +0 -109
  143. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  144. package/src/Checkbox/CheckboxGroup/index.tsx +0 -75
  145. package/src/Checkbox/index.stories.tsx +0 -39
  146. package/src/Checkbox/index.tsx +0 -2
  147. package/src/Dashboard/Dashboard.styles.ts +0 -108
  148. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  149. package/src/Dashboard/Grid.tsx +0 -70
  150. package/src/Dashboard/Item.tsx +0 -100
  151. package/src/Dashboard/Layout.tsx +0 -79
  152. package/src/Dashboard/index.tsx +0 -9
  153. package/src/Dashboard/utils.ts +0 -28
  154. package/src/Form/Form.cypress.spec.tsx +0 -133
  155. package/src/Form/Form.styles.ts +0 -11
  156. package/src/Form/Inputs/Checkbox.tsx +0 -57
  157. package/src/Form/Inputs/CheckboxGroup.tsx +0 -73
  158. package/src/Form/Inputs/List/Content.tsx +0 -62
  159. package/src/Form/Inputs/List/List.styles.ts +0 -29
  160. package/src/Form/Inputs/List/List.tsx +0 -58
  161. package/src/Form/Inputs/List/useList.ts +0 -81
  162. package/src/Form/index.ts +0 -1
  163. package/src/Graph/Gauge/AnimatedPie.tsx +0 -102
  164. package/src/Graph/Gauge/Gauge.stories.tsx +0 -159
  165. package/src/Graph/Gauge/Gauge.tsx +0 -41
  166. package/src/Graph/Gauge/PieData.tsx +0 -63
  167. package/src/Graph/Gauge/ResponsiveGauge.tsx +0 -148
  168. package/src/Graph/Gauge/Thresholds.tsx +0 -117
  169. package/src/Graph/Gauge/index.ts +0 -1
  170. package/src/Graph/Gauge/models.ts +0 -20
  171. package/src/Graph/HeatMap/HeatMap.stories.tsx +0 -105
  172. package/src/Graph/HeatMap/HeatMap.styles.tsx +0 -29
  173. package/src/Graph/HeatMap/HeatMap.tsx +0 -12
  174. package/src/Graph/HeatMap/HeatMapData.json +0 -137
  175. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +0 -98
  176. package/src/Graph/HeatMap/index.ts +0 -1
  177. package/src/Graph/HeatMap/model.ts +0 -33
  178. package/src/Graph/LineChart/BasicComponents/Axes/UnitLabel.tsx +0 -20
  179. package/src/Graph/LineChart/BasicComponents/Axes/index.tsx +0 -88
  180. package/src/Graph/LineChart/BasicComponents/Axes/models.ts +0 -26
  181. package/src/Graph/LineChart/BasicComponents/Axes/useAxisY.ts +0 -100
  182. package/src/Graph/LineChart/BasicComponents/Grids/index.tsx +0 -20
  183. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/index.tsx +0 -99
  184. package/src/Graph/LineChart/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  185. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/index.tsx +0 -81
  186. package/src/Graph/LineChart/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  187. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -53
  188. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  189. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -78
  190. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -63
  191. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  192. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/index.tsx +0 -143
  193. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/models.ts +0 -105
  194. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  195. package/src/Graph/LineChart/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  196. package/src/Graph/LineChart/BasicComponents/Lines/index.tsx +0 -189
  197. package/src/Graph/LineChart/BasicComponents/Lines/models.ts +0 -45
  198. package/src/Graph/LineChart/BasicComponents/LoadingProgress.tsx +0 -46
  199. package/src/Graph/LineChart/BasicComponents/ThresholdLine.tsx +0 -64
  200. package/src/Graph/LineChart/BasicComponents/Thresholds.tsx +0 -77
  201. package/src/Graph/LineChart/BasicComponents/useFilterLines.ts +0 -60
  202. package/src/Graph/LineChart/Header/index.tsx +0 -65
  203. package/src/Graph/LineChart/Icons/Downtime.tsx +0 -9
  204. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  205. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  206. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  207. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -96
  208. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  209. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/models.ts +0 -62
  210. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  211. package/src/Graph/LineChart/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  212. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  213. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  214. package/src/Graph/LineChart/InteractiveComponents/Annotations/Annotation/index.tsx +0 -80
  215. package/src/Graph/LineChart/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  216. package/src/Graph/LineChart/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  217. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  218. package/src/Graph/LineChart/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  219. package/src/Graph/LineChart/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  220. package/src/Graph/LineChart/InteractiveComponents/Annotations/index.tsx +0 -49
  221. package/src/Graph/LineChart/InteractiveComponents/Annotations/models.ts +0 -25
  222. package/src/Graph/LineChart/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  223. package/src/Graph/LineChart/InteractiveComponents/Bar.tsx +0 -21
  224. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  225. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  226. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  227. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  228. package/src/Graph/LineChart/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  229. package/src/Graph/LineChart/InteractiveComponents/Tooltip/index.tsx +0 -59
  230. package/src/Graph/LineChart/InteractiveComponents/Tooltip/models.ts +0 -9
  231. package/src/Graph/LineChart/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  232. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  233. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/models.ts +0 -9
  234. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  235. package/src/Graph/LineChart/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  236. package/src/Graph/LineChart/InteractiveComponents/index.tsx +0 -168
  237. package/src/Graph/LineChart/InteractiveComponents/interactionWithGraphAtoms.ts +0 -52
  238. package/src/Graph/LineChart/Legend/InteractiveValue.tsx +0 -22
  239. package/src/Graph/LineChart/Legend/Legend.styles.ts +0 -117
  240. package/src/Graph/LineChart/Legend/LegendContent.tsx +0 -33
  241. package/src/Graph/LineChart/Legend/LegendHeader.tsx +0 -93
  242. package/src/Graph/LineChart/Legend/index.tsx +0 -201
  243. package/src/Graph/LineChart/Legend/models.ts +0 -16
  244. package/src/Graph/LineChart/Legend/useInteractiveValues.ts +0 -99
  245. package/src/Graph/LineChart/Legend/useLegend.ts +0 -104
  246. package/src/Graph/LineChart/LineChart.styles.ts +0 -45
  247. package/src/Graph/LineChart/LineChart.tsx +0 -317
  248. package/src/Graph/LineChart/LoadingSkeleton.tsx +0 -44
  249. package/src/Graph/LineChart/common/index.ts +0 -35
  250. package/src/Graph/LineChart/graphAtoms.ts +0 -3
  251. package/src/Graph/LineChart/helpers/doc.ts +0 -563
  252. package/src/Graph/LineChart/helpers/index.ts +0 -63
  253. package/src/Graph/LineChart/index.stories.tsx +0 -480
  254. package/src/Graph/LineChart/index.tsx +0 -115
  255. package/src/Graph/LineChart/mockedData/annotationData.json +0 -326
  256. package/src/Graph/LineChart/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  257. package/src/Graph/LineChart/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  258. package/src/Graph/LineChart/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  259. package/src/Graph/LineChart/mockedData/lastDay.json +0 -1326
  260. package/src/Graph/LineChart/mockedData/lastDayAreaStack.json +0 -3106
  261. package/src/Graph/LineChart/mockedData/lastDayForward.json +0 -1338
  262. package/src/Graph/LineChart/mockedData/lastDayThreshold.json +0 -2352
  263. package/src/Graph/LineChart/mockedData/lastMonth.json +0 -1674
  264. package/src/Graph/LineChart/mockedData/lastWeek.json +0 -2202
  265. package/src/Graph/LineChart/mockedData/zoomPreview.json +0 -742
  266. package/src/Graph/LineChart/models.ts +0 -146
  267. package/src/Graph/LineChart/translatedLabels.ts +0 -9
  268. package/src/Graph/LineChart/useLineChartData.ts +0 -49
  269. package/src/Graph/LineChart/useLineChartIntersection.ts +0 -36
  270. package/src/Graph/SingleBar/ResponsiveSingleBar.tsx +0 -197
  271. package/src/Graph/SingleBar/SingleBar.stories.tsx +0 -204
  272. package/src/Graph/SingleBar/SingleBar.tsx +0 -25
  273. package/src/Graph/SingleBar/ThresholdLine.tsx +0 -103
  274. package/src/Graph/SingleBar/Thresholds.tsx +0 -50
  275. package/src/Graph/SingleBar/index.ts +0 -1
  276. package/src/Graph/SingleBar/models.ts +0 -10
  277. package/src/Graph/Text/Text.stories.tsx +0 -123
  278. package/src/Graph/Text/Text.styles.ts +0 -17
  279. package/src/Graph/Text/Text.tsx +0 -91
  280. package/src/Graph/Text/index.ts +0 -1
  281. package/src/Graph/common/margins.ts +0 -1
  282. package/src/Graph/common/models.ts +0 -19
  283. package/src/Graph/common/timeSeries/index.test.ts +0 -624
  284. package/src/Graph/common/timeSeries/index.ts +0 -626
  285. package/src/Graph/common/timeSeries/models.ts +0 -129
  286. package/src/Graph/common/utils.ts +0 -75
  287. package/src/Graph/index.ts +0 -5
  288. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -127
  289. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  290. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  291. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  292. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  293. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  294. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  295. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  296. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  297. package/src/Listing/Header/index.ts +0 -1
  298. package/src/Listing/Listing.cypress.spec.tsx +0 -122
  299. package/src/Listing/Listing.styles.ts +0 -80
  300. package/src/Listing/ListingDocs.mdx +0 -61
  301. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  302. package/src/Listing/Row/EmptyRow.tsx +0 -30
  303. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  304. package/src/Module/Module.cypress.spec.tsx +0 -129
  305. package/src/ParentSize/ParentSize.tsx +0 -24
  306. package/src/ParentSize/index.ts +0 -1
  307. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -408
  308. package/src/RichTextEditor/plugins/ToolbarPlugin/AlignPicker.tsx +0 -116
  309. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +0 -155
  310. package/src/RichTextEditor/plugins/ToolbarPlugin/LinkButton.tsx +0 -106
  311. package/src/RichTextEditor/plugins/ToolbarPlugin/ListButton.tsx +0 -155
  312. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +0 -75
  313. package/src/RichTextEditor/plugins/ToolbarPlugin/ToolbarPlugin.styles.ts +0 -32
  314. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  315. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  316. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  317. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -171
  318. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  319. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -59
  320. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  321. package/src/TimePeriods/CustomTimePeriod/SimpleCustomTimePeriod.tsx +0 -28
  322. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  323. package/src/TimePeriods/DateTimePickerInput.tsx +0 -77
  324. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  325. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  326. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -486
  327. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  328. package/src/TimePeriods/helpers/index.ts +0 -26
  329. package/src/TimePeriods/index.stories.tsx +0 -121
  330. package/src/TimePeriods/index.tsx +0 -79
  331. package/src/TimePeriods/mockedData.ts +0 -12
  332. package/src/TimePeriods/models.ts +0 -97
  333. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  334. package/src/TimePeriods/translatedLabels.ts +0 -9
  335. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  336. package/src/TimePeriods/useTimePeriod.ts +0 -49
  337. package/src/Typography/EllipsisTypography.tsx +0 -18
  338. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  339. package/src/Typography/FluidTypography/index.tsx +0 -51
  340. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  341. package/src/Typography/Subtitle.tsx +0 -55
  342. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  343. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  344. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  345. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  346. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  347. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  348. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  349. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  350. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  351. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  352. package/src/api/useGraphQuery/index.ts +0 -166
  353. package/src/api/useGraphQuery/models.ts +0 -15
  354. package/src/base/tokens/README.md +0 -3
  355. package/src/base/tokens/source/$metadata.json +0 -5
  356. package/src/base/tokens/source/base.json +0 -142
  357. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  358. package/src/base/tokens/themes/base.tokens.json +0 -695
  359. package/src/base/tokens/themes/base.tokens.ts +0 -38
  360. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  361. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  362. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  363. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  364. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  365. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  366. package/src/components/Avatar/Avatar.stories.tsx +0 -23
  367. package/src/components/Avatar/Avatar.styles.ts +0 -11
  368. package/src/components/Avatar/Avatar.tsx +0 -32
  369. package/src/components/Avatar/index.ts +0 -1
  370. package/src/components/Button/Button.stories.tsx +0 -34
  371. package/src/components/Button/Button.styles.ts +0 -44
  372. package/src/components/Button/Button.tsx +0 -78
  373. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  374. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  375. package/src/components/Button/Icon/IconButton.tsx +0 -62
  376. package/src/components/Button/Icon/index.tsx +0 -1
  377. package/src/components/Button/index.ts +0 -2
  378. package/src/components/CollapsibleItem/CollapsibleItem.stories.tsx +0 -25
  379. package/src/components/CollapsibleItem/CollapsibleItem.tsx +0 -47
  380. package/src/components/CollapsibleItem/index.ts +0 -1
  381. package/src/components/CollapsibleItem/useCollapsibleItemStyles.ts +0 -15
  382. package/src/components/DataTable/DataListing.tsx +0 -6
  383. package/src/components/DataTable/DataTable.cypress.spec.tsx +0 -193
  384. package/src/components/DataTable/DataTable.stories.tsx +0 -91
  385. package/src/components/DataTable/DataTable.styles.ts +0 -30
  386. package/src/components/DataTable/DataTable.tsx +0 -35
  387. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  388. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  389. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  390. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  391. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -38
  392. package/src/components/DataTable/Item/DataTableItem.tsx +0 -123
  393. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  394. package/src/components/DataTable/index.ts +0 -12
  395. package/src/components/Form/AccessRights/AccessRights.resource.ts +0 -45
  396. package/src/components/Form/AccessRights/AccessRightsForm.stories.tsx +0 -59
  397. package/src/components/Form/AccessRights/AccessRightsForm.styles.ts +0 -21
  398. package/src/components/Form/AccessRights/AccessRightsForm.tsx +0 -67
  399. package/src/components/Form/AccessRights/AccessRightsFormActions.tsx +0 -80
  400. package/src/components/Form/AccessRights/Input/AddAction.tsx +0 -31
  401. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.stories.tsx +0 -54
  402. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.tsx +0 -72
  403. package/src/components/Form/AccessRights/Input/ContactAccessRightsInput.styles.ts +0 -22
  404. package/src/components/Form/AccessRights/Input/ContactInputField.tsx +0 -105
  405. package/src/components/Form/AccessRights/Input/RoleInputField.tsx +0 -29
  406. package/src/components/Form/AccessRights/List/ContactAccessRightsList.stories.tsx +0 -97
  407. package/src/components/Form/AccessRights/List/ContactAccessRightsList.styles.ts +0 -71
  408. package/src/components/Form/AccessRights/List/ContactAccessRightsList.tsx +0 -51
  409. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.stories.tsx +0 -116
  410. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.tsx +0 -118
  411. package/src/components/Form/AccessRights/List/ContactAccessRightsListItemSkeleton.tsx +0 -26
  412. package/src/components/Form/AccessRights/List/ContactAccessRightsListSkeleton.tsx +0 -28
  413. package/src/components/Form/AccessRights/Stats/AccessRightsStats.styles.ts +0 -18
  414. package/src/components/Form/AccessRights/Stats/AccessRightsStats.tsx +0 -41
  415. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -54
  416. package/src/components/Form/AccessRights/common/GroupLabel.styles.ts +0 -18
  417. package/src/components/Form/AccessRights/common/GroupLabel.tsx +0 -15
  418. package/src/components/Form/AccessRights/common/Input.styles.ts +0 -48
  419. package/src/components/Form/AccessRights/common/RoleInputSelect.styles.ts +0 -11
  420. package/src/components/Form/AccessRights/common/RoleInputSelect.tsx +0 -57
  421. package/src/components/Form/AccessRights/index.ts +0 -3
  422. package/src/components/Form/AccessRights/useAccessRightsForm.test.tsx +0 -531
  423. package/src/components/Form/AccessRights/useAccessRightsForm.tsx +0 -282
  424. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +0 -41
  425. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -9
  426. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  427. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -21
  428. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -137
  429. package/src/components/Form/Dashboard/GlobalRefreshFieldOption.tsx +0 -59
  430. package/src/components/Form/Dashboard/index.ts +0 -2
  431. package/src/components/Form/Dashboard/translatedLabels.ts +0 -9
  432. package/src/components/Form/Form.models.ts +0 -1
  433. package/src/components/Form/Form.resource.ts +0 -1
  434. package/src/components/Form/Form.styles.ts +0 -17
  435. package/src/components/Form/FormActions.tsx +0 -57
  436. package/src/components/Form/index.ts +0 -3
  437. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -97
  438. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -126
  439. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  440. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  441. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  442. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  443. package/src/components/Header/PageHeader/PageHeaderMessage.tsx +0 -32
  444. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  445. package/src/components/Header/PageHeader/index.ts +0 -14
  446. package/src/components/Header/index.ts +0 -1
  447. package/src/components/Icon/Icon.styles.ts +0 -0
  448. package/src/components/Icon/Icon.tsx +0 -2
  449. package/src/components/Icon/index.ts +0 -0
  450. package/src/components/Inputs/Switch/Switch.stories.tsx +0 -22
  451. package/src/components/Inputs/Switch/Switch.styles.ts +0 -13
  452. package/src/components/Inputs/Switch/Switch.tsx +0 -18
  453. package/src/components/Inputs/index.ts +0 -1
  454. package/src/components/ItemComposition/Item.tsx +0 -41
  455. package/src/components/ItemComposition/ItemComposition.stories.tsx +0 -78
  456. package/src/components/ItemComposition/ItemComposition.styles.ts +0 -29
  457. package/src/components/ItemComposition/ItemComposition.tsx +0 -47
  458. package/src/components/ItemComposition/index.ts +0 -6
  459. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  460. package/src/components/Layout/AreaIndicator.tsx +0 -35
  461. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  462. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -41
  463. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  464. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -25
  465. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -25
  466. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -19
  467. package/src/components/Layout/PageLayout/PageQuickAccess.tsx +0 -76
  468. package/src/components/Layout/PageLayout/index.ts +0 -12
  469. package/src/components/Layout/PageLayout.cypress.spec.tsx +0 -66
  470. package/src/components/Layout/index.ts +0 -1
  471. package/src/components/List/Item/Avatar.tsx +0 -21
  472. package/src/components/List/Item/AvatarSkeleton.tsx +0 -17
  473. package/src/components/List/Item/ListItem.stories.tsx +0 -41
  474. package/src/components/List/Item/ListItem.styles.ts +0 -57
  475. package/src/components/List/Item/ListItem.tsx +0 -32
  476. package/src/components/List/Item/Text.tsx +0 -25
  477. package/src/components/List/Item/TextSkeleton.tsx +0 -22
  478. package/src/components/List/Item/index.ts +0 -14
  479. package/src/components/List/List.stories.tsx +0 -70
  480. package/src/components/List/List.styles.ts +0 -8
  481. package/src/components/List/List.tsx +0 -19
  482. package/src/components/List/index.ts +0 -6
  483. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  484. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  485. package/src/components/Menu/Button/MenuButton.tsx +0 -67
  486. package/src/components/Menu/Button/index.ts +0 -1
  487. package/src/components/Menu/Menu.stories.tsx +0 -71
  488. package/src/components/Menu/Menu.styles.ts +0 -68
  489. package/src/components/Menu/Menu.tsx +0 -25
  490. package/src/components/Menu/MenuDivider.tsx +0 -13
  491. package/src/components/Menu/MenuItem.tsx +0 -38
  492. package/src/components/Menu/MenuItems.tsx +0 -36
  493. package/src/components/Menu/index.ts +0 -12
  494. package/src/components/Menu/useMenu.tsx +0 -79
  495. package/src/components/Modal/Modal.stories.tsx +0 -142
  496. package/src/components/Modal/Modal.styles.ts +0 -91
  497. package/src/components/Modal/Modal.tsx +0 -79
  498. package/src/components/Modal/ModalActions.tsx +0 -64
  499. package/src/components/Modal/ModalBody.tsx +0 -15
  500. package/src/components/Modal/ModalHeader.tsx +0 -21
  501. package/src/components/Modal/index.ts +0 -12
  502. package/src/components/README.md +0 -3
  503. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.stories.tsx +0 -62
  504. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.styles.tsx +0 -22
  505. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +0 -68
  506. package/src/components/Tooltip/ConfirmationTooltip/TooltipContent.tsx +0 -31
  507. package/src/components/Tooltip/ConfirmationTooltip/index.ts +0 -1
  508. package/src/components/Tooltip/ConfirmationTooltip/models.ts +0 -18
  509. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  510. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  511. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  512. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  513. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  514. package/src/components/Tooltip/Tooltip.tsx +0 -57
  515. package/src/components/Tooltip/index.ts +0 -2
  516. package/src/components/index.ts +0 -13
  517. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  518. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  519. package/src/utils/centreonBaseURL.ts +0 -4
  520. package/src/utils/docsURL.ts +0 -31
  521. package/src/utils/index.ts +0 -22
  522. package/src/utils/panelSize.ts +0 -15
  523. package/src/utils/sanitizedHTML.ts +0 -18
  524. package/src/utils/translatedLabel.ts +0 -2
  525. package/src/utils/useInfiniteScrollListing.ts +0 -121
  526. package/src/utils/useLicenseExpirationWarning.test.tsx +0 -148
  527. package/src/utils/useLicenseExpirationWarning.ts +0 -52
  528. package/src/utils/usePluralizedTranslation.ts +0 -21
  529. package/src/utils/useRefreshInterval.ts +0 -39
  530. package/src/utils/useResizeObserver.ts +0 -6
  531. package/src/utils/useThresholds.ts +0 -0
  532. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  533. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  534. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  535. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  536. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  537. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  538. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  539. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  540. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  541. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  542. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  543. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  544. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  545. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  546. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  547. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  548. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  549. /package/src/Typography/{story.utils.tsx → index.tsx} +0 -0
@@ -2,22 +2,67 @@ import * as React from 'react';
2
2
 
3
3
  import { closestCenter, DraggableSyntheticListeners } from '@dnd-kit/core';
4
4
  import { horizontalListSortingStrategy } from '@dnd-kit/sortable';
5
- import { equals, find, map, pick, propEq } from 'ramda';
5
+ import { equals, find, isEmpty, map, not, pick, propEq } from 'ramda';
6
+ import { makeStyles, withStyles } from 'tss-react/mui';
6
7
 
7
- import { TableHead, TableRow } from '@mui/material';
8
+ import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
9
+ import {
10
+ TableCell,
11
+ TableCellBaseProps,
12
+ TableHead,
13
+ TableRow
14
+ } from '@mui/material';
8
15
 
9
16
  import { ListingVariant } from '@centreon/ui-context';
10
17
 
11
18
  import { getVisibleColumns, Props as ListingProps } from '..';
19
+ import PopoverMenu from '../../PopoverMenu';
12
20
  import SortableItems from '../../SortableItems';
13
- import { Column } from '../models';
21
+ import Checkbox from '../Checkbox';
22
+ import { Column, PredefinedRowSelection } from '../models';
23
+ import { labelPredefinedRowsSelectionMenu } from '../translatedLabels';
14
24
 
15
- import ListingHeaderCell from './Cell/ListingHeaderCell';
16
- import { useStyles } from './ListingHeader.styles';
17
- import {
18
- SelectActionListingHeaderCell,
19
- SelectActionListingHeaderCellProps
20
- } from './Cell/SelectActionListingHeaderCell';
25
+ import PredefinedSelectionList from './PredefinedSelectionList';
26
+ import SortableHeaderCellContent from './SortableCell/Content';
27
+
28
+ const height = 28;
29
+
30
+ const HeaderCell = withStyles(TableCell, (theme) => ({
31
+ root: {
32
+ padding: theme.spacing(0)
33
+ }
34
+ }));
35
+
36
+ const useStyles = makeStyles()((theme) => ({
37
+ checkbox: {
38
+ '&.Mui-checked': {
39
+ color: theme.palette.common.white
40
+ },
41
+ '&.MuiCheckbox-indeterminate': {
42
+ color: theme.palette.common.white
43
+ },
44
+ color: theme.palette.common.white
45
+ },
46
+ checkboxHeaderCell: {
47
+ alignItems: 'center',
48
+ backgroundColor: theme.palette.background.listingHeader,
49
+ borderBottom: 'none',
50
+ display: 'flex',
51
+ justifyContent: 'start',
52
+ minWidth: theme.spacing(51 / 8),
53
+ padding: 0
54
+ },
55
+ headerLabelDragging: {
56
+ cursor: 'grabbing'
57
+ },
58
+ predefinedRowsMenu: {
59
+ color: theme.palette.common.white,
60
+ width: theme.spacing(2)
61
+ },
62
+ row: {
63
+ display: 'contents'
64
+ }
65
+ }));
21
66
 
22
67
  type Props = Pick<
23
68
  ListingProps<unknown>,
@@ -31,10 +76,14 @@ type Props = Pick<
31
76
  | 'totalRows'
32
77
  > & {
33
78
  areColumnsEditable: boolean;
34
- listingVariant?: ListingVariant;
35
79
  memoProps: Array<unknown>;
80
+ onSelectAllClick: (event) => void;
81
+ onSelectRowsWithCondition: (condition) => void;
82
+ predefinedRowsSelection: Array<PredefinedRowSelection>;
36
83
  rowCount: number;
37
- } & SelectActionListingHeaderCellProps;
84
+ selectedRowCount: number;
85
+ viewMode?: ListingVariant;
86
+ };
38
87
 
39
88
  interface ContentProps extends Pick<Props, 'sortField' | 'sortOrder'> {
40
89
  attributes;
@@ -47,21 +96,21 @@ interface ContentProps extends Pick<Props, 'sortField' | 'sortOrder'> {
47
96
  }
48
97
 
49
98
  const ListingHeader = ({
99
+ onSelectAllClick,
50
100
  sortOrder,
51
101
  sortField,
102
+ selectedRowCount,
52
103
  rowCount,
53
104
  columns,
54
105
  columnConfiguration,
55
106
  onSort,
56
107
  onSelectColumns,
57
108
  checkable,
109
+ predefinedRowsSelection,
110
+ onSelectRowsWithCondition,
58
111
  memoProps,
59
112
  areColumnsEditable,
60
- listingVariant,
61
- onSelectAllClick,
62
- selectedRowCount,
63
- predefinedRowsSelection,
64
- onSelectRowsWithCondition
113
+ viewMode
65
114
  }: Props): JSX.Element => {
66
115
  const { classes, cx } = useStyles();
67
116
 
@@ -71,7 +120,7 @@ const ListingHeader = ({
71
120
  });
72
121
 
73
122
  const getColumnById = (id: string): Column => {
74
- return find(propEq(id, 'id'), columns) as Column;
123
+ return find(propEq('id', id), columns) as Column;
75
124
  };
76
125
 
77
126
  const Content = React.useCallback(
@@ -85,17 +134,17 @@ const ListingHeader = ({
85
134
  id
86
135
  }: ContentProps): JSX.Element => {
87
136
  return (
88
- <ListingHeaderCell
137
+ <SortableHeaderCellContent
89
138
  areColumnsEditable={areColumnsEditable}
90
139
  column={getColumnById(id)}
91
140
  columnConfiguration={columnConfiguration}
92
141
  isDragging={isDragging}
93
142
  isInDragOverlay={isInDragOverlay}
94
143
  itemRef={itemRef}
95
- listingVariant={listingVariant}
96
144
  sortField={sortField}
97
145
  sortOrder={sortOrder}
98
146
  style={style}
147
+ viewMode={viewMode}
99
148
  onSort={onSort}
100
149
  {...listeners}
101
150
  {...attributes}
@@ -105,17 +154,45 @@ const ListingHeader = ({
105
154
  [columnConfiguration, columns, sortField, sortOrder]
106
155
  );
107
156
 
157
+ const hasRows = not(equals(rowCount, 0));
158
+
108
159
  return (
109
160
  <TableHead className={cx(classes.row, 'listingHeader')} component="div">
110
161
  <TableRow className={classes.row} component="div">
111
162
  {checkable && (
112
- <SelectActionListingHeaderCell
113
- predefinedRowsSelection={predefinedRowsSelection}
114
- rowCount={rowCount}
115
- selectedRowCount={selectedRowCount}
116
- onSelectAllClick={onSelectAllClick}
117
- onSelectRowsWithCondition={onSelectRowsWithCondition}
118
- />
163
+ <TableCell
164
+ className={classes.checkboxHeaderCell}
165
+ component={
166
+ 'div' as unknown as React.ElementType<TableCellBaseProps>
167
+ }
168
+ >
169
+ <Checkbox
170
+ checked={hasRows && selectedRowCount === rowCount}
171
+ className={classes.checkbox}
172
+ indeterminate={
173
+ hasRows && selectedRowCount > 0 && selectedRowCount < rowCount
174
+ }
175
+ inputProps={{ 'aria-label': 'Select all' }}
176
+ onChange={onSelectAllClick}
177
+ />
178
+ {not(isEmpty(predefinedRowsSelection)) ? (
179
+ <PopoverMenu
180
+ className={classes.predefinedRowsMenu}
181
+ icon={<ArrowDropDownIcon />}
182
+ title={labelPredefinedRowsSelectionMenu}
183
+ >
184
+ {({ close }): JSX.Element => (
185
+ <PredefinedSelectionList
186
+ close={close}
187
+ predefinedRowsSelection={predefinedRowsSelection}
188
+ onSelectRowsWithCondition={onSelectRowsWithCondition}
189
+ />
190
+ )}
191
+ </PopoverMenu>
192
+ ) : (
193
+ <div className={classes.predefinedRowsMenu} />
194
+ )}
195
+ </TableCell>
119
196
  )}
120
197
  <SortableItems
121
198
  updateSortableItemsOnItemsChange
@@ -140,7 +217,6 @@ const columnMemoProps = [
140
217
  'label',
141
218
  'rowMemoProps',
142
219
  'sortField',
143
- 'sortOrder',
144
220
  'sortable',
145
221
  'type'
146
222
  ];
@@ -160,7 +236,8 @@ const MemoizedListingHeader = React.memo<Props>(
160
236
  equals(prevProps.columnConfiguration, nextProps.columnConfiguration) &&
161
237
  equals(prevProps.memoProps, nextProps.memoProps) &&
162
238
  equals(prevProps.areColumnsEditable, nextProps.areColumnsEditable) &&
163
- equals(prevProps.listingVariant, nextProps.listingVariant)
239
+ equals(prevProps.viewMode, nextProps.viewMode)
164
240
  );
165
241
 
166
- export { MemoizedListingHeader as ListingHeader };
242
+ export default MemoizedListingHeader;
243
+ export { height as headerHeight, HeaderCell };
@@ -9,10 +9,12 @@ import { TableRowProps, TableRow, useTheme } from '@mui/material';
9
9
 
10
10
  import { ListingVariant } from '@centreon/ui-context';
11
11
 
12
- import { useViewportIntersection } from '../../utils/useViewportIntersection';
13
- import LoadingSkeleton from '../../LoadingSkeleton';
14
- import { Column, ColumnConfiguration, RowColorCondition } from '../models';
15
- import { performanceRowsLimit } from '../index';
12
+ import { useViewportIntersection } from '../utils/useViewportIntersection';
13
+ import LoadingSkeleton from '../LoadingSkeleton';
14
+
15
+ import { Column, ColumnConfiguration, RowColorCondition } from './models';
16
+
17
+ import { performanceRowsLimit } from '.';
16
18
 
17
19
  const useStyles = makeStyles()((theme) => {
18
20
  return {
@@ -46,11 +48,10 @@ type Props = {
46
48
  isShiftKeyDown: boolean;
47
49
  lastSelectionIndex: number | null;
48
50
  limit: number;
49
- listingVariant?: ListingVariant;
50
51
  row;
51
52
  rowColorConditions: Array<RowColorCondition>;
52
53
  shiftKeyDownRowPivot: number | null;
53
- subItemsPivots: Array<number | string>;
54
+ viewMode?: ListingVariant;
54
55
  visibleColumns: Array<Column>;
55
56
  } & TableRowProps;
56
57
 
@@ -116,7 +117,7 @@ const Row = memo<RowProps>(
116
117
  isShiftKeyDown: prevIsShiftKeyDown,
117
118
  shiftKeyDownRowPivot: prevShiftKeyDownRowPivot,
118
119
  lastSelectionIndex: prevLastSelectionIndex,
119
- listingVariant: prevViewMode
120
+ viewMode: prevViewMode
120
121
  } = prevProps;
121
122
  const {
122
123
  row: nextRow,
@@ -127,7 +128,7 @@ const Row = memo<RowProps>(
127
128
  shiftKeyDownRowPivot: nextShiftKeyDownRowPivot,
128
129
  lastSelectionIndex: nextLastSelectionIndex,
129
130
  limit: nextLimit,
130
- listingVariant: nextViewMode
131
+ viewMode: nextViewMode
131
132
  } = nextProps;
132
133
 
133
134
  if (
@@ -175,8 +176,7 @@ const Row = memo<RowProps>(
175
176
  equals(prevProps.row, nextProps.row) &&
176
177
  equals(previousRowConditions, nextRowConditions) &&
177
178
  equals(previousRowColors, nextRowColors) &&
178
- equals(prevProps.className, nextProps.className) &&
179
- equals(prevProps.subItemsPivots, nextProps.subItemsPivots)
179
+ equals(prevProps.className, nextProps.className)
180
180
  );
181
181
  }
182
182
 
@@ -191,8 +191,7 @@ const Row = memo<RowProps>(
191
191
  equals(prevIsShiftKeyDown, nextIsShiftKeyDown) &&
192
192
  equals(prevShiftKeyDownRowPivot, nextShiftKeyDownRowPivot) &&
193
193
  equals(prevLastSelectionIndex, nextLastSelectionIndex) &&
194
- equals(prevViewMode, nextViewMode) &&
195
- equals(prevProps.subItemsPivots, nextProps.subItemsPivots)
194
+ equals(prevViewMode, nextViewMode)
196
195
  );
197
196
  }
198
197
  );
@@ -0,0 +1,11 @@
1
+ import LoadingSkeleton from '../LoadingSkeleton';
2
+
3
+ const ListingLoadingSkeleton = (): JSX.Element => (
4
+ <>
5
+ {['skeleton1', 'skeleton2', 'skeleton3'].map((key) => (
6
+ <LoadingSkeleton height={20} key={key} variant="text" width="100%" />
7
+ ))}
8
+ </>
9
+ );
10
+
11
+ export default ListingLoadingSkeleton;
@@ -1,8 +1,7 @@
1
- /* eslint-disable no-alert */
2
1
  /* eslint-disable react/prop-types */
3
- import { useState } from 'react';
2
+ import { React, useState } from 'react';
4
3
 
5
- import { Meta, StoryObj } from '@storybook/react';
4
+ import { ComponentMeta, ComponentStory } from '@storybook/react';
6
5
  import { equals, prop } from 'ramda';
7
6
  import { makeStyles } from 'tss-react/mui';
8
7
 
@@ -13,11 +12,11 @@ import { ListingVariant } from '@centreon/ui-context';
13
12
 
14
13
  import { ListingProps } from '..';
15
14
 
16
- import { Column, ColumnType, SortOrder } from './models';
15
+ import { Column, ColumnType } from './models';
17
16
 
18
17
  import Listing from '.';
19
18
 
20
- const meta: Meta<typeof Listing> = {
19
+ export default {
21
20
  argTypes: {
22
21
  checkable: { control: 'boolean' },
23
22
  currentPage: { control: 'number' },
@@ -27,15 +26,11 @@ const meta: Meta<typeof Listing> = {
27
26
  },
28
27
  component: Listing,
29
28
  title: 'Listing'
30
- };
31
- export default meta;
32
-
33
- type Story = StoryObj<typeof Listing>;
29
+ } as ComponentMeta<typeof Listing>;
34
30
 
35
31
  const useStyles = makeStyles()((theme) => ({
36
32
  listing: {
37
- backgroundColor: theme.palette.background.default,
38
- height: '100vh'
33
+ backgroundColor: theme.palette.background.default
39
34
  }
40
35
  }));
41
36
 
@@ -53,12 +48,6 @@ const ComponentColumn = ({ row, isSelected }): JSX.Element => (
53
48
  </>
54
49
  );
55
50
 
56
- const ButtonColumn = ({ row }): JSX.Element => (
57
- <Button size="small" onClick={() => alert(JSON.stringify(row))}>
58
- Click to reveal details about {row.name}
59
- </Button>
60
- );
61
-
62
51
  const defaultColumns = [
63
52
  {
64
53
  getFormattedString: ({ name }): string => name,
@@ -142,7 +131,7 @@ const predefinedRowsSelection = [
142
131
  }
143
132
  ];
144
133
 
145
- const StoryTemplate = ({
134
+ const Story = ({
146
135
  columns = defaultColumns,
147
136
  checkable = true,
148
137
  viewerModeConfiguration,
@@ -164,7 +153,7 @@ const StoryTemplate = ({
164
153
  limit={listing.length}
165
154
  predefinedRowsSelection={predefinedRowsSelection}
166
155
  rowColorConditions={rowColorConditions}
167
- rows={props.rows ?? listing}
156
+ rows={listing}
168
157
  selectedRows={selected}
169
158
  totalRows={listing.length}
170
159
  viewerModeConfiguration={viewerModeConfiguration}
@@ -175,35 +164,31 @@ const StoryTemplate = ({
175
164
  );
176
165
  };
177
166
 
178
- export const normal = (): JSX.Element => <StoryTemplate />;
167
+ export const normal = (): JSX.Element => <Story />;
179
168
 
180
169
  export const WithSpecifiedViewMode = (): JSX.Element => {
181
- const [listingVariant, setListingVariant] = useState(ListingVariant.extended);
182
- const newListingVariant = equals(listingVariant, ListingVariant.compact)
170
+ const [viewMode, setViewMode] = useState(ListingVariant.extended);
171
+ const newViewMode = equals(viewMode, ListingVariant.compact)
183
172
  ? ListingVariant.extended
184
173
  : ListingVariant.compact;
185
174
 
186
175
  return (
187
- <StoryTemplate
188
- listingVariant={listingVariant}
176
+ <Story
177
+ viewMode={viewMode}
189
178
  viewerModeConfiguration={{
190
- onClick: () => setListingVariant(newListingVariant),
191
- title: listingVariant
179
+ onClick: () => setViewMode(newViewMode),
180
+ title: viewMode
192
181
  }}
193
182
  />
194
183
  );
195
184
  };
196
185
 
197
186
  export const loadingWithNoData = (): JSX.Element => {
198
- return <StoryTemplate loading rows={[]} totalRows={0} />;
187
+ return <Story loading rows={[]} totalRows={0} />;
199
188
  };
200
189
 
201
190
  export const loadingWithData = (): JSX.Element => {
202
- return <StoryTemplate loading />;
203
- };
204
-
205
- export const asEmptyState = (): JSX.Element => {
206
- return <StoryTemplate rows={[]} />;
191
+ return <Story loading />;
207
192
  };
208
193
 
209
194
  const actions = (
@@ -212,16 +197,12 @@ const actions = (
212
197
  </Button>
213
198
  );
214
199
 
215
- export const withActions = (): JSX.Element => (
216
- <StoryTemplate actions={actions} />
217
- );
200
+ export const withActions = (): JSX.Element => <Story actions={actions} />;
218
201
 
219
- export const withoutCheckboxes = (): JSX.Element => (
220
- <StoryTemplate checkable={false} />
221
- );
202
+ export const withoutCheckboxes = (): JSX.Element => <Story checkable={false} />;
222
203
 
223
204
  export const withShortLabelColumns = (): JSX.Element => (
224
- <StoryTemplate columns={columnsWithShortLabel} />
205
+ <Story columns={columnsWithShortLabel} />
225
206
  );
226
207
 
227
208
  const editableColumns = [
@@ -229,14 +210,12 @@ const editableColumns = [
229
210
  getFormattedString: ({ name }): string => name,
230
211
  id: 'name',
231
212
  label: 'Name',
232
- sortable: true,
233
213
  type: ColumnType.string
234
214
  },
235
215
  {
236
216
  getFormattedString: ({ description }): string => description,
237
217
  id: 'description',
238
218
  label: 'Description',
239
- sortable: true,
240
219
  type: ColumnType.string
241
220
  },
242
221
  {
@@ -264,134 +243,40 @@ const ListingWithEditableColumns = (): JSX.Element => {
264
243
  setSelectedColumnIds(defaultColumnIds);
265
244
  };
266
245
 
267
- const [sortedRows, setSortedRows] = useState(listing);
268
- const [sortParams, setSortParams] = useState({
269
- sortField: editableColumns[0].id,
270
- sortOrder: 'desc'
271
- });
272
-
273
- const onSort = (params: {
274
- sortField: string;
275
- sortOrder: SortOrder;
276
- }): void => {
277
- const rows = [...sortedRows];
278
- rows.sort((a, b) =>
279
- params.sortOrder === 'desc'
280
- ? a[params.sortField]?.localeCompare(b[params.sortField])
281
- : b[params.sortField]?.localeCompare(a[params.sortField])
282
- );
283
- setSortedRows(rows);
284
- setSortParams(params);
285
- };
286
-
287
246
  return (
288
- <StoryTemplate
247
+ <Story
289
248
  columnConfiguration={{
290
249
  selectedColumnIds,
291
250
  sortable: true
292
251
  }}
293
252
  columns={editableColumns}
294
- rows={sortedRows}
295
- sortField={sortParams.sortField}
296
- sortOrder={sortParams.sortOrder as SortOrder}
297
253
  onResetColumns={resetColumns}
298
254
  onSelectColumns={setSelectedColumnIds}
299
- onSort={onSort}
300
255
  />
301
256
  );
302
257
  };
303
258
 
304
- export const withEditableAndSortableColumns = (): JSX.Element => (
259
+ export const withEditableColumns = (): JSX.Element => (
305
260
  <ListingWithEditableColumns />
306
261
  );
307
262
 
308
- export const PlaygroundListing: Story = {
309
- args: {
310
- checkable: true,
311
- columns: editableColumns,
312
- currentPage: 1,
313
- disableRowCheckCondition: (row): boolean => row.disableCheckbox,
314
- disableRowCondition: (row): boolean => row.disableRow,
315
- limit: 10,
316
- loading: false,
317
- predefinedRowsSelection,
318
- rowColorConditions,
319
- rows: listing,
320
- totalRows: 10
321
- }
322
- };
323
-
324
- const listingWithSubItems = [...tenElements].map((_, index) => ({
325
- active: false,
326
- description: `Entity ${index}`,
327
- disableCheckbox: false,
328
- disableRow: false,
329
- id: index,
330
- name: `E${index}`,
331
- selected: false,
332
- subItems:
333
- index % 2 === 0
334
- ? [...tenElements].map((__, subIndex) => ({
335
- active: false,
336
- description: `Sub item ${subIndex + (index + 10) * 10} description`,
337
- disableCheckbox: false,
338
- disableRow: false,
339
- id: subIndex + (index + 10) * 10,
340
- name: `Sub Item ${subIndex + (index + 10) * 10}`,
341
- selected: false
342
- }))
343
- : undefined
344
- }));
345
-
346
- const columnsWithSubItems = [
347
- {
348
- getFormattedString: ({ name }): string => name,
349
- id: 'name',
350
- label: 'Name',
351
- type: ColumnType.string
352
- },
353
- {
354
- getFormattedString: ({ description }): string => description,
355
- id: 'description',
356
- label: 'Description',
357
- type: ColumnType.string
358
- },
359
- {
360
- Component: ButtonColumn,
361
- displaySubItemsCaret: true,
362
- id: '#',
363
- label: 'Custom',
364
- type: ColumnType.component,
365
- width: '350px'
366
- }
367
- ];
368
-
369
- const TemplateSubItems = (args): JSX.Element => {
370
- const { classes } = useStyles();
371
-
372
- return (
373
- <div className={classes.listing}>
374
- <Listing {...args} />
375
- </div>
376
- );
377
- };
263
+ const TemplateListing: ComponentStory<typeof Listing> = (args) => (
264
+ <Listing
265
+ {...args}
266
+ columns={editableColumns}
267
+ disableRowCheckCondition={(row): boolean => row.disableCheckbox}
268
+ disableRowCondition={(row): boolean => row.disableRow}
269
+ predefinedRowsSelection={predefinedRowsSelection}
270
+ rowColorConditions={rowColorConditions}
271
+ rows={listing}
272
+ />
273
+ );
378
274
 
379
- export const ListingWithSubItems = {
380
- args: {
381
- checkable: true,
382
- columns: columnsWithSubItems,
383
- currentPage: 1,
384
- limit: 10,
385
- loading: false,
386
- rows: listingWithSubItems,
387
- subItems: {
388
- canCheckSubItems: false,
389
- enable: true,
390
- getRowProperty: () => 'subItems',
391
- labelCollapse: 'Collapse',
392
- labelExpand: 'Expand'
393
- },
394
- totalRows: 10
395
- },
396
- render: TemplateSubItems
275
+ export const PlaygroundListing = TemplateListing.bind({});
276
+ PlaygroundListing.args = {
277
+ checkable: true,
278
+ currentPage: 1,
279
+ limit: 10,
280
+ loading: false,
281
+ totalRows: 10
397
282
  };
@@ -2,7 +2,7 @@ import { useState } from 'react';
2
2
 
3
3
  import { prop } from 'ramda';
4
4
 
5
- import { render, fireEvent, within } from '../../test/testRenderer';
5
+ import { render, fireEvent, within } from '../testRenderer';
6
6
 
7
7
  import { ColumnType } from './models';
8
8
  import { labelAddColumns } from './translatedLabels';