@dxc-technology/halstack-react 0.0.0-da224ae → 0.0.0-da4b2be

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 (329) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +118 -142
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +9 -8
  10. package/accordion-group/AccordionGroup.d.ts +5 -4
  11. package/accordion-group/AccordionGroup.js +34 -76
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +15 -8
  17. package/alert/Alert.js +11 -12
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +92 -0
  20. package/alert/types.d.ts +1 -1
  21. package/badge/Badge.d.ts +4 -0
  22. package/badge/Badge.js +6 -4
  23. package/badge/types.d.ts +5 -0
  24. package/bleed/Bleed.d.ts +3 -0
  25. package/bleed/Bleed.js +51 -0
  26. package/bleed/Bleed.stories.tsx +342 -0
  27. package/bleed/types.d.ts +37 -0
  28. package/bleed/types.js +5 -0
  29. package/box/Box.d.ts +1 -1
  30. package/box/Box.js +23 -55
  31. package/box/Box.stories.tsx +38 -51
  32. package/box/Box.test.js +18 -0
  33. package/box/types.d.ts +0 -15
  34. package/bulleted-list/BulletedList.d.ts +7 -0
  35. package/bulleted-list/BulletedList.js +125 -0
  36. package/bulleted-list/BulletedList.stories.tsx +206 -0
  37. package/bulleted-list/types.d.ts +38 -0
  38. package/bulleted-list/types.js +5 -0
  39. package/button/Button.d.ts +1 -1
  40. package/button/Button.js +61 -85
  41. package/button/Button.stories.tsx +163 -14
  42. package/button/Button.test.js +35 -0
  43. package/button/types.d.ts +8 -12
  44. package/card/Card.js +35 -40
  45. package/card/Card.stories.tsx +200 -0
  46. package/card/Card.test.js +50 -0
  47. package/card/ice-cream.jpg +0 -0
  48. package/card/types.d.ts +5 -6
  49. package/checkbox/Checkbox.d.ts +2 -2
  50. package/checkbox/Checkbox.js +108 -111
  51. package/checkbox/Checkbox.stories.tsx +198 -130
  52. package/checkbox/Checkbox.test.js +155 -0
  53. package/checkbox/types.d.ts +13 -5
  54. package/chip/Chip.d.ts +4 -0
  55. package/chip/Chip.js +37 -118
  56. package/chip/Chip.stories.tsx +123 -30
  57. package/chip/Chip.test.js +54 -0
  58. package/chip/types.d.ts +45 -0
  59. package/chip/types.js +5 -0
  60. package/common/OpenSans.css +68 -80
  61. package/common/coreTokens.d.ts +146 -0
  62. package/common/coreTokens.js +167 -0
  63. package/common/utils.d.ts +1 -0
  64. package/common/utils.js +4 -4
  65. package/common/variables.d.ts +1482 -0
  66. package/common/variables.js +1100 -1316
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +258 -0
  69. package/date-input/DateInput.js +174 -266
  70. package/date-input/DateInput.stories.tsx +199 -33
  71. package/date-input/DateInput.test.js +835 -0
  72. package/date-input/DatePicker.d.ts +4 -0
  73. package/date-input/DatePicker.js +146 -0
  74. package/date-input/Icons.d.ts +6 -0
  75. package/date-input/Icons.js +75 -0
  76. package/date-input/YearPicker.d.ts +4 -0
  77. package/date-input/YearPicker.js +126 -0
  78. package/date-input/types.d.ts +67 -9
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +69 -103
  81. package/dialog/Dialog.stories.tsx +154 -171
  82. package/dialog/Dialog.test.js +369 -0
  83. package/dialog/types.d.ts +0 -12
  84. package/dropdown/Dropdown.d.ts +1 -1
  85. package/dropdown/Dropdown.js +248 -277
  86. package/dropdown/Dropdown.stories.tsx +438 -0
  87. package/dropdown/Dropdown.test.js +586 -0
  88. package/dropdown/DropdownMenu.d.ts +4 -0
  89. package/dropdown/DropdownMenu.js +74 -0
  90. package/dropdown/DropdownMenuItem.d.ts +4 -0
  91. package/dropdown/DropdownMenuItem.js +79 -0
  92. package/dropdown/types.d.ts +28 -17
  93. package/file-input/FileInput.d.ts +4 -0
  94. package/file-input/FileInput.js +183 -168
  95. package/file-input/FileInput.stories.tsx +618 -0
  96. package/file-input/FileInput.test.js +457 -0
  97. package/file-input/FileItem.d.ts +4 -0
  98. package/file-input/FileItem.js +50 -81
  99. package/file-input/types.d.ts +129 -0
  100. package/file-input/types.js +5 -0
  101. package/flex/Flex.d.ts +4 -0
  102. package/flex/Flex.js +71 -0
  103. package/flex/Flex.stories.tsx +112 -0
  104. package/flex/types.d.ts +97 -0
  105. package/flex/types.js +5 -0
  106. package/footer/Footer.d.ts +1 -1
  107. package/footer/Footer.js +34 -117
  108. package/footer/Footer.stories.tsx +228 -0
  109. package/footer/Footer.test.js +97 -0
  110. package/footer/Icons.d.ts +2 -0
  111. package/footer/Icons.js +4 -4
  112. package/footer/types.d.ts +23 -18
  113. package/grid/Grid.d.ts +7 -0
  114. package/grid/Grid.js +91 -0
  115. package/grid/Grid.stories.tsx +219 -0
  116. package/grid/types.d.ts +115 -0
  117. package/grid/types.js +5 -0
  118. package/header/Header.d.ts +3 -2
  119. package/header/Header.js +110 -131
  120. package/header/Header.stories.tsx +315 -0
  121. package/header/Header.test.js +79 -0
  122. package/header/Icons.d.ts +2 -0
  123. package/header/Icons.js +2 -2
  124. package/header/types.d.ts +5 -2
  125. package/heading/Heading.js +2 -2
  126. package/heading/Heading.stories.tsx +54 -0
  127. package/heading/Heading.test.js +186 -0
  128. package/inset/Inset.d.ts +3 -0
  129. package/inset/Inset.js +51 -0
  130. package/inset/Inset.stories.tsx +230 -0
  131. package/inset/types.d.ts +37 -0
  132. package/inset/types.js +5 -0
  133. package/layout/ApplicationLayout.d.ts +20 -0
  134. package/layout/ApplicationLayout.js +72 -136
  135. package/layout/ApplicationLayout.stories.tsx +162 -0
  136. package/layout/Icons.d.ts +5 -0
  137. package/layout/Icons.js +13 -2
  138. package/layout/SidenavContext.d.ts +5 -0
  139. package/layout/SidenavContext.js +19 -0
  140. package/layout/types.d.ts +41 -0
  141. package/layout/types.js +5 -0
  142. package/link/Link.d.ts +3 -2
  143. package/link/Link.js +64 -89
  144. package/link/Link.stories.tsx +199 -16
  145. package/link/Link.test.js +81 -0
  146. package/link/types.d.ts +7 -27
  147. package/main.d.ts +13 -12
  148. package/main.js +68 -54
  149. package/nav-tabs/NavTabs.d.ts +8 -0
  150. package/nav-tabs/NavTabs.js +122 -0
  151. package/nav-tabs/NavTabs.stories.tsx +274 -0
  152. package/nav-tabs/NavTabs.test.js +82 -0
  153. package/nav-tabs/Tab.d.ts +4 -0
  154. package/nav-tabs/Tab.js +146 -0
  155. package/nav-tabs/types.d.ts +52 -0
  156. package/nav-tabs/types.js +5 -0
  157. package/number-input/NumberInput.js +14 -24
  158. package/number-input/NumberInput.stories.tsx +5 -5
  159. package/number-input/NumberInput.test.js +542 -0
  160. package/number-input/NumberInputContext.d.ts +4 -0
  161. package/number-input/NumberInputContext.js +5 -2
  162. package/number-input/numberInputContextTypes.d.ts +19 -0
  163. package/number-input/numberInputContextTypes.js +5 -0
  164. package/number-input/types.d.ts +17 -10
  165. package/package.json +22 -23
  166. package/paginator/Icons.d.ts +5 -0
  167. package/paginator/Icons.js +16 -28
  168. package/paginator/Paginator.js +22 -57
  169. package/paginator/Paginator.stories.tsx +24 -0
  170. package/paginator/Paginator.test.js +318 -0
  171. package/paragraph/Paragraph.d.ts +5 -0
  172. package/paragraph/Paragraph.js +38 -0
  173. package/paragraph/Paragraph.stories.tsx +44 -0
  174. package/password-input/PasswordInput.js +23 -19
  175. package/password-input/PasswordInput.stories.tsx +3 -3
  176. package/password-input/PasswordInput.test.js +181 -0
  177. package/password-input/types.d.ts +29 -19
  178. package/progress-bar/ProgressBar.js +63 -57
  179. package/progress-bar/ProgressBar.stories.jsx +47 -12
  180. package/progress-bar/ProgressBar.test.js +110 -0
  181. package/quick-nav/QuickNav.d.ts +4 -0
  182. package/quick-nav/QuickNav.js +117 -0
  183. package/quick-nav/QuickNav.stories.tsx +356 -0
  184. package/quick-nav/types.d.ts +21 -0
  185. package/quick-nav/types.js +5 -0
  186. package/radio-group/Radio.d.ts +4 -0
  187. package/radio-group/Radio.js +156 -0
  188. package/radio-group/RadioGroup.d.ts +4 -0
  189. package/radio-group/RadioGroup.js +281 -0
  190. package/radio-group/RadioGroup.stories.tsx +214 -0
  191. package/radio-group/RadioGroup.test.js +722 -0
  192. package/radio-group/types.d.ts +114 -0
  193. package/radio-group/types.js +5 -0
  194. package/resultsetTable/Icons.d.ts +7 -0
  195. package/resultsetTable/Icons.js +51 -0
  196. package/resultsetTable/ResultsetTable.d.ts +4 -0
  197. package/resultsetTable/ResultsetTable.js +54 -133
  198. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  199. package/resultsetTable/ResultsetTable.test.js +325 -0
  200. package/resultsetTable/types.d.ts +67 -0
  201. package/resultsetTable/types.js +5 -0
  202. package/select/Icons.d.ts +10 -0
  203. package/select/Icons.js +93 -0
  204. package/select/Listbox.d.ts +4 -0
  205. package/select/Listbox.js +169 -0
  206. package/select/Option.d.ts +4 -0
  207. package/select/Option.js +97 -0
  208. package/select/Select.d.ts +4 -0
  209. package/select/Select.js +202 -401
  210. package/select/Select.stories.tsx +600 -201
  211. package/select/Select.test.js +2228 -0
  212. package/select/types.d.ts +210 -0
  213. package/select/types.js +5 -0
  214. package/sidenav/Icons.d.ts +7 -0
  215. package/sidenav/Icons.js +51 -0
  216. package/sidenav/Sidenav.d.ts +6 -5
  217. package/sidenav/Sidenav.js +148 -46
  218. package/sidenav/Sidenav.stories.tsx +282 -0
  219. package/sidenav/Sidenav.test.js +44 -0
  220. package/sidenav/types.d.ts +52 -26
  221. package/slider/Slider.d.ts +2 -2
  222. package/slider/Slider.js +124 -99
  223. package/slider/Slider.stories.tsx +72 -9
  224. package/slider/Slider.test.js +250 -0
  225. package/slider/types.d.ts +8 -0
  226. package/spinner/Spinner.js +20 -26
  227. package/spinner/Spinner.stories.jsx +53 -26
  228. package/spinner/Spinner.test.js +64 -0
  229. package/switch/Switch.d.ts +2 -2
  230. package/switch/Switch.js +153 -70
  231. package/switch/Switch.stories.tsx +54 -43
  232. package/switch/Switch.test.js +225 -0
  233. package/switch/types.d.ts +10 -2
  234. package/table/Table.js +6 -6
  235. package/table/Table.stories.jsx +81 -1
  236. package/table/Table.test.js +26 -0
  237. package/tabs/Tab.d.ts +4 -0
  238. package/tabs/Tab.js +132 -0
  239. package/tabs/Tabs.d.ts +1 -1
  240. package/tabs/Tabs.js +362 -112
  241. package/tabs/Tabs.stories.tsx +226 -0
  242. package/tabs/Tabs.test.js +350 -0
  243. package/tabs/types.d.ts +39 -18
  244. package/tag/Tag.d.ts +1 -1
  245. package/tag/Tag.js +25 -37
  246. package/tag/Tag.stories.tsx +38 -28
  247. package/tag/Tag.test.js +60 -0
  248. package/tag/types.d.ts +23 -14
  249. package/text-input/Icons.d.ts +8 -0
  250. package/text-input/Icons.js +60 -0
  251. package/text-input/Suggestion.d.ts +4 -0
  252. package/text-input/Suggestion.js +84 -0
  253. package/text-input/Suggestions.d.ts +4 -0
  254. package/text-input/Suggestions.js +134 -0
  255. package/text-input/TextInput.d.ts +4 -0
  256. package/text-input/TextInput.js +236 -388
  257. package/text-input/TextInput.stories.tsx +569 -0
  258. package/text-input/TextInput.test.js +1723 -0
  259. package/text-input/types.d.ts +197 -0
  260. package/text-input/types.js +5 -0
  261. package/textarea/Textarea.d.ts +4 -0
  262. package/textarea/Textarea.js +41 -82
  263. package/textarea/Textarea.stories.jsx +96 -15
  264. package/textarea/Textarea.test.js +435 -0
  265. package/textarea/types.d.ts +137 -0
  266. package/textarea/types.js +5 -0
  267. package/toggle-group/ToggleGroup.d.ts +4 -0
  268. package/toggle-group/ToggleGroup.js +24 -49
  269. package/toggle-group/ToggleGroup.stories.tsx +69 -32
  270. package/toggle-group/ToggleGroup.test.js +156 -0
  271. package/toggle-group/types.d.ts +105 -0
  272. package/toggle-group/types.js +5 -0
  273. package/typography/Typography.d.ts +4 -0
  274. package/typography/Typography.js +32 -0
  275. package/typography/Typography.stories.tsx +198 -0
  276. package/typography/types.d.ts +18 -0
  277. package/typography/types.js +5 -0
  278. package/useTheme.d.ts +1235 -0
  279. package/useTheme.js +3 -3
  280. package/useTranslatedLabels.d.ts +85 -0
  281. package/useTranslatedLabels.js +20 -0
  282. package/utils/BaseTypography.d.ts +21 -0
  283. package/utils/BaseTypography.js +108 -0
  284. package/utils/FocusLock.d.ts +13 -0
  285. package/utils/FocusLock.js +138 -0
  286. package/wizard/Wizard.d.ts +1 -1
  287. package/wizard/Wizard.js +113 -59
  288. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  289. package/wizard/Wizard.test.js +141 -0
  290. package/wizard/types.d.ts +10 -10
  291. package/ThemeContext.js +0 -246
  292. package/V3Select/V3Select.js +0 -455
  293. package/V3Select/index.d.ts +0 -27
  294. package/V3Textarea/V3Textarea.js +0 -260
  295. package/V3Textarea/index.d.ts +0 -27
  296. package/chip/index.d.ts +0 -22
  297. package/common/RequiredComponent.js +0 -32
  298. package/date/Date.js +0 -373
  299. package/date/index.d.ts +0 -27
  300. package/file-input/index.d.ts +0 -81
  301. package/footer/Footer.stories.jsx +0 -151
  302. package/input-text/Icons.js +0 -22
  303. package/input-text/InputText.js +0 -611
  304. package/input-text/index.d.ts +0 -36
  305. package/radio/Radio.d.ts +0 -4
  306. package/radio/Radio.js +0 -174
  307. package/radio/Radio.stories.tsx +0 -192
  308. package/radio/types.d.ts +0 -54
  309. package/resultsetTable/index.d.ts +0 -19
  310. package/select/index.d.ts +0 -131
  311. package/text-input/index.d.ts +0 -135
  312. package/textarea/index.d.ts +0 -117
  313. package/toggle/Toggle.js +0 -186
  314. package/toggle/index.d.ts +0 -21
  315. package/toggle-group/index.d.ts +0 -21
  316. package/upload/Upload.js +0 -201
  317. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  318. package/upload/buttons-upload/Icons.js +0 -40
  319. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  320. package/upload/dragAndDropArea/Icons.js +0 -39
  321. package/upload/file-upload/FileToUpload.js +0 -115
  322. package/upload/file-upload/Icons.js +0 -66
  323. package/upload/files-upload/FilesToUpload.js +0 -109
  324. package/upload/index.d.ts +0 -15
  325. package/upload/transaction/Icons.js +0 -160
  326. package/upload/transaction/Transaction.js +0 -104
  327. package/upload/transactions/Transactions.js +0 -94
  328. package/wizard/Icons.js +0 -65
  329. /package/{radio → badge}/types.js +0 -0
