@dxc-technology/halstack-react 0.0.0-de7c6b0 → 0.0.0-dec566a

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 (286) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +52 -139
  4. package/HalstackContext.js +11 -36
  5. package/README.md +47 -0
  6. package/accordion/Accordion.js +31 -84
  7. package/accordion/Accordion.stories.tsx +5 -50
  8. package/accordion/Accordion.test.js +18 -33
  9. package/accordion/types.d.ts +6 -6
  10. package/accordion-group/AccordionGroup.d.ts +2 -3
  11. package/accordion-group/AccordionGroup.js +17 -44
  12. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  13. package/accordion-group/AccordionGroup.test.js +42 -60
  14. package/accordion-group/AccordionGroupAccordion.js +11 -23
  15. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  16. package/accordion-group/AccordionGroupContext.js +8 -0
  17. package/accordion-group/types.d.ts +7 -7
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +48 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +29 -118
  24. package/alert/Alert.test.js +28 -45
  25. package/alert/types.d.ts +5 -5
  26. package/badge/Badge.d.ts +1 -1
  27. package/badge/Badge.js +141 -43
  28. package/badge/Badge.stories.tsx +210 -0
  29. package/badge/Badge.test.js +30 -0
  30. package/badge/types.d.ts +52 -3
  31. package/bleed/Bleed.js +13 -21
  32. package/bleed/types.d.ts +2 -2
  33. package/box/Box.js +11 -33
  34. package/box/Box.test.js +1 -6
  35. package/box/types.d.ts +3 -3
  36. package/bulleted-list/BulletedList.js +22 -55
  37. package/bulleted-list/BulletedList.stories.tsx +2 -93
  38. package/bulleted-list/types.d.ts +5 -5
  39. package/button/Button.d.ts +1 -1
  40. package/button/Button.js +68 -100
  41. package/button/Button.stories.tsx +33 -132
  42. package/button/Button.test.js +19 -16
  43. package/button/types.d.ts +9 -5
  44. package/card/Card.js +21 -44
  45. package/card/Card.test.js +10 -21
  46. package/card/types.d.ts +5 -5
  47. package/checkbox/Checkbox.js +85 -120
  48. package/checkbox/Checkbox.stories.tsx +16 -54
  49. package/checkbox/Checkbox.test.js +107 -63
  50. package/checkbox/types.d.ts +8 -4
  51. package/chip/Chip.js +12 -31
  52. package/chip/Chip.stories.tsx +1 -1
  53. package/chip/Chip.test.js +15 -28
  54. package/chip/types.d.ts +4 -4
  55. package/common/coreTokens.d.ts +105 -14
  56. package/common/coreTokens.js +41 -24
  57. package/common/utils.js +2 -8
  58. package/common/variables.d.ts +52 -139
  59. package/common/variables.js +63 -157
  60. package/container/Container.d.ts +4 -0
  61. package/container/Container.js +194 -0
  62. package/container/Container.stories.tsx +214 -0
  63. package/container/types.d.ts +74 -0
  64. package/contextual-menu/ContextualMenu.d.ts +7 -0
  65. package/contextual-menu/ContextualMenu.js +71 -0
  66. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  67. package/contextual-menu/ContextualMenu.test.js +71 -0
  68. package/contextual-menu/MenuItemAction.d.ts +4 -0
  69. package/contextual-menu/MenuItemAction.js +46 -0
  70. package/contextual-menu/types.d.ts +22 -0
  71. package/contextual-menu/types.js +5 -0
  72. package/date-input/Calendar.js +15 -59
  73. package/date-input/DateInput.js +50 -96
  74. package/date-input/DateInput.stories.tsx +11 -30
  75. package/date-input/DateInput.test.js +674 -701
  76. package/date-input/DatePicker.js +11 -42
  77. package/date-input/Icons.d.ts +6 -6
  78. package/date-input/Icons.js +6 -23
  79. package/date-input/YearPicker.js +8 -34
  80. package/date-input/types.d.ts +28 -22
  81. package/dialog/Dialog.js +13 -40
  82. package/dialog/Dialog.stories.tsx +170 -0
  83. package/dialog/Dialog.test.js +125 -187
  84. package/dialog/types.d.ts +18 -13
  85. package/divider/Divider.d.ts +4 -0
  86. package/divider/Divider.js +36 -0
  87. package/divider/Divider.stories.tsx +223 -0
  88. package/divider/Divider.test.js +38 -0
  89. package/divider/types.d.ts +21 -0
  90. package/divider/types.js +5 -0
  91. package/dropdown/Dropdown.js +59 -128
  92. package/dropdown/Dropdown.stories.tsx +5 -16
  93. package/dropdown/Dropdown.test.js +391 -378
  94. package/dropdown/DropdownMenu.js +8 -19
  95. package/dropdown/DropdownMenuItem.js +11 -20
  96. package/dropdown/types.d.ts +20 -24
  97. package/file-input/FileInput.js +180 -248
  98. package/file-input/FileInput.stories.tsx +1 -1
  99. package/file-input/FileInput.test.js +356 -354
  100. package/file-input/FileItem.js +14 -41
  101. package/file-input/types.d.ts +10 -10
  102. package/flex/Flex.js +25 -39
  103. package/flex/types.d.ts +6 -6
  104. package/footer/Footer.d.ts +1 -1
  105. package/footer/Footer.js +70 -102
  106. package/footer/Footer.stories.tsx +37 -6
  107. package/footer/Footer.test.js +21 -33
  108. package/footer/Icons.d.ts +3 -2
  109. package/footer/Icons.js +66 -7
  110. package/footer/types.d.ts +25 -21
  111. package/grid/Grid.d.ts +1 -1
  112. package/grid/Grid.js +2 -17
  113. package/grid/Grid.stories.tsx +38 -38
  114. package/grid/types.d.ts +10 -10
  115. package/header/Header.d.ts +1 -1
  116. package/header/Header.js +28 -84
  117. package/header/Header.test.js +12 -25
  118. package/header/Icons.d.ts +2 -2
  119. package/header/Icons.js +2 -7
  120. package/header/types.d.ts +7 -8
  121. package/heading/Heading.js +9 -31
  122. package/heading/Heading.test.js +70 -87
  123. package/heading/types.d.ts +7 -7
  124. package/icon/Icon.d.ts +4 -0
  125. package/icon/Icon.js +33 -0
  126. package/icon/Icon.stories.tsx +28 -0
  127. package/icon/types.d.ts +4 -0
  128. package/icon/types.js +5 -0
  129. package/image/Image.d.ts +4 -0
  130. package/image/Image.js +70 -0
  131. package/image/Image.stories.tsx +129 -0
  132. package/image/types.d.ts +72 -0
  133. package/image/types.js +5 -0
  134. package/inset/Inset.js +13 -21
  135. package/inset/types.d.ts +2 -2
  136. package/layout/ApplicationLayout.d.ts +2 -2
  137. package/layout/ApplicationLayout.js +29 -66
  138. package/layout/ApplicationLayout.stories.tsx +1 -1
  139. package/layout/Icons.d.ts +8 -5
  140. package/layout/Icons.js +51 -59
  141. package/layout/types.d.ts +3 -3
  142. package/link/Link.js +21 -42
  143. package/link/Link.test.js +23 -41
  144. package/link/types.d.ts +14 -14
  145. package/main.d.ts +8 -4
  146. package/main.js +39 -59
  147. package/nav-tabs/NavTabs.d.ts +1 -2
  148. package/nav-tabs/NavTabs.js +19 -48
  149. package/nav-tabs/NavTabs.stories.tsx +7 -5
  150. package/nav-tabs/NavTabs.test.js +38 -44
  151. package/nav-tabs/NavTabsContext.d.ts +3 -0
  152. package/nav-tabs/NavTabsContext.js +8 -0
  153. package/nav-tabs/Tab.js +24 -52
  154. package/nav-tabs/types.d.ts +9 -9
  155. package/number-input/NumberInput.js +46 -36
  156. package/number-input/NumberInput.stories.tsx +42 -26
  157. package/number-input/NumberInput.test.js +859 -412
  158. package/number-input/NumberInputContext.d.ts +3 -4
  159. package/number-input/NumberInputContext.js +3 -14
  160. package/number-input/types.d.ts +17 -5
  161. package/package.json +30 -28
  162. package/paginator/Icons.d.ts +5 -5
  163. package/paginator/Icons.js +5 -19
  164. package/paginator/Paginator.js +15 -43
  165. package/paginator/Paginator.test.js +224 -207
  166. package/paginator/types.d.ts +3 -3
  167. package/paragraph/Paragraph.js +3 -19
  168. package/paragraph/Paragraph.stories.tsx +0 -17
  169. package/password-input/Icons.d.ts +6 -0
  170. package/password-input/Icons.js +35 -0
  171. package/password-input/PasswordInput.js +57 -126
  172. package/password-input/PasswordInput.stories.tsx +1 -33
  173. package/password-input/PasswordInput.test.js +157 -140
  174. package/password-input/types.d.ts +8 -7
  175. package/progress-bar/ProgressBar.js +21 -53
  176. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  177. package/progress-bar/ProgressBar.test.js +35 -52
  178. package/progress-bar/types.d.ts +3 -3
  179. package/quick-nav/QuickNav.js +4 -27
  180. package/quick-nav/QuickNav.stories.tsx +1 -1
  181. package/quick-nav/types.d.ts +10 -10
  182. package/radio-group/Radio.d.ts +1 -1
  183. package/radio-group/Radio.js +22 -54
  184. package/radio-group/RadioGroup.js +37 -83
  185. package/radio-group/RadioGroup.stories.tsx +10 -10
  186. package/radio-group/RadioGroup.test.js +504 -470
  187. package/radio-group/types.d.ts +8 -8
  188. package/resultset-table/Icons.d.ts +7 -0
  189. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  190. package/resultset-table/ResultsetTable.d.ts +7 -0
  191. package/{resultsetTable → resultset-table}/ResultsetTable.js +44 -69
  192. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -5
  193. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
  194. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  195. package/resultset-table/types.js +5 -0
  196. package/select/Icons.d.ts +7 -7
  197. package/select/Icons.js +1 -5
  198. package/select/Listbox.js +13 -39
  199. package/select/Option.js +17 -27
  200. package/select/Select.js +87 -163
  201. package/select/Select.stories.tsx +3 -3
  202. package/select/Select.test.js +1946 -1804
  203. package/select/types.d.ts +14 -15
  204. package/sidenav/Icons.d.ts +4 -4
  205. package/sidenav/Icons.js +1 -5
  206. package/sidenav/Sidenav.js +29 -70
  207. package/sidenav/Sidenav.test.js +3 -10
  208. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  209. package/{layout → sidenav}/SidenavContext.js +3 -9
  210. package/sidenav/types.d.ts +18 -18
  211. package/slider/Slider.js +68 -125
  212. package/slider/Slider.test.js +107 -103
  213. package/slider/types.d.ts +4 -4
  214. package/spinner/Spinner.js +16 -54
  215. package/spinner/Spinner.test.js +25 -34
  216. package/spinner/types.d.ts +3 -3
  217. package/status-light/StatusLight.d.ts +4 -0
  218. package/status-light/StatusLight.js +51 -0
  219. package/status-light/StatusLight.stories.tsx +74 -0
  220. package/status-light/StatusLight.test.js +25 -0
  221. package/status-light/types.d.ts +17 -0
  222. package/status-light/types.js +5 -0
  223. package/switch/Switch.js +49 -97
  224. package/switch/Switch.stories.tsx +0 -34
  225. package/switch/Switch.test.js +51 -96
  226. package/switch/types.d.ts +4 -4
  227. package/table/DropdownTheme.js +62 -0
  228. package/table/Table.d.ts +6 -2
  229. package/table/Table.js +76 -33
  230. package/table/{Table.stories.jsx → Table.stories.tsx} +297 -2
  231. package/table/Table.test.js +93 -6
  232. package/table/types.d.ts +34 -6
  233. package/tabs/Tab.js +17 -33
  234. package/tabs/Tabs.js +52 -129
  235. package/tabs/Tabs.stories.tsx +1 -1
  236. package/tabs/Tabs.test.js +62 -118
  237. package/tabs/types.d.ts +19 -19
  238. package/tag/Tag.js +21 -51
  239. package/tag/Tag.test.js +19 -30
  240. package/tag/types.d.ts +7 -7
  241. package/text-input/Suggestion.js +9 -26
  242. package/text-input/Suggestions.d.ts +1 -1
  243. package/text-input/Suggestions.js +19 -67
  244. package/text-input/TextInput.js +221 -327
  245. package/text-input/TextInput.stories.tsx +49 -153
  246. package/text-input/TextInput.test.js +1227 -1194
  247. package/text-input/types.d.ts +25 -17
  248. package/textarea/Textarea.js +67 -109
  249. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  250. package/textarea/Textarea.test.js +150 -179
  251. package/textarea/types.d.ts +9 -5
  252. package/toggle-group/ToggleGroup.js +90 -107
  253. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  254. package/toggle-group/ToggleGroup.test.js +68 -87
  255. package/toggle-group/types.d.ts +26 -17
  256. package/typography/Typography.js +4 -13
  257. package/typography/types.d.ts +1 -1
  258. package/useTheme.d.ts +49 -136
  259. package/useTheme.js +1 -8
  260. package/useTranslatedLabels.js +1 -7
  261. package/utils/BaseTypography.d.ts +2 -2
  262. package/utils/BaseTypography.js +16 -30
  263. package/utils/FocusLock.js +25 -39
  264. package/wizard/Wizard.js +14 -49
  265. package/wizard/Wizard.test.js +53 -80
  266. package/wizard/types.d.ts +7 -7
  267. package/common/OpenSans.css +0 -69
  268. package/common/fonts/OpenSans-Bold.ttf +0 -0
  269. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  270. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  271. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  272. package/common/fonts/OpenSans-Italic.ttf +0 -0
  273. package/common/fonts/OpenSans-Light.ttf +0 -0
  274. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  275. package/common/fonts/OpenSans-Regular.ttf +0 -0
  276. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  277. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  278. package/number-input/numberInputContextTypes.d.ts +0 -19
  279. package/resultsetTable/Icons.d.ts +0 -7
  280. package/resultsetTable/ResultsetTable.d.ts +0 -4
  281. package/slider/Slider.stories.tsx +0 -240
  282. package/text-input/Icons.d.ts +0 -8
  283. package/text-input/Icons.js +0 -60
  284. /package/{resultsetTable → action-icon}/types.js +0 -0
  285. /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
  286. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -1,4 +1,4 @@
