@centreon/ui 23.10.43 → 23.10.44

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 (437) hide show
  1. package/.storybook/main.js +82 -0
  2. package/.storybook/preview.tsx +21 -0
  3. package/README.md +14 -44
  4. package/jest.config.js +20 -0
  5. package/package.json +26 -86
  6. package/{test/setupTests.js → setupTests.js} +1 -1
  7. package/src/Button/Icon/index.tsx +1 -1
  8. package/src/Button/Save/index.stories.tsx +5 -10
  9. package/src/Button/Save/index.tsx +1 -1
  10. package/src/Dialog/Confirm/index.tsx +4 -17
  11. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  12. package/src/Dialog/index.tsx +2 -14
  13. package/src/FallbackPage/FallbackPage.tsx +2 -2
  14. package/src/FileDropZone/index.tsx +1 -1
  15. package/src/Form/CollapsibleGroup.tsx +5 -15
  16. package/src/Form/FormButtons.tsx +4 -2
  17. package/src/Form/Inputs/Autocomplete.tsx +1 -1
  18. package/src/Form/Inputs/Grid.tsx +2 -4
  19. package/src/Form/Inputs/Radio.tsx +1 -1
  20. package/src/Form/Inputs/Switch.tsx +1 -1
  21. package/src/Form/Inputs/Text.tsx +7 -18
  22. package/src/Form/Inputs/index.tsx +12 -30
  23. package/src/Form/Inputs/models.ts +2 -17
  24. package/src/Form/{Form.stories.tsx → index.stories.tsx} +3 -2
  25. package/src/Form/{Form.tsx → index.tsx} +16 -38
  26. package/src/Form/storiesData.tsx +3 -50
  27. package/src/Home.stories.mdx +84 -1
  28. package/src/Image/index.stories.tsx +2 -2
  29. package/src/Image/index.test.tsx +3 -3
  30. package/src/InputField/Search/PersistentTooltip.tsx +2 -7
  31. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +22 -3
  32. package/src/InputField/Select/Autocomplete/Connected/index.stories.tsx +3 -0
  33. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +1 -1
  34. package/src/InputField/Select/Autocomplete/Connected/index.tsx +3 -16
  35. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +2 -0
  36. package/src/InputField/Select/Autocomplete/index.stories.tsx +10 -1
  37. package/src/InputField/Select/Autocomplete/index.tsx +1 -1
  38. package/src/InputField/Select/index.tsx +1 -1
  39. package/src/InputField/Text/index.tsx +2 -4
  40. package/src/Listing/ActionBar/index.tsx +1 -1
  41. package/src/Listing/Cell/DataCell.tsx +63 -38
  42. package/src/Listing/Cell/index.tsx +3 -83
  43. package/src/Listing/Header/{_internals/PredefinedSelectionList.tsx → PredefinedSelectionList.tsx} +1 -1
  44. package/src/Listing/Header/{Cell/ListingHeaderCell.tsx → SortableCell/Content.tsx} +81 -16
  45. package/src/Listing/Header/SortableCell/DraggableIcon.tsx +41 -0
  46. package/src/Listing/Header/{ListingHeader.tsx → index.tsx} +102 -25
  47. package/src/Listing/{Row/Row.tsx → Row.tsx} +8 -9
  48. package/src/Listing/Skeleton.tsx +11 -0
  49. package/src/Listing/index.stories.tsx +34 -137
  50. package/src/Listing/index.test.tsx +1 -1
  51. package/src/Listing/index.tsx +157 -120
  52. package/src/Listing/models.ts +0 -1
  53. package/src/Listing/tableAtoms.ts +0 -2
  54. package/src/Listing/useStyleTable.ts +1 -1
  55. package/src/ListingPage/index.tsx +1 -1
  56. package/src/Logo/CentreonLogo.tsx +2 -2
  57. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  58. package/src/Panel/Memoized.tsx +1 -1
  59. package/src/Panel/Section/index.test.tsx +1 -1
  60. package/src/Panel/Section/index.tsx +1 -1
  61. package/src/Panel/index.tsx +5 -7
  62. package/src/RichTextEditor/ContentEditable.tsx +7 -27
  63. package/src/RichTextEditor/RichTextEditor.tsx +45 -86
  64. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +0 -1
  65. package/src/Snackbar/index.tsx +4 -14
  66. package/src/Snackbar/useSnackbar.tsx +1 -5
  67. package/src/SortableItems/SortableItem.tsx +1 -1
  68. package/src/ThemeProvider/index.tsx +29 -35
  69. package/src/ThemeProvider/palettes.ts +201 -419
  70. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  71. package/src/WallpaperPage/index.stories.tsx +1 -1
  72. package/src/Wizard/ActionsBar.test.tsx +1 -1
  73. package/src/Wizard/index.stories.tsx +18 -5
  74. package/src/Wizard/index.test.tsx +1 -1
  75. package/src/Wizard/index.tsx +3 -13
  76. package/src/Wizard/models.ts +0 -1
  77. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  78. package/src/api/TestQueryProvider.tsx +1 -2
  79. package/src/api/customFetch.ts +0 -10
  80. package/src/api/useFetchQuery/index.ts +7 -8
  81. package/src/api/useMutationQuery/index.ts +17 -32
  82. package/src/api/useRequest/index.ts +6 -9
  83. package/src/index.ts +19 -7
  84. package/src/storyshots.test.js +52 -0
  85. package/{test → src}/testRenderer.tsx +1 -1
  86. package/src/utils/getNormalizedId.ts +3 -1
  87. package/src/utils/useCopyToClipboard.ts +3 -2
  88. package/src/utils/useDebounce.ts +3 -1
  89. package/src/utils/useDeepCallback.ts +3 -1
  90. package/src/utils/useDeepMemo.ts +3 -1
  91. package/src/utils/useIntersectionObserver.ts +5 -5
  92. package/src/utils/useKeyObserver.tsx +3 -1
  93. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  94. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -1
  95. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  96. package/src/utils/useMemoComponent.ts +1 -1
  97. package/testRunner.js +36 -0
  98. package/tsconfig.json +29 -0
  99. package/types/declarations.d.ts +9 -0
  100. package/public/README.md +0 -39
  101. package/public/mockServiceWorker.js +0 -303
  102. package/src/@assets/README.md +0 -5
  103. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  104. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  105. package/src/@assets/icons/downtime.icon.svg +0 -1
  106. package/src/@types/aria-attributes.d.ts +0 -10
  107. package/src/@types/data-attributes.d.ts +0 -3
  108. package/src/@types/globals.d.ts +0 -9
  109. package/src/@types/vite-env.d.ts +0 -2
  110. package/src/Checkbox/Checkbox.tsx +0 -107
  111. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  112. package/src/Checkbox/CheckboxGroup/index.tsx +0 -66
  113. package/src/Checkbox/index.stories.tsx +0 -39
  114. package/src/Checkbox/index.tsx +0 -2
  115. package/src/Dashboard/Dashboard.styles.ts +0 -85
  116. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  117. package/src/Dashboard/Grid.tsx +0 -70
  118. package/src/Dashboard/Item.tsx +0 -81
  119. package/src/Dashboard/Layout.tsx +0 -74
  120. package/src/Dashboard/index.tsx +0 -9
  121. package/src/Dashboard/utils.ts +0 -28
  122. package/src/Form/Form.styles.ts +0 -11
  123. package/src/Form/Inputs/Checkbox.tsx +0 -57
  124. package/src/Form/Inputs/CheckboxGroup.tsx +0 -76
  125. package/src/Form/index.ts +0 -1
  126. package/src/Graph/BasicComponents/Axes/UnitLabel.tsx +0 -20
  127. package/src/Graph/BasicComponents/Axes/index.tsx +0 -88
  128. package/src/Graph/BasicComponents/Axes/models.ts +0 -26
  129. package/src/Graph/BasicComponents/Axes/useAxisY.ts +0 -100
  130. package/src/Graph/BasicComponents/Grids/index.tsx +0 -20
  131. package/src/Graph/BasicComponents/Lines/RegularLines/index.tsx +0 -91
  132. package/src/Graph/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  133. package/src/Graph/BasicComponents/Lines/StackedLines/index.tsx +0 -76
  134. package/src/Graph/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  135. package/src/Graph/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -51
  136. package/src/Graph/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  137. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -73
  138. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -59
  139. package/src/Graph/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  140. package/src/Graph/BasicComponents/Lines/Threshold/index.tsx +0 -138
  141. package/src/Graph/BasicComponents/Lines/Threshold/models.ts +0 -105
  142. package/src/Graph/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  143. package/src/Graph/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  144. package/src/Graph/BasicComponents/Lines/index.tsx +0 -180
  145. package/src/Graph/BasicComponents/Lines/models.ts +0 -42
  146. package/src/Graph/BasicComponents/LoadingProgress.tsx +0 -46
  147. package/src/Graph/BasicComponents/useFilterLines.ts +0 -60
  148. package/src/Graph/Graph.styles.ts +0 -45
  149. package/src/Graph/Graph.tsx +0 -217
  150. package/src/Graph/Header/index.tsx +0 -65
  151. package/src/Graph/Icons/Downtime.tsx +0 -9
  152. package/src/Graph/InteractiveComponents/AnchorPoint/AnchorPoint.styles.ts +0 -58
  153. package/src/Graph/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  154. package/src/Graph/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  155. package/src/Graph/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  156. package/src/Graph/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -70
  157. package/src/Graph/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  158. package/src/Graph/InteractiveComponents/AnchorPoint/models.ts +0 -62
  159. package/src/Graph/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  160. package/src/Graph/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  161. package/src/Graph/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  162. package/src/Graph/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  163. package/src/Graph/InteractiveComponents/Annotations/Annotation/index.tsx +0 -81
  164. package/src/Graph/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  165. package/src/Graph/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  166. package/src/Graph/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  167. package/src/Graph/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  168. package/src/Graph/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  169. package/src/Graph/InteractiveComponents/Annotations/index.tsx +0 -49
  170. package/src/Graph/InteractiveComponents/Annotations/models.ts +0 -25
  171. package/src/Graph/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  172. package/src/Graph/InteractiveComponents/Bar.tsx +0 -21
  173. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  174. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  175. package/src/Graph/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  176. package/src/Graph/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  177. package/src/Graph/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  178. package/src/Graph/InteractiveComponents/Tooltip/index.tsx +0 -59
  179. package/src/Graph/InteractiveComponents/Tooltip/models.ts +0 -9
  180. package/src/Graph/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  181. package/src/Graph/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  182. package/src/Graph/InteractiveComponents/ZoomPreview/models.ts +0 -9
  183. package/src/Graph/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  184. package/src/Graph/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  185. package/src/Graph/InteractiveComponents/index.tsx +0 -168
  186. package/src/Graph/InteractiveComponents/interactionWithGraphAtoms.ts +0 -51
  187. package/src/Graph/Legend/InteractiveValue.tsx +0 -22
  188. package/src/Graph/Legend/Legend.styles.ts +0 -71
  189. package/src/Graph/Legend/LegendContent.tsx +0 -27
  190. package/src/Graph/Legend/LegendHeader.tsx +0 -45
  191. package/src/Graph/Legend/Marker.tsx +0 -43
  192. package/src/Graph/Legend/index.tsx +0 -166
  193. package/src/Graph/Legend/models.ts +0 -11
  194. package/src/Graph/Legend/useInteractiveValues.ts +0 -86
  195. package/src/Graph/Legend/useLegend.ts +0 -114
  196. package/src/Graph/LoadingSkeleton.tsx +0 -44
  197. package/src/Graph/common/index.ts +0 -35
  198. package/src/Graph/graphAtoms.ts +0 -6
  199. package/src/Graph/helpers/doc.ts +0 -560
  200. package/src/Graph/helpers/index.ts +0 -58
  201. package/src/Graph/index.stories.tsx +0 -372
  202. package/src/Graph/index.tsx +0 -90
  203. package/src/Graph/mockedData/annotationData.json +0 -326
  204. package/src/Graph/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  205. package/src/Graph/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  206. package/src/Graph/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  207. package/src/Graph/mockedData/lastDay.json +0 -1326
  208. package/src/Graph/mockedData/lastDayAreaStack.json +0 -3106
  209. package/src/Graph/mockedData/lastDayForward.json +0 -1338
  210. package/src/Graph/mockedData/lastDayThreshold.json +0 -2352
  211. package/src/Graph/mockedData/lastMonth.json +0 -1674
  212. package/src/Graph/mockedData/lastWeek.json +0 -2202
  213. package/src/Graph/mockedData/zoomPreview.json +0 -742
  214. package/src/Graph/models.ts +0 -150
  215. package/src/Graph/timeSeries/index.test.ts +0 -506
  216. package/src/Graph/timeSeries/index.ts +0 -512
  217. package/src/Graph/timeSeries/models.ts +0 -120
  218. package/src/Graph/translatedLabels.ts +0 -9
  219. package/src/Graph/useGraphData.ts +0 -47
  220. package/src/Graph/useGraphIntersection.ts +0 -36
  221. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -161
  222. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  223. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  224. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  225. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  226. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  227. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  228. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  229. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  230. package/src/Listing/Header/index.ts +0 -1
  231. package/src/Listing/Listing.cypress.spec.tsx +0 -120
  232. package/src/Listing/Listing.styles.ts +0 -76
  233. package/src/Listing/ListingDocs.mdx +0 -61
  234. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  235. package/src/Listing/Row/EmptyRow.tsx +0 -30
  236. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  237. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -204
  238. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  239. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  240. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  241. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -163
  242. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  243. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -61
  244. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  245. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  246. package/src/TimePeriods/DateTimePickerInput.tsx +0 -49
  247. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  248. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  249. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -510
  250. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  251. package/src/TimePeriods/helpers/index.ts +0 -26
  252. package/src/TimePeriods/index.stories.tsx +0 -98
  253. package/src/TimePeriods/index.tsx +0 -78
  254. package/src/TimePeriods/mockedData.ts +0 -12
  255. package/src/TimePeriods/models.ts +0 -97
  256. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  257. package/src/TimePeriods/translatedLabels.ts +0 -9
  258. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  259. package/src/TimePeriods/useTimePeriod.ts +0 -49
  260. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  261. package/src/Typography/FluidTypography/index.tsx +0 -51
  262. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  263. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  264. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  265. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  266. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  267. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  268. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  269. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  270. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  271. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  272. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  273. package/src/base/tokens/README.md +0 -3
  274. package/src/base/tokens/source/$metadata.json +0 -5
  275. package/src/base/tokens/source/base.json +0 -142
  276. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  277. package/src/base/tokens/themes/base.tokens.json +0 -695
  278. package/src/base/tokens/themes/base.tokens.ts +0 -38
  279. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  280. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  281. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  282. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  283. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  284. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  285. package/src/components/Button/Button.stories.tsx +0 -34
  286. package/src/components/Button/Button.styles.ts +0 -44
  287. package/src/components/Button/Button.tsx +0 -78
  288. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  289. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  290. package/src/components/Button/Icon/IconButton.tsx +0 -58
  291. package/src/components/Button/Icon/index.tsx +0 -1
  292. package/src/components/Button/index.ts +0 -2
  293. package/src/components/DataTable/DataTable.stories.tsx +0 -51
  294. package/src/components/DataTable/DataTable.styles.ts +0 -27
  295. package/src/components/DataTable/DataTable.tsx +0 -35
  296. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  297. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  298. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  299. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  300. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -39
  301. package/src/components/DataTable/Item/DataTableItem.tsx +0 -102
  302. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  303. package/src/components/DataTable/index.ts +0 -10
  304. package/src/components/Form/AccessRights/AccessRights.resource.ts +0 -45
  305. package/src/components/Form/AccessRights/AccessRightsForm.stories.tsx +0 -59
  306. package/src/components/Form/AccessRights/AccessRightsForm.styles.ts +0 -21
  307. package/src/components/Form/AccessRights/AccessRightsForm.tsx +0 -67
  308. package/src/components/Form/AccessRights/AccessRightsFormActions.tsx +0 -80
  309. package/src/components/Form/AccessRights/Input/AddAction.tsx +0 -31
  310. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.stories.tsx +0 -54
  311. package/src/components/Form/AccessRights/Input/ContactAccessRightInput.tsx +0 -72
  312. package/src/components/Form/AccessRights/Input/ContactAccessRightsInput.styles.ts +0 -22
  313. package/src/components/Form/AccessRights/Input/ContactInputField.tsx +0 -105
  314. package/src/components/Form/AccessRights/Input/RoleInputField.tsx +0 -29
  315. package/src/components/Form/AccessRights/List/ContactAccessRightsList.stories.tsx +0 -97
  316. package/src/components/Form/AccessRights/List/ContactAccessRightsList.styles.ts +0 -71
  317. package/src/components/Form/AccessRights/List/ContactAccessRightsList.tsx +0 -51
  318. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.stories.tsx +0 -116
  319. package/src/components/Form/AccessRights/List/ContactAccessRightsListItem.tsx +0 -118
  320. package/src/components/Form/AccessRights/List/ContactAccessRightsListItemSkeleton.tsx +0 -26
  321. package/src/components/Form/AccessRights/List/ContactAccessRightsListSkeleton.tsx +0 -28
  322. package/src/components/Form/AccessRights/Stats/AccessRightsStats.styles.ts +0 -18
  323. package/src/components/Form/AccessRights/Stats/AccessRightsStats.tsx +0 -41
  324. package/src/components/Form/AccessRights/__fixtures__/contactAccessRight.mock.ts +0 -52
  325. package/src/components/Form/AccessRights/common/GroupLabel.styles.ts +0 -18
  326. package/src/components/Form/AccessRights/common/GroupLabel.tsx +0 -15
  327. package/src/components/Form/AccessRights/common/Input.styles.ts +0 -48
  328. package/src/components/Form/AccessRights/common/RoleInputSelect.styles.ts +0 -11
  329. package/src/components/Form/AccessRights/common/RoleInputSelect.tsx +0 -57
  330. package/src/components/Form/AccessRights/index.ts +0 -3
  331. package/src/components/Form/AccessRights/useAccessRightsForm.test.tsx +0 -531
  332. package/src/components/Form/AccessRights/useAccessRightsForm.tsx +0 -282
  333. package/src/components/Form/AccessRights/useAccessRightsForm.utils.ts +0 -41
  334. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -4
  335. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  336. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -13
  337. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -101
  338. package/src/components/Form/Dashboard/index.ts +0 -2
  339. package/src/components/Form/Dashboard/translatedLabels.ts +0 -6
  340. package/src/components/Form/Form.models.ts +0 -1
  341. package/src/components/Form/Form.resource.ts +0 -1
  342. package/src/components/Form/Form.styles.ts +0 -17
  343. package/src/components/Form/FormActions.tsx +0 -57
  344. package/src/components/Form/index.ts +0 -3
  345. package/src/components/Header/Header.styles.ts +0 -0
  346. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -97
  347. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -99
  348. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  349. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  350. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  351. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  352. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  353. package/src/components/Header/PageHeader/index.ts +0 -12
  354. package/src/components/Header/index.ts +0 -1
  355. package/src/components/Icon/Icon.styles.ts +0 -0
  356. package/src/components/Icon/Icon.tsx +0 -2
  357. package/src/components/Icon/index.ts +0 -0
  358. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  359. package/src/components/Layout/AreaIndicator.tsx +0 -35
  360. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  361. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -40
  362. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  363. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -15
  364. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  365. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  366. package/src/components/Layout/PageLayout/index.ts +0 -10
  367. package/src/components/Layout/index.ts +0 -1
  368. package/src/components/List/Item/Avatar.tsx +0 -21
  369. package/src/components/List/Item/AvatarSkeleton.tsx +0 -17
  370. package/src/components/List/Item/ListItem.stories.tsx +0 -41
  371. package/src/components/List/Item/ListItem.styles.ts +0 -57
  372. package/src/components/List/Item/ListItem.tsx +0 -32
  373. package/src/components/List/Item/Text.tsx +0 -25
  374. package/src/components/List/Item/TextSkeleton.tsx +0 -22
  375. package/src/components/List/Item/index.ts +0 -14
  376. package/src/components/List/List.stories.tsx +0 -70
  377. package/src/components/List/List.styles.ts +0 -8
  378. package/src/components/List/List.tsx +0 -19
  379. package/src/components/List/index.ts +0 -6
  380. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  381. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  382. package/src/components/Menu/Button/MenuButton.tsx +0 -62
  383. package/src/components/Menu/Button/index.ts +0 -1
  384. package/src/components/Menu/Menu.stories.tsx +0 -71
  385. package/src/components/Menu/Menu.styles.ts +0 -70
  386. package/src/components/Menu/Menu.tsx +0 -25
  387. package/src/components/Menu/MenuDivider.tsx +0 -13
  388. package/src/components/Menu/MenuItem.tsx +0 -36
  389. package/src/components/Menu/MenuItems.tsx +0 -35
  390. package/src/components/Menu/index.ts +0 -12
  391. package/src/components/Menu/useMenu.tsx +0 -79
  392. package/src/components/Modal/Modal.stories.tsx +0 -111
  393. package/src/components/Modal/Modal.styles.ts +0 -55
  394. package/src/components/Modal/Modal.tsx +0 -59
  395. package/src/components/Modal/ModalActions.tsx +0 -62
  396. package/src/components/Modal/ModalBody.tsx +0 -15
  397. package/src/components/Modal/ModalHeader.tsx +0 -21
  398. package/src/components/Modal/index.ts +0 -12
  399. package/src/components/README.md +0 -3
  400. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  401. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  402. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  403. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  404. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  405. package/src/components/Tooltip/Tooltip.styles.ts +0 -5
  406. package/src/components/Tooltip/Tooltip.tsx +0 -46
  407. package/src/components/Tooltip/index.ts +0 -1
  408. package/src/components/index.ts +0 -9
  409. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  410. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  411. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  412. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  413. package/src/utils/docsURL.ts +0 -31
  414. package/src/utils/index.ts +0 -19
  415. package/src/utils/panelSize.ts +0 -15
  416. package/src/utils/sanitizedHTML.ts +0 -18
  417. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  418. package/src/utils/useInfiniteScrollListing.ts +0 -106
  419. package/src/utils/useResizeObserver.ts +0 -6
  420. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  421. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  422. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  423. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  424. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  425. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  426. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  427. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  428. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  429. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  430. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  431. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  432. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  433. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  434. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  435. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  436. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  437. /package/src/Typography/{story.utils.tsx → index.tsx} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  resetMocks,
