@centreon/ui 23.10.36 → 23.10.37

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 (386) 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 -84
  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 -14
  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 -11
  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 +1 -15
  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 -26
  42. package/src/Listing/Cell/index.tsx +1 -1
  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} +6 -4
  48. package/src/Listing/Skeleton.tsx +11 -0
  49. package/src/Listing/index.stories.tsx +4 -34
  50. package/src/Listing/index.test.tsx +1 -1
  51. package/src/Listing/index.tsx +128 -21
  52. package/src/Listing/useStyleTable.ts +1 -1
  53. package/src/ListingPage/index.tsx +1 -1
  54. package/src/Logo/CentreonLogo.tsx +2 -2
  55. package/src/Module/LicensedModule/LicenseCheck/index.stories.tsx +2 -0
  56. package/src/Panel/Memoized.tsx +1 -1
  57. package/src/Panel/Section/index.test.tsx +1 -1
  58. package/src/Panel/Section/index.tsx +1 -1
  59. package/src/Panel/index.tsx +4 -6
  60. package/src/RichTextEditor/ContentEditable.tsx +7 -27
  61. package/src/RichTextEditor/RichTextEditor.tsx +45 -86
  62. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +0 -1
  63. package/src/Snackbar/index.tsx +4 -14
  64. package/src/Snackbar/useSnackbar.tsx +1 -5
  65. package/src/SortableItems/SortableItem.tsx +1 -1
  66. package/src/ThemeProvider/index.tsx +4 -37
  67. package/src/ThemeProvider/palettes.ts +201 -389
  68. package/src/Typography/{Typography.stories.tsx → index.stories.tsx} +5 -5
  69. package/src/WallpaperPage/index.stories.tsx +1 -1
  70. package/src/Wizard/ActionsBar.test.tsx +1 -1
  71. package/src/Wizard/index.stories.tsx +18 -5
  72. package/src/Wizard/index.test.tsx +1 -1
  73. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-loading-with-no-data-1-snap.png +0 -0
  74. package/src/api/TestQueryProvider.tsx +1 -2
  75. package/src/api/customFetch.ts +0 -10
  76. package/src/api/useFetchQuery/index.ts +7 -8
  77. package/src/api/useMutationQuery/index.ts +13 -18
  78. package/src/api/useRequest/index.ts +6 -9
  79. package/src/index.ts +19 -7
  80. package/src/storyshots.test.js +52 -0
  81. package/{test → src}/testRenderer.tsx +1 -1
  82. package/src/utils/getNormalizedId.ts +3 -1
  83. package/src/utils/useCopyToClipboard.ts +3 -2
  84. package/src/utils/useDebounce.ts +3 -1
  85. package/src/utils/useDeepCallback.ts +3 -1
  86. package/src/utils/useDeepMemo.ts +3 -1
  87. package/src/utils/useIntersectionObserver.ts +5 -5
  88. package/src/utils/useKeyObserver.tsx +3 -1
  89. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +1 -1
  90. package/src/utils/useLocaleDateTimeFormat/index.ts +2 -1
  91. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +1 -1
  92. package/src/utils/useMemoComponent.ts +1 -1
  93. package/testRunner.js +36 -0
  94. package/tsconfig.json +29 -0
  95. package/types/declarations.d.ts +9 -0
  96. package/public/README.md +0 -39
  97. package/public/mockServiceWorker.js +0 -303
  98. package/src/@assets/README.md +0 -5
  99. package/src/@assets/brand/centreon-logo-one-line-dark.svg +0 -1
  100. package/src/@assets/brand/centreon-logo-one-line-light.svg +0 -1
  101. package/src/@assets/icons/downtime.icon.svg +0 -1
  102. package/src/@types/aria-attributes.d.ts +0 -10
  103. package/src/@types/data-attributes.d.ts +0 -3
  104. package/src/@types/globals.d.ts +0 -9
  105. package/src/@types/vite-env.d.ts +0 -2
  106. package/src/Checkbox/Checkbox.tsx +0 -107
  107. package/src/Checkbox/CheckboxGroup/index.stories.tsx +0 -41
  108. package/src/Checkbox/CheckboxGroup/index.tsx +0 -66
  109. package/src/Checkbox/index.stories.tsx +0 -39
  110. package/src/Checkbox/index.tsx +0 -2
  111. package/src/Dashboard/Dashboard.styles.ts +0 -85
  112. package/src/Dashboard/DashboardLayout.stories.tsx +0 -104
  113. package/src/Dashboard/Grid.tsx +0 -70
  114. package/src/Dashboard/Item.tsx +0 -81
  115. package/src/Dashboard/Layout.tsx +0 -74
  116. package/src/Dashboard/index.tsx +0 -9
  117. package/src/Dashboard/utils.ts +0 -28
  118. package/src/Form/Form.styles.ts +0 -11
  119. package/src/Form/Inputs/Checkbox.tsx +0 -57
  120. package/src/Form/Inputs/CheckboxGroup.tsx +0 -76
  121. package/src/Form/index.ts +0 -1
  122. package/src/Graph/BasicComponents/Axes/UnitLabel.tsx +0 -20
  123. package/src/Graph/BasicComponents/Axes/index.tsx +0 -88
  124. package/src/Graph/BasicComponents/Axes/models.ts +0 -26
  125. package/src/Graph/BasicComponents/Axes/useAxisY.ts +0 -100
  126. package/src/Graph/BasicComponents/Grids/index.tsx +0 -20
  127. package/src/Graph/BasicComponents/Lines/RegularLines/index.tsx +0 -91
  128. package/src/Graph/BasicComponents/Lines/RegularLines/useRegularLines.ts +0 -15
  129. package/src/Graph/BasicComponents/Lines/StackedLines/index.tsx +0 -76
  130. package/src/Graph/BasicComponents/Lines/StackedLines/useStackedLines.ts +0 -39
  131. package/src/Graph/BasicComponents/Lines/Threshold/BasicThreshold.tsx +0 -51
  132. package/src/Graph/BasicComponents/Lines/Threshold/Circle.tsx +0 -43
  133. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +0 -73
  134. package/src/Graph/BasicComponents/Lines/Threshold/ThresholdWithVariation.tsx +0 -59
  135. package/src/Graph/BasicComponents/Lines/Threshold/helpers/index.ts +0 -69
  136. package/src/Graph/BasicComponents/Lines/Threshold/index.tsx +0 -138
  137. package/src/Graph/BasicComponents/Lines/Threshold/models.ts +0 -105
  138. package/src/Graph/BasicComponents/Lines/Threshold/useCoordinateCircle.ts +0 -46
  139. package/src/Graph/BasicComponents/Lines/Threshold/useScaleThreshold.ts +0 -171
  140. package/src/Graph/BasicComponents/Lines/index.tsx +0 -180
  141. package/src/Graph/BasicComponents/Lines/models.ts +0 -42
  142. package/src/Graph/BasicComponents/LoadingProgress.tsx +0 -46
  143. package/src/Graph/BasicComponents/useFilterLines.ts +0 -60
  144. package/src/Graph/Graph.styles.ts +0 -45
  145. package/src/Graph/Graph.tsx +0 -217
  146. package/src/Graph/Header/index.tsx +0 -65
  147. package/src/Graph/Icons/Downtime.tsx +0 -9
  148. package/src/Graph/InteractiveComponents/AnchorPoint/AnchorPoint.styles.ts +0 -58
  149. package/src/Graph/InteractiveComponents/AnchorPoint/GuidingLines.tsx +0 -45
  150. package/src/Graph/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +0 -66
  151. package/src/Graph/InteractiveComponents/AnchorPoint/StackedAnchorPoint.tsx +0 -76
  152. package/src/Graph/InteractiveComponents/AnchorPoint/TooltipAnchorPoint.tsx +0 -70
  153. package/src/Graph/InteractiveComponents/AnchorPoint/index.tsx +0 -20
  154. package/src/Graph/InteractiveComponents/AnchorPoint/models.ts +0 -62
  155. package/src/Graph/InteractiveComponents/AnchorPoint/useTickGraph.ts +0 -94
  156. package/src/Graph/InteractiveComponents/AnchorPoint/useTooltipAnchorPoint.ts +0 -107
  157. package/src/Graph/InteractiveComponents/Annotations/Annotation/Area.tsx +0 -114
  158. package/src/Graph/InteractiveComponents/Annotations/Annotation/Line.tsx +0 -103
  159. package/src/Graph/InteractiveComponents/Annotations/Annotation/index.tsx +0 -81
  160. package/src/Graph/InteractiveComponents/Annotations/Area/Downtime.tsx +0 -27
  161. package/src/Graph/InteractiveComponents/Annotations/EventAnnotations.tsx +0 -61
  162. package/src/Graph/InteractiveComponents/Annotations/Line/Acknowledgement.tsx +0 -27
  163. package/src/Graph/InteractiveComponents/Annotations/Line/Comments.tsx +0 -25
  164. package/src/Graph/InteractiveComponents/Annotations/annotationsAtoms.ts +0 -183
  165. package/src/Graph/InteractiveComponents/Annotations/index.tsx +0 -49
  166. package/src/Graph/InteractiveComponents/Annotations/models.ts +0 -25
  167. package/src/Graph/InteractiveComponents/Annotations/useAnnotation.ts +0 -56
  168. package/src/Graph/InteractiveComponents/Bar.tsx +0 -21
  169. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftIcon.tsx +0 -62
  170. package/src/Graph/InteractiveComponents/TimeShiftZones/TimeShiftZone.tsx +0 -74
  171. package/src/Graph/InteractiveComponents/TimeShiftZones/index.tsx +0 -85
  172. package/src/Graph/InteractiveComponents/TimeShiftZones/models.ts +0 -12
  173. package/src/Graph/InteractiveComponents/TimeShiftZones/useTimeShiftZones.ts +0 -72
  174. package/src/Graph/InteractiveComponents/Tooltip/index.tsx +0 -59
  175. package/src/Graph/InteractiveComponents/Tooltip/models.ts +0 -9
  176. package/src/Graph/InteractiveComponents/Tooltip/useGraphTooltip.ts +0 -67
  177. package/src/Graph/InteractiveComponents/ZoomPreview/index.tsx +0 -38
  178. package/src/Graph/InteractiveComponents/ZoomPreview/models.ts +0 -9
  179. package/src/Graph/InteractiveComponents/ZoomPreview/useZoomPreview.ts +0 -107
  180. package/src/Graph/InteractiveComponents/ZoomPreview/zoomPreviewAtoms.ts +0 -3
  181. package/src/Graph/InteractiveComponents/index.tsx +0 -168
  182. package/src/Graph/InteractiveComponents/interactionWithGraphAtoms.ts +0 -51
  183. package/src/Graph/Legend/InteractiveValue.tsx +0 -22
  184. package/src/Graph/Legend/Legend.styles.ts +0 -71
  185. package/src/Graph/Legend/LegendContent.tsx +0 -27
  186. package/src/Graph/Legend/LegendHeader.tsx +0 -45
  187. package/src/Graph/Legend/Marker.tsx +0 -43
  188. package/src/Graph/Legend/index.tsx +0 -166
  189. package/src/Graph/Legend/models.ts +0 -11
  190. package/src/Graph/Legend/useInteractiveValues.ts +0 -86
  191. package/src/Graph/Legend/useLegend.ts +0 -114
  192. package/src/Graph/LoadingSkeleton.tsx +0 -44
  193. package/src/Graph/common/index.ts +0 -35
  194. package/src/Graph/graphAtoms.ts +0 -6
  195. package/src/Graph/helpers/doc.ts +0 -560
  196. package/src/Graph/helpers/index.ts +0 -58
  197. package/src/Graph/index.stories.tsx +0 -372
  198. package/src/Graph/index.tsx +0 -90
  199. package/src/Graph/mockedData/annotationData.json +0 -326
  200. package/src/Graph/mockedData/exclusionPeriodFirstPeriod.json +0 -588
  201. package/src/Graph/mockedData/exclusionPeriodSecondPeriod.json +0 -588
  202. package/src/Graph/mockedData/exclusionPeriodThirdPeriod.json +0 -581
  203. package/src/Graph/mockedData/lastDay.json +0 -1326
  204. package/src/Graph/mockedData/lastDayAreaStack.json +0 -3106
  205. package/src/Graph/mockedData/lastDayForward.json +0 -1338
  206. package/src/Graph/mockedData/lastDayThreshold.json +0 -2352
  207. package/src/Graph/mockedData/lastMonth.json +0 -1674
  208. package/src/Graph/mockedData/lastWeek.json +0 -2202
  209. package/src/Graph/mockedData/zoomPreview.json +0 -742
  210. package/src/Graph/models.ts +0 -150
  211. package/src/Graph/timeSeries/index.test.ts +0 -506
  212. package/src/Graph/timeSeries/index.ts +0 -512
  213. package/src/Graph/timeSeries/models.ts +0 -120
  214. package/src/Graph/translatedLabels.ts +0 -9
  215. package/src/Graph/useGraphData.ts +0 -47
  216. package/src/Graph/useGraphIntersection.ts +0 -36
  217. package/src/InputField/Select/Autocomplete/Connected/Multi/MultiConnectedAutocompleteField.cypress.spec.tsx +0 -161
  218. package/src/InputField/Select/Autocomplete/Connected/Multi/utils/index.ts +0 -22
  219. package/src/Listing/Cell/DataCell.styles.ts +0 -24
  220. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -13
  221. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +0 -71
  222. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.styles.ts +0 -26
  223. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +0 -70
  224. package/src/Listing/Header/ListingHeader.styles.ts +0 -16
  225. package/src/Listing/Header/_internals/DraggableIconButton.tsx +0 -35
  226. package/src/Listing/Header/index.ts +0 -1
  227. package/src/Listing/Listing.styles.ts +0 -76
  228. package/src/Listing/Row/EmptyRow.styles.ts +0 -14
  229. package/src/Listing/Row/EmptyRow.tsx +0 -30
  230. package/src/Listing/Row/SkeletonLoaderRows.tsx +0 -23
  231. package/src/RichTextEditor/RichTextEditor.cypress.spec.tsx +0 -204
  232. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.styles.ts +0 -51
  233. package/src/TimePeriods/CustomTimePeriod/CompactCustomTimePeriod.tsx +0 -95
  234. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/ErrorText.tsx +0 -14
  235. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +0 -163
  236. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +0 -76
  237. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/models.ts +0 -61
  238. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/usePickersStartEndDate.ts +0 -82
  239. package/src/TimePeriods/CustomTimePeriod/index.tsx +0 -66
  240. package/src/TimePeriods/DateTimePickerInput.tsx +0 -49
  241. package/src/TimePeriods/ResolutionTimePeriod.cypress.spec.tsx +0 -65
  242. package/src/TimePeriods/SelectedTimePeriod.tsx +0 -102
  243. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +0 -510
  244. package/src/TimePeriods/TimePeriods.styles.ts +0 -22
  245. package/src/TimePeriods/helpers/index.ts +0 -26
  246. package/src/TimePeriods/index.stories.tsx +0 -98
  247. package/src/TimePeriods/index.tsx +0 -78
  248. package/src/TimePeriods/mockedData.ts +0 -12
  249. package/src/TimePeriods/models.ts +0 -97
  250. package/src/TimePeriods/timePeriodsAtoms.ts +0 -102
  251. package/src/TimePeriods/translatedLabels.ts +0 -9
  252. package/src/TimePeriods/useSortTimePeriods.ts +0 -31
  253. package/src/TimePeriods/useTimePeriod.ts +0 -49
  254. package/src/Typography/FluidTypography/index.stories.tsx +0 -63
  255. package/src/Typography/FluidTypography/index.tsx +0 -51
  256. package/src/Typography/FluidTypography/useFluidResizeObserver.ts +0 -56
  257. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-normal-1-snap.png +0 -0
  258. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-item-header-1-snap.png +0 -0
  259. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-dashboard-with-many-panels-1-snap.png +0 -0
  260. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-basic-1-snap.png +0 -0
  261. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-20-px-height-1-snap.png +0 -0
  262. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-200-px-width-1-snap.png +0 -0
  263. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-heading-5-variant-1-snap.png +0 -0
  264. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-fluid-typography-with-long-text-1-snap.png +0 -0
  265. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-as-empty-state-1-snap.png +0 -0
  266. package/src/__image_snapshots__/storyshots-test-js-image-story-shots-listing-with-editable-and-sortable-columns-1-snap.png +0 -0
  267. package/src/base/tokens/README.md +0 -3
  268. package/src/base/tokens/source/$metadata.json +0 -5
  269. package/src/base/tokens/source/base.json +0 -142
  270. package/src/base/tokens/themes/base.tokens.d.ts +0 -38
  271. package/src/base/tokens/themes/base.tokens.json +0 -695
  272. package/src/base/tokens/themes/base.tokens.ts +0 -38
  273. package/src/base/tokens/themes/ui-dark.tokens.d.ts +0 -38
  274. package/src/base/tokens/themes/ui-dark.tokens.json +0 -695
  275. package/src/base/tokens/themes/ui-dark.tokens.ts +0 -38
  276. package/src/base/tokens/themes/ui-light.tokens.d.ts +0 -38
  277. package/src/base/tokens/themes/ui-light.tokens.json +0 -695
  278. package/src/base/tokens/themes/ui-light.tokens.ts +0 -38
  279. package/src/components/Button/Button.stories.tsx +0 -34
  280. package/src/components/Button/Button.styles.ts +0 -44
  281. package/src/components/Button/Button.tsx +0 -78
  282. package/src/components/Button/Icon/IconButton.stories.tsx +0 -18
  283. package/src/components/Button/Icon/IconButton.styles.ts +0 -14
  284. package/src/components/Button/Icon/IconButton.tsx +0 -58
  285. package/src/components/Button/Icon/index.tsx +0 -1
  286. package/src/components/Button/index.ts +0 -2
  287. package/src/components/DataTable/DataTable.stories.tsx +0 -51
  288. package/src/components/DataTable/DataTable.styles.ts +0 -27
  289. package/src/components/DataTable/DataTable.tsx +0 -35
  290. package/src/components/DataTable/EmptyState/DataTableEmptyState.stories.tsx +0 -21
  291. package/src/components/DataTable/EmptyState/DataTableEmptyState.styles.ts +0 -26
  292. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +0 -53
  293. package/src/components/DataTable/Item/DataTableItem.stories.tsx +0 -25
  294. package/src/components/DataTable/Item/DataTableItem.styles.ts +0 -39
  295. package/src/components/DataTable/Item/DataTableItem.tsx +0 -102
  296. package/src/components/DataTable/Item/DataTableItemSkeleton.tsx +0 -13
  297. package/src/components/DataTable/index.ts +0 -10
  298. package/src/components/Form/Dashboard/Dashboard.resource.ts +0 -4
  299. package/src/components/Form/Dashboard/DashboardForm.stories.ts +0 -39
  300. package/src/components/Form/Dashboard/DashboardForm.styles.ts +0 -19
  301. package/src/components/Form/Dashboard/DashboardForm.tsx +0 -104
  302. package/src/components/Form/Dashboard/DashboardFormActions.tsx +0 -56
  303. package/src/components/Form/Dashboard/index.ts +0 -2
  304. package/src/components/Form/Dashboard/translatedLabels.ts +0 -6
  305. package/src/components/Form/Form.models.ts +0 -1
  306. package/src/components/Form/index.ts +0 -2
  307. package/src/components/Header/Header.styles.ts +0 -0
  308. package/src/components/Header/PageHeader/PageHeader.stories.tsx +0 -88
  309. package/src/components/Header/PageHeader/PageHeader.styles.ts +0 -99
  310. package/src/components/Header/PageHeader/PageHeader.tsx +0 -15
  311. package/src/components/Header/PageHeader/PageHeaderActions.tsx +0 -17
  312. package/src/components/Header/PageHeader/PageHeaderMain.tsx +0 -15
  313. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +0 -15
  314. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +0 -47
  315. package/src/components/Header/PageHeader/index.ts +0 -12
  316. package/src/components/Header/index.ts +0 -1
  317. package/src/components/Icon/Icon.styles.ts +0 -0
  318. package/src/components/Icon/Icon.tsx +0 -2
  319. package/src/components/Icon/index.ts +0 -0
  320. package/src/components/Layout/AreaIndicator.styles.ts +0 -33
  321. package/src/components/Layout/AreaIndicator.tsx +0 -35
  322. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +0 -81
  323. package/src/components/Layout/PageLayout/PageLayout.styles.ts +0 -40
  324. package/src/components/Layout/PageLayout/PageLayout.tsx +0 -21
  325. package/src/components/Layout/PageLayout/PageLayoutActions.tsx +0 -15
  326. package/src/components/Layout/PageLayout/PageLayoutBody.tsx +0 -24
  327. package/src/components/Layout/PageLayout/PageLayoutHeader.tsx +0 -15
  328. package/src/components/Layout/PageLayout/index.ts +0 -10
  329. package/src/components/Layout/index.ts +0 -1
  330. package/src/components/Menu/Button/MenuButton.stories.tsx +0 -16
  331. package/src/components/Menu/Button/MenuButton.styles.ts +0 -27
  332. package/src/components/Menu/Button/MenuButton.tsx +0 -62
  333. package/src/components/Menu/Button/index.ts +0 -1
  334. package/src/components/Menu/Menu.stories.tsx +0 -71
  335. package/src/components/Menu/Menu.styles.ts +0 -70
  336. package/src/components/Menu/Menu.tsx +0 -25
  337. package/src/components/Menu/MenuDivider.tsx +0 -13
  338. package/src/components/Menu/MenuItem.tsx +0 -36
  339. package/src/components/Menu/MenuItems.tsx +0 -35
  340. package/src/components/Menu/index.ts +0 -12
  341. package/src/components/Menu/useMenu.tsx +0 -79
  342. package/src/components/Modal/Modal.stories.tsx +0 -111
  343. package/src/components/Modal/Modal.styles.ts +0 -55
  344. package/src/components/Modal/Modal.tsx +0 -59
  345. package/src/components/Modal/ModalActions.tsx +0 -59
  346. package/src/components/Modal/ModalBody.tsx +0 -15
  347. package/src/components/Modal/ModalHeader.tsx +0 -21
  348. package/src/components/Modal/index.ts +0 -12
  349. package/src/components/README.md +0 -3
  350. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.stories.tsx +0 -70
  351. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.styles.ts +0 -5
  352. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +0 -115
  353. package/src/components/Tooltip/TextOverflowTooltip/index.tsx +0 -1
  354. package/src/components/Tooltip/Tooltip.stories.tsx +0 -41
  355. package/src/components/Tooltip/Tooltip.styles.ts +0 -5
  356. package/src/components/Tooltip/Tooltip.tsx +0 -46
  357. package/src/components/Tooltip/index.ts +0 -1
  358. package/src/components/index.ts +0 -8
  359. package/src/screens/dashboard/DashboardsDetail.stories.tsx +0 -108
  360. package/src/screens/dashboard/DashboardsOverview.stories.tsx +0 -281
  361. package/src/styles/tokens/themes/_ui-dark.tokens.json +0 -695
  362. package/src/styles/tokens/themes/_ui-light.tokens.json +0 -695
  363. package/src/utils/docsURL.ts +0 -31
  364. package/src/utils/index.ts +0 -18
  365. package/src/utils/panelSize.ts +0 -15
  366. package/src/utils/sanitizedHTML.ts +0 -18
  367. package/src/utils/useDateTimePickerAdapter.ts +0 -309
  368. package/src/utils/useResizeObserver.ts +0 -6
  369. /package/{public/brand → assets}/centreon-logo-one-line-dark.svg +0 -0
  370. /package/{public/brand → assets}/centreon-logo-one-line-light.svg +0 -0
  371. /package/{src/@assets/images → assets}/not-authorized-template-background-dark.svg +0 -0
  372. /package/{src/@assets/images → assets}/not-authorized-template-background-light.svg +0 -0
  373. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.ttf +0 -0
  374. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff +0 -0
  375. /package/{public/fonts → fonts/fonts-generated}/roboto-bold-webfont.woff2 +0 -0
  376. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.ttf +0 -0
  377. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff +0 -0
  378. /package/{public/fonts → fonts/fonts-generated}/roboto-light-webfont.woff2 +0 -0
  379. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.ttf +0 -0
  380. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff +0 -0
  381. /package/{public/fonts → fonts/fonts-generated}/roboto-medium-webfont.woff2 +0 -0
  382. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.ttf +0 -0
  383. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff +0 -0
  384. /package/{public/fonts → fonts/fonts-generated}/roboto-regular-webfont.woff2 +0 -0
  385. /package/src/Listing/Header/{_internals/Label.tsx → Label.tsx} +0 -0
  386. /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
  })}
@@ -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;
@@ -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
 
@@ -7,7 +7,7 @@ import {
7
7
  resetMocks,
8
8
  mockResponse,
9
9
  getFetchCall
10
- } from '../../../../../test/testRenderer';
10
+ } from '../../../../testRenderer';
11
11
  import buildListingEndpoint from '../../../../api/buildListingEndpoint';
12
12
  import { ConditionsSearchParameter } from '../../../../api/buildListingEndpoint/models';
13
13
  import TestQueryProvider from '../../../../api/TestQueryProvider';