@ssa-ui-kit/core 1.0.14 → 1.0.17

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 (202) hide show
  1. package/custom-shots/components-popover--hint-opened__[w1920px].png +0 -0
  2. package/custom-shots/widgets-collapsiblenavbar-opened__[w1439px].png +0 -0
  3. package/custom-shots/widgets-collapsiblenavbar-opened__[w1439px]_statistics_submenu_popover.png +0 -0
  4. package/custom-shots/widgets-collapsiblenavbar-opened__[w1920px].png +0 -0
  5. package/custom-shots/widgets-collapsiblenavbar-opened__[w1920px]_side_menu_expanded.png +0 -0
  6. package/custom-shots/widgets-collapsiblenavbar-opened__[w1920px]_statistics_submenu_expanded.png +0 -0
  7. package/custom-shots/widgets-collapsiblenavbar-opened__[w1920px]_statistics_submenu_popover.png +0 -0
  8. package/custom-shots/widgets-collapsiblenavbar-opened__[w899px]_default.png +0 -0
  9. package/custom-shots/widgets-collapsiblenavbar-opened__[w899px]_menu_opened.png +0 -0
  10. package/custom-shots/widgets-collapsiblenavbar-opened__[w899px]_statistics_submenu.png +0 -0
  11. package/custom-shots/widgets-filters--default__[w1920px].png +0 -0
  12. package/custom-shots/widgets-filters--filter-button-items-not-selected__[w390px].png +0 -0
  13. package/custom-shots/widgets-filters--more-button-items-selected__[w390px].png +0 -0
  14. package/custom-shots/widgets-filters--more-button__[w900px].png +0 -0
  15. package/custom-shots/widgets-linkstabbar--current-focus__[w1920px].png +0 -0
  16. package/custom-shots/widgets-linkstabbar--non-current-focus__[w1920px].png +0 -0
  17. package/custom-shots/widgets-navbar-opened__[w1440px].png +0 -0
  18. package/custom-shots/widgets-navbar-opened__[w1920px].png +0 -0
  19. package/custom-shots/widgets-navbar-opened__[w390px].png +0 -0
  20. package/custom-shots/widgets-navbar-opened__[w900px].png +0 -0
  21. package/custom-shots/widgets-notification-menu--is-opened__[w1440px].png +0 -0
  22. package/custom-shots/widgets-notification-menu--is-opened__[w1920px].png +0 -0
  23. package/custom-shots/widgets-notification-menu--is-opened__[w390px].png +0 -0
  24. package/custom-shots/widgets-notification-menu--is-opened__[w900px].png +0 -0
  25. package/custom-shots/widgets-pagination--next-hover__[w1920px].png +0 -0
  26. package/custom-shots/widgets-pagination--not-selected-hover__[w1920px].png +0 -0
  27. package/custom-shots/widgets-pagination--previous-hover__[w1920px].png +0 -0
  28. package/custom-shots/widgets-pagination--selected-hover__[w1920px].png +0 -0
  29. package/custom-shots/widgets-pagination-disabled--next-hover__[w1920px].png +0 -0
  30. package/custom-shots/widgets-pagination-disabled--not-selected-hover__[w1920px].png +0 -0
  31. package/custom-shots/widgets-pagination-disabled--previous-hover__[w1920px].png +0 -0
  32. package/custom-shots/widgets-pagination-disabled--selected-hover__[w1920px].png +0 -0
  33. package/custom-shots/widgets-progressInfo__[w1440px].png +0 -0
  34. package/custom-shots/widgets-progressInfo__[w1920px].png +0 -0
  35. package/custom-shots/widgets-progressInfo__[w390px].png +0 -0
  36. package/custom-shots/widgets-progressInfo__[w900px].png +0 -0
  37. package/custom-shots/widgets-progressInfo__dropdown__[w1440px].png +0 -0
  38. package/custom-shots/widgets-progressInfo__dropdown__[w1920px].png +0 -0
  39. package/custom-shots/widgets-progressInfo__dropdown__[w390px].png +0 -0
  40. package/custom-shots/widgets-progressInfo__dropdown__[w900px].png +0 -0
  41. package/custom-shots/widgets-searchbox--cross-icon__[w900px].png +0 -0
  42. package/custom-shots/widgets-searchbox--search-icon__[w900px].png +0 -0
  43. package/custom-shots/widgets-table-filters--opened__[w1920px].png +0 -0
  44. package/custom-shots/widgets-user-profile--is-opened__[w1920px].png +0 -0
  45. package/dist/components/AccordionGroup/AccordionContent.d.ts +1 -6
  46. package/dist/components/AccordionGroup/AccordionContext.d.ts +0 -1
  47. package/dist/components/AccordionGroup/stories/helpers.d.ts +1 -1
  48. package/dist/components/AddNewAccountCard/types.d.ts +0 -1
  49. package/dist/components/Avatar/Avatar.d.ts +2 -3
  50. package/dist/components/Badge/BadgeBase.d.ts +2 -3
  51. package/dist/components/Badge/helpers.d.ts +4 -5
  52. package/dist/components/Badge/types.d.ts +0 -1
  53. package/dist/components/Button/Button.d.ts +0 -1
  54. package/dist/components/Button/ButtonBase.d.ts +2 -3
  55. package/dist/components/Button/fixtures.d.ts +32 -33
  56. package/dist/components/Button/helpers.d.ts +4 -5
  57. package/dist/components/Card/CardBase.d.ts +3 -4
  58. package/dist/components/Card/types.d.ts +0 -1
  59. package/dist/components/CardContent/CardContent.d.ts +0 -1
  60. package/dist/components/CardContent/CardContentBase.d.ts +3 -4
  61. package/dist/components/CardHeader/CardHeader.d.ts +0 -1
  62. package/dist/components/CardHeader/CardHeaderBase.d.ts +4 -5
  63. package/dist/components/CardList/types.d.ts +0 -1
  64. package/dist/components/Checkbox/CheckboxBase.d.ts +1 -1
  65. package/dist/components/CollapsibleNavBar/CollapsibleNavBarBase.d.ts +3 -4
  66. package/dist/components/CollapsibleNavBar/CollapsibleNavBarItem.d.ts +3 -4
  67. package/dist/components/CollapsibleNavBar/CollapsibleNavBarLink.d.ts +1 -2
  68. package/dist/components/CollapsibleNavBar/CollapsibleNavBarList.d.ts +3 -4
  69. package/dist/components/CollapsibleNavBar/CollapsibleNavBarWrapper.d.ts +3 -4
  70. package/dist/components/CollapsibleNavBar/CollapsibleNavToggleWrapper.d.ts +3 -4
  71. package/dist/components/CollapsibleNavBar/NavBarAccordionContent.d.ts +4 -9
  72. package/dist/components/CollapsibleNavBar/NavBarItemWithSubMenu.d.ts +1 -1
  73. package/dist/components/CollapsibleNavBar/NavBarItemWithoutSubMenu.d.ts +1 -2
  74. package/dist/components/CollapsibleNavBar/NavBarPopover.d.ts +1 -2
  75. package/dist/components/CollapsibleNavBar/TriggerIcon.d.ts +3 -3
  76. package/dist/components/CollapsibleNavBar/types.d.ts +0 -1
  77. package/dist/components/ColorPicker/styles.d.ts +2 -3
  78. package/dist/components/Dropdown/types.d.ts +0 -1
  79. package/dist/components/DropdownArrow/DropdownArrow.d.ts +2 -3
  80. package/dist/components/DropdownBase/DropdownBase.d.ts +2 -3
  81. package/dist/components/DropdownOption/DropdownOption.d.ts +2 -2
  82. package/dist/components/DropdownOptions/types.d.ts +0 -1
  83. package/dist/components/DropdownToggle/DropdownToggle.d.ts +2 -3
  84. package/dist/components/Filters/FilterBlockWrapper.d.ts +6 -7
  85. package/dist/components/Filters/Filters.d.ts +2 -13
  86. package/dist/components/Filters/FiltersContext.d.ts +3 -13
  87. package/dist/components/Filters/FiltersWrapper.d.ts +3 -4
  88. package/dist/components/Filters/hooks/useFiltersBlock.d.ts +6 -0
  89. package/dist/components/Filters/hooks/useVisibility.d.ts +0 -1
  90. package/dist/components/Form/Form.d.ts +2 -3
  91. package/dist/components/FormAction/FormAction.d.ts +2 -3
  92. package/dist/components/FormGroup/FormGroup.d.ts +2 -3
  93. package/dist/components/FormHelperText/FormHelperTextBase.d.ts +3 -4
  94. package/dist/components/FormHelperText/types.d.ts +0 -1
  95. package/dist/components/ImageItem/types.d.ts +0 -1
  96. package/dist/components/Indicator/IndicatorBase.d.ts +3 -4
  97. package/dist/components/Indicator/types.d.ts +0 -1
  98. package/dist/components/Input/Input.d.ts +0 -1
  99. package/dist/components/Input/InputBase.d.ts +2 -3
  100. package/dist/components/Input/InputGroup.d.ts +3 -4
  101. package/dist/components/Input/InputStatusError.d.ts +2 -3
  102. package/dist/components/Input/InputStatusSuccess.d.ts +2 -3
  103. package/dist/components/Label/LabelBase.d.ts +3 -4
  104. package/dist/components/LargeTab/LargeTabBase.d.ts +2 -3
  105. package/dist/components/Link/Link.types.d.ts +0 -1
  106. package/dist/components/Link/LinkBase.d.ts +2 -3
  107. package/dist/components/LinksTabBar/LinksTabBarBase.d.ts +2 -3
  108. package/dist/components/Modal/Modal.context.d.ts +0 -1
  109. package/dist/components/ModalDialog/types.d.ts +0 -1
  110. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +0 -1
  111. package/dist/components/ModalOpenButton/ModalOpenButton.d.ts +0 -1
  112. package/dist/components/MultipleDropdown/types.d.ts +0 -1
  113. package/dist/components/MultipleDropdownNotification/MultipleDropdownNotification.d.ts +3 -4
  114. package/dist/components/MultipleDropdownOptions/types.d.ts +0 -1
  115. package/dist/components/NavBar/NavBarBase.d.ts +2 -3
  116. package/dist/components/NavBar/NavBarItem.d.ts +2 -3
  117. package/dist/components/NavBar/NavBarLink.d.ts +1 -2
  118. package/dist/components/NavBar/NavBarList.d.ts +2 -3
  119. package/dist/components/NavBar/NavBarWrapper.d.ts +2 -3
  120. package/dist/components/NavBar/NavToggleWrapper.d.ts +2 -3
  121. package/dist/components/NotificationCard/NotificationCard.d.ts +0 -1
  122. package/dist/components/NotificationCard/types.d.ts +0 -1
  123. package/dist/components/NotificationMenu/types.d.ts +0 -1
  124. package/dist/components/Pagination/PaginationContext.d.ts +0 -1
  125. package/dist/components/Pagination/WithPagination.d.ts +1 -2
  126. package/dist/components/Pagination/types.d.ts +0 -1
  127. package/dist/components/PieChart/PieChartBases.d.ts +4 -5
  128. package/dist/components/PieChart/PieChartLegendList.d.ts +2 -3
  129. package/dist/components/PieChart/PieChartLegendMarker.d.ts +2 -3
  130. package/dist/components/PieChart/types.d.ts +0 -1
  131. package/dist/components/Popover/PopoverContent.d.ts +1 -1
  132. package/dist/components/Popover/stories/StoryComponent.d.ts +1 -1
  133. package/dist/components/Popover/types.d.ts +0 -1
  134. package/dist/components/Progress/types.d.ts +0 -1
  135. package/dist/components/ProgressCircle/ProgressCircleBase.d.ts +2 -3
  136. package/dist/components/ProgressCircle/ProgressCircleInner.d.ts +2 -3
  137. package/dist/components/ProgressCircle/ProgressCircleOuter.d.ts +2 -3
  138. package/dist/components/ProgressCircle/types.d.ts +0 -1
  139. package/dist/components/ProgressInfo/ProgressInfoTotals.d.ts +1 -2
  140. package/dist/components/ProgressLegend/types.d.ts +0 -1
  141. package/dist/components/ProgressLegendItem/types.d.ts +0 -1
  142. package/dist/components/ProgressVertical/types.d.ts +0 -1
  143. package/dist/components/Radio/RadioBase.d.ts +1 -1
  144. package/dist/components/RadioGroup/RadioGroupBase.d.ts +2 -3
  145. package/dist/components/RadioGroup/types.d.ts +0 -1
  146. package/dist/components/SearchBox/SearchBoxInput.d.ts +1 -2
  147. package/dist/components/SearchBox/SearchBoxWrapper.d.ts +2 -3
  148. package/dist/components/SearchBox/stories/StoryComponent.d.ts +1 -1
  149. package/dist/components/SegmentedPieChart/SegmentedPieChartContext.d.ts +1 -4
  150. package/dist/components/SegmentedPieChart/hooks/useData.d.ts +1 -1
  151. package/dist/components/SegmentedPieChart/stories/fixtures.d.ts +1 -0
  152. package/dist/components/SegmentedPieChart/types.d.ts +0 -1
  153. package/dist/components/Step/Step.d.ts +4 -7
  154. package/dist/components/StepLabel/StepLabel.d.ts +1 -1
  155. package/dist/components/Stepper/types.d.ts +0 -1
  156. package/dist/components/Switch/SwitchBase.d.ts +2 -3
  157. package/dist/components/Switch/SwitchContext.d.ts +1 -2
  158. package/dist/components/Tab/TabBase.d.ts +2 -3
  159. package/dist/components/TabBar/TabBarContext.d.ts +1 -2
  160. package/dist/components/TabBar/stories/helpers.d.ts +4 -9
  161. package/dist/components/TabBar/types.d.ts +0 -1
  162. package/dist/components/Table/Table.d.ts +2 -3
  163. package/dist/components/Table/stories/SortableTable.d.ts +1 -1
  164. package/dist/components/TableBody/TableBody.d.ts +2 -3
  165. package/dist/components/TableCell/TableCell.d.ts +3 -4
  166. package/dist/components/TableFilters/TableFilterTrigger.d.ts +3 -3
  167. package/dist/components/TableFilters/TableFilterTriggerWithNotification.d.ts +2 -2
  168. package/dist/components/TableFilters/TableFiltersAccordionContent.d.ts +1 -6
  169. package/dist/components/TableFilters/TableFiltersButtons.d.ts +2 -2
  170. package/dist/components/TableHead/TableHead.d.ts +2 -3
  171. package/dist/components/TableRow/TableRow.d.ts +2 -3
  172. package/dist/components/Tag/types.d.ts +0 -1
  173. package/dist/components/Textarea/TextareaBase.d.ts +2 -3
  174. package/dist/components/Tooltip/TooltipContentBase.d.ts +2 -3
  175. package/dist/components/Tooltip/types.d.ts +0 -1
  176. package/dist/components/Tooltip/useTooltipContext.d.ts +0 -1
  177. package/dist/components/TooltipContent/TooltipContent.d.ts +0 -1
  178. package/dist/components/TooltipTrigger/TooltipTrigger.d.ts +0 -1
  179. package/dist/components/Typeahead/Typeahead.context.d.ts +2 -2
  180. package/dist/components/Typeahead/components/TypeaheadItem.d.ts +3 -4
  181. package/dist/components/Typeahead/styles.d.ts +19 -20
  182. package/dist/components/Typeahead/types.d.ts +0 -1
  183. package/dist/components/Typography/Typography.d.ts +0 -1
  184. package/dist/components/Typography/types.d.ts +0 -1
  185. package/dist/components/WithVisibleLG/WithVisibleLG.d.ts +3 -4
  186. package/dist/components/WithVisibleMD/WithVisibleMD.d.ts +1 -2
  187. package/dist/components/WithVisibleSM/WithVisibleSM.d.ts +1 -2
  188. package/dist/components/WithVisibleUpToLG/WithVisibleUpToLG.d.ts +1 -2
  189. package/dist/components/Wrapper/Wrapper.d.ts +5 -6
  190. package/dist/index.js +1 -1
  191. package/dist/index.js.map +1 -1
  192. package/dist/styles/safari-focus-outline.d.ts +0 -1
  193. package/dist/types/emotion.d.ts +0 -1
  194. package/package.json +3 -2
  195. package/src/components/Filters/FiltersBlock.tsx +6 -31
  196. package/src/components/Filters/hooks/useFiltersBlock.ts +39 -0
  197. package/src/components/Indicator/Indicator.tsx +13 -6
  198. package/src/components/SegmentedPieChart/components/ChartTooltip.tsx +1 -1
  199. package/src/components/SegmentedPieChart/hooks/useData.ts +25 -21
  200. package/src/components/SegmentedPieChart/stories/fixtures.ts +83 -0
  201. package/test-results/.last-run.json +4 -0
  202. package/tsbuildcache +1 -1
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Theme, SerializedStyles } from '@emotion/react';
3
2
  type OutlineFn = (theme: Theme, color?: keyof Theme['colors'], borderRadius?: string, borderStyle?: React.CSSProperties['borderStyle']) => SerializedStyles;