8
8
  mockResponse,
9
9
  getFetchCall
10
- } from '../../../../../test/testRenderer';
10
+ } from '../../../../testRenderer';
11
11
  import buildListingEndpoint from '../../../../api/buildListingEndpoint';
12
12
  import { ConditionsSearchParameter } from '../../../../api/buildListingEndpoint/models';
13
13
  import TestQueryProvider from '../../../../api/TestQueryProvider';
@@ -16,18 +16,16 @@ import {
16
16
  import { CircularProgress, useTheme } from '@mui/material';
17
17
 
18
18
  import { Props as AutocompleteFieldProps } from '..';
19
- import {
20
- useDebounce,
21
- useIntersectionObserver,
22
- useDeepCompare
23
- } from '../../../../utils';
19
+ import useIntersectionObserver from '../../../../utils/useIntersectionObserver';
24
20
  import { ListingModel, SelectEntry } from '../../../..';
25
21
  import Option from '../../Option';
26
22
  import {
27
23
  ConditionsSearchParameter,
28
24
  SearchParameter
29
25
  } from '../../../../api/buildListingEndpoint/models';
26
+ import useDebounce from '../../../../utils/useDebounce';
30
27
  import useFetchQuery from '../../../../api/useFetchQuery';
28
+ import { useDeepCompare } from '../../../../utils/useMemoComponent';
31
29
 
32
30
  export interface ConnectedAutoCompleteFieldProps<TData> {
33
31
  conditionField?: keyof SelectEntry;
@@ -65,9 +63,6 @@ const ConnectedAutocompleteField = (
65
63
  const [searchParameter, setSearchParameter] = useState<
66
64
  SearchParameter | undefined
67
65
  >(undefined);
68
-
69
- const [autocompleteChangedValue, setAutocompleteChangedValue] =
70
- useState<Array<SelectEntry>>();
71
66
  const debounce = useDebounce({
72
67
  functionToDebounce: (value): void => {
73
68
  setSearchParameter(getSearchParameter(value));
@@ -277,13 +272,6 @@ const ConnectedAutocompleteField = (
277
272
  );
278
273
  }, useDeepCompare([searchConditions]));
279
274
 
280
- useEffect(() => {
281
- if (!autocompleteChangedValue && !props?.value) {
282
- return;
283
- }
284
- setSearchParameter(undefined);
285
- }, [autocompleteChangedValue, props?.value]);
286
-
287
275
  useEffect(() => {
288
276
  if (!optionsOpen) {
289
277
  return;
@@ -299,7 +287,6 @@ const ConnectedAutocompleteField = (
299
287
  open={optionsOpen}
300
288
  options={options}
301
289
  renderOption={renderOptions}
302
- onChange={(_, value) => setAutocompleteChangedValue(value)}
303
290
  onClose={(): void => setOptionsOpen(false)}
304
291
  onOpen={(): void => setOptionsOpen(true)}
305
292
  onTextChange={changeText}
@@ -1,6 +1,7 @@
1
1
  import { useState } from 'react';
2
2
 
3
3
  import { isNil, not } from 'ramda';
4
+ import withMock from 'storybook-addon-mock';
4
5
 
5
6
  import { Tooltip, Typography } from '@mui/material';
6
7
 
@@ -14,6 +15,7 @@ import MultiDraggableAutocompleteField from './Multi';
14
15
  import { ItemActionProps } from '.';
15
16
 
16
17
  export default {
18
+ decorators: [withMock],
17
19
  title: 'InputField/Autocomplete/Draggable'
18
20
  };
19
21
 
@@ -85,7 +85,7 @@ const AutoSizeAutocompleteField = ({
85
85
  endAdornment,
86
86
  customPadding
87
87
  }: AutoSizeAutocompleteFieldProps): JSX.Element => {
88
- const [value, setValue] = React.useState(null);
88
+ const [value, setValue] = React.useState(autoSizeOptions[1]);
89
89
 
90
90
  const change = (_, newValue): void => {
91
91
  setValue(newValue);
@@ -108,3 +108,12 @@ const AutoSizeAutocompleteField = ({
108
108
  export const autoSize = (): JSX.Element => {
109
109
  return <AutoSizeAutocompleteField />;
110
110
  };
111
+
112
+ export const autoSizeWithCustomPadding = (): JSX.Element => {
113
+ return (
114
+ <AutoSizeAutocompleteField
115
+ customPadding={5}
116
+ endAdornment={<EndAdornment />}
117
+ />
118
+ );
119
+ };
@@ -20,7 +20,7 @@ import Option from '../Option';
20
20
  import TextField from '../../Text';
21
21
  import { SelectEntry } from '..';
22
22
  import { searchLabel } from '../../translatedLabels';
23
- import { getNormalizedId } from '../../../utils';
23
+ import getNormalizedId from '../../../utils/getNormalizedId';
24
24
 
25
25
  export type Props = {
26
26
  autoFocus?: boolean;
@@ -13,7 +13,7 @@ import {
13
13
  Divider
14
14
  } from '@mui/material';
15
15
 
16
- import { getNormalizedId } from '../../utils';
16
+ import getNormalizedId from '../../utils/getNormalizedId';
17
17
 
18
18
  import Option from './Option';
19
19
 
@@ -12,7 +12,7 @@ import {
12
12
  Typography
13
13
  } from '@mui/material';
14
14
 
15
- import { getNormalizedId } from '../../utils';
15
+ import getNormalizedId from '../../utils/getNormalizedId';
16
16
 
17
17
  import useAutoSize from './useAutoSize';
18
18
 
@@ -84,7 +84,6 @@ export type Props = {
84
84
  error?: string;
85
85
  externalValueForAutoSize?: string;
86
86
  open?: boolean;
87
- required?: boolean;
88
87
  size?: SizeVariant;
89
88
  transparent?: boolean;
90
89
  value?: string;
@@ -109,7 +108,6 @@ const TextField = forwardRef(
109
108
  externalValueForAutoSize,
110
109
  autoSizeCustomPadding,
111
110
  defaultValue,
112
- required = false,
113
111
  ...rest
114
112
  }: Props,
115
113
  ref: React.ForwardedRef<HTMLDivElement>
@@ -166,6 +164,7 @@ const TextField = forwardRef(
166
164
  },
167
165
  className
168
166
  ),
167
+ disableUnderline: true,
169
168
  endAdornment: (
170
169
  <OptionalLabelInputAdornment label={label} position="end">
171
170
  {EndAdornment ? (
@@ -183,7 +182,6 @@ const TextField = forwardRef(
183
182
  ...rest.InputProps
184
183
  }}
185
184
  className={classes.textField}
186
- required={required}
187
185
  sx={{
188
186
  width: autoSize ? width : undefined,
189
187
  ...rest?.sx
@@ -11,7 +11,7 @@ import { userAtom, ListingVariant } from '@centreon/ui-context';
11
11
 
12
12
  import { ListingProps } from '../..';
13
13
  import { labelOf, labelRowsPerPage } from '../translatedLabels';
14
- import { useMemoComponent } from '../../utils';
14
+ import useMemoComponent from '../../utils/useMemoComponent';
15
15
  import IconButton from '../../Button/Icon/index';
16
16
 
17
17
  import StyledPagination from './Pagination';
@@ -1,11 +1,13 @@
1
1
  import { memo } from 'react';
2
2
 
3
3
  import { equals, props } from 'ramda';
4
+ import { makeStyles } from 'tss-react/mui';
4
5
 
5
6
  import { Tooltip } from '@mui/material';
6
7
 
7
8
  import { ListingVariant } from '@centreon/ui-context';
8
9
 
10
+ import DraggableIcon from '../Header/SortableCell/DraggableIcon';
9
11
  import {
10
12
  Column,
11
13
  ColumnType,
@@ -15,24 +17,46 @@ import {
15
17
  import useStyleTable from '../useStyleTable';
16
18
 
17
19
  import EllipsisTypography from './EllipsisTypography';
18
- import { useStyles } from './DataCell.styles';
19
20
 
20
21
  import Cell from '.';
21
22
 
22
23
  interface Props {
24
+ areColumnsEditable: boolean;
23
25
  column: Column;
24
26
  disableRowCondition: (row) => boolean;
25
27
  getHighlightRowCondition?: (row) => boolean;
26
28
  isRowHovered: boolean;
27
29
  isRowSelected: boolean;
28
- labelCollapse?: string;
29
- labelExpand?: string;
30
30
  row?;
31
31
  rowColorConditions?: Array<RowColorCondition>;
32
- subItemsRowProperty?: string;
33
32
  viewMode?: ListingVariant;
34
33
  }
35
34
 
35
+ const useStyles = makeStyles()((theme) => ({
36
+ cell: {
37
+ alignItems: 'center',
38
+ backgroundColor: 'transparent',
39
+ display: 'flex',
40
+ height: '100%',
41
+ overflow: 'hidden',
42
+ whiteSpace: 'nowrap'
43
+ },
44
+ componentColumn: {
45
+ width: theme.spacing(2.75)
46
+ },
47
+ headerCell: {
48
+ padding: theme.spacing(0, 0, 0, 1)
49
+ },
50
+ rowNotHovered: {
51
+ color: theme.palette.text.secondary
52
+ },
53
+ text: {
54
+ overflow: 'hidden',
55
+ textOverflow: 'ellipsis',
56
+ whiteSpace: 'nowrap'
57
+ }
58
+ }));
59
+
36
60
  const DataCell = ({
37
61
  row,
38
62
  column,
@@ -42,22 +66,17 @@ const DataCell = ({
42
66
  disableRowCondition,
43
67
  viewMode,
44
68
  getHighlightRowCondition,
45
- subItemsRowProperty,
46
- labelCollapse,
47
- labelExpand
69
+ areColumnsEditable
48
70
  }: Props): JSX.Element | null => {
49
- const { classes } = useStyles();
50
71
  const { dataStyle } = useStyleTable({ viewMode });
72
+ const { classes } = useStyles();
51
73
 
52
74
  const commonCellProps = {
75
+ align: 'left' as const,
53
76
  disableRowCondition,
54
- displaySubItemsCaret: column.displaySubItemsCaret,
55
77
  isRowHovered,
56
- labelCollapse,
57
- labelExpand,
58
78
  row,
59
- rowColorConditions,
60
- subItemsRowProperty
79
+ rowColorConditions
61
80
  };
62
81
 
63
82
  const isRowHighlighted = getHighlightRowCondition?.(row);
@@ -83,7 +102,6 @@ const DataCell = ({
83
102
 
84
103
  return (
85
104
  <Cell
86
- className={classes.cell}
87
105
  isRowHighlighted={isRowHighlighted}
88
106
  style={{
89
107
  gridColumn
@@ -94,7 +112,10 @@ const DataCell = ({
94
112
  {isTruncated && (
95
113
  <Tooltip title={formattedString}>{typography}</Tooltip>
96
114
  )}
97
- {!isTruncated && typography}
115
+ <>
116
+ {areColumnsEditable && <DraggableIcon />}
117
+ {!isTruncated && typography}
118
+ </>
98
119
  </Cell>
99
120
  );
100
121
  },
@@ -112,11 +133,10 @@ const DataCell = ({
112
133
 
113
134
  return (
114
135
  <Cell
115
- className={classes.cell}
116
136
  isRowHighlighted={isRowHighlighted}
117
137
  viewMode={viewMode}
118
138
  onClick={(e): void => {
119
- if (!clickable && !column.displaySubItemsCaret) {
139
+ if (!clickable) {
120
140
  return;
121
141
  }
122
142
  e.preventDefault();
@@ -124,25 +144,31 @@ const DataCell = ({
124
144
  }}
125
145
  {...commonCellProps}
126
146
  >
127
- <Component
128
- isHovered={isRowHovered}
129
- isSelected={isRowSelected}
130
- renderEllipsisTypography={({
131
- className,
132
- formattedString
133
- }): JSX.Element => {
134
- return (
135
- <EllipsisTypography
136
- className={className}
137
- dataStyle={dataStyle}
138
- disableRowCondition={disableRowCondition(row)}
139
- formattedString={formattedString}
140
- isRowHovered={isRowHovered}
141
- />
142
- );
143
- }}
144
- row={row}
145
- />
147
+ <>
148
+ {areColumnsEditable && (
149
+ <DraggableIcon className={classes.componentColumn} />
150
+ )}
151
+
152
+ <Component
153
+ isHovered={isRowHovered}
154
+ isSelected={isRowSelected}
155
+ renderEllipsisTypography={({
156
+ className,
157
+ formattedString
158
+ }): JSX.Element => {
159
+ return (
160
+ <EllipsisTypography
161
+ className={className}
162
+ dataStyle={dataStyle}
163
+ disableRowCondition={disableRowCondition(row)}
164
+ formattedString={formattedString}
165
+ isRowHovered={isRowHovered}
166
+ />
167
+ );
168
+ }}
169
+ row={row}
170
+ />
171
+ </>
146
172
  </Cell>
147
173
  );
148
174
  }
@@ -233,7 +259,6 @@ const MemoizedDataCell = memo<Props>(
233
259
  : nextProps.row;
234
260
 
235
261
  return (
236
- equals(prevProps.row, nextProps.row) &&
237
262
  equals(previousIsComponentHovered, nextIsComponentHovered) &&
238
263
  equals(prevProps.isRowHovered, nextProps.isRowHovered) &&
239
264
  equals(previousFormattedString, nextFormattedString) &&
@@ -256,7 +281,7 @@ const MemoizedDataCell = memo<Props>(
256
281
  ) &&
257
282
  equals(previousIsRowHighlighted, nextIsRowHighlighted) &&
258
283
  equals(prevProps.viewMode, nextProps.viewMode) &&
259
- equals(prevProps.subItemsRowProperty, nextProps.subItemsRowProperty)
284
+ equals(prevProps.areColumnsEditable, nextProps.areColumnsEditable)
260
285
  );
261
286
  }
262
287
  );
@@ -1,11 +1,9 @@
1
1
  import * as React from 'react';
2
2
 
3
- import { append, equals, includes, isNil, omit, reject } from 'ramda';
3
+ import { isNil, omit } from 'ramda';
4
4
  import { makeStyles } from 'tss-react/mui';
5
5
  import { CSSObject } from 'tss-react';
6
- import { useAtom } from 'jotai';
7
6
 
8
- import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
9
7
  import {
10
8
  alpha,
11
9
  TableCell,
@@ -16,9 +14,7 @@ import {
16
14
 
17
15
  import { ListingVariant } from '@centreon/ui-context';
18
16
 
19
- import { IconButton } from '../..';
20
17
  import { getTextStyleByViewMode } from '../useStyleTable';
21
- import { subItemsPivotsAtom } from '../tableAtoms';
22
18
 
23
19
  import { Props as DataCellProps } from './DataCell';
24
20
 
@@ -84,20 +80,6 @@ const useStyles = makeStyles<StylesProps>()(
84
80
  viewMode
85
81
  }
86
82
  ) => ({
87
- caret: {
88
- transition: theme.transitions.create('transform', {
89
- duration: theme.transitions.duration.short
90
- })
91
- },
92
- caretLess: {
93
- transform: 'rotate3d(0,0,1,180deg)'
94
- },
95
- caretMore: {
96
- transform: 'rotate3d(0,0,1,0deg)'
97
- },
98
- fakeCaret: {
99
- marginLeft: theme.spacing(3)
100
- },
101
83
  root: {
102
84
  alignItems: 'center',
103
85
  backgroundColor: getBackgroundColor({
@@ -117,7 +99,7 @@ const useStyles = makeStyles<StylesProps>()(
117
99
  overflow: 'hidden',
118
100
  ...getTextStyleByViewMode({ theme, viewMode }),
119
101
  p: getRowHighlightStyle({ isRowHighlighted, theme }),
120
- padding: theme.spacing(0, 1),
102
+ padding: 0,
121
103
  whiteSpace: 'nowrap'
122
104
  }
123
105
  })
@@ -129,57 +111,15 @@ interface Props
129
111
  'isRowHovered' | 'row' | 'rowColorConditions' | 'disableRowCondition'
130
112
  >,
131
113
  TableCellProps {
132
- displaySubItemsCaret?: boolean;
133
114
  isRowHighlighted?: boolean;
134
- labelCollapse?: string;
135
- labelExpand?: string;
136
- subItemsRowProperty?: string;
137
115
  viewMode?: ListingVariant;
138
116
  }
139
117
 
140
- const isPivotExistInTheList = (
141
- id
142
- ): ((list: Array<number | string>) => boolean) => includes(id);
143
-
144
- const handleSubItems = ({
145
- currentSubItemsPivots,
146
- id
147
- }): Array<number | string> => {
148
- if (isPivotExistInTheList(id)(currentSubItemsPivots)) {
149
- return reject(equals(id), currentSubItemsPivots);
150
- }
151
-
152
- return append(id, currentSubItemsPivots);
153
- };
154
-
155
- const Cell = ({
156
- displaySubItemsCaret,
157
- subItemsRowProperty,
158
- labelCollapse,
159
- labelExpand,
160
- ...props
161
- }: Props): JSX.Element => {
118
+ const Cell = (props: Props): JSX.Element => {
162
119
  const { classes, cx } = useStyles(props);
163
120
 
164
- const [subItemsPivots, setSubItemsPivots] = useAtom(subItemsPivotsAtom);
165
-
166
121
  const { children } = props;
167
122
 
168
- const rowId = props.row?.id;
169
-
170
- const click = (e): void => {
171
- e.preventDefault();
172
- e.stopPropagation();
173
-
174
- setSubItemsPivots((currentSubItemsPivots) =>
175
- handleSubItems({ currentSubItemsPivots, id: rowId })
176
- );
177
- };
178
-
179
- const isSubItemsExpanded = isPivotExistInTheList(rowId)(subItemsPivots);
180
-
181
- const hasSubItems = subItemsRowProperty && props.row[subItemsRowProperty];
182
-
183
123
  return (
184
124
  <TableCell
185
125
  classes={{
@@ -198,26 +138,6 @@ const Cell = ({
198
138
  props
199
139
  )}
200
140
  >
201
- {displaySubItemsCaret &&
202
- (hasSubItems ? (
203
- <IconButton
204
- ariaLabel={`${isSubItemsExpanded ? labelCollapse : labelExpand} ${
205
- props.row.id
206
- }`}
207
- size="small"
208
- onClick={click}
209
- >
210
- <ExpandMoreIcon
211
- className={cx(
212
- classes.caret,
213
- isSubItemsExpanded ? classes.caretMore : classes.caretLess
214
- )}
215
- fontSize="small"
216
- />
217
- </IconButton>
218
- ) : (
219
- <div className={classes.fakeCaret} />
220
- ))}
221
141
  {children}
222
142
  </TableCell>
223
143
  );
@@ -1,6 +1,6 @@
1
1
  import { List, ListItem, ListItemText } from '@mui/material';
2
2
 
3
- import { PredefinedRowSelection } from '../../models';
3
+ import { PredefinedRowSelection } from '../models';
4
4
 
5
5
  interface Props {
6
6
  close: () => void;
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
 
3
3
  import { always, and, equals, ifElse, isNil } from 'ramda';
4
+ import { makeStyles } from 'tss-react/mui';
4
5
 
5
6
  import {
6
7
  TableCell,
@@ -9,12 +10,61 @@ import {
9
10
  Tooltip
10
11
  } from '@mui/material';
11
12
 
13
+ import { ListingVariant } from '@centreon/ui-context';
14
+
12
15
  import { Props as ListingProps } from '../..';
13
16
  import { Column } from '../../models';
14
- import HeaderLabel from '../_internals/Label';
15
- import { DraggableIconButton } from '../_internals/DraggableIconButton';
17
+ import HeaderLabel from '../Label';
18
+ import { getTextStyleByViewMode } from '../../useStyleTable';
19
+
20
+ import DraggableIcon from './DraggableIcon';
21
+
22
+ type StylesProps = Pick<Props, 'isDragging' | 'isInDragOverlay' | 'viewMode'>;
16
23
 
17
- import { StylesProps, useStyles } from './ListingHeaderCell.styles';
24
+ const useStyles = makeStyles<StylesProps>()(
25
+ (theme, { isDragging, isInDragOverlay, viewMode }) => ({
26
+ active: {
27
+ '&.Mui-active': {
28
+ '& .MuiTableSortLabel-icon': {
29
+ color: theme.palette.common.white
30
+ },
31
+ color: theme.palette.common.white
32
+ },
33
+ '&:hover': {
34
+ '& .MuiTableSortLabel-icon': {
35
+ opacity: 1
36
+ },
37
+ color: theme.palette.common.white
38
+ }
39
+ },
40
+ content: {
41
+ alignItems: 'center',
42
+ borderRadius: isDragging && isInDragOverlay ? theme.spacing(0.5) : 0,
43
+ color: theme.palette.common.white,
44
+ display: 'flex',
45
+ minHeight: theme.spacing(3)
46
+ },
47
+ dragHandle: {
48
+ alignSelf: 'center',
49
+ cursor: isDragging ? 'grabbing' : 'grab',
50
+ display: 'flex',
51
+ outline: 'none'
52
+ },
53
+ simpleHeaderCellContent: {
54
+ alignItems: 'center',
55
+ display: 'inline-flex',
56
+ marginRight: theme.spacing(2)
57
+ },
58
+ tableCell: {
59
+ backgroundColor: isInDragOverlay
60
+ ? 'transparent'
61
+ : theme.palette.background.listingHeader,
62
+ borderBottom: 'none',
63
+ padding: 0,
64
+ ...getTextStyleByViewMode({ theme, viewMode })
65
+ }
66
+ })
67
+ );
18
68
 
19
69
  type Props = Pick<
20
70
  ListingProps<unknown>,
@@ -23,11 +73,14 @@ type Props = Pick<
23
73
  areColumnsEditable: boolean;
24
74
  className: string;
25
75
  column: Column;
76
+ isDragging?: boolean;
77
+ isInDragOverlay?: boolean;
26
78
  itemRef: React.RefObject<HTMLDivElement>;
27
79
  style;
28
- } & StylesProps;
80
+ viewMode?: ListingVariant;
81
+ };
29
82
 
30
- const ListingHeaderCell = ({
83
+ const SortableHeaderCellContent = ({
31
84
  column,
32
85
  columnConfiguration,
33
86
  sortField,
@@ -46,6 +99,8 @@ const ListingHeaderCell = ({
46
99
  isInDragOverlay,
47
100
  viewMode
48
101
  });
102
+ const [cellHovered, setCellHovered] = React.useState(false);
103
+
49
104
  const columnLabel = column.shortLabel || column.label;
50
105
 
51
106
  const columnSortField = column.sortField || column.id;
@@ -64,6 +119,14 @@ const ListingHeaderCell = ({
64
119
  });
65
120
  };
66
121
 
122
+ const mouseOver = (): void => {
123
+ setCellHovered(true);
124
+ };
125
+
126
+ const mouseOut = (): void => {
127
+ setCellHovered(false);
128
+ };
129
+
67
130
  const headerContent = (
68
131
  <Tooltip placement="top" title={getTooltipLabel(column.shortLabel)}>
69
132
  <HeaderLabel>{columnLabel}</HeaderLabel>
@@ -74,12 +137,22 @@ const ListingHeaderCell = ({
74
137
  <TableCell
75
138
  className={classes.tableCell}
76
139
  component={'div' as unknown as React.ElementType<TableCellBaseProps>}
77
- data-isdragging={isDragging}
78
- data-isindragoverlay={isInDragOverlay}
79
140
  ref={itemRef}
80
141
  style={style}
142
+ onMouseOut={mouseOut}
143
+ onMouseOver={mouseOver}
81
144
  >
82
145
  <div className={classes.content}>
146
+ {columnConfiguration?.sortable && areColumnsEditable && (
147
+ <DraggableIcon
148
+ visible={cellHovered}
149
+ {...props}
150
+ isInteractive
151
+ className={cx({ [classes.dragHandle]: cellHovered })}
152
+ columnLabel={columnLabel}
153
+ />
154
+ )}
155
+
83
156
  {column.sortable ? (
84
157
  <TableSortLabel
85
158
  active={sortField === columnSortField}
@@ -93,17 +166,9 @@ const ListingHeaderCell = ({
93
166
  ) : (
94
167
  <div className={classes.simpleHeaderCellContent}>{headerContent}</div>
95
168
  )}
96
-
97
- {columnConfiguration?.sortable && areColumnsEditable && (
98
- <DraggableIconButton
99
- {...props}
100
- className={cx(classes.dragHandle, 'dragHandle')}
101
- columnLabel={columnLabel}
102
- />
103
- )}
104
169
  </div>
105
170
  </TableCell>
106
171
  );
107
172
  };
108
173
 
109
- export default ListingHeaderCell;
174
+ export default SortableHeaderCellContent;