1
- export declare type Option = {
1
+ export type Option = {
2
2
  /**
3
3
  * Label of the option placed next to the radio input.
4
4
  */
@@ -14,11 +14,11 @@ export declare type Option = {
14
14
  */
15
15
  disabled?: boolean;
16
16
  };
17
- declare type RadioGroupProps = {
17
+ type RadioGroupProps = {
18
18
  /**
19
19
  * Text to be placed above the radio group.
20
20
  */
21
- label: string;
21
+ label?: string;
22
22
  /**
23
23
  * Name attribute of the input element. This attribute will allow users
24
24
  * to find the component's value during the submit event.
@@ -49,9 +49,9 @@ declare type RadioGroupProps = {
49
49
  */
50
50
  optionalItemLabel?: string;
51
51
  /**
52
- * If true, the component will be marked as readonly.
52
+ * If true, the component will not be mutable, meaning the user can not edit the control.
53
53
  */
54
- readonly?: boolean;
54
+ readOnly?: boolean;
55
55
  /**
56
56
  * Sets the orientation of the options within the radio group.
57
57
  */
@@ -97,18 +97,18 @@ declare type RadioGroupProps = {
97
97
  /**
98
98
  * Reference to the component.
99
99
  */
100
- export declare type RefType = HTMLDivElement;
100
+ export type RefType = HTMLDivElement;
101
101
  /**
102
102
  * Single radio prop types.
103
103
  */
104
- export declare type RadioProps = {
104
+ export type RadioProps = {
105
105
  label: string;
106
106
  checked: boolean;
107
107
  onClick: () => void;
108
108
  error?: string;
109
109
  disabled: boolean;
110
110
  focused: boolean;
111
- readonly: boolean;
111
+ readOnly: boolean;
112
112
  tabIndex: number;
113
113
  };
114
114
  export default RadioGroupProps;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ declare const icons: {
3
+ arrowUp: React.JSX.Element;
4
+ arrowDown: React.JSX.Element;
5
+ bothArrows: React.JSX.Element;
6
+ };
7
+ export default icons;
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var icons = {
13
10
  arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
14
11
  xmlns: "http://www.w3.org/2000/svg",
@@ -47,5 +44,4 @@ var icons = {
47
44
  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
45
  }))
49
46
  };
50
- var _default = icons;
51
- exports["default"] = _default;
47
+ var _default = exports["default"] = icons;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import ResultsetTablePropsType from "./types";
3
+ declare const DxcResultsetTable: {
4
+ ({ columns, rows, hidePaginator, showGoToPage, itemsPerPage, itemsPerPageOptions, itemsPerPageFunction, margin, tabIndex, mode, }: ResultsetTablePropsType): JSX.Element;
5
+ ActionsCell: ({ actions }: import("../table/types").ActionCellsPropsType) => JSX.Element;
6
+ };
7
+ export default DxcResultsetTable;
@@ -1,52 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _variables = require("../common/variables");
23
-
24
- var _Table = _interopRequireDefault(require("../table/Table"));
25
-
26
15
  var _Paginator = _interopRequireDefault(require("../paginator/Paginator"));
27
-
16
+ var _Table = _interopRequireWildcard(require("../table/Table"));
28
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
-
30
18
  var _Icons = _interopRequireDefault(require("./Icons"));
31
-
32
19
  var _utils = require("../common/utils");
33
-
20
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
34
21
  var _templateObject, _templateObject2, _templateObject3;
35
-
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
-
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
-
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
40
24
  var normalizeSortValue = function normalizeSortValue(sortValue) {
41
25
  return typeof sortValue === "string" ? sortValue.toUpperCase() : sortValue;
42
26
  };
43
-
44
27
  var sortArray = function sortArray(index, order, resultset) {
45
28
  return resultset.slice().sort(function (element1, element2) {
46
29
  var sortValueA = normalizeSortValue(element1[index].sortValue || element1[index].displayValue);
47
30
  var sortValueB = normalizeSortValue(element2[index].sortValue || element2[index].displayValue);
48
31
  var comparison = 0;
49
-
50
32
  if ((0, _typeof2["default"])(sortValueA) === "object") {
51
33
  comparison = -1;
52
34
  } else if ((0, _typeof2["default"])(sortValueB) === "object") {
@@ -56,48 +38,44 @@ var sortArray = function sortArray(index, order, resultset) {
56
38
  } else if (sortValueA < sortValueB) {
57
39
  comparison = -1;
58
40
  }
59
-
60
41
  return order === "descending" ? comparison * -1 : comparison;
61
42
  });
62
43
  };
63
-
64
44
  var getMinItemsPerPageIndex = function getMinItemsPerPageIndex(currentPageInternal, itemsPerPage, page) {
65
45
  return currentPageInternal === 1 ? 0 : itemsPerPage * (page - 1);
66
46
  };
67
-
68
47
  var getMaxItemsPerPageIndex = function getMaxItemsPerPageIndex(minItemsPerPageIndex, itemsPerPage, resultset, page) {
69
48
  return minItemsPerPageIndex + itemsPerPage > resultset.length ? resultset.length : itemsPerPage * page - 1;
70
49
  };
71
-
72
50
  var DxcResultsetTable = function DxcResultsetTable(_ref) {
73
51
  var columns = _ref.columns,
74
- rows = _ref.rows,
75
- _ref$showGoToPage = _ref.showGoToPage,
76
- showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
77
- _ref$itemsPerPage = _ref.itemsPerPage,
78
- itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
79
- itemsPerPageOptions = _ref.itemsPerPageOptions,
80
- itemsPerPageFunction = _ref.itemsPerPageFunction,
81
- margin = _ref.margin,
82
- _ref$tabIndex = _ref.tabIndex,
83
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
52
+ rows = _ref.rows,
53
+ _ref$hidePaginator = _ref.hidePaginator,
54
+ hidePaginator = _ref$hidePaginator === void 0 ? false : _ref$hidePaginator,
55
+ _ref$showGoToPage = _ref.showGoToPage,
56
+ showGoToPage = _ref$showGoToPage === void 0 ? true : _ref$showGoToPage,
57
+ _ref$itemsPerPage = _ref.itemsPerPage,
58
+ itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
59
+ itemsPerPageOptions = _ref.itemsPerPageOptions,
60
+ itemsPerPageFunction = _ref.itemsPerPageFunction,
61
+ margin = _ref.margin,
62
+ _ref$tabIndex = _ref.tabIndex,
63
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
64
+ _ref$mode = _ref.mode,
65
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
84
66
  var colorsTheme = (0, _useTheme["default"])();
85
-
86
67
  var _useState = (0, _react.useState)(1),
87
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
88
- page = _useState2[0],
89
- changePage = _useState2[1];
90
-
68
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
69
+ page = _useState2[0],
70
+ changePage = _useState2[1];
91
71
  var _useState3 = (0, _react.useState)(-1),
92
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
93
- sortColumnIndex = _useState4[0],
94
- changeSortColumnIndex = _useState4[1];
95
-
72
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
73
+ sortColumnIndex = _useState4[0],
74
+ changeSortColumnIndex = _useState4[1];
96
75
  var _useState5 = (0, _react.useState)("ascending"),
97
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
98
- sortOrder = _useState6[0],
99
- changeSortOrder = _useState6[1];
100
-
76
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
77
+ sortOrder = _useState6[0],
78
+ changeSortOrder = _useState6[1];
101
79
  var minItemsPerPageIndex = (0, _react.useMemo)(function () {
102
80
  return getMinItemsPerPageIndex(page, itemsPerPage, page);
103
81
  }, [itemsPerPage, page]);
@@ -110,25 +88,26 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
110
88
  var filteredResultset = (0, _react.useMemo)(function () {
111
89
  return sortedResultset && sortedResultset.slice(minItemsPerPageIndex, maxItemsPerPageIndex + 1);
112
90
  }, [sortedResultset, minItemsPerPageIndex, maxItemsPerPageIndex]);
113
-
114
91
  var goToPage = function goToPage(newPage) {
115
92
  changePage(newPage);
116
93
  };
117
-
118
94
  var changeSorting = function changeSorting(columnIndex) {
119
95
  changePage(1);
120
96
  changeSortColumnIndex(columnIndex);
121
97
  changeSortOrder(sortColumnIndex === -1 || sortColumnIndex !== columnIndex ? "ascending" : sortOrder === "ascending" ? "descending" : "ascending");
122
98
  };
123
-
124
99
  (0, _react.useEffect)(function () {
125
- rows.length > 0 ? changePage(1) : changePage(0);
100
+ if (!hidePaginator) {
101
+ rows.length > 0 ? changePage(1) : changePage(0);
102
+ }
126
103
  }, [rows]);
127
104
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
128
105
  theme: colorsTheme.table
129
106
  }, /*#__PURE__*/_react["default"].createElement(DxcResultsetTableContainer, {
130
107
  margin: margin
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) {
108
+ }, /*#__PURE__*/_react["default"].createElement(_Table["default"], {
109
+ mode: mode
110
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, index) {
132
111
  return /*#__PURE__*/_react["default"].createElement("th", {
133
112
  key: "tableHeader_".concat(index),
134
113
  "aria-sort": column.isSortable ? sortColumnIndex === index ? sortOrder : "none" : undefined
@@ -139,17 +118,18 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
139
118
  column.isSortable && changeSorting(index);
140
119
  },
141
120
  tabIndex: column.isSortable ? tabIndex : -1,
142
- isSortable: column.isSortable
121
+ isSortable: column.isSortable,
122
+ mode: mode
143
123
  }, /*#__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) {
124
+ }))), /*#__PURE__*/_react["default"].createElement("tbody", null, filteredResultset.map(function (cells, rowIndex) {
145
125
  return /*#__PURE__*/_react["default"].createElement("tr", {
146
- key: "resultSetTableCell_".concat(index)
147
- }, cells.map(function (cellContent, index) {
126
+ key: "resultSetTableCell_".concat(page, "_").concat(rowIndex)
127
+ }, cells.map(function (cellContent, cellIndex) {
148
128
  return /*#__PURE__*/_react["default"].createElement("td", {
149
- key: "resultSetTableCellContent_".concat(index)
129
+ key: "resultSetTableCellContent_".concat(cellIndex)
150
130
  }, cellContent.displayValue);
151
131
  }));
152
- }))), /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
132
+ }))), !hidePaginator && /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
153
133
  totalItems: rows.length,
154
134
  itemsPerPage: itemsPerPage,
155
135
  itemsPerPageOptions: itemsPerPageOptions,
@@ -160,11 +140,9 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
160
140
  tabIndex: tabIndex
161
141
  })));
