@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
@@ -0,0 +1,41 @@
1
+ import * as React from 'react';
2
+
3
+ import { useTranslation } from 'react-i18next';
4
+
5
+ import SvgIcon from '@mui/material/SvgIcon';
6
+
7
+ import { labelDragHandle } from '../../translatedLabels';
8
+
9
+ interface Icon {
10
+ className?: string;
11
+ columnLabel?: string;
12
+ isInteractive?: boolean;
13
+ visible?: boolean;
14
+ }
15
+
16
+ const DraggableIcon = ({
17
+ visible = false,
18
+ columnLabel,
19
+ className,
20
+ isInteractive = false,
21
+ ...rest
22
+ }: Icon): JSX.Element => {
23
+ const { t } = useTranslation();
24
+
25
+ return (
26
+ <SvgIcon
27
+ aria-label={`${columnLabel} ${t(labelDragHandle)}`}
28
+ fontSize="medium"
29
+ {...rest}
30
+ className={className}
31
+ role={isInteractive ? 'button' : undefined}
32
+ tabIndex={isInteractive ? 0 : undefined}
33
+ >
34
+ {visible && (
35
+ <path d="M 12 8 c 1.1 0 2 -0.9 2 -2 s -0.9 -2 -2 -2 s -2 0.9 -2 2 s 0.9 2 2 2 Z m 0 2 c -1.1 0 -2 0.9 -2 2 s 0.9 2 2 2 s 2 -0.9 2 -2 s -0.9 -2 -2 -2 Z m 0 6 c -1.1 0 -2 0.9 -2 2 s 0.9 2 2 2 s 2 -0.9 2 -2 s -0.9 -2 -2 -2 Z" />
36
+ )}
37
+ </SvgIcon>
38
+ );
39
+ };
40
+
41
+ export default DraggableIcon;
@@ -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>,
@@ -32,9 +77,13 @@ type Props = Pick<
32
77
  > & {
33
78
  areColumnsEditable: boolean;
34
79
  memoProps: Array<unknown>;
80
+ onSelectAllClick: (event) => void;
81
+ onSelectRowsWithCondition: (condition) => void;
82
+ predefinedRowsSelection: Array<PredefinedRowSelection>;
35
83
  rowCount: number;
84
+ selectedRowCount: number;
36
85
  viewMode?: ListingVariant;
37
- } & SelectActionListingHeaderCellProps;
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
- viewMode,
61
- onSelectAllClick,
62
- selectedRowCount,
63
- predefinedRowsSelection,
64
- onSelectRowsWithCondition
113
+ viewMode
65
114
  }: Props): JSX.Element => {
66
115
  const { classes, cx } = useStyles();
67
116
 
@@ -85,7 +134,7 @@ 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}
@@ -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
  ];