@@ -0,0 +1,114 @@
1
+ export declare type Option = {
2
+ /**
3
+ * Label of the option placed next to the radio input.
4
+ */
5
+ value: string;
6
+ /**
7
+ * Value of the option. It should be unique and
8
+ * not an empty string, which is reserved to the optional item added
9
+ * by 'optional' prop.
10
+ */
11
+ label: string;
12
+ /**
13
+ * If true, disables the option.
14
+ */
15
+ disabled?: boolean;
16
+ };
17
+ declare type RadioGroupProps = {
18
+ /**
19
+ * Text to be placed above the radio group.
20
+ */
21
+ label: string;
22
+ /**
23
+ * Name attribute of the input element. This attribute will allow users
24
+ * to find the component's value during the submit event.
25
+ */
26
+ name?: string;
27
+ /**
28
+ * Helper text to be placed above the radio group.
29
+ */
30
+ helperText?: string;
31
+ /**
32
+ * An array of objects representing the selectable options.
33
+ */
34
+ options: Option[];
35
+ /**
36
+ * If true, the component will be disabled.
37
+ */
38
+ disabled?: boolean;
39
+ /**
40
+ * If true, the radio group will be optional, showing
41
+ * (Optional) next to the label and adding a default last
42
+ * option with an empty string as value. Otherwise, the field will be
43
+ * considered required and an error will be passed as a parameter to the
44
+ * OnBlur functions if an option wasn't selected.
45
+ */
46
+ optional?: boolean;
47
+ /**
48
+ * Label of the optional radio input.
49
+ */
50
+ optionalItemLabel?: string;
51
+ /**
52
+ * If true, the component will be marked as readonly.
53
+ */
54
+ readonly?: boolean;
55
+ /**
56
+ * Sets the orientation of the options within the radio group.
57
+ */
58
+ stacking?: "row" | "column";
59
+ /**
60
+ * Initial value of the radio group, only when it is uncontrolled.
61
+ */
62
+ defaultValue?: string;
63
+ /**
64
+ * Value of the radio group. If undefined, the component will be
65
+ * uncontrolled and the value will be managed internally by the
66
+ * component.
67
+ */
68
+ value?: string;
69
+ /**
70
+ * This function will be called when the user chooses an option. The new
71
+ * value will be passed to this function.
72
+ */
73
+ onChange?: (value: string) => void;
74
+ /**
75
+ * This function will be called when the radio group loses the focus. An
76
+ * object including the value and the error will be passed to this
77
+ * function. If there is no error, error will not be defined.
78
+ */
79
+ onBlur?: (val: {
80
+ value?: string;
81
+ error?: string;
82
+ }) => void;
83
+ /**
84
+ * If it is a defined value and also a truthy string, the component will
85
+ * change its appearance, showing the error below the radio group. If the
86
+ * defined value is an empty string, it will reserve a space below the
87
+ * component for a future error, but it would not change its look. In
88
+ * case of being undefined or null, both the appearance and the space for
89
+ * the error message would not be modified.
90
+ */
91
+ error?: string;
92
+ /**
93
+ * Value of the tabindex attribute.
94
+ */
95
+ tabIndex?: number;
96
+ };
97
+ /**
98
+ * Reference to the component.
99
+ */
100
+ export declare type RefType = HTMLDivElement;
101
+ /**
102
+ * Single radio prop types.
103
+ */
104
+ export declare type RadioProps = {
105
+ label: string;
106
+ checked: boolean;
107
+ onClick: () => void;
108
+ error?: string;
109
+ disabled: boolean;
110
+ focused: boolean;
111
+ readonly: boolean;
112
+ tabIndex: number;
113
+ };
114
+ export default RadioGroupProps;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const icons: {
3
+ arrowUp: JSX.Element;
4
+ arrowDown: JSX.Element;
5
+ bothArrows: JSX.Element;
6
+ };
7
+ export default icons;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var icons = {
13
+ arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ height: "24",
16
+ viewBox: "0 0 24 24",
17
+ width: "24",
18
+ fill: "currentColor"
19
+ }, /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M0 0h24v24H0V0z",
21
+ fill: "none"
22
+ }), /*#__PURE__*/_react["default"].createElement("path", {
23
+ d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
24
+ })),
25
+ arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
26
+ xmlns: "http://www.w3.org/2000/svg",
27
+ height: "24",
28
+ viewBox: "0 0 24 24",
29
+ width: "24",
30
+ fill: "currentColor"
31
+ }, /*#__PURE__*/_react["default"].createElement("path", {
32
+ d: "M0 0h24v24H0V0z",
33
+ fill: "none"
34
+ }), /*#__PURE__*/_react["default"].createElement("path", {
35
+ d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"
36
+ })),
37
+ bothArrows: /*#__PURE__*/_react["default"].createElement("svg", {
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ height: "24",
40
+ viewBox: "0 0 24 24",
41
+ width: "24",
42
+ fill: "currentColor"
43
+ }, /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M0 0h24v24H0z",
45
+ fill: "none"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
48
+ }))
49
+ };
50
+ var _default = icons;
51
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import ResultsetTablePropsType from "./types";
3
+ declare const DxcResultsetTable: ({ columns, rows, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, }: ResultsetTablePropsType) => JSX.Element;
4
+ export default DxcResultsetTable;
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
13
 
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -21,27 +19,29 @@ var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _variables = require("../common/variables.js");
22
+ var _variables = require("../common/variables");
27
23
 