162
142
  };
163
-
164
143
  var calculateWidth = function calculateWidth(margin) {
165
144
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
166
145
  };
167
-
168
146
  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
147
  return calculateWidth(props.margin);
170
148
  }, function (props) {
@@ -178,18 +156,15 @@ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObjec
178
156
  }, function (props) {
179
157
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
180
158
  });
181
-
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) {
159
+ var HeaderContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n gap: ", ";\n width: fit-content;\n border: 1px solid transparent;\n border-radius: 2px;\n cursor: ", ";\n\n ", "\n"])), function (props) {
183
160
  return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
184
- }, function (props) {
161
+ }, _coreTokens["default"].spacing_8, function (props) {
185
162
  return props.isSortable ? "pointer" : "default";
186
163
  }, function (props) {
187
164
  return props.isSortable && "&:focus {\n outline: #0095ff solid 2px;\n }";
188
165
  });
189
-
190
166
  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
167
  return props.theme.sortIconColor;
192
168
  });
193
-
194
- var _default = DxcResultsetTable;
195
- exports["default"] = _default;
169
+ DxcResultsetTable.ActionsCell = _Table.DxcActionsCell;
170
+ var _default = exports["default"] = DxcResultsetTable;
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import DxcResultsetTable from "./ResultsetTable";
3
- import DxcButton from "../button/Button";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
5
  import { userEvent, within } from "@storybook/testing-library";
