@centreon/ui 24.8.6 → 24.8.7

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 (356) hide show
  1. package/package.json +4 -3
  2. package/src/@types/globals.d.ts +4 -4
  3. package/src/ActionsList/ActionsList.styles.ts +1 -1
  4. package/src/ActionsList/index.stories.tsx +1 -1
  5. package/src/ActionsList/index.tsx +6 -6
  6. package/src/Button/Icon/index.stories.tsx +1 -1
  7. package/src/Button/Icon/index.tsx +1 -1
  8. package/src/Button/Save/StartIcon.tsx +1 -1
  9. package/src/Checkbox/Checkbox.tsx +2 -2
  10. package/src/Colors/index.stories.tsx +0 -2
  11. package/src/Colors/index.tsx +7 -3
  12. package/src/ContentWithCircularProgress/index.stories.tsx +1 -1
  13. package/src/Dashboard/Dashboard.styles.ts +111 -111
  14. package/src/Dashboard/Grid.tsx +2 -2
  15. package/src/Dashboard/Item.tsx +3 -3
  16. package/src/Dashboard/Layout.tsx +3 -3
  17. package/src/Dashboard/index.tsx +9 -9
  18. package/src/Dialog/Duplicate/index.test.tsx +1 -1
  19. package/src/Dialog/Duplicate/index.tsx +5 -2
  20. package/src/Dialog/UnsavedChanges/index.tsx +2 -2
  21. package/src/Dialog/index.stories.tsx +1 -1
  22. package/src/Dialog/index.tsx +5 -5
  23. package/src/FallbackPage/FallbackPage.tsx +4 -4
  24. package/src/FileDropZone/index.stories.tsx +1 -1
  25. package/src/FileDropZone/index.tsx +5 -5
  26. package/src/FileDropZone/useDropzone.test.ts +1 -1
  27. package/src/FileDropZone/useDropzone.ts +1 -1
  28. package/src/Form/CollapsibleGroup.tsx +6 -6
  29. package/src/Form/Form.cypress.spec.tsx +1 -1
  30. package/src/Form/Form.stories.tsx +3 -3
  31. package/src/Form/Form.tsx +5 -4
  32. package/src/Form/FormButtons.tsx +2 -2
  33. package/src/Form/Inputs/Autocomplete.tsx +3 -3
  34. package/src/Form/Inputs/Checkbox.tsx +1 -1
  35. package/src/Form/Inputs/CheckboxGroup.tsx +2 -2
  36. package/src/Form/Inputs/ConnectedAutocomplete.tsx +1 -1
  37. package/src/Form/Inputs/FieldsTable/FieldsTable.tsx +15 -15
  38. package/src/Form/Inputs/FieldsTable/Row.tsx +2 -2
  39. package/src/Form/Inputs/List/Content.tsx +1 -1
  40. package/src/Form/Inputs/List/List.tsx +3 -3
  41. package/src/Form/Inputs/PasswordEndAdornment.tsx +1 -1
  42. package/src/Form/Inputs/Radio.tsx +3 -3
  43. package/src/Form/Inputs/Switch.tsx +1 -1
  44. package/src/Form/Inputs/Text.tsx +4 -4
  45. package/src/Form/Inputs/index.tsx +81 -72
  46. package/src/Form/Inputs/models.ts +14 -14
  47. package/src/Form/storiesData.tsx +26 -30
  48. package/src/Form/storiesData.tsx-E +481 -0
  49. package/src/Graph/BarChart/BarChart.stories.tsx +1 -1
  50. package/src/Graph/BarChart/BarChart.tsx +3 -3
  51. package/src/Graph/BarChart/BarGroup.tsx +6 -4
  52. package/src/Graph/BarChart/BarStack.tsx +4 -4
  53. package/src/Graph/BarChart/ResponsiveBarChart.tsx +10 -10
  54. package/src/Graph/BarChart/Tooltip/BarChartTooltip.tsx +5 -5
  55. package/src/Graph/BarChart/useBarStack.ts +2 -2
  56. package/src/Graph/BarStack/BarStack.cypress.spec.tsx +1 -1
  57. package/src/Graph/BarStack/BarStack.stories.tsx +1 -1
  58. package/src/Graph/BarStack/ResponsiveBarStack.tsx +10 -6
  59. package/src/Graph/BarStack/useResponsiveBarStack.ts +4 -4
  60. package/src/Graph/Chart/BasicComponents/Lines/RegularLines/index.tsx +1 -1
  61. package/src/Graph/Chart/BasicComponents/Lines/RegularLines/useRegularLines.ts +1 -1
  62. package/src/Graph/Chart/BasicComponents/Lines/StackedLines/index.tsx +4 -4
  63. package/src/Graph/Chart/BasicComponents/Lines/Threshold/ThresholdWithPatternLines.tsx +1 -1
  64. package/src/Graph/Chart/BasicComponents/Lines/Threshold/index.tsx +1 -1
  65. package/src/Graph/Chart/BasicComponents/Lines/Threshold/models.ts +1 -1
  66. package/src/Graph/Chart/BasicComponents/Lines/Threshold/useScaleThreshold.ts +2 -2
  67. package/src/Graph/Chart/BasicComponents/Lines/index.tsx +7 -7
  68. package/src/Graph/Chart/BasicComponents/Lines/models.ts +1 -1
  69. package/src/Graph/Chart/Chart.cypress.spec.tsx +4 -4
  70. package/src/Graph/Chart/Chart.stories.tsx +6 -6
  71. package/src/Graph/Chart/Chart.tsx +11 -11
  72. package/src/Graph/Chart/InteractiveComponents/AnchorPoint/RegularAnchorPoint.tsx +1 -1
  73. package/src/Graph/Chart/InteractiveComponents/AnchorPoint/useTickGraph.ts +1 -1
  74. package/src/Graph/Chart/InteractiveComponents/Annotations/Annotation/Area.tsx +1 -1
  75. package/src/Graph/Chart/InteractiveComponents/Annotations/Annotation/Line.tsx +1 -1
  76. package/src/Graph/Chart/InteractiveComponents/Annotations/Annotation/index.tsx +3 -3
  77. package/src/Graph/Chart/InteractiveComponents/Annotations/Area/Downtime.tsx +1 -1
  78. package/src/Graph/Chart/InteractiveComponents/Annotations/EventAnnotations.tsx +3 -3
  79. package/src/Graph/Chart/InteractiveComponents/Annotations/Line/Comments.tsx +1 -1
  80. package/src/Graph/Chart/InteractiveComponents/Annotations/annotationsAtoms.ts +4 -4
  81. package/src/Graph/Chart/InteractiveComponents/Bar.tsx +1 -1
  82. package/src/Graph/Chart/InteractiveComponents/GraphValueTooltip/GraphValueTooltip.tsx +1 -1
  83. package/src/Graph/Chart/InteractiveComponents/GraphValueTooltip/GraphValueTooltipContent.tsx +1 -1
  84. package/src/Graph/Chart/InteractiveComponents/GraphValueTooltip/useGraphValueTooltip.ts +3 -3
  85. package/src/Graph/Chart/InteractiveComponents/TimeShiftZones/index.tsx +1 -1
  86. package/src/Graph/Chart/InteractiveComponents/TimeShiftZones/models.ts +2 -2
  87. package/src/Graph/Chart/InteractiveComponents/Tooltip/useGraphTooltip.ts +1 -1
  88. package/src/Graph/Chart/InteractiveComponents/index.tsx +7 -7
  89. package/src/Graph/Chart/Legend/LegendHeader.tsx +2 -2
  90. package/src/Graph/Chart/Legend/index.tsx +3 -3
  91. package/src/Graph/Chart/common/index.ts +5 -5
  92. package/src/Graph/Chart/helpers/index.ts +5 -5
  93. package/src/Graph/Chart/index.tsx +2 -2
  94. package/src/Graph/Chart/models.ts +4 -4
  95. package/src/Graph/Gauge/AnimatedPie.tsx +1 -1
  96. package/src/Graph/Gauge/Gauge.cypress.spec.tsx +2 -2
  97. package/src/Graph/Gauge/PieData.tsx +1 -1
  98. package/src/Graph/Gauge/ResponsiveGauge.tsx +5 -5
  99. package/src/Graph/Gauge/models.ts +3 -3
  100. package/src/Graph/HeatMap/HeatMap.cypress.spec.tsx +3 -3
  101. package/src/Graph/HeatMap/HeatMapData.json +1 -1
  102. package/src/Graph/HeatMap/ResponsiveHeatMap.tsx +1 -1
  103. package/src/Graph/PieChart/PieChart.stories.tsx +1 -1
  104. package/src/Graph/PieChart/ResponsivePie.tsx +7 -3
  105. package/src/Graph/SingleBar/ResponsiveSingleBar.tsx +8 -8
  106. package/src/Graph/SingleBar/SingleBar.cypress.spec.tsx +1 -1
  107. package/src/Graph/SingleBar/SingleBar.tsx +1 -1
  108. package/src/Graph/Text/Text.cypress.spec.tsx +2 -2
  109. package/src/Graph/Tree/DescendantNodes.tsx +1 -1
  110. package/src/Graph/Tree/Links.tsx +5 -5
  111. package/src/Graph/Tree/StandaloneTree.tsx +1 -1
  112. package/src/Graph/Tree/Tree.cypress.spec.tsx +2 -2
  113. package/src/Graph/Tree/Tree.stories.tsx +2 -2
  114. package/src/Graph/Tree/Tree.tsx +3 -3
  115. package/src/Graph/Tree/stories/contents.tsx +2 -2
  116. package/src/Graph/common/Axes/index.tsx +1 -1
  117. package/src/Graph/common/Axes/models.ts +1 -1
  118. package/src/Graph/common/Axes/useAxisY.ts +1 -1
  119. package/src/Graph/common/BaseChart/BaseChart.tsx +1 -1
  120. package/src/Graph/common/BaseChart/Header/index.tsx +1 -1
  121. package/src/Graph/common/Thresholds/Thresholds.tsx +2 -2
  122. package/src/Graph/common/timeSeries/index.test.ts +57 -45
  123. package/src/Graph/common/timeSeries/index.test.ts-E +622 -0
  124. package/src/Graph/common/timeSeries/index.ts +30 -30
  125. package/src/Graph/common/utils.ts +2 -2
  126. package/src/Graph/mockedData/annotationData.json +318 -320
  127. package/src/Graph/mockedData/curvesWithSameColor.json +1 -1
  128. package/src/Graph/mockedData/exclusionPeriodFirstPeriod.json +366 -586
  129. package/src/Graph/mockedData/exclusionPeriodSecondPeriod.json +370 -586
  130. package/src/Graph/mockedData/exclusionPeriodThirdPeriod.json +365 -579
  131. package/src/Graph/mockedData/lastDay.json +1290 -1324
  132. package/src/Graph/mockedData/lastDayAreaStack.json +3048 -3104
  133. package/src/Graph/mockedData/lastDayForward.json +1303 -1336
  134. package/src/Graph/mockedData/lastDayThreshold.json +2318 -2350
  135. package/src/Graph/mockedData/lastDayWithIncompleteValues.json +7 -41
  136. package/src/Graph/mockedData/lastDayWithLotOfUnits.json +1618 -1665
  137. package/src/Graph/mockedData/lastDayWithNullValues.json +7 -41
  138. package/src/Graph/mockedData/lastMonth.json +1639 -1672
  139. package/src/Graph/mockedData/lastWeek.json +2167 -2200
  140. package/src/Graph/mockedData/pingService.json +4 -12
  141. package/src/Graph/mockedData/pingServiceLinesBars.json +242 -250
  142. package/src/Graph/mockedData/pingServiceLinesBarsMixed.json +242 -250
  143. package/src/Graph/mockedData/pingServiceLinesBarsStacked.json +242 -250
  144. package/src/Graph/mockedData/pingServiceMixedStacked.json +4 -12
  145. package/src/Graph/mockedData/pingServiceStacked.json +4 -12
  146. package/src/Graph/mockedData/zoomPreview.json +370 -740
  147. package/src/Icon/IconAttach/index.tsx +1 -6
  148. package/src/Image/Image.tsx +75 -75
  149. package/src/Image/atoms.ts +3 -3
  150. package/src/Image/index.stories.tsx +1 -1
  151. package/src/Image/index.test.tsx +53 -53
  152. package/src/Image/models.ts +3 -3
  153. package/src/Image/useLoadImage.ts +49 -49
  154. package/src/InputField/Number/Number.tsx +2 -2
  155. package/src/InputField/Search/PersistentTooltip.tsx +2 -2
  156. package/src/InputField/Search/RegexpHelpTooltip.tsx +1 -1
  157. package/src/InputField/Search/index.stories.tsx +1 -1
  158. package/src/InputField/Select/Autocomplete/Connected/Multi/index.test.tsx +1 -1
  159. package/src/InputField/Select/Autocomplete/Connected/Multi/index.tsx +1 -1
  160. package/src/InputField/Select/Autocomplete/Connected/index.stories.tsx +4 -4
  161. package/src/InputField/Select/Autocomplete/Connected/index.test.tsx +6 -6
  162. package/src/InputField/Select/Autocomplete/Connected/index.tsx +12 -12
  163. package/src/InputField/Select/Autocomplete/Draggable/MultiConnected.tsx +1 -1
  164. package/src/InputField/Select/Autocomplete/Draggable/SortableList.tsx +1 -1
  165. package/src/InputField/Select/Autocomplete/Draggable/SortableListContent.tsx +5 -6
  166. package/src/InputField/Select/Autocomplete/Draggable/index.stories.tsx +6 -6
  167. package/src/InputField/Select/Autocomplete/Draggable/index.tsx +15 -16
  168. package/src/InputField/Select/Autocomplete/Multi/index.tsx +1 -1
  169. package/src/InputField/Select/Autocomplete/Popover/index.tsx +1 -1
  170. package/src/InputField/Select/Autocomplete/index.stories.tsx +2 -3
  171. package/src/InputField/Select/Autocomplete/index.tsx +10 -11
  172. package/src/InputField/Select/IconPopover/index.tsx +3 -3
  173. package/src/InputField/Select/Option.tsx +1 -1
  174. package/src/InputField/Select/index.tsx +6 -6
  175. package/src/InputField/Text/index.stories.tsx +3 -4
  176. package/src/InputField/Text/index.tsx +3 -3
  177. package/src/InputField/Text/useAutoSize.ts +62 -62
  178. package/src/LicenseMessage/index.tsx +1 -1
  179. package/src/Listing/ActionBar/ColumnMultiSelect.tsx +4 -4
  180. package/src/Listing/ActionBar/PaginationActions.tsx +1 -1
  181. package/src/Listing/ActionBar/index.tsx +6 -6
  182. package/src/Listing/Cell/DataCell.tsx +2 -2
  183. package/src/Listing/Cell/EllipsisTypography.tsx +0 -2
  184. package/src/Listing/Cell/index.tsx +7 -8
  185. package/src/Listing/Checkbox.tsx +1 -1
  186. package/src/Listing/EmptyResult/EmptyResult.tsx +0 -2
  187. package/src/Listing/Header/Cell/ListingHeaderCell.styles.ts +1 -1
  188. package/src/Listing/Header/Cell/ListingHeaderCell.tsx +1 -3
  189. package/src/Listing/Header/Cell/SelectActionListingHeaderCell.tsx +3 -5
  190. package/src/Listing/Header/ListingHeader.tsx +6 -7
  191. package/src/Listing/Header/_internals/DraggableIconButton.tsx +1 -3
  192. package/src/Listing/Header/_internals/Label.tsx +2 -3
  193. package/src/Listing/Listing.cypress.spec.tsx +307 -307
  194. package/src/Listing/Row/Row.tsx +4 -5
  195. package/src/Listing/Row/SkeletonLoaderRows.tsx +7 -9
  196. package/src/Listing/index.stories.tsx +1 -1
  197. package/src/Listing/index.tsx +32 -27
  198. package/src/Listing/useResizeObserver.ts +1 -1
  199. package/src/ListingPage/Filter.tsx +15 -18
  200. package/src/ListingPage/index.tsx +2 -2
  201. package/src/Logo/CentreonLogo.tsx +2 -2
  202. package/src/MenuSkeleton/index.tsx +1 -1
  203. package/src/Module/LicensedModule/LicenseCheck/index.tsx +1 -1
  204. package/src/Module/index.tsx +3 -3
  205. package/src/MultiSelectEntries/index.tsx +1 -1
  206. package/src/MultiSelectEntries/useHover.ts +1 -1
  207. package/src/Panel/Section/ExpandableSection.tsx +6 -6
  208. package/src/Panel/Section/index.test.tsx +1 -1
  209. package/src/Panel/Section/index.tsx +1 -1
  210. package/src/Panel/index.tsx +15 -13
  211. package/src/RichTextEditor/ContentEditable.tsx +195 -195
  212. package/src/RichTextEditor/RichTextEditor.tsx +244 -244
  213. package/src/RichTextEditor/index.ts +2 -2
  214. package/src/RichTextEditor/initialEditorState.json +113 -113
  215. package/src/RichTextEditor/plugins/AutoLinkPlugin/index.tsx +4 -4
  216. package/src/RichTextEditor/plugins/FloatingLinkEditorPlugin.tsx +10 -10
  217. package/src/RichTextEditor/plugins/ToolbarPlugin/AlignPicker.tsx +4 -4
  218. package/src/RichTextEditor/plugins/ToolbarPlugin/BlockButtons.tsx +7 -7
  219. package/src/RichTextEditor/plugins/ToolbarPlugin/FormatButtons.tsx +124 -124
  220. package/src/RichTextEditor/plugins/ToolbarPlugin/LinkButton.tsx +5 -5
  221. package/src/RichTextEditor/plugins/ToolbarPlugin/ListButton.tsx +2 -2
  222. package/src/RichTextEditor/plugins/ToolbarPlugin/MacrosButton.tsx +4 -4
  223. package/src/RichTextEditor/plugins/ToolbarPlugin/UndoRedoButtons.tsx +97 -97
  224. package/src/RichTextEditor/plugins/ToolbarPlugin/index.tsx +62 -62
  225. package/src/RichTextEditor/translatedLabels.ts +8 -8
  226. package/src/Snackbar/SnackbarProvider.tsx +3 -4
  227. package/src/Snackbar/Transition.tsx +5 -6
  228. package/src/Snackbar/index.tsx +7 -8
  229. package/src/SortableItems/Item.tsx +3 -3
  230. package/src/SortableItems/SortableItem.tsx +1 -1
  231. package/src/SortableItems/index.stories.tsx +5 -6
  232. package/src/SortableItems/index.tsx +18 -19
  233. package/src/StatusChip/index.tsx +1 -1
  234. package/src/StoryBookThemeProvider/index.tsx +35 -36
  235. package/src/ThemeProvider/index.tsx +8 -10
  236. package/src/ThemeProvider/palettes.ts +42 -27
  237. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/PickersStartEndDate.tsx +1 -1
  238. package/src/TimePeriods/CustomTimePeriod/PopoverCustomTimePeriod/index.tsx +1 -1
  239. package/src/TimePeriods/SelectedTimePeriod.tsx +1 -1
  240. package/src/TimePeriods/TimePeriods.cypress.spec.tsx +3 -3
  241. package/src/TimePeriods/TimePeriods.tsx +1 -1
  242. package/src/TimePeriods/helpers/index.ts +1 -1
  243. package/src/TimePeriods/index.stories.tsx +1 -1
  244. package/src/TimePeriods/index.tsx +1 -1
  245. package/src/TimePeriods/models.ts +2 -2
  246. package/src/TimePeriods/timePeriodsAtoms.ts +1 -1
  247. package/src/TimePeriods/useTimePeriod.ts +4 -4
  248. package/src/TopCounterElements/ResourceSubMenu.tsx +1 -4
  249. package/src/TopCounterElements/StatusCounter.tsx +2 -2
  250. package/src/Typography/FluidTypography/index.tsx +46 -46
  251. package/src/Typography/Subtitle.tsx +2 -2
  252. package/src/Typography/story.utils.tsx +6 -6
  253. package/src/WallpaperPage/index.tsx +1 -1
  254. package/src/Wizard/ActionsBar.test.tsx +1 -1
  255. package/src/Wizard/ActionsBar.tsx +1 -1
  256. package/src/Wizard/StepIcon.tsx +1 -1
  257. package/src/Wizard/Stepper.tsx +2 -2
  258. package/src/Wizard/WizardContent.tsx +1 -1
  259. package/src/Wizard/index.stories.tsx +2 -2
  260. package/src/Wizard/index.test.tsx +3 -3
  261. package/src/Wizard/index.tsx +2 -2
  262. package/src/Wizard/models.ts +1 -1
  263. package/src/api/TestQueryProvider.tsx +24 -24
  264. package/src/api/buildListingDecoder.ts +1 -1
  265. package/src/api/buildListingEndpoint/getSearchQueryParameterValue.ts +11 -11
  266. package/src/api/buildListingEndpoint/index.ts +1 -1
  267. package/src/api/useFetchQuery/index.test.ts +1 -1
  268. package/src/api/useFetchQuery/index.ts +8 -8
  269. package/src/api/useGraphQuery/index.ts +1 -1
  270. package/src/api/useMutationQuery/index.test.ts +1 -1
  271. package/src/api/useMutationQuery/index.ts +4 -4
  272. package/src/api/useRequest/index.test.ts +1 -1
  273. package/src/api/useRequest/index.ts +3 -3
  274. package/src/base/tokens/source/$metadata.json +2 -4
  275. package/src/base/tokens/source/base.json +1 -1
  276. package/src/base/tokens/themes/base.tokens.json +34 -166
  277. package/src/base/tokens/themes/ui-dark.tokens.json +34 -166
  278. package/src/base/tokens/themes/ui-light.tokens.json +34 -166
  279. package/src/components/Button/Icon/IconButton.tsx +1 -1
  280. package/src/components/CollapsibleItem/CollapsibleItem.tsx +2 -2
  281. package/src/components/DataTable/DataListing.tsx +1 -1
  282. package/src/components/DataTable/DataTable.cypress.spec.tsx +1 -1
  283. package/src/components/DataTable/DataTable.stories.tsx +4 -1
  284. package/src/components/DataTable/EmptyState/DataTableEmptyState.tsx +1 -1
  285. package/src/components/DataTable/index.ts +2 -2
  286. package/src/components/Form/AccessRights/AccessRights.cypress.spec.tsx +11 -11
  287. package/src/components/Form/AccessRights/Actions/Actions.tsx +1 -1
  288. package/src/components/Form/AccessRights/List/Item.tsx +5 -5
  289. package/src/components/Form/AccessRights/List/List.tsx +4 -4
  290. package/src/components/Form/AccessRights/ShareInput/ContactSwitch.tsx +2 -2
  291. package/src/components/Form/AccessRights/ShareInput/ShareInput.styles.ts +1 -1
  292. package/src/components/Form/AccessRights/ShareInput/ShareInput.tsx +3 -3
  293. package/src/components/Form/AccessRights/ShareInput/useShareInput.tsx +2 -2
  294. package/src/components/Form/AccessRights/Stats/Stats.tsx +2 -2
  295. package/src/components/Form/AccessRights/atoms.ts +1 -1
  296. package/src/components/Form/AccessRights/storiesData.ts +1 -1
  297. package/src/components/Form/AccessRights/useAccessRightsChange.ts +1 -1
  298. package/src/components/Form/Dashboard/DashboardDuplicationForm.tsx +3 -3
  299. package/src/components/Form/Dashboard/DashboardForm.tsx +5 -5
  300. package/src/components/Form/Dashboard/GlobalRefreshFieldOption.tsx +4 -4
  301. package/src/components/Header/PageHeader/PageHeader.tsx +1 -1
  302. package/src/components/Header/PageHeader/PageHeaderActions.tsx +1 -1
  303. package/src/components/Header/PageHeader/PageHeaderMain.tsx +1 -1
  304. package/src/components/Header/PageHeader/PageHeaderMenu.tsx +1 -1
  305. package/src/components/Header/PageHeader/PageHeaderTitle.tsx +1 -1
  306. package/src/components/Header/PageHeader/index.ts +2 -2
  307. package/src/components/Inputs/Switch/Switch.tsx +1 -1
  308. package/src/components/ItemComposition/ItemComposition.stories.tsx +6 -4
  309. package/src/components/ItemComposition/index.ts +1 -1
  310. package/src/components/Layout/PageLayout/PageLayout.stories.tsx +1 -1
  311. package/src/components/Layout/PageLayout/PageQuickAccess.tsx +12 -13
  312. package/src/components/Layout/PageLayout/index.ts +2 -2
  313. package/src/components/List/Item/ListItem.tsx +3 -3
  314. package/src/components/List/Item/index.ts +2 -2
  315. package/src/components/List/List.stories.tsx +16 -14
  316. package/src/components/List/List.tsx +2 -2
  317. package/src/components/List/index.ts +1 -1
  318. package/src/components/Menu/Button/MenuButton.tsx +1 -1
  319. package/src/components/Menu/index.ts +2 -2
  320. package/src/components/Menu/useMenu.tsx +3 -3
  321. package/src/components/Modal/ConfirmationModal/ConfirmationModal.cypress.spec.tsx +1 -1
  322. package/src/components/Modal/ConfirmationModal/ConfirmationModal.stories.tsx +1 -1
  323. package/src/components/Modal/ConfirmationModal/ConfirmationModal.tsx +1 -1
  324. package/src/components/Modal/Modal.tsx +1 -1
  325. package/src/components/Modal/ModalBody.tsx +1 -1
  326. package/src/components/Modal/ModalHeader.tsx +1 -1
  327. package/src/components/Modal/index.ts +2 -2
  328. package/src/components/Tooltip/ConfirmationTooltip/ConfirmationTooltip.tsx +2 -2
  329. package/src/components/Tooltip/ConfirmationTooltip/TooltipContent.tsx +1 -1
  330. package/src/components/Tooltip/TextOverflowTooltip/TextOverflowTooltip.tsx +1 -1
  331. package/src/components/Zoom/Minimap.tsx +1 -1
  332. package/src/components/Zoom/Zoom.stories.tsx +1 -1
  333. package/src/components/Zoom/ZoomContent.tsx +3 -3
  334. package/src/components/Zoom/localPoint.ts +4 -4
  335. package/src/components/Zoom/useMinimap.ts +1 -1
  336. package/src/queryParameters/index.ts +1 -1
  337. package/src/styles/tokens/themes/_ui-dark.tokens.json +34 -166
  338. package/src/styles/tokens/themes/_ui-light.tokens.json +34 -166
  339. package/src/utils/index.ts +29 -29
  340. package/src/utils/resourcesStatusURL.ts +2 -2
  341. package/src/utils/sanitizedHTML.ts +1 -1
  342. package/src/utils/useCopyToClipboard.ts +1 -1
  343. package/src/utils/useDebounce.ts +1 -1
  344. package/src/utils/useFullscreen/useFullscreen.ts +2 -2
  345. package/src/utils/useInfiniteScrollListing.ts +129 -129
  346. package/src/utils/useIntersectionObserver.ts +1 -1
  347. package/src/utils/useKeyObserver.tsx +1 -1
  348. package/src/utils/useLicenseExpirationWarning.test.tsx +1 -1
  349. package/src/utils/useLicenseExpirationWarning.ts +1 -1
  350. package/src/utils/useLocaleDateTimeFormat/index.test.tsx +3 -3
  351. package/src/utils/useLocaleDateTimeFormat/index.ts +1 -1
  352. package/src/utils/useLocaleDateTimeFormat/localeFallback.test.tsx +4 -4
  353. package/src/utils/useLocaleTimezoneDate/LocaleTimezoneDate.cypress.spec.tsx +2 -2
  354. package/src/utils/useMemoComponent.ts +1 -1
  355. package/src/utils/usePluralizedTranslation.ts +2 -2
  356. package/src/utils/useViewportIntersection.ts +1 -1
