@dxc-technology/halstack-react 0.0.0-e628009 → 0.0.0-e78f5f5

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 (377) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/ThemeContext.d.ts +10 -0
  4. package/ThemeContext.js +243 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +247 -0
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +57 -0
  9. package/accordion/types.d.ts +64 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +170 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +133 -0
  15. package/accordion-group/types.d.ts +68 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/{dist/alert → alert}/Alert.js +40 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +59 -0
  25. package/badge/types.d.ts +4 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +84 -0
  29. package/bleed/Bleed.stories.tsx +342 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/{dist/box → box}/Box.js +15 -45
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/button/Button.d.ts +4 -0
  39. package/{dist/button → button}/Button.js +26 -93
  40. package/button/Button.stories.tsx +274 -0
  41. package/button/Button.test.js +35 -0
  42. package/button/types.d.ts +53 -0
  43. package/button/types.js +5 -0
  44. package/card/Card.d.ts +4 -0
  45. package/{dist/card → card}/Card.js +34 -124
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +4 -0
  52. package/{dist/checkbox → checkbox}/Checkbox.js +18 -65
  53. package/checkbox/Checkbox.stories.tsx +192 -0
  54. package/checkbox/Checkbox.test.js +65 -0
  55. package/checkbox/types.d.ts +60 -0
  56. package/checkbox/types.js +5 -0
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +161 -0
  59. package/chip/Chip.stories.tsx +119 -0
  60. package/chip/Chip.test.js +56 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/{dist/common → common}/OpenSans.css +0 -0
  64. package/{dist/common → common}/RequiredComponent.js +3 -11
  65. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  66. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  67. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  68. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  69. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  70. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  71. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  72. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  73. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  74. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  75. package/{dist/common → common}/utils.js +0 -0
  76. package/{dist/common → common}/variables.js +145 -341
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/{dist/date-input → date-input}/DateInput.js +47 -93
  79. package/date-input/DateInput.stories.tsx +138 -0
  80. package/date-input/DateInput.test.js +492 -0
  81. package/date-input/types.d.ts +104 -0
  82. package/date-input/types.js +5 -0
  83. package/dialog/Dialog.d.ts +4 -0
  84. package/{dist/dialog → dialog}/Dialog.js +24 -76
  85. package/dialog/Dialog.stories.tsx +212 -0
  86. package/dialog/Dialog.test.js +40 -0
  87. package/dialog/types.d.ts +43 -0
  88. package/dialog/types.js +5 -0
  89. package/dropdown/Dropdown.d.ts +4 -0
  90. package/{dist/dropdown → dropdown}/Dropdown.js +48 -197
  91. package/dropdown/Dropdown.stories.tsx +249 -0
  92. package/dropdown/Dropdown.test.js +189 -0
  93. package/dropdown/types.d.ts +80 -0
  94. package/dropdown/types.js +5 -0
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +590 -0
  97. package/file-input/FileInput.stories.tsx +507 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +14 -0
  100. package/file-input/FileItem.js +184 -0
  101. package/file-input/types.d.ts +112 -0
  102. package/file-input/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +258 -0
  105. package/footer/Footer.stories.tsx +130 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/{dist/footer → footer}/Icons.js +15 -15
  109. package/footer/types.d.ts +65 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +324 -0
  113. package/header/Header.stories.tsx +162 -0
  114. package/header/Header.test.js +63 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/{dist/header → header}/Icons.js +7 -32
  117. package/header/types.d.ts +47 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/{dist/heading → heading}/Heading.js +25 -96
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +84 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +13 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +10 -0
  131. package/{dist/layout → layout}/ApplicationLayout.js +47 -143
  132. package/layout/ApplicationLayout.stories.tsx +171 -0
  133. package/{dist/layout → layout}/Icons.js +7 -7
  134. package/layout/types.d.ts +57 -0
  135. package/layout/types.js +5 -0
  136. package/link/Link.d.ts +3 -0
  137. package/{dist/link → link}/Link.js +22 -106
  138. package/link/Link.stories.tsx +151 -0
  139. package/link/Link.test.js +91 -0
  140. package/link/types.d.ts +70 -0
  141. package/link/types.js +5 -0
  142. package/list/List.d.ts +4 -0
  143. package/list/List.js +47 -0
  144. package/list/List.stories.tsx +95 -0
  145. package/list/types.d.ts +7 -0
  146. package/list/types.js +5 -0
  147. package/main.d.ts +46 -0
  148. package/{dist/main.js → main.js} +113 -101
  149. package/number-input/NumberInput.d.ts +4 -0
  150. package/number-input/NumberInput.js +83 -0
  151. package/number-input/NumberInput.stories.tsx +115 -0
  152. package/number-input/NumberInput.test.js +508 -0
  153. package/number-input/NumberInputContext.d.ts +4 -0
  154. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  155. package/number-input/numberInputContextTypes.d.ts +19 -0
  156. package/number-input/numberInputContextTypes.js +5 -0
  157. package/number-input/types.d.ts +117 -0
  158. package/number-input/types.js +5 -0
  159. package/package.json +34 -25
  160. package/{dist/paginator → paginator}/Icons.js +9 -9
  161. package/paginator/Paginator.d.ts +4 -0
  162. package/paginator/Paginator.js +192 -0
  163. package/paginator/Paginator.stories.tsx +63 -0
  164. package/paginator/Paginator.test.js +266 -0
  165. package/paginator/types.d.ts +38 -0
  166. package/paginator/types.js +5 -0
  167. package/password-input/PasswordInput.d.ts +4 -0
  168. package/{dist/password-input → password-input}/PasswordInput.js +43 -78
  169. package/password-input/PasswordInput.stories.tsx +131 -0
  170. package/password-input/PasswordInput.test.js +183 -0
  171. package/password-input/types.d.ts +107 -0
  172. package/password-input/types.js +5 -0
  173. package/progress-bar/ProgressBar.d.ts +4 -0
  174. package/{dist/progress-bar → progress-bar}/ProgressBar.js +22 -94
  175. package/progress-bar/ProgressBar.stories.jsx +58 -0
  176. package/progress-bar/ProgressBar.test.js +65 -0
  177. package/progress-bar/types.d.ts +37 -0
  178. package/progress-bar/types.js +5 -0
  179. package/radio/Radio.d.ts +4 -0
  180. package/{dist/radio → radio}/Radio.js +17 -52
  181. package/radio/Radio.stories.tsx +192 -0
  182. package/radio/Radio.test.js +71 -0
  183. package/radio/types.d.ts +54 -0
  184. package/radio/types.js +5 -0
  185. package/radio-group/Radio.d.ts +4 -0
  186. package/radio-group/Radio.js +141 -0
  187. package/radio-group/RadioGroup.d.ts +4 -0
  188. package/radio-group/RadioGroup.js +280 -0
  189. package/radio-group/RadioGroup.stories.tsx +100 -0
  190. package/radio-group/RadioGroup.test.js +695 -0
  191. package/radio-group/types.d.ts +114 -0
  192. package/radio-group/types.js +5 -0
  193. package/resultsetTable/ResultsetTable.d.ts +4 -0
  194. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +43 -147
  195. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  196. package/resultsetTable/ResultsetTable.test.js +306 -0
  197. package/resultsetTable/types.d.ts +67 -0
  198. package/resultsetTable/types.js +5 -0
  199. package/row/Row.d.ts +3 -0
  200. package/row/Row.js +127 -0
  201. package/row/Row.stories.tsx +237 -0
  202. package/row/types.d.ts +10 -0
  203. package/row/types.js +5 -0
  204. package/select/Icons.d.ts +10 -0
  205. package/select/Icons.js +93 -0
  206. package/select/Option.d.ts +4 -0
  207. package/select/Option.js +110 -0
  208. package/select/Select.d.ts +4 -0
  209. package/select/Select.js +740 -0
  210. package/select/Select.stories.tsx +582 -0
  211. package/select/Select.test.js +2016 -0
  212. package/select/types.d.ts +191 -0
  213. package/select/types.js +5 -0
  214. package/sidenav/Sidenav.d.ts +9 -0
  215. package/{dist/sidenav → sidenav}/Sidenav.js +21 -64
  216. package/sidenav/Sidenav.stories.tsx +182 -0
  217. package/sidenav/Sidenav.test.js +56 -0
  218. package/sidenav/types.d.ts +50 -0
  219. package/sidenav/types.js +5 -0
  220. package/slider/Slider.d.ts +4 -0
  221. package/{dist/slider → slider}/Slider.js +74 -161
  222. package/slider/Slider.stories.tsx +177 -0
  223. package/slider/Slider.test.js +129 -0
  224. package/slider/types.d.ts +78 -0
  225. package/slider/types.js +5 -0
  226. package/spinner/Spinner.d.ts +4 -0
  227. package/spinner/Spinner.js +250 -0
  228. package/spinner/Spinner.stories.jsx +103 -0
  229. package/spinner/Spinner.test.js +64 -0
  230. package/spinner/types.d.ts +32 -0
  231. package/spinner/types.js +5 -0
  232. package/stack/Stack.d.ts +3 -0
  233. package/stack/Stack.js +97 -0
  234. package/stack/Stack.stories.tsx +164 -0
  235. package/stack/types.d.ts +24 -0
  236. package/stack/types.js +5 -0
  237. package/switch/Switch.d.ts +4 -0
  238. package/{dist/switch → switch}/Switch.js +28 -71
  239. package/switch/Switch.stories.tsx +160 -0
  240. package/switch/Switch.test.js +73 -0
  241. package/switch/types.d.ts +58 -0
  242. package/switch/types.js +5 -0
  243. package/table/Table.d.ts +4 -0
  244. package/{dist/table → table}/Table.js +12 -26
  245. package/table/Table.stories.jsx +277 -0
  246. package/table/Table.test.js +26 -0
  247. package/table/types.d.ts +21 -0
  248. package/table/types.js +5 -0
  249. package/tabs/Tabs.d.ts +4 -0
  250. package/tabs/Tabs.js +213 -0
  251. package/tabs/Tabs.stories.tsx +120 -0
  252. package/tabs/Tabs.test.js +123 -0
  253. package/tabs/types.d.ts +78 -0
  254. package/tabs/types.js +5 -0
  255. package/tag/Tag.d.ts +4 -0
  256. package/tag/Tag.js +186 -0
  257. package/tag/Tag.stories.tsx +142 -0
  258. package/tag/Tag.test.js +60 -0
  259. package/tag/types.d.ts +69 -0
  260. package/tag/types.js +5 -0
  261. package/text/Text.d.ts +7 -0
  262. package/text/Text.js +30 -0
  263. package/text/Text.stories.tsx +19 -0
  264. package/text-input/TextInput.d.ts +4 -0
  265. package/{dist/text-input → text-input}/TextInput.js +286 -459
  266. package/text-input/TextInput.stories.tsx +474 -0
  267. package/text-input/TextInput.test.js +1725 -0
  268. package/text-input/types.d.ts +163 -0
  269. package/text-input/types.js +5 -0
  270. package/textarea/Textarea.d.ts +4 -0
  271. package/{dist/textarea → textarea}/Textarea.js +46 -127
  272. package/textarea/Textarea.stories.jsx +157 -0
  273. package/textarea/Textarea.test.js +447 -0
  274. package/textarea/types.d.ts +134 -0
  275. package/textarea/types.js +5 -0
  276. package/toggle-group/ToggleGroup.d.ts +4 -0
  277. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +35 -148
  278. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  279. package/toggle-group/ToggleGroup.test.js +125 -0
  280. package/toggle-group/types.d.ts +97 -0
  281. package/toggle-group/types.js +5 -0
  282. package/useTheme.d.ts +2 -0
  283. package/{dist/useTheme.js → useTheme.js} +1 -1
  284. package/wizard/Wizard.d.ts +4 -0
  285. package/wizard/Wizard.js +281 -0
  286. package/wizard/Wizard.stories.tsx +224 -0
  287. package/wizard/Wizard.test.js +128 -0
  288. package/wizard/types.d.ts +60 -0
  289. package/wizard/types.js +5 -0
  290. package/README.md +0 -66
  291. package/babel.config.js +0 -8
  292. package/dist/BackgroundColorContext.js +0 -46
  293. package/dist/ThemeContext.js +0 -248
  294. package/dist/V3Textarea/V3Textarea.js +0 -264
  295. package/dist/accordion/Accordion.js +0 -353
  296. package/dist/accordion-group/AccordionGroup.js +0 -186
  297. package/dist/alert/index.d.ts +0 -51
  298. package/dist/badge/Badge.js +0 -63
  299. package/dist/chip/Chip.js +0 -265
  300. package/dist/date/Date.js +0 -379
  301. package/dist/date-input/index.d.ts +0 -95
  302. package/dist/file-input/FileInput.js +0 -644
  303. package/dist/file-input/FileItem.js +0 -280
  304. package/dist/file-input/index.d.ts +0 -81
  305. package/dist/footer/Footer.js +0 -421
  306. package/dist/header/Header.js +0 -434
  307. package/dist/input-text/Icons.js +0 -22
  308. package/dist/input-text/InputText.js +0 -705
  309. package/dist/main.d.ts +0 -8
  310. package/dist/new-select/NewSelect.js +0 -836
  311. package/dist/new-select/index.d.ts +0 -53
  312. package/dist/number-input/NumberInput.js +0 -136
  313. package/dist/number-input/index.d.ts +0 -113
  314. package/dist/paginator/Paginator.js +0 -283
  315. package/dist/password-input/index.d.ts +0 -94
  316. package/dist/select/Select.js +0 -549
  317. package/dist/spinner/Spinner.js +0 -381
  318. package/dist/tabs/Tabs.js +0 -343
  319. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  320. package/dist/tag/Tag.js +0 -282
  321. package/dist/text-input/index.d.ts +0 -135
  322. package/dist/textarea/index.d.ts +0 -117
  323. package/dist/toggle/Toggle.js +0 -220
  324. package/dist/upload/Upload.js +0 -205
  325. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  326. package/dist/upload/buttons-upload/Icons.js +0 -40
  327. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  328. package/dist/upload/dragAndDropArea/Icons.js +0 -39
  329. package/dist/upload/file-upload/FileToUpload.js +0 -189
  330. package/dist/upload/file-upload/Icons.js +0 -66
  331. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  332. package/dist/upload/transaction/Icons.js +0 -160
  333. package/dist/upload/transaction/Transaction.js +0 -148
  334. package/dist/upload/transactions/Transactions.js +0 -138
  335. package/dist/wizard/Icons.js +0 -65
  336. package/dist/wizard/Wizard.js +0 -405
  337. package/test/Accordion.test.js +0 -33
  338. package/test/AccordionGroup.test.js +0 -125
  339. package/test/Alert.test.js +0 -53
  340. package/test/Box.test.js +0 -10
  341. package/test/Button.test.js +0 -18
  342. package/test/Card.test.js +0 -30
  343. package/test/Checkbox.test.js +0 -45
  344. package/test/Chip.test.js +0 -25
  345. package/test/Date.test.js +0 -397
  346. package/test/DateInput.test.js +0 -242
  347. package/test/Dialog.test.js +0 -23
  348. package/test/Dropdown.test.js +0 -145
  349. package/test/FileInput.test.js +0 -201
  350. package/test/Footer.test.js +0 -94
  351. package/test/Header.test.js +0 -34
  352. package/test/Heading.test.js +0 -83
  353. package/test/InputText.test.js +0 -248
  354. package/test/Link.test.js +0 -43
  355. package/test/NumberInput.test.js +0 -259
  356. package/test/Paginator.test.js +0 -177
  357. package/test/PasswordInput.test.js +0 -83
  358. package/test/ProgressBar.test.js +0 -35
  359. package/test/Radio.test.js +0 -37
  360. package/test/ResultsetTable.test.js +0 -329
  361. package/test/Select.test.js +0 -212
  362. package/test/Sidenav.test.js +0 -45
  363. package/test/Slider.test.js +0 -74
  364. package/test/Spinner.test.js +0 -32
  365. package/test/Switch.test.js +0 -45
  366. package/test/Table.test.js +0 -36
  367. package/test/Tabs.test.js +0 -109
  368. package/test/TabsForSections.test.js +0 -34
  369. package/test/Tag.test.js +0 -32
  370. package/test/TextInput.test.js +0 -732
  371. package/test/Textarea.test.js +0 -193
  372. package/test/ToggleGroup.test.js +0 -85
  373. package/test/Upload.test.js +0 -60
  374. package/test/V3TextArea.test.js +0 -51
  375. package/test/Wizard.test.js +0 -130
  376. package/test/mocks/pngMock.js +0 -1
  377. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,275 @@