7
6
  import styled from "styled-components";
7
+ import { HalstackProvider } from "../HalstackContext";
8
8
 
9
9
  export default {
10
10
  title: "Resultset Table",
@@ -13,7 +13,7 @@ export default {
13
13
 
14
14
  const deleteIcon = (
15
15
  <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">
16
- <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 fill="currentColor" d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" />
17
17
  <path d="M0 0h24v24H0z" fill="none" />
18
18
  </svg>
19
19
  );
@@ -29,17 +29,77 @@ const rows = [
29
29
  [{ displayValue: "006" }, { displayValue: "Cris" }, { displayValue: "Paris" }],
30
30
  ];
31
31
 
32
+ const advancedTheme = {
33
+ table: {
34
+ actionIconColor: "#1B75BB",
35
+ hoverActionIconColor: "#1B75BB",
36
+ activeActionIconColor: "#1B75BB",
37
+ focusActionIconColor: "#1B75BB",
38
+ disabledActionIconColor: "#666666",
39
+ hoverButtonBackgroundColor: "#cccccc",
40
+ },
41
+ };
42
+
43
+ const actions = [
44
+ {
45
+ title: "icon",
46
+ onClick: (value?) => {
47
+ console.log(value);
48
+ },
49
+ options: [
50
+ {
51
+ value: "1",
52
+ label: "Amazon with a very long text",
53
+ },
54
+ {
55
+ value: "2",
56
+ label: "Ebay",
57
+ },
58
+ {
59
+ value: "3",
60
+ label: "Apple",
61
+ },
62
+ ],
63
+ },
64
+ {
65
+ icon: "filled_edit",
66
+ title: "icon",
67
+ onClick: () => {},
68
+ },
69
+ {
70
+ icon: deleteIcon,
71
+ title: "icon",
72
+ onClick: () => {},
73
+ disabled: true,
74
+ },
75
+ {
76
+ icon: deleteIcon,
77
+ title: "icon",
78
+ onClick: () => {},
79
+ },
80
+ ];
81
+
32
82
  const rowsIcon = [
33
83
  [
34
84
  { displayValue: "001", sortValue: "001" },
35
85
  { displayValue: "Peter" },
36
- { displayValue: <DxcButton icon={deleteIcon} /> },
86
+ {
87
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
88
+ },
89
+ ],
90
+ [
91
+ { displayValue: "002", sortValue: "002" },
92
+ { displayValue: "Louis" },
93
+ {
94
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
95
+ },
37
96
  ],
38
- [{ displayValue: "002", sortValue: "002" }, { displayValue: "Louis" }, { displayValue: "" }],
39
97
  [
40
98
  { displayValue: "003", sortValue: "003" },
41
99
  { displayValue: "Mark" },
42
- { displayValue: <DxcButton icon={deleteIcon} /> },
100
+ {
101
+ displayValue: <DxcResultsetTable.ActionsCell actions={actions} />,
102
+ },
43
103
  ],
44
104
  ];
45
105
 
@@ -200,12 +260,35 @@ export const Chromatic = () => (
200
260
  <Title title="Scroll resultset table" theme="light" level={4} />
201
261
  <DxcResultsetTable columns={longColumns} rows={longRows} />
202
262
  </ExampleContainer>
263
+ <ExampleContainer>
264
+ <Title title="Without paginator" theme="light" level={4} />
265
+ <DxcResultsetTable columns={columns} rows={rows} hidePaginator />
266
+ </ExampleContainer>
203
267
  <ExampleContainer>
204
268
  <SmallContainer>
205
269
  <Title title="Small container and text overflow" theme="light" level={4} />
206
270
  <DxcResultsetTable columns={columnsSortable} rows={longValues} />
207
271
  </SmallContainer>
208
272
  </ExampleContainer>
273
+ <ExampleContainer>
274
+ <Title title="Reduced sortable table" theme="light" level={4} />
275
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable} mode="reduced" />
276
+ </ExampleContainer>
277
+ {/* PENDING SMALL ICON VERSION */}
278
+ <ExampleContainer>
279
+ <Title title="Reduced with items per page option" theme="light" level={4} />
280
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2} itemsPerPageOptions={[2, 3]} mode="reduced" />
281
+ </ExampleContainer>
282
+ <ExampleContainer>
283
+ <Title title="Reduced scroll resultset table" theme="light" level={4} />
284
+ <DxcResultsetTable columns={longColumns} rows={longRows} mode="reduced" />
285
+ </ExampleContainer>
286
+ <ExampleContainer>
287
+ <SmallContainer>
288
+ <Title title="Reduced small container and text overflow" theme="light" level={4} />
289
+ <DxcResultsetTable columns={columnsSortable} rows={longValues} mode="reduced" />
290
+ </SmallContainer>
291
+ </ExampleContainer>
209
292
  <Title title="Margins" theme="light" level={2} />
210
293
  <ExampleContainer>
211
294
  <Title title="Xxsmall" theme="light" level={4} />
@@ -298,3 +381,21 @@ LastPage.play = async ({ canvasElement }) => {
298
381
  const nextButton = canvas.getAllByRole("button")[3];
299
382
  await userEvent.click(nextButton);
300
383
  };
384
+
385
+ const ResultsetActionsCellDropdown = () => (
386
+ <ExampleContainer>
387
+ <Title title="Dropdown Action" theme="light" level={4} />
388
+ <DxcResultsetTable columns={columns} rows={rowsIcon} itemsPerPage={2} />
389
+ <Title title="Custom theme actions cell" theme="light" level={4} />
390
+ <HalstackProvider advancedTheme={advancedTheme}>
391
+ <DxcResultsetTable columns={columns} rows={rowsIcon} itemsPerPage={2} />
392
+ </HalstackProvider>
393
+ </ExampleContainer>
394
+ );
395
+
396
+ export const DropdownAction = ResultsetActionsCellDropdown.bind({});
397
+ DropdownAction.play = async ({ canvasElement }) => {
398
+ const canvas = within(canvasElement);
399
+ const dropdown = canvas.getAllByRole("button")[5];
400
+ await userEvent.click(dropdown);
401
+ };