28
24
  var _Table = _interopRequireDefault(require("../table/Table"));
29
25
 
30
26
  var _Paginator = _interopRequireDefault(require("../paginator/Paginator"));
31
27
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
29
+
30
+ var _Icons = _interopRequireDefault(require("./Icons"));
31
+
32
+ var _utils = require("../common/utils");
33
33
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
34
+ var _templateObject, _templateObject2, _templateObject3;
35
35
 
36
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
37
 
38
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
39
 
40
- function normalizeSortValue(sortValue) {
40
+ var normalizeSortValue = function normalizeSortValue(sortValue) {
41
41
  return typeof sortValue === "string" ? sortValue.toUpperCase() : sortValue;
42
- }
42
+ };
43
43
 
44
- function sortArray(index, order, resultset) {
44
+ var sortArray = function sortArray(index, order, resultset) {
45
45
  return resultset.slice().sort(function (element1, element2) {
46
46
  var sortValueA = normalizeSortValue(element1[index].sortValue || element1[index].displayValue);
47
47
  var sortValueB = normalizeSortValue(element2[index].sortValue || element2[index].displayValue);
@@ -57,9 +57,9 @@ function sortArray(index, order, resultset) {
57
57
  comparison = -1;
58
58
  }
59
59
 
60
- return order === "desc" ? comparison * -1 : comparison;
60
+ return order === "descending" ? comparison * -1 : comparison;
61
61
  });
62
- }
62
+ };
63
63
 