4
3
  export declare const focusOutline: OutlineFn;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export type RGBString = `rgb${string}`;
3
2
  type MakeColors<T extends Array<string>> = {
4
3
  [K in T[number]]?: RGBString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssa-ui-kit/core",
3
- "version": "1.0.14",
3
+ "version": "1.0.17",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "private": false,
@@ -35,7 +35,7 @@
35
35
  "devDependencies": {
36
36
  "@emotion/jest": "^11.11.0",
37
37
  "@nivo/line": "0.83.0",
38
- "@playwright/test": "^1.37.1",
38
+ "@playwright/test": "^1.48.0",
39
39
  "@testing-library/jest-dom": "^5.16.5",
40
40
  "@types/testing-library__jest-dom": "^5.14.6",
41
41
  "@types/uuid": "^9.0.3",
@@ -69,6 +69,7 @@
69
69
  "scripts": {
70
70
  "test": "jest -i --no-cache",
71
71
  "build": "webpack --mode=production --node-env=production && tsc --build --force ./tsconfig.build.json && resolve-tspaths -p ./tsconfig.build.json",
72
+ "build:watch": "webpack --mode=production --node-env=production --watch && tsc --build --force ./tsconfig.build.json && resolve-tspaths -p ./tsconfig.build.json",
72
73
  "sb:dev": "storybook dev -p 6006",
73
74
  "sb:build": "storybook build",
74
75
  "test:e2e": "pnpm exec playwright test --project=chromium",
@@ -1,42 +1,17 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import React, { useEffect, useState } from 'react';
1
+ import React from 'react';
3
2
  import { useTheme } from '@emotion/react';
4
3
  import DropdownOption from '@components/DropdownOption';
5
4
  import MultipleDropdown from '@components/MultipleDropdown';
6
5
  import { useFiltersContext } from './FiltersContext';
6
+ import { useFiltersBlock } from './hooks/useFiltersBlock';
7
7
 
8
8
  export const FiltersBlock = () => {
9
- const { setElementRef, onDropdownChange, checkboxData } = useFiltersContext();
10
- const handleOnChange = (groupName: string) => (item: string | number) => {
11
- onDropdownChange(groupName, item);
12
- };
13
-
14
- const [selectedItemsWithValue, setSelectedItemsWithValue] = useState<
15
- Record<string, Array<{ value: string }>>
16
- >({});
17
-
18
9
  const theme = useTheme();
19
-
20
- useEffect(() => {
21
- const newData: Record<
22
- string,
23
- Array<{
24
- value: string;
25
- }>
26
- > = {};
27
- Object.keys(checkboxData).map((groupName) => {
28
- const selectedItems = checkboxData[groupName]['selectedItemsDraft'];
29
- if (selectedItems) {
30
- newData[groupName] = selectedItems.map((item) => ({
31
- value: item,
32
- }));
33
- }
34
- });
35
- setSelectedItemsWithValue(newData);
36
- }, [checkboxData]);
10
+ const { setElementRef, checkboxData } = useFiltersContext();
11
+ const { selectedItemsWithValue, handleOnChange } = useFiltersBlock();
37
12
 
38
13
  return (
39
- <>
14
+ <React.Fragment>
40
15
  {Object.keys(checkboxData).map((groupName) => {
41
16
  const accordionInfo = checkboxData[groupName];
42
17
  const selectedItems = selectedItemsWithValue[groupName];
@@ -74,6 +49,6 @@ export const FiltersBlock = () => {
74
49
  </MultipleDropdown>
75
50
  );
76
51
  })}
77
- </>
52
+ </React.Fragment>
78
53
  );
79
54
  };
@@ -0,0 +1,39 @@
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
+ import { useFiltersContext } from '../FiltersContext';
3
+
4
+ export const useFiltersBlock = () => {
5
+ const { onDropdownChange, checkboxData } = useFiltersContext();
6
+
7
+ const handleOnChange = (groupName: string) => (item: string | number) => {
8
+ onDropdownChange(groupName, item);
9
+ };
10
+
11
+ const [selectedItemsWithValue, setSelectedItemsWithValue] = useState<
12
+ Record<string, Array<{ value: string }>>
13
+ >({});
14
+
15
+ const memoSelectedItemsWithValue = useMemo(
16
+ () => selectedItemsWithValue,
17
+ [JSON.stringify(selectedItemsWithValue)],
18
+ );
19
+
20
+ useEffect(() => {
21
+ const newData: Record<
22
+ string,
23
+ Array<{
24
+ value: string;
25
+ }>
26
+ > = {};
27
+ Object.keys(checkboxData).map((groupName) => {
28
+ const selectedItems = checkboxData[groupName]['selectedItemsDraft'];
29
+ if (selectedItems) {
30
+ newData[groupName] = selectedItems.map((item) => ({
31
+ value: item,
32
+ }));
33
+ }
34
+ });
35
+ setSelectedItemsWithValue(newData);
36
+ }, [checkboxData]);
37
+
38
+ return { selectedItemsWithValue: memoSelectedItemsWithValue, handleOnChange };
39
+ };
@@ -15,9 +15,7 @@ const Indicator = ({
15
15
  const indicatorRef = useRef<HTMLDivElement>(null);
16
16
  const childrenRef = useRef<HTMLDivElement | null>(null);
17
17
  const [width, setWidth] = useState<number>(0);
18
- const [childrenData, setChildrenData] = useState<ChildrenDataProps | null>(
19
- {} || null,
20
- );
18
+ const [childrenData, setChildrenData] = useState<ChildrenDataProps>({});
21
19
  const { width: windowWidth } = useWindowSize();
22
20
  const theme = useTheme();
23
21
 
@@ -32,8 +30,17 @@ const Indicator = ({
32
30
  width: childrenRef.current.offsetWidth,
33
31
  right: childrenRef.current.offsetWidth + childrenRef.current.offsetLeft,
34
32
  };
35
- setWidth(refValue);
36
- setChildrenData(refData);
33
+ if (refValue !== width) {
34
+ setWidth(refValue);
35
+ }
36
+ if (
37
+ childrenData.top !== refData.top ||
38
+ childrenData.left !== refData.left ||
39
+ childrenData.width !== refData.width ||
40
+ childrenData.right !== refData.right
41
+ ) {
42
+ setChildrenData(refData);
43
+ }
37
44
  }
38
45
  }, [width, childrenRef.current, windowWidth]);
39
46
 
@@ -44,7 +51,7 @@ const Indicator = ({
44
51
  data-testid={`indicator-${position}`}
45
52
  ref={indicatorRef}
46
53
  css={
47
- childrenData && [
54
+ Object.keys(childrenData).length > 0 && [
48
55
  css`
49
56
  top: ${childrenData.top + 2}px;
50
57
  left: ${isRight ? '-6px' : '1px'};
@@ -25,7 +25,7 @@ export const ChartTooltip = ({
25
25
  pointData.legendValueRoundingDigits,
26
26
  )
27
27
  : getRoundedNumber(
28
- pointData.value,
28
+ pointData.mainValue,
29
29
  pointData.legendValueRoundingDigits,
30
30
  ),
31
31
  label: pointData.legendLabel || pointData.label,
@@ -31,6 +31,7 @@ export const useData = ({
31
31
  label: item.label,
32
32
  percentage: mainPercentage,
33
33
  mainId: Number(item.id),
34
+ mainValue: item.value,
34
35
  legendLabel: item.legendLabel,
35
36
  legendValue: item.legendValue,
36
37
  legendValueRoundingDigits: propOr<SegmentedDataItem, number>(
@@ -42,28 +43,31 @@ export const useData = ({
42
43
  };
43
44
  balanceDataForTheLegend.push(newMainItem);
44
45
  if (item.parts?.length) {
45
- item.parts?.forEach((part, partIndex) => {
46
- const partPercentage = (part.value * 100) / calculatedTotalAmount;
47
- balanceDataForTheGraph.push({
48
- value: item.value,
49
- label: item.label,
50
- percentage: mainPercentage,
51
- mainId: Number(item.id),
52
- legendLabel: item.legendLabel,
53
- legendValue: item.legendValue,
54
- legendValueRoundingDigits: propOr<SegmentedDataItem, number>(
55
- legendValueRoundingDigits,
56
- 'legendValueRoundingDigits',
57
- )(item),
58
- color: pieChartColorsLocal?.[itemIndex]?.[partIndex],
59
- id: `${itemIndex}${partIndex}`,
60
- partIndex,
61
- partLabel: part.label,
62
- partPercentage: Number(partPercentage),
63
- partValue: part.value,
64
- partLegendValue: part.legendValue,
46
+ item.parts
47
+ ?.filter((part) => !!part.value)
48
+ .forEach((part, partIndex) => {
49
+ const partPercentage = (part.value * 100) / calculatedTotalAmount;
50
+ balanceDataForTheGraph.push({
51
+ value: part.value,
52
+ label: item.label,
53
+ percentage: mainPercentage,
54
+ mainId: Number(item.id),
55
+ mainValue: item.value,
56
+ legendLabel: item.legendLabel,
57
+ legendValue: item.legendValue,
58
+ legendValueRoundingDigits: propOr<SegmentedDataItem, number>(
59
+ legendValueRoundingDigits,
60
+ 'legendValueRoundingDigits',
61
+ )(item),
62
+ color: pieChartColorsLocal?.[itemIndex]?.[partIndex],
63
+ id: `${itemIndex}${partIndex}`,
64
+ partIndex,
65
+ partLabel: part.label,
66
+ partPercentage: Number(partPercentage),
67
+ partValue: part.value,
68
+ partLegendValue: part.legendValue,
69
+ });
65
70
  });
66
- });
67
71
  } else {
68
72
  balanceDataForTheGraph.push(newMainItem);
69
73
  }
@@ -100,6 +100,89 @@ export const balanceData: SegmentedDataSet = [
100
100
  },
101
101
  ];
102
102
 
103
+ export const balanceDataNullable: SegmentedDataSet = [
104
+ {
105
+ id: 1,
106
+ value: 5843.37,
107
+ legendValue: 5843.37 / RATE.BTC,
108
+ legendLabel: 'BTC',
109
+ label: 'BTC',
110
+ legendValueRoundingDigits: 6,
111
+ parts: [
112
+ {
113
+ label: 'Option 1',
114
+ value: 5843.37,
115
+ legendValue: 5843.37 / RATE.BTC,
116
+ },
117
+ {
118
+ label: 'Option 2',
119
+ value: 0,
120
+ legendValue: 0,
121
+ },
122
+ ],
123
+ },
124
+ {
125
+ id: 2,
126
+ value: 5249.25,
127
+ legendValue: 5249.25 / RATE.ETH,
128
+ legendLabel: 'ETH',
129
+ label: 'ETH',
130
+ legendValueRoundingDigits: 2,
131
+ parts: [
132
+ {
133
+ label: 'Option 1',
134
+ value: 2800,
135
+ legendValue: 2800 / RATE.ETH,
136
+ },
137
+ {
138
+ label: 'Option 2',
139
+ value: 2449.25,
140
+ legendValue: 2449.25 / RATE.ETH,
141
+ },
142
+ ],
143
+ },
144
+ {
145
+ id: 3,
146
+ value: 3825.55,
147
+ legendValue: 3825.55 / RATE.FDUSD,
148
+ legendLabel: 'FDUSD',
149
+ label: 'FDUSD',
150
+ legendValueRoundingDigits: 2,
151
+ parts: [
152
+ {
153
+ label: 'Option 1',
154
+ value: 3825.55,
155
+ legendValue: 3825.55 / RATE.FDUSD,
156
+ },
157
+ {
158
+ label: 'Option 2',
159
+ value: 0,
160
+ legendValue: 0,
161
+ },
162
+ ],
163
+ },
164
+ {
165
+ id: 4,
166
+ value: 2818.83,
167
+ legendValue: 2818.83 / RATE.USDT,
168
+ label: 'Other',
169
+ legendLabel: 'USDT',
170
+ legendValueRoundingDigits: 0,
171
+ parts: [
172
+ {
173
+ label: 'Option 1',
174
+ value: 2818.83,
175
+ legendValue: 2818.83 / RATE.USDT,
176
+ },
177
+ {
178
+ label: 'Option 2',
179
+ value: 0,
180
+ legendValue: 0,
181
+ },
182
+ ],
183
+ },
184
+ ];
185
+
103
186
  export const balanceTotalAmount = balanceData
104
187
  .map((item) => Number(item.value))
105
188
  .reduce((acc, currentValue) => acc + currentValue, 0);
@@ -0,0 +1,4 @@
1
+ {
2
+ "status": "passed",
3
+ "failedTests": []
4
+ }