@@ -163,4 +239,5 @@ const MemoizedListingHeader = React.memo<Props>(
163
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 {
@@ -49,7 +51,6 @@ type Props = {
49
51
  row;
50
52
  rowColorConditions: Array<RowColorCondition>;
51
53
  shiftKeyDownRowPivot: number | null;
52
- subItemsPivots: Array<number | string>;
53
54
  viewMode?: ListingVariant;
54
55
  visibleColumns: Array<Column>;
55
56
  } & TableRowProps;
@@ -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,10 +26,7 @@ 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: {
@@ -52,12 +48,6 @@ const ComponentColumn = ({ row, isSelected }): JSX.Element => (
52
48
  </>
53
49
  );
54
50
 
55
- const ButtonColumn = ({ row }): JSX.Element => (
56
- <Button size="small" onClick={() => alert(JSON.stringify(row))}>
57
- Click to reveal details about {row.name}
58
- </Button>
59
- );
60
-
61
51
  const defaultColumns = [
62
52
  {
63
53
  getFormattedString: ({ name }): string => name,
@@ -141,7 +131,7 @@ const predefinedRowsSelection = [
141
131
  }
142
132
  ];
143
133
 
144
- const StoryTemplate = ({
134
+ const Story = ({
145
135
  columns = defaultColumns,
146
136
  checkable = true,
147
137
  viewerModeConfiguration,
@@ -163,7 +153,7 @@ const StoryTemplate = ({
163
153
  limit={listing.length}
164
154
  predefinedRowsSelection={predefinedRowsSelection}
165
155
  rowColorConditions={rowColorConditions}
166
- rows={props.rows ?? listing}
156
+ rows={listing}
167
157
  selectedRows={selected}
168
158
  totalRows={listing.length}
169
159
  viewerModeConfiguration={viewerModeConfiguration}
@@ -174,7 +164,7 @@ const StoryTemplate = ({
174
164
  );
175
165
  };
176
166
 
177
- export const normal = (): JSX.Element => <StoryTemplate />;
167
+ export const normal = (): JSX.Element => <Story />;
178
168
 
179
169
  export const WithSpecifiedViewMode = (): JSX.Element => {
180
170
  const [viewMode, setViewMode] = useState(ListingVariant.extended);
@@ -183,7 +173,7 @@ export const WithSpecifiedViewMode = (): JSX.Element => {
183
173
  : ListingVariant.compact;
184
174
 
185
175
  return (
186
- <StoryTemplate
176
+ <Story
187
177
  viewMode={viewMode}
188
178
  viewerModeConfiguration={{
189
179
  onClick: () => setViewMode(newViewMode),
@@ -194,15 +184,11 @@ export const WithSpecifiedViewMode = (): JSX.Element => {
194
184
  };
195
185
 
196
186
  export const loadingWithNoData = (): JSX.Element => {
197
- return <StoryTemplate loading rows={[]} totalRows={0} />;
187
+ return <Story loading rows={[]} totalRows={0} />;
198
188
  };
199
189
 
200
190
  export const loadingWithData = (): JSX.Element => {
201
- return <StoryTemplate loading />;
202
- };
203
-
204
- export const asEmptyState = (): JSX.Element => {
205
- return <StoryTemplate rows={[]} />;
191
+ return <Story loading />;
206
192
  };
207
193
 
208
194
  const actions = (
@@ -211,16 +197,12 @@ const actions = (
211
197
  </Button>
212
198
  );
213
199
 
214
- export const withActions = (): JSX.Element => (
215
- <StoryTemplate actions={actions} />
216
- );
200
+ export const withActions = (): JSX.Element => <Story actions={actions} />;
217
201
 
218
- export const withoutCheckboxes = (): JSX.Element => (
219
- <StoryTemplate checkable={false} />
220
- );
202
+ export const withoutCheckboxes = (): JSX.Element => <Story checkable={false} />;
221
203
 
222
204
  export const withShortLabelColumns = (): JSX.Element => (
223
- <StoryTemplate columns={columnsWithShortLabel} />
205
+ <Story columns={columnsWithShortLabel} />
224
206
  );
225
207
 
226
208
  const editableColumns = [
@@ -228,14 +210,12 @@ const editableColumns = [
228
210
  getFormattedString: ({ name }): string => name,
229
211
  id: 'name',
230
212
  label: 'Name',
231
- sortable: true,
232
213
  type: ColumnType.string
233
214
  },
234
215
  {
235
216
  getFormattedString: ({ description }): string => description,
236
217
  id: 'description',
237
218
  label: 'Description',
238
- sortable: true,
239
219
  type: ColumnType.string
240
220
  },
241
221
  {
@@ -263,123 +243,40 @@ const ListingWithEditableColumns = (): JSX.Element => {
263
243
  setSelectedColumnIds(defaultColumnIds);
264
244
  };
265
245
 
266
- const [sortedRows, setSortedRows] = useState(listing);
267
- const [sortParams, setSortParams] = useState({
268
- sortField: editableColumns[0].id,
269
- sortOrder: 'desc'
270
- });
271
-
272
- const onSort = (params: {
273
- sortField: string;
274
- sortOrder: SortOrder;
275
- }): void => {
276
- const rows = [...sortedRows];
277
- rows.sort((a, b) =>
278
- params.sortOrder === 'desc'
279
- ? a[params.sortField]?.localeCompare(b[params.sortField])
280
- : b[params.sortField]?.localeCompare(a[params.sortField])
281
- );
282
- setSortedRows(rows);
283
- setSortParams(params);
284
- };
285
-
286
246
  return (
287
- <StoryTemplate
247
+ <Story
288
248
  columnConfiguration={{
289
249
  selectedColumnIds,
290
250
  sortable: true
291
251
  }}
292
252
  columns={editableColumns}
293
- rows={sortedRows}
294
- sortField={sortParams.sortField}
295
- sortOrder={sortParams.sortOrder as SortOrder}
296
253
  onResetColumns={resetColumns}
297
254
  onSelectColumns={setSelectedColumnIds}
298
- onSort={onSort}
299
255
  />
300
256
  );
301
257
  };
302
258
 
303
- export const withEditableAndSortableColumns = (): JSX.Element => (
259
+ export const withEditableColumns = (): JSX.Element => (
304
260
  <ListingWithEditableColumns />
305
261
  );
306
262
 
307
- export const PlaygroundListing: Story = {
308
- args: {
309
- checkable: true,
310
- columns: editableColumns,
311
- currentPage: 1,
312
- disableRowCheckCondition: (row): boolean => row.disableCheckbox,
313
- disableRowCondition: (row): boolean => row.disableRow,
314
- limit: 10,
315
- loading: false,
316
- predefinedRowsSelection,
317
- rowColorConditions,
318
- rows: listing,
319
- totalRows: 10
320
- }
321
- };
322
-
323
- const listingWithSubItems = [...tenElements].map((_, index) => ({
324
- active: false,
325
- description: `Entity ${index}`,
326
- disableCheckbox: false,
327
- disableRow: false,
328
- id: index,
329
- name: `E${index}`,
330
- selected: false,
331
- subItems:
332
- index % 2 === 0
333
- ? [...tenElements].map((__, subIndex) => ({
334
- active: false,
335
- description: `Sub item ${subIndex + (index + 10) * 10} description`,
336
- disableCheckbox: false,
337
- disableRow: false,
338
- id: subIndex + (index + 10) * 10,
339
- name: `Sub Item ${subIndex + (index + 10) * 10}`,
340
- selected: false
341
- }))
342
- : undefined
343
- }));
344
-
345
- const columnsWithSubItems = [
346
- {
347
- getFormattedString: ({ name }): string => name,
348
- id: 'name',
349
- label: 'Name',
350
- type: ColumnType.string
351
- },
352
- {
353
- getFormattedString: ({ description }): string => description,
354
- id: 'description',
355
- label: 'Description',
356
- type: ColumnType.string
357
- },
358
- {
359
- Component: ButtonColumn,
360
- displaySubItemsCaret: true,
361
- id: '#',
362
- label: 'Custom',
363
- type: ColumnType.component,
364
- width: '350px'
365
- }
366
- ];
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
+ );
367
274
 
368
- export const ListingWithSubItems = {
369
- args: {
370
- checkable: true,
371
- columns: columnsWithSubItems,
372
- currentPage: 1,
373
- limit: 10,
374
- loading: false,
375
- rows: listingWithSubItems,
376
- subItems: {
377
- canCheckSubItems: false,
378
- enable: true,
379
- labelCollapse: 'Collapse',
380
- labelExpand: 'Expand',
381
- rowProperty: 'subItems'
382
- },
383
- totalRows: 10
384
- }
275
+ export const PlaygroundListing = TemplateListing.bind({});
276
+ PlaygroundListing.args = {
277
+ checkable: true,
278
+ currentPage: 1,
279
+ limit: 10,
280
+ loading: false,
281
+ totalRows: 10
385
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';