64
64
  var getMinItemsPerPageIndex = function getMinItemsPerPageIndex(currentPageInternal, itemsPerPage, page) {
65
65
  return currentPageInternal === 1 ? 0 : itemsPerPage * (page - 1);
@@ -69,54 +69,11 @@ var getMaxItemsPerPageIndex = function getMaxItemsPerPageIndex(minItemsPerPageIn
69
69
  return minItemsPerPageIndex + itemsPerPage > resultset.length ? resultset.length : itemsPerPage * page - 1;
70
70
  };
71
71
 
72
- var ArrowUp = function ArrowUp() {
73
- return /*#__PURE__*/_react["default"].createElement("svg", {
74
- xmlns: "http://www.w3.org/2000/svg",
75
- height: "24",
76
- viewBox: "0 0 24 24",
77
- width: "24",
78
- fill: "currentColor"
79
- }, /*#__PURE__*/_react["default"].createElement("path", {
80
- d: "M0 0h24v24H0V0z",
81
- fill: "none"
82
- }), /*#__PURE__*/_react["default"].createElement("path", {
83
- d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
84
- }));
85
- };
86
-
87
- var ArrowDown = function ArrowDown() {
88
- return /*#__PURE__*/_react["default"].createElement("svg", {
89
- xmlns: "http://www.w3.org/2000/svg",
90
- height: "24",
91
- viewBox: "0 0 24 24",
92
- width: "24",
93
- fill: "currentColor"
94
- }, /*#__PURE__*/_react["default"].createElement("path", {
95
- d: "M0 0h24v24H0V0z",
96
- fill: "none"
97
- }), /*#__PURE__*/_react["default"].createElement("path", {
98
- d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"
99
- }));
100
- };
101
-
102
- var BothArrows = function BothArrows() {
103
- return /*#__PURE__*/_react["default"].createElement("svg", {
104
- xmlns: "http://www.w3.org/2000/svg",
105
- height: "24",
106
- viewBox: "0 0 24 24",
107
- width: "24",
108
- fill: "currentColor"
109
- }, /*#__PURE__*/_react["default"].createElement("path", {
110
- d: "M0 0h24v24H0z",
111
- fill: "none"
112
- }), /*#__PURE__*/_react["default"].createElement("path", {
113
- d: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
114
- }));
115
- };
116
-
117
72
  var DxcResultsetTable = function DxcResultsetTable(_ref) {
118
73
  var columns = _ref.columns,
119
74
  rows = _ref.rows,
75
+ _ref$showGoToPage = _ref.showGoToPage,
76
+ showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
120
77
  _ref$itemsPerPage = _ref.itemsPerPage,
121
78
  itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
122
79
  itemsPerPageOptions = _ref.itemsPerPageOptions,
@@ -131,12 +88,12 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
131
88
  page = _useState2[0],
132
89
  changePage = _useState2[1];
133
90
 
134
- var _useState3 = (0, _react.useState)(""),
91
+ var _useState3 = (0, _react.useState)(-1),
135
92
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
136
93
  sortColumnIndex = _useState4[0],
137
94
  changeSortColumnIndex = _useState4[1];
138
95
 
139
- var _useState5 = (0, _react.useState)("asc"),
96
+ var _useState5 = (0, _react.useState)("ascending"),
140
97
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
141
98
  sortOrder = _useState6[0],
142
99
  changeSortOrder = _useState6[1];
@@ -147,6 +104,12 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
147
104
  var maxItemsPerPageIndex = (0, _react.useMemo)(function () {
148
105
  return getMaxItemsPerPageIndex(minItemsPerPageIndex, itemsPerPage, rows, page);
149
106
  }, [itemsPerPage, minItemsPerPageIndex, page, rows]);
107
+ var sortedResultset = (0, _react.useMemo)(function () {
108
+ return sortColumnIndex !== -1 ? sortArray(sortColumnIndex, sortOrder, rows) : rows;
109
+ }, [sortColumnIndex, sortOrder, rows]);
110
+ var filteredResultset = (0, _react.useMemo)(function () {
111
+ return sortedResultset && sortedResultset.slice(minItemsPerPageIndex, maxItemsPerPageIndex + 1);
112
+ }, [sortedResultset, minItemsPerPageIndex, maxItemsPerPageIndex]);
150
113
 
151
114
  var goToPage = function goToPage(newPage) {
152
115
  changePage(newPage);
@@ -155,43 +118,30 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
155
118
  var changeSorting = function changeSorting(columnIndex) {
156
119
  changePage(1);
157
120
  changeSortColumnIndex(columnIndex);
158
- changeSortOrder(sortColumnIndex === "" || sortColumnIndex !== columnIndex ? "asc" : sortOrder === "asc" ? "desc" : "asc");
159
- };
160
-
161
- var getIconForSortableColumn = function getIconForSortableColumn(clickedColumnIndex) {
162
- return sortColumnIndex === clickedColumnIndex ? sortOrder === "asc" ? /*#__PURE__*/_react["default"].createElement(ArrowUp, null) : /*#__PURE__*/_react["default"].createElement(ArrowDown, null) : /*#__PURE__*/_react["default"].createElement(BothArrows, null);
121
+ changeSortOrder(sortColumnIndex === -1 || sortColumnIndex !== columnIndex ? "ascending" : sortOrder === "ascending" ? "descending" : "ascending");
163
122
  };
164
123
 
165
124
  (0, _react.useEffect)(function () {
166
- if (rows.length > 0) {
167
- changePage(1);
168
- } else {
169
- changePage(0);
170
- }
171
- }, [rows.length, itemsPerPage]);
172
- var sortedResultset = (0, _react.useMemo)(function () {
173
- return sortColumnIndex !== "" ? sortArray(sortColumnIndex, sortOrder, rows) : rows;
174
- }, [sortColumnIndex, sortOrder, rows]);
175
- var filteredResultset = (0, _react.useMemo)(function () {
176
- return sortedResultset && sortedResultset.slice(minItemsPerPageIndex, maxItemsPerPageIndex + 1);
177
- }, [sortedResultset, minItemsPerPageIndex, maxItemsPerPageIndex]);
125
+ rows.length > 0 ? changePage(1) : changePage(0);
126
+ }, [rows]);
178
127
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
179
128
  theme: colorsTheme.table
180
129
  }, /*#__PURE__*/_react["default"].createElement(DxcResultsetTableContainer, {
181
130
  margin: margin
182
- }, /*#__PURE__*/_react["default"].createElement(TableContainer, null, /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement(HeaderRow, null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
183
- return /*#__PURE__*/_react["default"].createElement(TableHeader, {
184
- key: "tableHeader_".concat(index)
131
+ }, /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
132
+ return /*#__PURE__*/_react["default"].createElement("th", {
133
+ key: "tableHeader_".concat(index),
134
+ "aria-sort": column.isSortable ? sortColumnIndex === index ? sortOrder : "none" : undefined
185
135
  }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
136
+ role: column.isSortable ? "button" : undefined,
186
137
  key: "headerContainer_".concat(index),
187
138
  onClick: function onClick() {
188
- return column.isSortable && changeSorting(index);
139
+ column.isSortable && changeSorting(index);
189
140
  },
190
- tabIndex: column.isSortable ? tabIndex : -1
191
- }, /*#__PURE__*/_react["default"].createElement(TitleDiv, {
141
+ tabIndex: column.isSortable ? tabIndex : -1,
192
142
  isSortable: column.isSortable
193
- }, column.displayValue), column.isSortable && /*#__PURE__*/_react["default"].createElement(SortIcon, null, getIconForSortableColumn(index))));
194
- }))), /*#__PURE__*/_react["default"].createElement(TableRowGroup, null, filteredResultset.map(function (cells, index) {
143
+ }, /*#__PURE__*/_react["default"].createElement("span", null, column.displayValue), column.isSortable && /*#__PURE__*/_react["default"].createElement(SortIcon, null, sortColumnIndex === index ? sortOrder === "ascending" ? _Icons["default"].arrowUp : _Icons["default"].arrowDown : _Icons["default"].bothArrows)));
144
+ }))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells, index) {
195
145
  return /*#__PURE__*/_react["default"].createElement("tr", {
196
146
  key: "resultSetTableCell_".concat(index)
197
147
  }, cells.map(function (cellContent, index) {
@@ -199,44 +149,24 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
199
149
  key: "resultSetTableCellContent_".concat(index)
200
150
  }, cellContent.displayValue);
201
151
  }));