@@ -1,14 +1,14 @@
1
1
  import { FormikValues, useFormikContext } from 'formik';
2
- import * as Yup from 'yup';
3
2
  import { equals, prop } from 'ramda';
4
3
 
5
- import { Typography } from '@mui/material';
6
4
  import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
7
5
  import MailIcon from '@mui/icons-material/MailOutline';
6
+ import { Typography } from '@mui/material';
8
7
 
9
8
  import { SelectEntry } from '../InputField/Select';
10
9
  import { Listing } from '../api/models';
11
10
 
11
+ import { array, boolean, number, object, string } from 'yup';
12
12
  import {
13
13
  Group,
14
14
  InputProps,
@@ -43,46 +43,42 @@ export interface BasicForm {
43
43
  sports: Array<SelectEntry>;
44
44
  }
45
45
 
46
- const selectEntryValidationSchema = Yup.object().shape({
47
- id: Yup.number().required('Required'),
48
- name: Yup.string().required('Required')
46
+ const selectEntryValidationSchema = object().shape({
47
+ id: number().required('Required'),
48
+ name: string().required('Required')
49
49
  });
50
50
 
51
- export const basicFormValidationSchema = Yup.object().shape({
52
- active: Yup.boolean().required('Active is required'),
53
- activeSortableFieldsTable: Yup.boolean().required(
51
+ export const basicFormValidationSchema = object().shape({
52
+ active: boolean().required('Active is required'),
53
+ activeSortableFieldsTable: boolean().required(
54
54
  'Active Sortable FieldsTable is required'
55
55
  ),
56
- animals: Yup.array().of(selectEntryValidationSchema.required('Required')),
57
- anotherText: Yup.string(),
58
- certificate: Yup.string(),
56
+ animals: array().of(selectEntryValidationSchema.required('Required')),
57
+ anotherText: string(),
58
+ certificate: string(),
59
59
  class: selectEntryValidationSchema.nullable().required('Required'),
60
- custom: Yup.string().required('Custom is required'),
61
- email: Yup.string().email('Invalid email').required('Email is required'),
60
+ custom: string().required('Custom is required'),
61
+ email: string().email('Invalid email').required('Email is required'),
62
62
  group: selectEntryValidationSchema.nullable().required('Required'),
63
- inviteUsers: Yup.array().of(
64
- Yup.object({
65
- email: Yup.string()
66
- .email('Invalid user email')
67
- .required('Email is required'),
63
+ inviteUsers: array().of(
64
+ object({
65
+ email: string().email('Invalid user email').required('Email is required'),
68
66
  role: selectEntryValidationSchema
69
67
  })
70
68
  ),
71
- inviteUsers2: Yup.array().of(Yup.string().email('Invalid user email')),
72
- isForced: Yup.boolean().required('Is forced is required'),
73
- language: Yup.string().required('Language is required'),
74
- name: Yup.string().required('Name is required'),
75
- password: Yup.string().required('Password is required'),
76
- roleMapping: Yup.array().of(
77
- Yup.object({
69
+ inviteUsers2: array().of(string().email('Invalid user email')),
70
+ isForced: boolean().required('Is forced is required'),
71
+ language: string().required('Language is required'),
72
+ name: string().required('Name is required'),
73
+ password: string().required('Password is required'),
74
+ roleMapping: array().of(
75
+ object({
78
76
  role: selectEntryValidationSchema,
79
- value: Yup.string().required('Role value is required')
77
+ value: string().required('Role value is required')
80
78
  })
81
79
  ),
82
- scopes: Yup.array().of(
83
- Yup.string().min(3, '3 characters min').required('Required')
84
- ),
85
- sports: Yup.array().of(selectEntryValidationSchema.required('Required'))
80
+ scopes: array().of(string().min(3, '3 characters min').required('Required')),
81
+ sports: array().of(selectEntryValidationSchema.required('Required'))
86
82
  });
87
83
 
88
84
  const roleEntries: Array<SelectEntry> = [
@@ -0,0 +1,481 @@
1
+ import { FormikValues, useFormikContext } from 'formik';
2
+ import { equals, prop } from 'ramda';
3
+
4
+ import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
5
+ import MailIcon from '@mui/icons-material/MailOutline';
6
+ import { Typography } from '@mui/material';
7
+
8
+ import { SelectEntry } from '../InputField/Select';
9
+ import { Listing } from '../api/models';
10
+
11
+ import {
12
+ Group,
13
+ InputProps,
14
+ InputPropsWithoutGroup,
15
+ InputType
16
+ } from './Inputs/models';
17
+ import { object } from ';
18
+
19
+ export interface BasicForm {
20
+ active: boolean;
21
+ activeSortableFieldsTable: boolean;
22
+ animals: Array<SelectEntry>;
23
+ anotherText: string;
24
+ certificate: string;
25
+ class: { id: number; name: string } | null;
26
+ custom: string;
27
+ email: string;
28
+ group: { id: number; name: string } | null;
29
+ inviteUsers: Array<{
30
+ role: SelectEntry;
31
+ user: string;
32
+ }>;
33
+ inviteUsers2: Array<string>;
34
+ isForced: boolean;
35
+ language: string;
36
+ name: string;
37
+ password: string;
38
+ roleMapping: Array<{
39
+ role: SelectEntry;
40
+ value: string;
41
+ }>;
42
+ scopes: Array<string>;
43
+ sports: Array<SelectEntry>;
44
+ }
45
+
46
+ const selectEntryValidationSchema = object().shape({
47
+ id: number().required('Required'),
48
+ name: string().required('Required')
49
+ });
50
+
51
+ export const basicFormValidationSchema = object().shape({
52
+ active: boolean().required('Active is required'),
53
+ activeSortableFieldsTable: boolean().required(
54
+ 'Active Sortable FieldsTable is required'
55
+ ),
56
+ animals: array().of(selectEntryValidationSchema.required('Required')),
57
+ anotherText: string(),
58
+ certificate: string(),
59
+ class: selectEntryValidationSchema.nullable().required('Required'),
60
+ custom: string().required('Custom is required'),
61
+ email: string().email('Invalid email').required('Email is required'),
62
+ group: selectEntryValidationSchema.nullable().required('Required'),
63
+ inviteUsers: array().of(
64
+ object({
65
+ email: string()
66
+ .email('Invalid user email')
67
+ .required('Email is required'),
68
+ role: selectEntryValidationSchema
69
+ })
70
+ ),
71
+ inviteUsers2: array().of(string().email('Invalid user email')),
72
+ isForced: boolean().required('Is forced is required'),
73
+ language: string().required('Language is required'),
74
+ name: string().required('Name is required'),
75
+ password: string().required('Password is required'),
76
+ roleMapping: array().of(
77
+ object({
78
+ role: selectEntryValidationSchema,
79
+ value: string().required('Role value is required')
80
+ })
81
+ ),
82
+ scopes: array().of(
83
+ string().min(3, '3 characters min').required('Required')
84
+ ),
85
+ sports: Yup.array().of(selectEntryValidationSchema.required('Required'))
86
+ });
87
+
88
+ const roleEntries: Array<SelectEntry> = [
89
+ {
90
+ id: 1,
91
+ name: 'Administrator'
92
+ },
93
+ {
94
+ id: 2,
95
+ name: 'User'
96
+ },
97
+ {
98
+ id: 3,
99
+ name: 'Editor'
100
+ }
101
+ ];
102
+
103
+ export const basicFormInitialValues = {
104
+ active: false,
105
+ activeSortableFieldsTable: false,
106
+ animals: [],
107
+ certificate: '',
108
+ class: { id: 0, name: 'Class 0' },
109
+ custom: '',
110
+ email: '',
111
+ group: null,
112
+ inviteUsers: [],
113
+ inviteUsers2: [],
114
+ isForced: false,
115
+ language: 'French',
116
+ 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
+ password: '',
123
+ roleMapping: [
124
+ {
125
+ priority: 0,
126
+ role: roleEntries[0],
127
+ value: 'example'
128
+ },
129
+ {
130
+ priority: 1,
131
+ role: roleEntries[1],
132
+ value: 'example2'
133
+ },
134
+ {
135
+ priority: 2,
136
+ role: roleEntries[2],
137
+ value: 'example3'
138
+ }
139
+ ],
140
+ scopes: [],
141
+ sports: []
142
+ };
143
+
144
+ export const classOptions = [...Array(10).keys()].map((idx) => ({
145
+ id: idx,
146
+ name: `Class ${idx}`
147
+ }));
148
+
149
+ export const sportOptions = [...Array(10).keys()].map((idx) => ({
150
+ id: idx,
151
+ name: `Sport ${idx}`
152
+ }));
153
+
154
+ export const basicFormGroups: Array<Group> = [
155
+ {
156
+ name: 'First group',
157
+ order: 1
158
+ },
159
+ {
160
+ EndIcon: () => <HelpOutlineIcon />,
161
+ TooltipContent: (): JSX.Element => <Typography>Tooltip content</Typography>,
162
+ name: 'Second group',
163
+ order: 2
164
+ },
165
+ {
166
+ name: 'Third group',
167
+ order: 3
168
+ }
169
+ ];
170
+
171
+ export const basicFormInputs: Array<InputProps> = [
172
+ {
173
+ fieldName: 'name',
174
+ group: 'First group',
175
+ label: 'Name',
176
+ type: InputType.Text
177
+ },
178
+ {
179
+ fieldName: 'email',
180
+ group: 'First group',
181
+ label: 'Email',
182
+ text: {
183
+ endAdornment: <MailIcon />,
184
+ placeholder: 'Your email here'
185
+ },
186
+ type: InputType.Text
187
+ },
188
+ {
189
+ fieldName: 'active',
190
+ group: 'Second group',
191
+ label: 'Active',
192
+ type: InputType.Switch
193
+ },
194
+ {
195
+ additionalLabel: 'This a very special label',
196
+ fieldName: 'password',
197
+ group: 'First group',
198
+ hideInput: (values) => values.active,
199
+ label: 'Password',
200
+ type: InputType.Password
201
+ },
202
+ {
203
+ fieldName: 'language',
204
+ group: 'First group',
205
+ label: 'Language',
206
+ radio: {
207
+ options: [
208
+ {
209
+ label: 'French',
210
+ value: 'French'
211
+ },
212
+ {
213
+ label: 'English',
214
+ value: 'English'
215
+ }
216
+ ]
217
+ },
218
+ type: InputType.Radio
219
+ },
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
+ {
256
+ fieldName: 'anotherText',
257
+ group: 'First group',
258
+ hideInput: ({ language }) => equals(language, 'French'),
259
+ label: 'Another Text input',
260
+ type: InputType.Text
261
+ },
262
+ {
263
+ fieldName: 'isForced',
264
+ group: 'First group',
265
+ label: 'Is Forced?',
266
+ radio: {
267
+ options: [
268
+ {
269
+ label: 'Is not forced',
270
+ value: false
271
+ },
272
+ {
273
+ label: 'Is forced',
274
+ value: true
275
+ }
276
+ ]
277
+ },
278
+ type: InputType.Radio
279
+ },
280
+ {
281
+ fieldName: '',
282
+ grid: {
283
+ columns: [
284
+ {
285
+ autocomplete: {
286
+ options: classOptions
287
+ },
288
+ fieldName: 'class',
289
+ label: 'Class (Single autocomplete)',
290
+ type: InputType.SingleAutocomplete
291
+ },
292
+ {
293
+ autocomplete: {
294
+ options: sportOptions
295
+ },
296
+ fieldName: 'sports',
297
+ label: 'Sports (Multi autocomplete)',
298
+ type: InputType.MultiAutocomplete
299
+ }
300
+ ]
301
+ },
302
+ group: 'First group',
303
+ label: 'autocompletes',
304
+ type: InputType.Grid
305
+ },
306
+ {
307
+ autocomplete: {
308
+ creatable: true,
309
+ options: []
310
+ },
311
+ fieldName: 'scopes',
312
+ group: 'First group',
313
+ label: 'Scopes (Multi autocomplete that allows value creation)',
314
+ type: InputType.MultiAutocomplete
315
+ },
316
+ {
317
+ fieldName: '',
318
+ grid: {
319
+ columns: [
320
+ {
321
+ connectedAutocomplete: {
322
+ additionalConditionParameters: [],
323
+ endpoint: 'endpoint'
324
+ },
325
+ fieldName: 'group',
326
+ label: 'Group (Single connected autocomplete)',
327
+ type: InputType.SingleConnectedAutocomplete
328
+ },
329
+ {
330
+ connectedAutocomplete: {
331
+ additionalConditionParameters: [],
332
+ endpoint: 'endpoint'
333
+ },
334
+ fieldName: 'animals',
335
+ label: 'Animals (Multi connected autocomplete)',
336
+ type: InputType.MultiConnectedAutocomplete
337
+ }
338
+ ],
339
+ gridTemplateColumns: '400px 1fr'
340
+ },
341
+ group: 'First group',
342
+ label: 'connected autocompletes',
343
+ type: InputType.Grid
344
+ },
345
+ {
346
+ custom: {
347
+ Component: ({ label }: InputPropsWithoutGroup): JSX.Element => (
348
+ <Typography>This is a {label} component</Typography>
349
+ )
350
+ },
351
+ fieldName: 'custom',
352
+ group: 'Second group',
353
+ label: 'Custom',
354
+ type: InputType.Custom
355
+ },
356
+ {
357
+ fieldName: 'inviteUsers',
358
+ fieldsTable: {
359
+ columns: [
360
+ {
361
+ fieldName: 'email',
362
+ label: 'Email',
363
+ required: true,
364
+ type: InputType.Text
365
+ },
366
+ {
367
+ autocomplete: {
368
+ creatable: false,
369
+ options: roleEntries
370
+ },
371
+ fieldName: 'role',
372
+ label: 'Role',
373
+ type: InputType.SingleAutocomplete
374
+ }
375
+ ],
376
+ defaultRowValue: {
377
+ email: 'example@test.fr',
378
+ role: null
379
+ },
380
+ deleteLabel: 'Delete'
381
+ },
382
+ group: 'First group',
383
+ label: 'inviteUsers',
384
+ type: InputType.FieldsTable
385
+ },
386
+ {
387
+ fieldName: 'inviteUsers2',
388
+ fieldsTable: {
389
+ columns: [
390
+ {
391
+ fieldName: 'email',
392
+ label: 'Email',
393
+ required: true,
394
+ type: InputType.Text
395
+ }
396
+ ],
397
+ defaultRowValue: 'example',
398
+ deleteLabel: 'Delete',
399
+ hasSingleValue: true
400
+ },
401
+ group: 'First group',
402
+ label: 'inviteUsers2',
403
+ type: InputType.FieldsTable
404
+ },
405
+ {
406
+ fieldName: 'activeSortableFieldsTable',
407
+ group: 'First group',
408
+ label: 'Active Sortable Fields Table',
409
+ type: InputType.Switch
410
+ },
411
+ {
412
+ fieldName: 'roleMapping',
413
+ fieldsTable: {
414
+ columns: [
415
+ {
416
+ fieldName: 'value',
417
+ label: 'RoleValue',
418
+ required: true,
419
+ type: InputType.Text
420
+ },
421
+ {
422
+ autocomplete: {
423
+ creatable: false,
424
+ options: roleEntries
425
+ },
426
+ fieldName: 'role',
427
+ label: 'RoleAcl',
428
+ type: InputType.SingleAutocomplete
429
+ }
430
+ ],
431
+ defaultRowValue: {
432
+ role: null,
433
+ value: ''
434
+ },
435
+ deleteLabel: 'Delete',
436
+ getSortable: (values: FormikValues): boolean =>
437
+ prop('activeSortableFieldsTable', values)
438
+ },
439
+ group: 'First group',
440
+ label: 'roleMapping',
441
+ type: InputType.FieldsTable
442
+ },
443
+ {
444
+ fieldName: 'certificate',
445
+ group: 'First group',
446
+ label: 'Certificate',
447
+ text: {
448
+ multilineRows: 4
449
+ },
450
+ type: InputType.Text
451
+ }
452
+ ];
453
+
454
+ export const CustomButton = (): JSX.Element => {
455
+ const { dirty, isValid } = useFormikContext();
456
+
457
+ return (
458
+ <div>
459
+ <Typography>Has form changed? {JSON.stringify(dirty)}</Typography>
460
+ <Typography>Is valid? {JSON.stringify(isValid)}</Typography>
461
+ </div>
462
+ );
463
+ };
464
+
465
+ const buildEntities = (from): Array<SelectEntry> => {
466
+ return Array(10)
467
+ .fill(0)
468
+ .map((_, index) => ({
469
+ id: from + index,
470
+ name: `Entity ${from + index}`
471
+ }));
472
+ };
473
+
474
+ export const buildResult = (page): Listing<SelectEntry> => ({
475
+ meta: {
476
+ limit: 10,
477
+ page,
478
+ total: 40
479
+ },
480
+ result: buildEntities((page - 1) * 10)
481
+ });
@@ -3,8 +3,8 @@ import dayjs from 'dayjs';
3
3
 
4
4
  import { LineChartData } from '../common/models';
5
5
  import dataPingService from '../mockedData/pingService.json';
6
- import dataPingServiceStacked from '../mockedData/pingServiceStacked.json';
7
6
  import dataPingServiceMixedStacked from '../mockedData/pingServiceMixedStacked.json';
7
+ import dataPingServiceStacked from '../mockedData/pingServiceStacked.json';
8
8
 
9
9
  import BarChart from './BarChart';
10
10
 
@@ -12,11 +12,11 @@ import { Provider } from 'jotai';
12
12
 
13
13
  import { Box } from '@mui/material';
14
14
 
15
- import { LineChartProps } from '../Chart/models';
16
- import { LineChartData, Thresholds } from '../common/models';
17
15
  import { ParentSize } from '../../ParentSize';
18
- import useChartData from '../Chart/useChartData';
19
16
  import LoadingSkeleton from '../Chart/LoadingSkeleton';
17
+ import { LineChartProps } from '../Chart/models';
18
+ import useChartData from '../Chart/useChartData';
19
+ import { LineChartData, Thresholds } from '../common/models';
20
20
 
21
21
  import ResponsiveBarChart from './ResponsiveBarChart';
22
22
  import { BarStyle } from './models';
@@ -1,19 +1,19 @@
1
1
  import { memo, useMemo } from 'react';
2
2
 
3
- import { BarGroupHorizontal, BarGroup as VisxBarGroup } from '@visx/shape';
4
- import { difference, equals, keys, omit, pick, pluck, uniq } from 'ramda';
5
- import { scaleBand, scaleOrdinal } from '@visx/scale';
6
3
  import { Group } from '@visx/group';
4
+ import { scaleBand, scaleOrdinal } from '@visx/scale';
5
+ import { BarGroupHorizontal, BarGroup as VisxBarGroup } from '@visx/shape';
7
6
  import { ScaleLinear } from 'd3-scale';
7
+ import { difference, equals, keys, omit, pick, pluck, uniq } from 'ramda';
8
8
 
9
9
  import { useDeepMemo } from '../../utils';
10
- import { Line, TimeValue } from '../common/timeSeries/models';
11
10
  import {
12
11
  getSortedStackedLines,
13
12
  getTime,
14
13
  getTimeSeriesForLines,
15
14
  getUnits
16
15
  } from '../common/timeSeries';
16
+ import { Line, TimeValue } from '../common/timeSeries/models';
17
17
 
18
18
  import BarStack from './BarStack';
19
19
  import { BarStyle } from './models';
@@ -175,6 +175,7 @@ const BarGroup = ({
175
175
 
176
176
  return isStackedBar ? (
177
177
  <BarStack
178
+ key={`bar-${barGroup.index}-${bar.width}-${bar.y}-${bar.height}-${bar.x}`}
178
179
  barIndex={barGroup.index}
179
180
  barPadding={isHorizontal ? bar.x : bar.y}
180
181
  barStyle={barStyle}
@@ -187,6 +188,7 @@ const BarGroup = ({
187
188
  />
188
189
  ) : (
189
190
  <BarStack
191
+ key={`bar-${barGroup.index}-${bar.width}-${bar.y}-${bar.height}-${bar.x}`}
190
192
  barIndex={barGroup.index}
191
193
  barPadding={isHorizontal ? bar.x : bar.y}
192
194
  barStyle={barStyle}
@@ -1,11 +1,11 @@
1
1
  import { memo } from 'react';
2
2
 
3
3
  import { scaleBand } from '@visx/scale';
4
- import { dec, equals, gt, pick } from 'ramda';
5
4
  import { BarRounded } from '@visx/shape';
5
+ import { dec, equals, gt, pick } from 'ramda';
6
6
 
7
- import { useBarStack, UseBarStackProps } from './useBarStack';
8
7
  import { BarStyle } from './models';
8
+ import { UseBarStackProps, useBarStack } from './useBarStack';
9
9
 
10
10
  const xScale = scaleBand<number>({
11
11
  domain: [0, 0],
@@ -64,8 +64,8 @@ const BarStack = ({
64
64
  const isNegativeValue = gt(0, bar.bar[1]);
65
65
 
66
66
  const barRoundedProps = {
67
- [isHorizontal ? 'top' : 'right']: shouldApplyRadiusOnTop,
68
- [isHorizontal ? 'bottom' : 'left']: shouldApplyRadiusOnBottom
67
+ [isHorizontal ? 'bottom' : 'left']: shouldApplyRadiusOnBottom,
68
+ [isHorizontal ? 'top' : 'right']: shouldApplyRadiusOnTop
69
69
  };
70
70
 
71
71
  return (
@@ -1,31 +1,31 @@
1
1
  import { MutableRefObject, useEffect, useMemo, useRef, useState } from 'react';
2
2
 
3
- import { equals, flatten, gte, has, isNil, pluck } from 'ramda';
4
3
  import { useAtom } from 'jotai';
4
+ import { equals, flatten, gte, has, isNil, pluck } from 'ramda';
5
5
 
6
6
  import { Skeleton } from '@mui/material';
7
7
 
8
+ import { Tooltip } from '../../components';
9
+ import { useDeepCompare } from '../../utils';
10
+ import { margin } from '../Chart/common';
8
11
  import { Data, LineChartProps } from '../Chart/models';
9
- import { Thresholds as ThresholdsModel } from '../common/models';
10
12
  import { useIntersection } from '../Chart/useChartIntersection';
11
- import { Line } from '../common/timeSeries/models';
13
+ import BaseChart from '../common/BaseChart/BaseChart';
14
+ import ChartSvgWrapper from '../common/BaseChart/ChartSvgWrapper';
12
15
  import { useComputeBaseChartDimensions } from '../common/BaseChart/useComputeBaseChartDimensions';
16
+ import Thresholds from '../common/Thresholds/Thresholds';
17
+ import { Thresholds as ThresholdsModel } from '../common/models';
13
18
  import {
14
19
  getUnits,
15
20
  getXScaleBand,
16
21
  getYScalePerUnit
17
22
  } from '../common/timeSeries';
18
- import BaseChart from '../common/BaseChart/BaseChart';
19
- import ChartSvgWrapper from '../common/BaseChart/ChartSvgWrapper';
23
+ import { Line } from '../common/timeSeries/models';
20
24
  import { useTooltipStyles } from '../common/useTooltipStyles';
21
- import { margin } from '../Chart/common';
22
- import { Tooltip } from '../../components';
23
- import Thresholds from '../common/Thresholds/Thresholds';
24
- import { useDeepCompare } from '../../utils';
25
25
 
26
26
  import BarGroup from './BarGroup';
27
- import { tooltipDataAtom } from './atoms';
28
27
  import BarChartTooltip from './Tooltip/BarChartTooltip';
28
+ import { tooltipDataAtom } from './atoms';
29
29
  import { BarStyle } from './models';
30
30
 
31
31
  interface Props