1
+ import React from "react";
2
+ import DxcResultsetTable from "./ResultsetTable";
3
+ import DxcButton from "../button/Button";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { userEvent, within } from "@storybook/testing-library";
7
+
8
+ export default {
9
+ title: "Resultset Table",
10
+ component: DxcResultsetTable,
11
+ };
12
+
13
+ const deleteIcon = (
14
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
15
+ <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
16
+ <path d="M0 0h24v24H0z" fill="none" />
17
+ </svg>
18
+ );
19
+
20
+ const columns = [{ displayValue: "Id" }, { displayValue: "Name" }, { displayValue: "City" }];
21
+
22
+ const rows = [
23
+ [{ displayValue: "001" }, { displayValue: "Peter" }, { displayValue: "Miami" }],
24
+ [{ displayValue: "002" }, { displayValue: "Louis" }, { displayValue: "London" }],
25
+ [{ displayValue: "003" }, { displayValue: "Lana" }, { displayValue: "Amsterdam" }],
26
+ [{ displayValue: "004" }, { displayValue: "Rick" }, { displayValue: "London" }],
27
+ [{ displayValue: "005" }, { displayValue: "Mark" }, { displayValue: "Miami" }],
28
+ [{ displayValue: "006" }, { displayValue: "Cris" }, { displayValue: "Paris" }],
29
+ ];
30
+
31
+ const rowsIcon = [
32
+ [
33
+ { displayValue: "001", sortValue: "001" },
34
+ { displayValue: "Peter" },
35
+ { displayValue: <DxcButton icon={deleteIcon} /> },
36
+ ],
37
+ [{ displayValue: "002", sortValue: "002" }, { displayValue: "Louis" }, { displayValue: "" }],
38
+ [
39
+ { displayValue: "003", sortValue: "003" },
40
+ { displayValue: "Mark" },
41
+ { displayValue: <DxcButton icon={deleteIcon} /> },
42
+ ],
43
+ ];
44
+
45
+ const columnsSortable = [
46
+ { displayValue: "Id", isSortable: true },
47
+ { displayValue: "Name", isSortable: true },
48
+ { displayValue: "City", isSortable: false },
49
+ ];
50
+
51
+ const rowsSortable = [
52
+ [
53
+ { displayValue: "001", sortValue: "001" },
54
+ { displayValue: "Peter", sortValue: "Peter" },
55
+ { displayValue: "Miami", sortValue: "Miami" },
56
+ ],
57
+ [
58
+ { displayValue: "002", sortValue: "002" },
59
+ { displayValue: "Louis", sortValue: "Louis" },
60
+ { displayValue: "London", sortValue: "London" },
61
+ ],
62
+ [
63
+ { displayValue: "003", sortValue: "003" },
64
+ { displayValue: "Aida", sortValue: "Aida" },
65
+ { displayValue: "Wroclaw", sortValue: "Wroclaw" },
66
+ ],
67
+ [
68
+ { displayValue: "004", sortValue: "004" },
69
+ { displayValue: "Lana", sortValue: "Lana" },
70
+ { displayValue: "Amsterdam", sortValue: "Amsterdam" },
71
+ ],
72
+ ];
73
+
74
+ const longColumns = [
75
+ { displayValue: "Column1" },
76
+ { displayValue: "Column2" },
77
+ { displayValue: "Column3" },
78
+ { displayValue: "Column4" },
79
+ { displayValue: "Column5" },
80
+ { displayValue: "Column6" },
81
+ { displayValue: "Column7" },
82
+ { displayValue: "Column8" },
83
+ { displayValue: "Column9" },
84
+ { displayValue: "Column10" },
85
+ { displayValue: "Column11" },
86
+ { displayValue: "Column12" },
87
+ { displayValue: "Column13" },
88
+ { displayValue: "Column14" },
89
+ { displayValue: "Column15" },
90
+ { displayValue: "Column16" },
91
+ { displayValue: "Column17" },
92
+ { displayValue: "Column18" },
93
+ { displayValue: "Column19" },
94
+ { displayValue: "Column20" },
95
+ ];
96
+
97
+ const longRows = [
98
+ [
99
+ { displayValue: "001", sortValue: "001" },
100
+ { displayValue: "Peter", sortValue: "Peter" },
101
+ { displayValue: "Miami", sortValue: "Miami" },
102
+ { displayValue: "001", sortValue: "001" },
103
+ { displayValue: "Peter", sortValue: "Peter" },
104
+ { displayValue: "Miami", sortValue: "Miami" },
105
+ { displayValue: "Miami", sortValue: "Miami" },
106
+ { displayValue: "001", sortValue: "001" },
107
+ { displayValue: "Peter", sortValue: "Peter" },
108
+ { displayValue: "Miami", sortValue: "Miami" },
109
+ { displayValue: "002", sortValue: "002" },
110
+ { displayValue: "Louis", sortValue: "Louis" },
111
+ { displayValue: "London", sortValue: "London" },
112
+ { displayValue: "002", sortValue: "002" },
113
+ { displayValue: "Louis", sortValue: "Louis" },
114
+ { displayValue: "London", sortValue: "London" },
115
+ { displayValue: "002", sortValue: "002" },
116
+ { displayValue: "Louis", sortValue: "Louis" },
117
+ { displayValue: "London", sortValue: "London" },
118
+ { displayValue: "London", sortValue: "London" },
119
+ ],
120
+ [
121
+ { displayValue: "002", sortValue: "002" },
122
+ { displayValue: "Louis", sortValue: "Louis" },
123
+ { displayValue: "London", sortValue: "London" },
124
+ { displayValue: "002", sortValue: "002" },
125
+ { displayValue: "Louis", sortValue: "Louis" },
126
+ { displayValue: "London", sortValue: "London" },
127
+ { displayValue: "002", sortValue: "002" },
128
+ { displayValue: "Louis", sortValue: "Louis" },
129
+ { displayValue: "London", sortValue: "London" },
130
+ { displayValue: "London", sortValue: "London" },
131
+ { displayValue: "002", sortValue: "002" },
132
+ { displayValue: "Louis", sortValue: "Louis" },
133
+ { displayValue: "London", sortValue: "London" },
134
+ { displayValue: "002", sortValue: "002" },
135
+ { displayValue: "Louis", sortValue: "Louis" },
136
+ { displayValue: "London", sortValue: "London" },
137
+ { displayValue: "002", sortValue: "002" },
138
+ { displayValue: "Louis", sortValue: "Louis" },
139
+ { displayValue: "London", sortValue: "London" },
140
+ { displayValue: "London", sortValue: "London" },
141
+ ],
142
+ [
143
+ { displayValue: "002", sortValue: "002" },
144
+ { displayValue: "Louis", sortValue: "Louis" },
145
+ { displayValue: "London", sortValue: "London" },
146
+ { displayValue: "002", sortValue: "002" },
147
+ { displayValue: "Louis", sortValue: "Louis" },
148
+ { displayValue: "London", sortValue: "London" },
149
+ { displayValue: "002", sortValue: "002" },
150
+ { displayValue: "Louis", sortValue: "Louis" },
151
+ { displayValue: "London", sortValue: "London" },
152
+ { displayValue: "London", sortValue: "London" },
153
+ { displayValue: "002", sortValue: "002" },
154
+ { displayValue: "Louis", sortValue: "Louis" },
155
+ { displayValue: "London", sortValue: "London" },
156
+ { displayValue: "002", sortValue: "002" },
157
+ { displayValue: "Louis", sortValue: "Louis" },
158
+ { displayValue: "London", sortValue: "London" },
159
+ { displayValue: "002", sortValue: "002" },
160
+ { displayValue: "Louis", sortValue: "Louis" },
161
+ { displayValue: "London", sortValue: "London" },
162
+ { displayValue: "London", sortValue: "London" },
163
+ ],
164
+ ];
165
+
166
+ export const Chromatic = () => (
167
+ <>
168
+ <ExampleContainer>
169
+ <Title title="Sortable table" theme="light" level={4} />
170
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
171
+ </ExampleContainer>
172
+ <ExampleContainer>
173
+ <Title title="With action" theme="light" level={4} />
174
+ <DxcResultsetTable columns={columns} rows={rowsIcon}></DxcResultsetTable>
175
+ </ExampleContainer>
176
+ <ExampleContainer>
177
+ <Title title="With items per page option" theme="light" level={4} />
178
+ <DxcResultsetTable
179
+ columns={columns}
180
+ rows={rows}
181
+ itemsPerPage={2}
182
+ itemsPerPageOptions={[2, 3]}
183
+ ></DxcResultsetTable>
184
+ </ExampleContainer>
185
+ <ExampleContainer>
186
+ <Title title="Scroll resultset table" theme="light" level={4} />
187
+ <DxcResultsetTable columns={longColumns} rows={longRows}></DxcResultsetTable>
188
+ </ExampleContainer>
189
+ <Title title="Margins" theme="light" level={2} />
190
+ <ExampleContainer>
191
+ <Title title="Xxsmall" theme="light" level={4} />
192
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xxsmall"}></DxcResultsetTable>
193
+ </ExampleContainer>
194
+ <ExampleContainer>
195
+ <Title title="Xsmall" theme="light" level={4} />
196
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xsmall"}></DxcResultsetTable>
197
+ </ExampleContainer>
198
+ <ExampleContainer>
199
+ <Title title="Small" theme="light" level={4} />
200
+ <DxcResultsetTable columns={columns} rows={rows} margin={"small"}></DxcResultsetTable>
201
+ </ExampleContainer>
202
+ <ExampleContainer>
203
+ <Title title="Medium" theme="light" level={4} />
204
+ <DxcResultsetTable columns={columns} rows={rows} margin={"medium"}></DxcResultsetTable>
205
+ </ExampleContainer>
206
+ <ExampleContainer>
207
+ <Title title="Large" theme="light" level={4} />
208
+ <DxcResultsetTable columns={columns} rows={rows} margin={"large"}></DxcResultsetTable>
209
+ </ExampleContainer>
210
+ <ExampleContainer>
211
+ <Title title="Xlarge" theme="light" level={4} />
212
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xlarge"}></DxcResultsetTable>
213
+ </ExampleContainer>
214
+ <ExampleContainer>
215
+ <Title title="Xxlarge" theme="light" level={4} />
216
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xxlarge"}></DxcResultsetTable>
217
+ <hr />
218
+ </ExampleContainer>
219
+ </>
220
+ );
221
+
222
+ const ResultsetTableAsc = () => (
223
+ <ExampleContainer>
224
+ <Title title="Ascendant sorting" theme="light" level={4} />
225
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
226
+ </ExampleContainer>
227
+ );
228
+
229
+ export const AscendentSorting = ResultsetTableAsc.bind({});
230
+ AscendentSorting.play = async ({ canvasElement }) => {
231
+ const canvas = within(canvasElement);
232
+ await userEvent.click(canvas.queryByText("Name"));
233
+ };
234
+
235
+ const ResultsetTableDesc = () => (
236
+ <ExampleContainer>
237
+ <Title title="Descendant sorting" theme="light" level={4} />
238
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
239
+ </ExampleContainer>
240
+ );
241
+
242
+ export const DescendantSorting = ResultsetTableDesc.bind({});
243
+ DescendantSorting.play = async ({ canvasElement }) => {
244
+ const canvas = within(canvasElement);
245
+ await userEvent.click(canvas.queryByText("Name"));
246
+ await userEvent.click(canvas.queryByText("Name"));
247
+ };
248
+
249
+ const ResultsetTableMiddle = () => (
250
+ <ExampleContainer>
251
+ <Title title="Middle page" theme="light" level={4} />
252
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2}></DxcResultsetTable>
253
+ </ExampleContainer>
254
+ );
255
+
256
+ export const MiddlePage = ResultsetTableMiddle.bind({});
257
+ MiddlePage.play = async ({ canvasElement }) => {
258
+ const canvas = within(canvasElement);
259
+ const nextButton = canvas.getAllByRole("button")[2];
260
+ await userEvent.click(nextButton);
261
+ };
262
+
263
+ const ResultsetTableLast = () => (
264
+ <ExampleContainer>
265
+ <Title title="Last page" theme="light" level={4} />
266
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2}></DxcResultsetTable>
267
+ </ExampleContainer>
268
+ );
269
+
270
+ export const LastPage = ResultsetTableLast.bind({});
271
+ LastPage.play = async ({ canvasElement }) => {
272
+ const canvas = within(canvasElement);
273
+ const nextButton = canvas.getAllByRole("button")[3];
274
+ await userEvent.click(nextButton);
275
+ };
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
+
11
+ var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
12
+
13
+ var columns = [{
14
+ displayValue: "Id",
15
+ isSortable: false
16
+ }, {
17
+ displayValue: "Name",
18
+ isSortable: true
19
+ }, {
20
+ displayValue: "City",
21
+ isSortable: false
22
+ }];
23
+ var rows = [[{
24
+ displayValue: "001",
25
+ sortValue: "001"
26
+ }, {
27
+ displayValue: "Peter",
28
+ sortValue: "Peter"
29
+ }, {
30
+ displayValue: "Oviedo",
31
+ sortValue: "Oviedo"
32
+ }], [{
33
+ displayValue: "002",
34
+ sortValue: "002"
35
+ }, {
36
+ displayValue: "Louis",
37
+ sortValue: "Louis"
38
+ }, {
39
+ displayValue: "Oviedo",
40
+ sortValue: "Oviedo"
41
+ }, {
42
+ displayValue: ""
43
+ }], [{
44
+ displayValue: "003",
45
+ sortValue: "003"
46
+ }, {
47
+ displayValue: "Lana",
48
+ sortValue: "Lana"
49
+ }, {
50
+ displayValue: "Albacete",
51
+ sortValue: "Albacete"
52
+ }], [{
53
+ displayValue: "004",
54
+ sortValue: "004"
55
+ }, {
56
+ displayValue: "Rick",
57
+ sortValue: "Rick"
58
+ }, {
59
+ displayValue: "Albacete",
60
+ sortValue: "Albacete"
61
+ }], [{
62
+ displayValue: "005",
63
+ sortValue: "005"
64
+ }, {
65
+ displayValue: "Mark",
66
+ sortValue: "Mark"
67
+ }, {
68
+ displayValue: "Madrid",
69
+ sortValue: "Madrid"
70
+ }], [{
71
+ displayValue: "006",
72
+ sortValue: "006"
73
+ }, {
74
+ displayValue: "Cris",
75
+ sortValue: "Cris"
76
+ }, {
77
+ displayValue: "Barcelona",
78
+ sortValue: "Barcelona"
79
+ }, {
80
+ displayValue: ""
81
+ }], [{
82
+ displayValue: "007",
83
+ sortValue: "007"
84
+ }, {
85
+ displayValue: "Susan",
86
+ sortValue: "Susan"
87
+ }, {
88
+ displayValue: "Madrid",
89
+ sortValue: "Madrid"
90
+ }], [{
91
+ displayValue: "008",
92
+ sortValue: "008"
93
+ }, {
94
+ displayValue: "Tina",
95
+ sortValue: "Tina"
96
+ }, {
97
+ displayValue: "Barcelona",
98
+ sortValue: "Barcelona"
99
+ }], [{
100
+ displayValue: "009",
101
+ sortValue: "009"
102
+ }, {
103
+ displayValue: "Kevin",
104
+ sortValue: "Kevin"
105
+ }, {
106
+ displayValue: "Oviedo",
107
+ sortValue: "Oviedo"
108
+ }, {
109
+ displayValue: ""
110
+ }], [{
111
+ displayValue: "010",
112
+ sortValue: "010"
113
+ }, {
114
+ displayValue: "Cosmin",
115
+ sortValue: "Cosmin"
116
+ }, {
117
+ displayValue: "Barcelona",
118
+ sortValue: "Barcelona"
119
+ }, {
120
+ displayValue: ""
121
+ }]];
122
+ var rows2 = [[{
123
+ displayValue: "546",
124
+ sortValue: "465"
125
+ }, {
126
+ displayValue: "OtherValue",
127
+ sortValue: "OtherValue"
128
+ }, {
129
+ displayValue: "OtherValue",
130
+ sortValue: "OtherValue"
131
+ }], [{
132
+ displayValue: "978",
133
+ sortValue: "465"
134
+ }, {
135
+ displayValue: "OtherValue",
136
+ sortValue: "OtherValue"
137
+ }, {
138
+ displayValue: "OtherValue",
139
+ sortValue: "OtherValue"
140
+ }, {
141
+ displayValue: ""
142
+ }], [{
143
+ displayValue: "678",
144
+ sortValue: "344"
145
+ }, {
146
+ displayValue: "OtherValue",
147
+ sortValue: "OtherValue"
148
+ }, {
149
+ displayValue: "OtherValue",
150
+ sortValue: "OtherValue"
151
+ }]];
152
+ describe("ResultsetTable component tests", function () {
153
+ test("ResultsetTable rendered correctly", function () {
154
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
155
+ columns: columns,
156
+ rows: rows,
157
+ itemsPerPage: 3
158
+ })),
159
+ getByText = _render.getByText;
160
+
161
+ expect(getByText("Peter")).toBeTruthy();
162
+ });
163
+ test("Resultsettable shows as many rows as itemsPerPage", function () {
164
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
165
+ columns: columns,
166
+ rows: rows,
167
+ itemsPerPage: 3
168
+ })),
169
+ getAllByRole = _render2.getAllByRole;
170
+
171
+ expect(getAllByRole("row").length - 1).toEqual(3);
172
+ });
173
+ test("Resultsettable shows rows on second page", function () {
174
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
175
+ columns: columns,
176
+ rows: rows,
177
+ itemsPerPage: 3
178
+ })),
179
+ getByText = _render3.getByText,
180
+ getAllByRole = _render3.getAllByRole;
181
+
182
+ expect(getByText("Peter")).toBeTruthy();
183
+ expect(getByText("Louis")).toBeTruthy();
184
+ expect(getByText("Lana")).toBeTruthy();
185
+ expect(getAllByRole("row").length - 1).toEqual(3);
186
+ var nextButton = getAllByRole("button")[2];
187
+
188
+ _react2.fireEvent.click(nextButton);
189
+
190
+ expect(getByText("4 to 6 of 10")).toBeTruthy(); // expect(getByText("Page: 2 of 4")).toBeTruthy();
191
+
192
+ expect(getByText("Rick")).toBeTruthy();
193
+ expect(getByText("Mark")).toBeTruthy();
194
+ expect(getByText("Cris")).toBeTruthy();
195
+ expect(getAllByRole("row").length - 1).toEqual(3);
196
+ });
197
+ test("Resultsettable goToPage works as expected", function () {
198
+ window.HTMLElement.prototype.scrollIntoView = function () {};
199
+
200
+ window.HTMLElement.prototype.scrollTo = function () {};
201
+
202
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
203
+ columns: columns,
204
+ showGoToPage: true,
205
+ rows: rows,
206
+ itemsPerPage: 3
207
+ })),
208
+ getByText = _render4.getByText,
209
+ getAllByRole = _render4.getAllByRole,
210
+ getByRole = _render4.getByRole;
211
+
212
+ expect(getByText("Peter")).toBeTruthy();
213
+ expect(getByText("Louis")).toBeTruthy();
214
+ expect(getByText("Lana")).toBeTruthy();
215
+ expect(getAllByRole("row").length - 1).toEqual(3);
216
+ var goToPageSelect = getAllByRole("button")[2];
217
+ (0, _react2.act)(function () {
218
+ _userEvent["default"].click(goToPageSelect);
219
+ });
220
+ var goToPageOption = getByText("2");
221
+ (0, _react2.act)(function () {
222
+ _userEvent["default"].click(goToPageOption);
223
+ });
224
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
225
+ expect(getByText("Rick")).toBeTruthy();
226
+ expect(getByText("Mark")).toBeTruthy();
227
+ expect(getByText("Cris")).toBeTruthy();
228
+ expect(getAllByRole("row").length - 1).toEqual(3);
229
+ });
230
+ test("Resultsettable going to the last page shows only one row", function () {
231
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
232
+ columns: columns,
233
+ rows: rows,
234
+ itemsPerPage: 3
235
+ })),
236
+ getByText = _render5.getByText,
237
+ getAllByRole = _render5.getAllByRole;
238
+
239
+ var lastButton = getAllByRole("button")[3];
240
+
241
+ _react2.fireEvent.click(lastButton);
242
+
243
+ expect(getByText("10 to 10 of 10")).toBeTruthy();
244
+ expect(getAllByRole("row")).toHaveLength(2);
245
+ expect(getByText("Cosmin")).toBeTruthy();
246
+ });
247
+ test("Resultsettable sort rows by column", function () {
248
+ var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
249
+ columns: columns,
250
+ rows: rows,
251
+ itemsPerPage: 3
252
+ }));
253
+ expect(component.queryByText("Peter")).toBeTruthy();
254
+
255
+ _react2.fireEvent.click(component.queryByText("Name"));
256
+
257
+ expect(component.queryByText("Tina")).not.toBeTruthy();
258
+ expect(component.queryByText("Cosmin")).toBeTruthy();
259
+
260
+ _react2.fireEvent.click(component.queryByText("Name"));
261
+
262
+ expect(component.queryByText("Tina")).toBeTruthy();
263
+ expect(component.queryByText("Cosmin")).not.toBeTruthy();
264
+ });
265
+ test("Resultsettable change rows should go to first page", function () {
266
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
267
+ columns: columns,
268
+ rows: rows,
269
+ itemsPerPage: 3
270
+ })),
271
+ queryByText = _render6.queryByText,
272
+ rerender = _render6.rerender;
273
+
274
+ expect(queryByText("Peter")).toBeTruthy();
275
+ rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
276
+ columns: columns,
277
+ rows: rows2,
278
+ itemsPerPage: 3
279
+ }));
280
+ expect(queryByText("1 to 3 of 3")).toBeTruthy();
281
+ });
282
+ test("Resultsettable change itemsPerPage should go to first page", function () {
283
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
284
+ columns: columns,
285
+ rows: rows,
286
+ itemsPerPage: 3,
287
+ itemsPerPageOptions: [2, 3]
288
+ })),
289
+ getAllByRole = _render7.getAllByRole,
290
+ queryByText = _render7.queryByText,
291
+ rerender = _render7.rerender;
292
+
293
+ var lastButton = getAllByRole("button")[3];
294
+
295
+ _react2.fireEvent.click(lastButton);
296
+
297
+ expect(getAllByRole("row").length - 1).toEqual(1);
298
+ rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
299
+ columns: columns,
300
+ rows: rows,
301
+ itemsPerPage: 6
302
+ }));
303
+ expect(getAllByRole("row").length - 1).toEqual(6);
304
+ expect(queryByText("Peter")).toBeTruthy();
305
+ });
306
+ });
@@ -0,0 +1,67 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type Column = {
10
+ /**
11
+ * Column display value.
12
+ */
13
+ displayValue: React.ReactNode;
14
+ /**
15
+ * Boolean value to indicate whether the column is sortable or not.
16
+ */
17
+ isSortable?: boolean;
18
+ };
19
+ declare type Row = {
20
+ /**
21
+ * Value to be displayed in the cell.
22
+ */
23
+ displayValue: React.ReactNode;
24
+ /**
25
+ * Value to be used when sorting the table by that
26
+ * column. If not indicated displayValue will be used for sorting.
27
+ */
28
+ sortValue?: string;
29
+ };
30
+ declare type Props = {
31
+ /**
32
+ * An array of objects representing the columns of the table.
33
+ */
34
+ columns: Column[];
35
+ /**
36
+ * An array of objects representing the rows of the table, you will have
37
+ * as many objects as columns in the table.
38
+ */
39
+ rows: Row[][];
40
+ /**
41
+ * If true, a select component for navigation between pages will be displayed.
42
+ */
43
+ showGoToPage?: boolean;
44
+ /**
45
+ * Number of items per page.
46
+ */
47
+ itemsPerPage?: number;
48
+ /**
49
+ * An array of numbers representing the items per page options.
50
+ */
51
+ itemsPerPageOptions?: number[];
52
+ /**
53
+ * This function will be called when the user selects an item per page
54
+ * option. The value selected will be passed as a parameter.
55
+ */
56
+ itemsPerPageFunction?: (newValue: number) => void;
57
+ /**
58
+ * Size of the margin to be applied to the component. You can pass an object with 'top',
59
+ * 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
60
+ */
61
+ margin?: Space | Margin;
62
+ /**
63
+ * Value of the tabindex attribute given to the sortable icon.
64
+ */
65
+ tabIndex?: number;
66
+ };
67
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/row/Row.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import RowPropsType from "./types";
3
+ export default function Row({ gutter, align, justify, wrap, reverse, children, }: RowPropsType): JSX.Element;