202
- })))), /*#__PURE__*/_react["default"].createElement(PaginatorContainer, null, /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
152
+ }))), /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
203
153
  totalItems: rows.length,
204
154
  itemsPerPage: itemsPerPage,
205
155
  itemsPerPageOptions: itemsPerPageOptions,
206
156
  itemsPerPageFunction: itemsPerPageFunction,
207
157
  currentPage: page,
208
- showGoToPage: true,
158
+ showGoToPage: showGoToPage,
209
159
  onPageChange: goToPage,
210
160
  tabIndex: tabIndex
211
- }))));
161
+ })));
212
162
  };
213
163
 
214
- var TableContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n & table {\n table-layout: auto;\n }\n"])));
215
-
216
- var PaginatorContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
217
-
218
- var TableRowGroup = _styledComponents["default"].tbody(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n > div:nth-child(1) {\n position: absolute;\n left: calc(50% - 68.5px);\n bottom: calc(50% - 68.5px - 30px);\n }\n & tr {\n height: ", ";\n }\n"])), function (props) {
219
- return props.theme.rowHeight || "70px";
220
- });
221
-
222
- var SortIcon = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n top: 409px;\n left: 390px;\n height: 14px;\n cursor: pointer;\n color: ", ";\n\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
223
- return props.theme.sortIconColor;
224
- });
225
-
226
- var TitleDiv = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: ", ";\n"])), function (props) {
227
- return props.isSortable && "pointer" || "default";
228
- });
229
-
230
- var TableHeader = _styledComponents["default"].th(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
231
-
232
- var HeaderContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n width: 100%;\n"])), function (props) {
233
- return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
234
- });
235
-
236
- var HeaderRow = _styledComponents["default"].thead(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: 60px;\n"])));
164
+ var calculateWidth = function calculateWidth(margin) {
165
+ return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
166
+ };
237
167
 
238
- var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
239
- return props.theme.fontSizeBase;
168
+ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
169
+ return calculateWidth(props.margin);
240
170
  }, function (props) {
241
171
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
242
172
  }, function (props) {
@@ -249,26 +179,17 @@ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObjec
249
179
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
250
180
  });
