@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
@@ -11,7 +11,7 @@ import {
11
11
  } from '@mui/material';
12
12
 
13
13
  import { useMemoComponent } from '../..';
14
- import { getNormalizedId } from '../../utils';
14
+ import getNormalizedId from '../../utils/getNormalizedId';
15
15
 
16
16
  import { InputPropsWithoutGroup } from './models';
17
17
 
@@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next';
6
6
 
7
7
  import { FormControlLabel, Switch as MUISwitch } from '@mui/material';
8
8
 
9
- import { getNormalizedId } from '../../utils/getNormalizedId';
9
+ import getNormalizedId from '../../utils/getNormalizedId';
10
10
  import { useMemoComponent } from '../..';
11
11
 
12
12
  import { InputPropsWithoutGroup } from './models';
@@ -12,8 +12,6 @@ import {
12
12
  type as variableType
13
13
  } from 'ramda';
14
14
 
15
- import { InputAdornment } from '@mui/material';
16
-
17
15
  import { TextField, useMemoComponent } from '../..';
18
16
 
19
17
  import PasswordEndAdornment from './PasswordEndAdornment';
@@ -66,24 +64,16 @@ const Text = ({
66
64
  ? path(fieldNamePath, errors)
67
65
  : undefined;
68
66
 
69
- const EndAdornment = useCallback((): JSX.Element | null => {
70
- if (equals(type, InputType.Password)) {
71
- return (
67
+ const passwordEndAdornment = useCallback(
68
+ (): JSX.Element | null =>
69
+ equals(type, InputType.Password) ? (
72
70
  <PasswordEndAdornment
73
71
  changeVisibility={changeVisibility}
74
72
  isVisible={isVisible}
75
73
  />
76
- );
77
- }
78
-
79
- if (text?.endAdornment) {
80
- return (
81
- <InputAdornment position="end">{text?.endAdornment}</InputAdornment>
82
- );
83
- }
84
-
85
- return null;
86
- }, [isVisible]);
74
+ ) : null,
75
+ [isVisible]
76
+ );
87
77
 
88
78
  const getInputType = (): string => {
89
79
  if (text?.type) {
@@ -107,14 +97,13 @@ const Text = ({
107
97
  Component: (
108
98
  <TextField
109
99
  fullWidth
110
- EndAdornment={EndAdornment}
100
+ EndAdornment={passwordEndAdornment}
111
101
  ariaLabel={t(label) || ''}
112
102
  dataTestId={dataTestId || ''}
113
103
  disabled={disabled}
114
104
  error={error as string | undefined}
115
105
  label={t(label)}
116
106
  multiline={isMultiline}
117
- placeholder={text?.placeholder}
118
107
  required={isRequired}
119
108
  rows={rows}
120
109
  type={getInputType()}
@@ -18,8 +18,6 @@ import TextInput from './Text';
18
18
  import ConnectedAutocomplete from './ConnectedAutocomplete';
19
19
  import FieldsTable from './FieldsTable/FieldsTable';
20
20
  import Grid from './Grid';
21
- import CheckboxGroup from './CheckboxGroup';
22
- import Checkbox from './Checkbox';
23
21
  import Custom from './Custom';
24
22
  import LoadingSkeleton from './LoadingSkeleton';
25
23
 
@@ -35,6 +33,7 @@ export const getInput = R.cond<
35
33
  R.equals(InputType.Radio) as (b: InputType) => boolean,
36
34
  R.always(RadioInput)
37
35
  ],
36
+ [R.equals(InputType.Text) as (b: InputType) => boolean, R.always(TextInput)],
38
37
  [
39
38
  R.equals(InputType.SingleAutocomplete) as (b: InputType) => boolean,
40
39
  R.always(Autocomplete)
@@ -43,6 +42,10 @@ export const getInput = R.cond<
43
42
  R.equals(InputType.MultiAutocomplete) as (b: InputType) => boolean,
44
43
  R.always(Autocomplete)
45
44
  ],
45
+ [
46
+ R.equals(InputType.Password) as (b: InputType) => boolean,
47
+ R.always(TextInput)
48
+ ],
46
49
  [
47
50
  R.equals(InputType.MultiConnectedAutocomplete) as (b: InputType) => boolean,
48
51
  R.always(ConnectedAutocomplete)
@@ -58,16 +61,7 @@ export const getInput = R.cond<
58
61
  R.always(FieldsTable)
59
62
  ],
60
63
  [R.equals(InputType.Grid) as (b: InputType) => boolean, R.always(Grid)],
61
- [R.equals(InputType.Custom) as (b: InputType) => boolean, R.always(Custom)],
62
- [
63
- R.equals(InputType.Checkbox) as (b: InputType) => boolean,
64
- R.always(Checkbox)
65
- ],
66
- [
67
- R.equals(InputType.CheckboxGroup) as (b: InputType) => boolean,
68
- R.always(CheckboxGroup)
69
- ],
70
- [R.T, R.always(TextInput)]
64
+ [R.equals(InputType.Custom) as (b: InputType) => boolean, R.always(Custom)]
71
65
  ]);
72
66
 
73
67
  interface StylesProps {
@@ -95,9 +89,7 @@ const useStyles = makeStyles<StylesProps>()((theme, { groupDirection }) => ({
95
89
  ? 'row'
96
90
  : 'column'
97
91
  },
98
- inputWrapper: {
99
- width: '100%'
100
- },
92
+ inputWrapper: { width: '100%' },
101
93
  inputs: {
102
94
  display: 'flex',
103
95
  flexDirection: 'column',
@@ -107,10 +99,8 @@ const useStyles = makeStyles<StylesProps>()((theme, { groupDirection }) => ({
107
99
  }));
108
100
 
109
101
  interface Props {
110
- areGroupsOpen?: boolean;
111
102
  groupDirection?: GroupDirection;
112
103
  groups?: Array<Group>;
113
- groupsClassName?: string;
114
104
  inputs: Array<InputProps>;
115
105
  isCollapsible: boolean;
116
106
  isLoading?: boolean;
@@ -121,11 +111,9 @@ const Inputs = ({
121
111
  groups = [],
122
112
  isLoading = false,
123
113
  isCollapsible,
124
- groupDirection,
125
- groupsClassName,
126
- areGroupsOpen
114
+ groupDirection
127
115
  }: Props): JSX.Element => {
128
- const { classes, cx } = useStyles({ groupDirection });
116
+ const { classes } = useStyles({ groupDirection });
129
117
  const { t } = useTranslation();
130
118
  const formikContext = useFormikContext<FormikValues>();
131
119
 
@@ -190,13 +178,12 @@ const Inputs = ({
190
178
  ? R.find(R.propEq('name', groupName), groups)
191
179
  : ({} as Group);
192
180
 
193
- const isFirstElement = areGroupsOpen || R.equals(index, 0);
181
+ const isFirstElement = R.equals(index, 0);
194
182
 
195
183
  return (
196
184
  <Fragment key={groupName}>
197
185
  <div>
198
186
  <CollapsibleGroup
199
- className={groupsClassName}
200
187
  defaultIsOpen={isFirstElement}
201
188
  group={groupProps}
202
189
  hasGroupTitle={hasGroupTitle}
@@ -222,18 +209,13 @@ const Inputs = ({
222
209
  >
223
210
  {inputProps.additionalLabel && (
224
211
  <Typography
225
- className={cx(
226
- classes.additionalLabel,
227
- inputProps?.additionalLabelClassName
228
- )}
212
+ className={classes.additionalLabel}
229
213
  variant="body1"
230
214
  >
231
215
  {t(inputProps.additionalLabel)}
232
216
  </Typography>
233
217
  )}
234
- <div className={inputProps?.inputClassName || ''}>
235
- <Input {...inputProps} />
236
- </div>
218
+ <Input {...inputProps} />
237
219
  </div>
238
220
  );
239
221
  })}
@@ -1,6 +1,6 @@
1
1
  import { FormikValues } from 'formik';
2
2
 
3
- import { SvgIconProps, TypographyProps } from '@mui/material';
3
+ import { SvgIconProps } from '@mui/material';
4
4
 
5
5
  import { SelectEntry } from '../../InputField/Select';
6
6
  import { ConditionsSearchParameter } from '../../api/buildListingEndpoint/models';
@@ -16,9 +16,7 @@ export enum InputType {
16
16
  MultiConnectedAutocomplete,
17
17
  FieldsTable,
18
18
  Grid,
19
- Custom,
20
- Checkbox,
21
- CheckboxGroup
19
+ Custom
22
20
  }
23
21
 
24
22
  interface FieldsTableGetRequiredProps {
@@ -26,22 +24,14 @@ interface FieldsTableGetRequiredProps {
26
24
  values: FormikValues;
27
25
  }
28
26
 
29
- export type LabelPlacement = 'bottom' | 'top' | 'end' | 'start' | undefined;
30
-
31
27
  export interface InputProps {
32
28
  additionalLabel?: string;
33
- additionalLabelClassName?: string;
34
29
  additionalMemoProps?: Array<unknown>;
35
30
  autocomplete?: {
36
31
  creatable?: boolean;
37
32
  options: Array<SelectEntry>;
38
33
  };
39
34
  change?: ({ setFieldValue, value }) => void;
40
- checkbox?: {
41
- direction?: 'horizontal' | 'vertical';
42
- labelPlacement?: LabelPlacement;
43
- options?: Array<string>;
44
- };
45
35
  connectedAutocomplete?: {
46
36
  additionalConditionParameters: Array<ConditionsSearchParameter>;
47
37
  endpoint?: string;
@@ -67,13 +57,11 @@ export interface InputProps {
67
57
  getRequired?: (values: FormikValues) => boolean;
68
58
  grid?: {
69
59
  alignItems?: string;
70
- className?: string;
71
60
  columns: Array<Omit<InputProps, 'group'>>;
72
61
  gridTemplateColumns?: string;
73
62
  };
74
63
  group: string;
75
64
  hideInput?: (values: FormikValues) => boolean;
76
- inputClassName?: string;
77
65
  label: string;
78
66
  radio?: {
79
67
  options?: Array<{
@@ -87,9 +75,7 @@ export interface InputProps {
87
75
  getChecked?: (value) => boolean;
88
76
  };
89
77
  text?: {
90
- endAdornment?: JSX.Element;
91
78
  multilineRows?: number;
92
- placeholder?: string;
93
79
  type?: string;
94
80
  };
95
81
  type: InputType;
@@ -104,5 +90,4 @@ export interface Group {
104
90
  TooltipContent?: () => JSX.Element;
105
91
  name: string;
106
92
  order: number;
107
- titleAttributes?: TypographyProps;
108
93
  }
@@ -8,7 +8,8 @@ import {
8
8
  basicFormValidationSchema,
9
9
  CustomButton
10
10
  } from './storiesData';
11
- import { Form, GroupDirection } from './Form';
11
+
12
+ import Form, { GroupDirection } from '.';
12
13
 
13
14
  export default { title: 'Form' };
14
15
 
@@ -71,7 +72,7 @@ export const basicFormWithHorizontalGroups = (): JSX.Element => (
71
72
  <Form<BasicForm>
72
73
  {...mandatoryProps}
73
74
  groupDirection={GroupDirection.Horizontal}
74
- groups={basicFormGroups.filter((group) => group.order !== 3)}
75
+ groups={basicFormGroups}
75
76
  />
76
77
  </Paper>
77
78
  );
@@ -1,29 +1,19 @@
1
- import {
2
- Formik,
3
- FormikHelpers,
4
- FormikSharedConfig,
5
- FormikValues
6
- } from 'formik';
1
+ import { Formik, FormikHelpers, FormikValues } from 'formik';
7
2
  import * as Yup from 'yup';
8
3
 
9
4
  import FormButtons from './FormButtons';
10
5
  import Inputs from './Inputs';
11
6
  import { Group, InputProps } from './Inputs/models';
12
- import { useStyles } from './Form.styles';
13
7
 
14
8
  export enum GroupDirection {
15
9
  Horizontal = 'horizontal',
16
10
  Vertical = 'vertical'
17
11
  }
18
12
 
19
- export type FormProps<T> = {
13
+ interface Props<T> {
20
14
  Buttons?: React.ComponentType;
21
- areGroupsOpen?: boolean;
22
- children?: JSX.Element;
23
- className?: string;
24
15
  groupDirection?: GroupDirection;
25
16
  groups?: Array<Group>;
26
- groupsClassName?: string;
27
17
  initialValues: T;
28
18
  inputs: Array<InputProps>;
29
19
  isCollapsible?: boolean;
@@ -31,13 +21,9 @@ export type FormProps<T> = {
31
21
  submit: (values: T, bag: FormikHelpers<T>) => void | Promise<void>;
32
22
  validate?: (values: FormikValues) => void;
33
23
  validationSchema: Yup.SchemaOf<T>;
34
- } & Omit<FormikSharedConfig<T>, 'isInitialValid'>;
24
+ }
35
25
 
36
26
  const Form = <T extends object>({
37
- children,
38
- className,
39
- groupsClassName,
40
- areGroupsOpen,
41
27
  initialValues,
42
28
  validate,
43
29
  validationSchema,
@@ -47,18 +33,13 @@ const Form = <T extends object>({
47
33
  Buttons = FormButtons,
48
34
  isLoading = false,
49
35
  isCollapsible = false,
50
- groupDirection = GroupDirection.Vertical,
51
- ...formikSharedConfig
52
- }: FormProps<T>): JSX.Element => {
53
- const { cx, classes } = useStyles();
54
-
36
+ groupDirection = GroupDirection.Vertical
37
+ }: Props<T>): JSX.Element => {
55
38
  if (isLoading) {
56
39
  return (
57
40
  <Inputs
58
41
  isLoading
59
- areGroupsOpen={areGroupsOpen}
60
42
  groups={groups}
61
- groupsClassName={groupsClassName}
62
43
  inputs={inputs}
63
44
  isCollapsible={isCollapsible}
64
45
  />
@@ -67,28 +48,25 @@ const Form = <T extends object>({
67
48
 
68
49
  return (
69
50
  <Formik<T>
51
+ enableReinitialize
52
+ validateOnBlur
53
+ validateOnMount
70
54
  initialValues={initialValues}
71
55
  validate={validate}
72
56
  validationSchema={validationSchema}
73
57
  onSubmit={submit}
74
- {...formikSharedConfig}
75
58
  >
76
59
  <div>
77
- {children}
78
- <div className={cx(className, classes.form)}>
79
- <Inputs
80
- areGroupsOpen={areGroupsOpen}
81
- groupDirection={groupDirection}
82
- groups={groups}
83
- groupsClassName={groupsClassName}
84
- inputs={inputs}
85
- isCollapsible={isCollapsible}
86
- />
87
- <Buttons />
88
- </div>
60
+ <Inputs
61
+ groupDirection={groupDirection}
62
+ groups={groups}
63
+ inputs={inputs}
64
+ isCollapsible={isCollapsible}
65
+ />
66
+ <Buttons />
89
67
  </div>
90
68
  </Formik>
91
69
  );
92
70
  };
93
71
 
94
- export { Form };
72
+ export default Form;
@@ -4,7 +4,6 @@ import { equals, prop } from 'ramda';
4
4
 
5
5
  import { Typography } from '@mui/material';
6
6
  import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
7
- import MailIcon from '@mui/icons-material/MailOutline';
8
7
 
9
8
  import { SelectEntry } from '../InputField/Select';
10
9
  import { Listing } from '../api/models';
@@ -82,7 +81,9 @@ export const basicFormValidationSchema = Yup.object().shape({
82
81
  scopes: Yup.array().of(
83
82
  Yup.string().min(3, '3 characters min').required('Required')
84
83
  ),
85
- sports: Yup.array().of(selectEntryValidationSchema.required('Required'))
84
+ sports: Yup.array()
85
+ .of(selectEntryValidationSchema.required('Required'))
86
+ .min(2, 'Choose at least 2 sports')
86
87
  });
87
88
 
88
89
  const roleEntries: Array<SelectEntry> = [
@@ -114,11 +115,6 @@ export const basicFormInitialValues = {
114
115
  isForced: false,
115
116
  language: 'French',
116
117
  name: '',
117
- notifications: {
118
- channels: { Icon: MailIcon, checked: true, label: 'mail' },
119
- hostevents: ['ok', 'warning'],
120
- includeServices: { checked: true, label: 'Include services for this host' }
121
- },
122
118
  password: '',
123
119
  roleMapping: [
124
120
  {
@@ -161,10 +157,6 @@ export const basicFormGroups: Array<Group> = [
161
157
  TooltipContent: (): JSX.Element => <Typography>Tooltip content</Typography>,
162
158
  name: 'Second group',
163
159
  order: 2
164
- },
165
- {
166
- name: 'Third group',
167
- order: 3
168
160
  }
169
161
  ];
170
162
 
@@ -179,10 +171,6 @@ export const basicFormInputs: Array<InputProps> = [
179
171
  fieldName: 'email',
180
172
  group: 'First group',
181
173
  label: 'Email',
182
- text: {
183
- endAdornment: <MailIcon />,
184
- placeholder: 'Your email here'
185
- },
186
174
  type: InputType.Text
187
175
  },
188
176
  {
@@ -217,41 +205,6 @@ export const basicFormInputs: Array<InputProps> = [
217
205
  },
218
206
  type: InputType.Radio
219
207
  },
220
- {
221
- additionalLabel: 'Notifications',
222
- fieldName: '',
223
- grid: {
224
- alignItems: 'center',
225
- columns: [
226
- {
227
- checkbox: {
228
- direction: 'horizontal'
229
- },
230
- fieldName: 'notifications.channels',
231
- label: 'channels',
232
- type: InputType.Checkbox
233
- },
234
- {
235
- fieldName: 'notifications.includeServices',
236
- label: 'Iclude services',
237
- type: InputType.Checkbox
238
- },
239
- {
240
- checkbox: {
241
- direction: 'horizontal',
242
- labelPlacement: 'top',
243
- options: ['ok', 'warning', 'critical', 'unknown']
244
- },
245
- fieldName: 'notifications.hostevents',
246
- label: 'host events',
247
- type: InputType.CheckboxGroup
248
- }
249
- ]
250
- },
251
- group: 'Third group',
252
- label: 'Notifications',
253
- type: InputType.Grid
254
- },
255
208
  {
256
209
  fieldName: 'anotherText',
257
210
  group: 'First group',
@@ -1,6 +1,8 @@
1
1
  import { Meta } from '@storybook/addon-docs'
2
- import { Typography, Link, Stack } from '@mui/material'
2
+ import { Typography, Box, Paper, Accordion, AccordionSummary, AccordionDetails, Link, Stack } from '@mui/material'
3
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore'
3
4
 
5
+ import { MdxThemeProvider } from './StoryBookThemeProvider'
4
6
 
5
7
  <Meta title="Home" />
6
8
 
@@ -37,3 +39,84 @@ import { Typography, Link, Stack } from '@mui/material'
37
39
  <Typography>20.04</Typography>
38
40
  </Link>
39
41
  </Stack>
42
+ <br />
43
+
44
+ <Accordion>
45
+ <AccordionSummary
46
+ expandIcon={<ExpandMoreIcon />}
47
+ >
48
+ <Typography variant="h5">Add stories</Typography>
49
+ </AccordionSummary>
50
+ <AccordionDetails>
51
+ <ul>
52
+ <li><Typography>Create a file named `index.stories.tsx` along side your component</Typography></li>
53
+ <li>
54
+ <Typography>Add a title, the component and argTypes</Typography>
55
+ <Typography>Example: </Typography>
56
+
57
+ ```typescript
58
+ export default {
59
+ title: 'MyComponent',
60
+ Component: MyComponent,
61
+ argTypes: {
62
+ propA: { control: 'text' },
63
+ propB: { control: 'number' },
64
+ },
65
+ };
66
+ ```
67
+
68
+ </li>
69
+ <li>
70
+ <Typography>Create a playground for your component</Typography>
71
+
72
+ ```typescript
73
+ const Template: ComponentStory<typeof MyComponent> = (args) => (
74
+ <MyComponent {...args} />
75
+ );
76
+
77
+ export const Playground = Template.bind({});
78
+ ```
79
+
80
+ </li>
81
+ <li>
82
+ <Typography>Then add your story</Typography>
83
+
84
+ ```typescript
85
+ export const basic = Template.bind({});
86
+ basic.args = { propA: 'test', propB: 0 };
87
+ ```
88
+
89
+ </li>
90
+ </ul>
91
+ </AccordionDetails>
92
+ </Accordion>
93
+ <Accordion>
94
+ <AccordionSummary
95
+ expandIcon={<ExpandMoreIcon />}
96
+ >
97
+ <Typography variant="h5">Run tests</Typography>
98
+ </AccordionSummary>
99
+ <AccordionDetails>
100
+ <Typography>There are two kinds of tests in Centreon UI.</Typography>
101
+ <Typography>Jest + RTL: Component testing</Typography>
102
+ <Typography>Storyshots: When running them, storybook will capture a snapshot for each and compares them with the older ones</Typography>
103
+ <br />
104
+
105
+ <Typography>Run all the test (Jest + Storyshots)</Typography>
106
+ `pnpm build:storybook && pnpm t`
107
+ <br />
108
+
109
+ <Typography>Run storyshots following one or more story title</Typography>
110
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent"`
111
+ <Typography>Or</Typography>
112
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent|MyOtherComponent"`
113
+ <br />
114
+
115
+ <Typography>Update snapshots</Typography>
116
+ `pnpm build:storybook && pnpm t -- -u`
117
+ <Typography>Or</Typography>
118
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent" -u`
119
+ <Typography>Or</Typography>
120
+ `pnpm build:storybook && pnpm test:storyshot -- --story "MyComponent|MyOtherComponent" -u`
121
+ </AccordionDetails>
122
+ </Accordion>
@@ -1,8 +1,8 @@
1
1
  import { ComponentStory } from '@storybook/react';
2
2
 
3
3
  import LoadingSkeleton from '../LoadingSkeleton';
4
- import CentreonLogoLight from '../@assets/brand/centreon-logo-one-line-light.svg';
5
- import NotAuthorized from '../@assets/images/not-authorized-template-background-light.svg';
4
+ import CentreonLogoLight from '../../assets/centreon-logo-one-line-light.svg';
5
+ import NotAuthorized from '../../assets/not-authorized-template-background-light.svg';
6
6
 
7
7
  import Image, { ImageVariant } from './Image';
8
8
 
@@ -1,12 +1,12 @@
1
1
  import { RenderResult, screen, waitFor } from '@testing-library/react';
2
2
  import { Provider } from 'jotai';
3
3
 
4
- import { render } from '../../test/testRenderer';
5
- import CentreonLogoLight from '../@assets/brand/centreon-logo-one-line-light.svg';
4
+ import { render } from '../testRenderer';
5
+ import CentreonLogoLight from '../../assets/centreon-logo-one-line-light.svg';
6
6
 
7
7
  import Image from './Image';
8
8
 
9
- jest.mock('../../@assets/centreon-logo-one-line-light.svg');
9
+ jest.mock('../../assets/centreon-logo-one-line-light.svg');
10
10
 
11
11
  const renderImage = (): RenderResult =>
12
12
  render(
@@ -10,8 +10,7 @@ import IconClose from '@mui/icons-material/HighlightOff';
10
10
  const useStyles = makeStyles()((theme) => ({
11
11
  buttonClose: {
12
12
  position: 'absolute',
13
- right: theme.spacing(0.5),
14
- top: '40%'
13
+ right: theme.spacing(0.5)
15
14
  },
16
15
  tooltip: {
17
16
  backgroundColor: theme.palette.common.white,
@@ -73,11 +72,7 @@ const PersistentTooltip = ({
73
72
  );
74
73
 
75
74
  return (
76
- <Tooltip
77
- classes={{ tooltip: classes.tooltip }}
78
- open={openTooltip || open}
79
- title={title}
80
- >
75
+ <Tooltip classes={{ tooltip: classes.tooltip }} open={open} title={title}>
81
76
  <IconButton
82
77
  aria-label={labelSearchHelp}
83
78
  size="small"
@@ -6,13 +6,32 @@ import {
6
6
  RenderResult,
7
7
  resetMocks,
8
8
  waitFor
9
- } from '../../../../../../test/testRenderer';
9
+ } from '../../../../../testRenderer';
10
+ import { buildListingEndpoint } from '../../../../..';
10
11
  import TestQueryProvider from '../../../../../api/TestQueryProvider';
11
12
 
12
- import { baseEndpoint, getEndpoint, label, optionsData } from './utils';
13
-
14
13
  import MultiConnectedAutocompleteField from '.';
15
14
 
15
+ const baseEndpoint = 'endpoint';
16
+
17
+ const getEndpoint = (parameters): string => {
18
+ return buildListingEndpoint({ baseEndpoint, parameters });
19
+ };
20
+
21
+ const label = 'Multi Connected Autocomplete';
22
+
23
+ const optionsData = {
24
+ meta: {
25
+ limit: 2,
26
+ page: 1,
27
+ total: 20
28
+ },
29
+ result: [
30
+ { id: 0, name: 'My Option 1' },
31
+ { id: 1, name: 'My Option 2' }
32
+ ]
33
+ };
34
+
16
35
  const renderMultiAutocompleteField = (): RenderResult =>
17
36
  render(
18
37
  <TestQueryProvider>
@@ -1,3 +1,5 @@
1
+ import withMock from 'storybook-addon-mock';
2
+
1
3
  import { buildListingEndpoint } from '../../../..';
2
4
  import { SelectEntry } from '../..';
3
5
  import { Listing } from '../../../../api/models';
@@ -6,6 +8,7 @@ import SingleConnectedAutocompleteField from './Single';
6
8
  import MultiConnectedAutocompleteField from './Multi';
7
9
 
8
10
  export default {
11
+ decorators: [withMock],
9
12
  title: 'InputField/Autocomplete/Connected'
10
13
  };
11
14