251
181
 
252
- DxcResultsetTable.propTypes = {
253
- rows: _propTypes["default"].array,
254
- columns: _propTypes["default"].array,
255
- itemsPerPage: _propTypes["default"].number,
256
- itemsPerPageOptions: _propTypes["default"].arrayOf(_propTypes["default"].number),
257
- itemsPerPageFunction: _propTypes["default"].func,
258
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
259
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
260
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
261
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
262
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
263
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
264
- tabIndex: _propTypes["default"].number
265
- };
266
- DxcResultsetTable.defaultProps = {
267
- rows: [],
268
- columns: [],
269
- itemsPerPage: 5,
270
- itemsPerPageOptions: null,
271
- itemsPerPageFunction: null
272
- };
182
+ var HeaderContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: 8px;\n width: fit-content;\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n cursor: ", ";\n\n ", "\n"])), function (props) {
183
+ return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
184
+ }, function (props) {
185
+ return props.isSortable ? "pointer" : "default";
186
+ }, function (props) {
187
+ return props.isSortable && "&:focus {\n outline: #0095ff solid 2px;\n }";
188
+ });
189
+
190
+ var SortIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 14px;\n width: 14px;\n color: ", ";\n\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
191
+ return props.theme.sortIconColor;
192
+ });
193
+
273
194
  var _default = DxcResultsetTable;
274
195
  exports["default"] = _default;