@dxc-technology/halstack-react 0.0.0-eb2a4cc → 0.0.0-ebb089f

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 (229) hide show
  1. package/README.md +2 -2
  2. package/babel.config.js +5 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +237 -2
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Select/index.d.ts +27 -0
  7. package/dist/V3Textarea/V3Textarea.js +264 -0
  8. package/dist/V3Textarea/index.d.ts +27 -0
  9. package/dist/accordion/Accordion.js +170 -81
  10. package/dist/accordion/index.d.ts +28 -0
  11. package/dist/accordion-group/AccordionGroup.js +186 -0
  12. package/dist/accordion-group/index.d.ts +16 -0
  13. package/dist/alert/Alert.js +184 -83
  14. package/dist/alert/index.d.ts +51 -0
  15. package/dist/badge/Badge.js +63 -0
  16. package/dist/box/Box.js +31 -23
  17. package/dist/box/index.d.ts +25 -0
  18. package/dist/button/Button.js +84 -29
  19. package/dist/button/Button.stories.js +14 -211
  20. package/dist/button/index.d.ts +24 -0
  21. package/dist/card/Card.js +72 -35
  22. package/dist/card/index.d.ts +22 -0
  23. package/dist/checkbox/Checkbox.js +107 -32
  24. package/dist/checkbox/index.d.ts +24 -0
  25. package/dist/chip/Chip.js +135 -40
  26. package/dist/chip/index.d.ts +22 -0
  27. package/dist/common/RequiredComponent.js +2 -8
  28. package/dist/common/utils.js +2 -22
  29. package/dist/common/variables.js +1472 -159
  30. package/dist/date/Date.js +81 -59
  31. package/dist/date/index.d.ts +27 -0
  32. package/dist/date-input/DateInput.js +400 -0
  33. package/dist/date-input/index.d.ts +95 -0
  34. package/dist/dialog/Dialog.js +61 -36
  35. package/dist/dialog/index.d.ts +18 -0
  36. package/dist/dropdown/Dropdown.js +226 -94
  37. package/dist/dropdown/index.d.ts +26 -0
  38. package/dist/file-input/FileInput.js +644 -0
  39. package/dist/file-input/FileItem.js +287 -0
  40. package/dist/file-input/index.d.ts +81 -0
  41. package/dist/footer/Footer.js +122 -47
  42. package/dist/footer/Icons.js +77 -0
  43. package/dist/footer/index.d.ts +25 -0
  44. package/dist/header/Header.js +211 -91
  45. package/dist/header/Icons.js +59 -0
  46. package/dist/header/index.d.ts +25 -0
  47. package/dist/heading/Heading.js +93 -22
  48. package/dist/heading/index.d.ts +17 -0
  49. package/dist/input-text/Icons.js +22 -0
  50. package/dist/input-text/InputText.js +290 -104
  51. package/dist/input-text/index.d.ts +36 -0
  52. package/dist/layout/ApplicationLayout.js +327 -0
  53. package/dist/layout/Icons.js +55 -0
  54. package/dist/link/Link.js +136 -35
  55. package/dist/link/index.d.ts +23 -0
  56. package/dist/main.d.ts +40 -0
  57. package/dist/main.js +112 -16
  58. package/dist/number-input/NumberInput.js +136 -0
  59. package/dist/number-input/NumberInputContext.js +16 -0
  60. package/dist/number-input/index.d.ts +113 -0
  61. package/dist/paginator/Icons.js +66 -0
  62. package/dist/paginator/Paginator.js +184 -57
  63. package/dist/paginator/index.d.ts +20 -0
  64. package/dist/password-input/PasswordInput.js +203 -0
  65. package/dist/password-input/index.d.ts +94 -0
  66. package/dist/progress-bar/ProgressBar.js +97 -44
  67. package/dist/progress-bar/index.d.ts +18 -0
  68. package/dist/radio/Radio.js +39 -21
  69. package/dist/radio/index.d.ts +23 -0
  70. package/dist/resultsetTable/ResultsetTable.js +93 -69
  71. package/dist/resultsetTable/index.d.ts +19 -0
  72. package/dist/select/Select.js +957 -262
  73. package/dist/select/index.d.ts +131 -0
  74. package/dist/sidenav/Sidenav.js +87 -125
  75. package/dist/sidenav/index.d.ts +13 -0
  76. package/dist/slider/Slider.js +219 -73
  77. package/dist/slider/index.d.ts +29 -0
  78. package/dist/spinner/Spinner.js +249 -64
  79. package/dist/spinner/index.d.ts +17 -0
  80. package/dist/switch/Switch.js +51 -26
  81. package/dist/switch/index.d.ts +24 -0
  82. package/dist/table/Table.js +63 -15
  83. package/dist/table/index.d.ts +13 -0
  84. package/dist/tabs/Tabs.js +208 -35
  85. package/dist/tabs/index.d.ts +19 -0
  86. package/dist/tag/Tag.js +100 -35
  87. package/dist/tag/index.d.ts +24 -0
  88. package/dist/text-input/TextInput.js +974 -0
  89. package/dist/text-input/index.d.ts +135 -0
  90. package/dist/textarea/Textarea.js +250 -107
  91. package/dist/textarea/index.d.ts +117 -0
  92. package/dist/toggle/Toggle.js +16 -19
  93. package/dist/toggle/index.d.ts +21 -0
  94. package/dist/toggle-group/ToggleGroup.js +327 -0
  95. package/dist/toggle-group/index.d.ts +21 -0
  96. package/dist/upload/Upload.js +13 -8
  97. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  98. package/dist/upload/buttons-upload/Icons.js +40 -0
  99. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  100. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  101. package/dist/upload/file-upload/FileToUpload.js +64 -33
  102. package/dist/upload/file-upload/Icons.js +66 -0
  103. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  104. package/dist/upload/index.d.ts +15 -0
  105. package/dist/upload/transaction/Icons.js +160 -0
  106. package/dist/upload/transaction/Transaction.js +42 -49
  107. package/dist/upload/transactions/Transactions.js +38 -20
  108. package/dist/useTheme.js +22 -0
  109. package/dist/wizard/Icons.js +65 -0
  110. package/dist/wizard/Wizard.js +156 -61
  111. package/dist/wizard/index.d.ts +18 -0
  112. package/package.json +26 -14
  113. package/test/AccordionGroup.test.js +125 -0
  114. package/test/Date.test.js +15 -13
  115. package/test/DateInput.test.js +242 -0
  116. package/test/Dropdown.test.js +19 -4
  117. package/test/FileInput.test.js +201 -0
  118. package/test/Footer.test.js +2 -7
  119. package/test/Header.test.js +5 -10
  120. package/test/Heading.test.js +60 -12
  121. package/test/InputText.test.js +31 -28
  122. package/test/Link.test.js +25 -7
  123. package/test/NumberInput.test.js +259 -0
  124. package/test/Paginator.test.js +76 -60
  125. package/test/PasswordInput.test.js +83 -0
  126. package/test/ResultsetTable.test.js +65 -17
  127. package/test/Select.test.js +869 -132
  128. package/test/Sidenav.test.js +22 -64
  129. package/test/Slider.test.js +24 -15
  130. package/test/Spinner.test.js +5 -0
  131. package/test/Tabs.test.js +21 -0
  132. package/test/TextInput.test.js +731 -0
  133. package/test/Textarea.test.js +193 -0
  134. package/test/ToggleGroup.test.js +85 -0
  135. package/test/Upload.test.js +1 -1
  136. package/test/V3Select.test.js +212 -0
  137. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  138. package/dist/accordion/Accordion.stories.js +0 -207
  139. package/dist/accordion/readme.md +0 -96
  140. package/dist/alert/Alert.stories.js +0 -158
  141. package/dist/alert/close.svg +0 -4
  142. package/dist/alert/error.svg +0 -4
  143. package/dist/alert/info.svg +0 -4
  144. package/dist/alert/readme.md +0 -43
  145. package/dist/alert/success.svg +0 -4
  146. package/dist/alert/warning.svg +0 -4
  147. package/dist/button/readme.md +0 -93
  148. package/dist/checkbox/Checkbox.stories.js +0 -144
  149. package/dist/checkbox/readme.md +0 -116
  150. package/dist/common/services/example-service.js +0 -10
  151. package/dist/common/services/example-service.test.js +0 -12
  152. package/dist/date/Date.stories.js +0 -205
  153. package/dist/date/calendar.svg +0 -1
  154. package/dist/date/calendar_dark.svg +0 -1
  155. package/dist/date/readme.md +0 -73
  156. package/dist/dialog/Dialog.stories.js +0 -217
  157. package/dist/dialog/readme.md +0 -32
  158. package/dist/dropdown/Dropdown.stories.js +0 -249
  159. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  161. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  162. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  163. package/dist/dropdown/readme.md +0 -69
  164. package/dist/footer/Footer.stories.js +0 -94
  165. package/dist/footer/dxc_logo_wht.png +0 -0
  166. package/dist/footer/readme.md +0 -41
  167. package/dist/header/Header.stories.js +0 -176
  168. package/dist/header/close_icon.svg +0 -1
  169. package/dist/header/dxc_logo_black.png +0 -0
  170. package/dist/header/dxc_logo_white.png +0 -0
  171. package/dist/header/hamb_menu_black.svg +0 -1
  172. package/dist/header/hamb_menu_white.svg +0 -1
  173. package/dist/header/readme.md +0 -33
  174. package/dist/input-text/InputText.stories.js +0 -209
  175. package/dist/input-text/error.svg +0 -1
  176. package/dist/input-text/readme.md +0 -91
  177. package/dist/link/readme.md +0 -51
  178. package/dist/paginator/images/next.svg +0 -3
  179. package/dist/paginator/images/nextPage.svg +0 -3
  180. package/dist/paginator/images/previous.svg +0 -3
  181. package/dist/paginator/images/previousPage.svg +0 -3
  182. package/dist/paginator/readme.md +0 -50
  183. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  184. package/dist/progress-bar/readme.md +0 -63
  185. package/dist/radio/Radio.stories.js +0 -166
  186. package/dist/radio/readme.md +0 -70
  187. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  188. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  189. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  190. package/dist/select/Select.stories.js +0 -235
  191. package/dist/select/readme.md +0 -72
  192. package/dist/sidenav/arrow_icon.svg +0 -3
  193. package/dist/slider/Slider.stories.js +0 -241
  194. package/dist/slider/readme.md +0 -64
  195. package/dist/spinner/Spinner.stories.js +0 -183
  196. package/dist/spinner/readme.md +0 -65
  197. package/dist/switch/Switch.stories.js +0 -134
  198. package/dist/switch/readme.md +0 -133
  199. package/dist/tabs/Tabs.stories.js +0 -130
  200. package/dist/tabs/readme.md +0 -78
  201. package/dist/tabs-for-sections/TabsForSections.js +0 -107
  202. package/dist/tabs-for-sections/readme.md +0 -78
  203. package/dist/toggle/Toggle.stories.js +0 -297
  204. package/dist/toggle/readme.md +0 -80
  205. package/dist/upload/Upload.stories.js +0 -72
  206. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  207. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  208. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  209. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  210. package/dist/upload/file-upload/audio-icon.svg +0 -4
  211. package/dist/upload/file-upload/close.svg +0 -4
  212. package/dist/upload/file-upload/file-icon.svg +0 -4
  213. package/dist/upload/file-upload/video-icon.svg +0 -4
  214. package/dist/upload/readme.md +0 -37
  215. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  216. package/dist/upload/transaction/audio-icon.svg +0 -4
  217. package/dist/upload/transaction/error-icon.svg +0 -4
  218. package/dist/upload/transaction/file-icon-err.svg +0 -4
  219. package/dist/upload/transaction/file-icon.svg +0 -4
  220. package/dist/upload/transaction/image-icon-err.svg +0 -4
  221. package/dist/upload/transaction/image-icon.svg +0 -4
  222. package/dist/upload/transaction/success-icon.svg +0 -4
  223. package/dist/upload/transaction/video-icon-err.svg +0 -4
  224. package/dist/upload/transaction/video-icon.svg +0 -4
  225. package/dist/wizard/invalid_icon.svg +0 -6
  226. package/dist/wizard/valid_icon.svg +0 -6
  227. package/dist/wizard/validation-wrong.svg +0 -6
  228. package/test/TabsForSections.test.js +0 -34
  229. package/test/Toggle.test.js +0 -43
@@ -27,16 +27,16 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
28
  var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
29
29
 
30
- require("../common/OpenSans.css");
31
-
32
30
  var _variables = require("../common/variables.js");
33
31
 
34
32
  var _utils = require("../common/utils.js");
35
33
 
36
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
34
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
35
+
36
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
37
37
 
38
38
  function _templateObject2() {
39
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Open Sans\", sans-serif;\n color: ", ";\n cursor: ", ";\n"]);
39
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n color: ", ";\n cursor: ", ";\n"]);
40
40
 
41
41
  _templateObject2 = function _templateObject2() {
42
42
  return data;
@@ -46,7 +46,7 @@ function _templateObject2() {
46
46
  }
47
47
 
48
48
  function _templateObject() {
49
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n\n display: inline-flex;\n align-items: center;\n max-height: 42px;\n position: relative;\n flex-direction: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n opacity: ", ";\n .MuiButtonBase-root {\n padding: 0px;\n margin: 0px 5px;\n width: 40px;\n height: 40px;\n .MuiIconButton-label {\n .MuiSvgIcon-root {\n height: 24px;\n width: 24px;\n }\n color: ", ";\n > div > :nth-child(2) path {\n color: ", ";\n }\n }\n \n &.Mui-focusVisible {\n background-color: transparent;\n .MuiSvgIcon-root{\n outline: ", " auto 1px;\n }\n }\n :hover {\n background-color: transparent;\n }\n .MuiTouchRipple-ripple {\n height: 40px !important;\n width: 40px !important;\n top: 0px !important;\n left: 0px !important;\n }\n }\n .MuiRadio-colorSecondary.Mui-checked {\n color: ", ";\n :hover {\n background-color: transparent;\n }\n }\n"]);
49
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n\n display: inline-flex;\n align-items: center;\n max-height: 42px;\n position: relative;\n flex-direction: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n .MuiButtonBase-root {\n width: auto;\n height: auto;\n padding: 10px;\n margin: 2px;\n ", ": ", ";\n padding-left: ", ";\n padding-right: ", ";\n margin-left: ", ";\n margin-right: ", ";\n .MuiIconButton-label {\n .MuiSvgIcon-root {\n height: ", ";\n width: ", ";\n }\n color: ", ";\n\n > div > :nth-child(2) path {\n color: ", ";\n }\n }\n\n &.Mui-focusVisible {\n background-color: transparent;\n .MuiSvgIcon-root {\n outline: ", "\n auto 1px;\n }\n }\n :hover {\n background-color: transparent;\n }\n .MuiTouchRipple-ripple {\n height: 40px !important;\n width: 40px !important;\n top: 0px !important;\n left: 0px !important;\n }\n }\n .MuiRadio-colorSecondary.Mui-checked {\n color: ", ";\n :hover {\n background-color: transparent;\n }\n }\n"]);
50
50
 
51
51
  _templateObject = function _templateObject() {
52
52
  return data;
@@ -77,10 +77,8 @@ var DxcRadio = function DxcRadio(_ref) {
77
77
  innerChecked = _useState2[0],
78
78
  setInnerChecked = _useState2[1];
79
79
 
80
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
81
- var colorsTheme = (0, _react.useMemo)(function () {
82
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
83
- }, [customTheme]);
80
+ var colorsTheme = (0, _useTheme["default"])();
81
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
84
82
 
85
83
  var handlerRadioChange = function handlerRadioChange(value) {
86
84
  if (checked == null) {
@@ -99,7 +97,8 @@ var DxcRadio = function DxcRadio(_ref) {
99
97
  labelPosition: labelPosition,
100
98
  disabled: disabled,
101
99
  margin: margin,
102
- size: size
100
+ size: size,
101
+ backgroundType: backgroundType
103
102
  }, _react["default"].createElement(_Radio["default"], {
104
103
  checked: checked != null && checked || innerChecked,
105
104
  name: name,
@@ -112,7 +111,8 @@ var DxcRadio = function DxcRadio(_ref) {
112
111
  checked: checked || innerChecked,
113
112
  labelPosition: labelPosition,
114
113
  disabled: disabled,
115
- onClick: !disabled && handlerRadioChange || null
114
+ onClick: !disabled && handlerRadioChange || null,
115
+ backgroundType: backgroundType
116
116
  }, required && _react["default"].createElement(_RequiredComponent["default"], null), label)));
117
117
  };
118
118
 
@@ -149,23 +149,41 @@ var RadioContainer = _styledComponents["default"].span(_templateObject(), functi
149
149
  }, function (props) {
150
150
  return props.disabled === true ? "not-allowed" : "default";
151
151
  }, function (props) {
152
- return props.disabled === true ? props.theme.disabled : "1";
152
+ return props.labelPosition === "after" ? "padding-right" : "padding-left";
153
+ }, function (props) {
154
+ return props.theme.circleLabelSpacing;
155
+ }, function (props) {
156
+ return props.labelPosition === "after" ? "0px" : "";
157
+ }, function (props) {
158
+ return props.labelPosition === "before" ? "0px" : "";
159
+ }, function (props) {
160
+ return props.labelPosition === "after" ? "0px" : "";
161
+ }, function (props) {
162
+ return props.labelPosition === "before" ? "0px" : "";
153
163
  }, function (props) {
154
- return props.theme.color;
164
+ return props.theme.circleSize;
155
165
  }, function (props) {
156
- return props.theme.color;
166
+ return props.theme.circleSize;
157
167
  }, function (props) {
158
- return props.theme.focusColor;
168
+ return props.backgroundType === "dark" ? props.disabled && props.theme.disabledColorOnDark || props.theme.colorOnDark : props.disabled && props.theme.disabledColor || props.theme.color;
159
169
  }, function (props) {
160
- return props.theme.color;
170
+ return props.backgroundType === "dark" ? props.disabled && props.theme.disabledColorOnDark || props.theme.colorOnDark : props.disabled && props.theme.disabledColor || props.theme.color;
171
+ }, function (props) {
172
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
173
+ }, function (props) {
174
+ return props.backgroundType === "dark" ? props.disabled && props.theme.disabledColorOnDark || props.theme.colorOnDark : props.disabled && props.theme.disabledColor || props.theme.color;
161
175
  });
162
176
 
163
177
  var LabelContainer = _styledComponents["default"].span(_templateObject2(), function (props) {
164
- if (props.disabled) {
165
- return props.brightness === "dark" ? props.theme.darkGrey : props.theme.lightGrey;
166
- } else {
167
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
168
- }
178
+ return props.theme.fontFamily;
179
+ }, function (props) {
180
+ return props.theme.fontSize;
181
+ }, function (props) {
182
+ return props.theme.fontWeight;
183
+ }, function (props) {
184
+ return props.theme.fontStyle;
185
+ }, function (props) {
186
+ return props.backgroundType === "dark" ? props.disabled && props.theme.disabledFontColorOnDark || props.theme.fontColorOnDark : props.disabled && props.theme.disabledFontColor || props.theme.fontColor;
169
187
  }, function (props) {
170
188
  return props.disabled === true ? "not-allowed" : "pointer";
171
189
  });
@@ -0,0 +1,23 @@
1
+ type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+
10
+ type Props = {
11
+ checked?: boolean;
12
+ value?: any;
13
+ label?: string;
14
+ labelPosition?: "before" | "after";
15
+ name?: string,
16
+ disabled?: boolean;
17
+ onClick?: void;
18
+ required?: boolean;
19
+ margin?: Space | Margin;
20
+ size?: Size;
21
+ };
22
+
23
+ export default function DxcRadio(props: Props): JSX.Element;
@@ -25,20 +25,14 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
28
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
29
-
30
28
  var _Table = _interopRequireDefault(require("../table/Table"));
31
29
 
32
30
  var _Paginator = _interopRequireDefault(require("../paginator/Paginator"));
33
31
 
34
- var _arrow_upward24px_wht = _interopRequireDefault(require("./arrow_upward-24px_wht.svg"));
35
-
36
- var _arrow_downward24px_wht = _interopRequireDefault(require("./arrow_downward-24px_wht.svg"));
37
-
38
- var _unfold_more24px_wht = _interopRequireDefault(require("./unfold_more-24px_wht.svg"));
32
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
39
33
 
40
34
  function _templateObject9() {
41
- var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow-x: auto;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 6px;\n }\n"]);
35
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n overflow: hidden;\n"]);
42
36
 
43
37
  _templateObject9 = function _templateObject9() {
44
38
  return data;
@@ -58,7 +52,7 @@ function _templateObject8() {
58
52
  }
59
53
 
60
54
  function _templateObject7() {
61
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n width: fit-content;\n"]);
55
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: ", ";\n width: 100%;\n"]);
62
56
 
63
57
  _templateObject7 = function _templateObject7() {
64
58
  return data;
@@ -88,7 +82,7 @@ function _templateObject5() {
88
82
  }
89
83
 
90
84
  function _templateObject4() {
91
- var data = (0, _taggedTemplateLiteral2["default"])(["\n top: 409px;\n left: 390px;\n height: 14px;\n cursor: pointer;\n"]);
85
+ var data = (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"]);
92
86
 
93
87
  _templateObject4 = function _templateObject4() {
94
88
  return data;
@@ -98,7 +92,7 @@ function _templateObject4() {
98
92
  }
99
93
 
100
94
  function _templateObject3() {
101
- var data = (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: 70px;\n }\n"]);
95
+ var data = (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"]);
102
96
 
103
97
  _templateObject3 = function _templateObject3() {
104
98
  return data;
@@ -108,7 +102,7 @@ function _templateObject3() {
108
102
  }
109
103
 
110
104
  function _templateObject2() {
111
- var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n margin-right: ", ";\n"]);
105
+ var data = (0, _taggedTemplateLiteral2["default"])([""]);
112
106
 
113
107
  _templateObject2 = function _templateObject2() {
114
108
  return data;
@@ -159,14 +153,62 @@ var getMaxItemsPerPageIndex = function getMaxItemsPerPageIndex(minItemsPerPageIn
159
153
  return minItemsPerPageIndex + itemsPerPage > resultset.length ? resultset.length : itemsPerPage * page - 1;
160
154
  };
161
155
 
156
+ var ArrowUp = function ArrowUp() {
157
+ return _react["default"].createElement("svg", {
158
+ xmlns: "http://www.w3.org/2000/svg",
159
+ height: "24",
160
+ viewBox: "0 0 24 24",
161
+ width: "24",
162
+ fill: "currentColor"
163
+ }, _react["default"].createElement("path", {
164
+ d: "M0 0h24v24H0V0z",
165
+ fill: "none"
166
+ }), _react["default"].createElement("path", {
167
+ d: "M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"
168
+ }));
169
+ };
170
+
171
+ var ArrowDown = function ArrowDown() {
172
+ return _react["default"].createElement("svg", {
173
+ xmlns: "http://www.w3.org/2000/svg",
174
+ height: "24",
175
+ viewBox: "0 0 24 24",
176
+ width: "24",
177
+ fill: "currentColor"
178
+ }, _react["default"].createElement("path", {
179
+ d: "M0 0h24v24H0V0z",
180
+ fill: "none"
181
+ }), _react["default"].createElement("path", {
182
+ d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"
183
+ }));
184
+ };
185
+
186
+ var BothArrows = function BothArrows() {
187
+ return _react["default"].createElement("svg", {
188
+ xmlns: "http://www.w3.org/2000/svg",
189
+ height: "24",
190
+ viewBox: "0 0 24 24",
191
+ width: "24",
192
+ fill: "currentColor"
193
+ }, _react["default"].createElement("path", {
194
+ d: "M0 0h24v24H0z",
195
+ fill: "none"
196
+ }), _react["default"].createElement("path", {
197
+ 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"
198
+ }));
199
+ };
200
+
162
201
  var DxcResultsetTable = function DxcResultsetTable(_ref) {
163
202
  var columns = _ref.columns,
164
203
  rows = _ref.rows,
165
204
  _ref$itemsPerPage = _ref.itemsPerPage,
166
205
  itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
167
- margin = _ref.margin;
168
-
169
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
206
+ itemsPerPageOptions = _ref.itemsPerPageOptions,
207
+ itemsPerPageFunction = _ref.itemsPerPageFunction,
208
+ margin = _ref.margin,
209
+ _ref$tabIndex = _ref.tabIndex,
210
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
211
+ var colorsTheme = (0, _useTheme["default"])();
170
212
 
171
213
  var _useState = (0, _react.useState)(1),
172
214
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -185,26 +227,13 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
185
227
 
186
228
  var minItemsPerPageIndex = (0, _react.useMemo)(function () {
187
229
  return getMinItemsPerPageIndex(page, itemsPerPage, page);
188
- }, [page]); //Merece la pena sacar a una función para usar useMemo?
189
-
230
+ }, [itemsPerPage, page]);
190
231
  var maxItemsPerPageIndex = (0, _react.useMemo)(function () {
191
232
  return getMaxItemsPerPageIndex(minItemsPerPageIndex, itemsPerPage, rows, page);
192
- }, [page]);
233
+ }, [itemsPerPage, minItemsPerPageIndex, page, rows]);
193
234
 
194
- var next = function next() {
195
- changePage(page + 1);
196
- };
197
-
198
- var previous = function previous() {
199
- changePage(page - 1);
200
- };
201
-
202
- var first = function first() {
203
- changePage(1);
204
- };
205
-
206
- var last = function last() {
207
- changePage(Math.ceil(rows.length / itemsPerPage));
235
+ var goToPage = function goToPage(newPage) {
236
+ changePage(newPage);
208
237
  };
209
238
 
210
239
  var changeSorting = function changeSorting(columnIndex) {
@@ -214,7 +243,7 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
214
243
  };
215
244
 
216
245
  var getIconForSortableColumn = function getIconForSortableColumn(clickedColumnIndex) {
217
- return sortColumnIndex === clickedColumnIndex ? sortOrder === "asc" ? _arrow_upward24px_wht["default"] : _arrow_downward24px_wht["default"] : _unfold_more24px_wht["default"];
246
+ return sortColumnIndex === clickedColumnIndex ? sortOrder === "asc" ? _react["default"].createElement(ArrowUp, null) : _react["default"].createElement(ArrowDown, null) : _react["default"].createElement(BothArrows, null);
218
247
  };
219
248
 
220
249
  (0, _react.useEffect)(function () {
@@ -223,37 +252,29 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
223
252
  } else {
224
253
  changePage(0);
225
254
  }
226
- }, [rows]);
255
+ }, [rows.length, itemsPerPage]);
227
256
  var sortedResultset = (0, _react.useMemo)(function () {
228
257
  return sortColumnIndex !== "" ? sortArray(sortColumnIndex, sortOrder, rows) : rows;
229
258
  }, [sortColumnIndex, sortOrder, rows]);
230
259
  var filteredResultset = (0, _react.useMemo)(function () {
231
260
  return sortedResultset && sortedResultset.slice(minItemsPerPageIndex, maxItemsPerPageIndex + 1);
232
- }, [page, sortColumnIndex, sortOrder, rows]);
261
+ }, [sortedResultset, minItemsPerPageIndex, maxItemsPerPageIndex]);
233
262
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
234
- theme: colorsTheme
263
+ theme: colorsTheme.table
235
264
  }, _react["default"].createElement(DxcResultsetTableContainer, {
236
265
  margin: margin
237
- }, _react["default"].createElement(TableContainer, null, _react["default"].createElement(_Table["default"], {
238
- margin: {
239
- top: margin,
240
- right: margin,
241
- bottom: "0px",
242
- left: margin
243
- }
244
- }, _react["default"].createElement(HeaderRow, null, _react["default"].createElement("tr", null, columns.map(function (column, index) {
266
+ }, _react["default"].createElement(TableContainer, null, _react["default"].createElement(_Table["default"], null, _react["default"].createElement(HeaderRow, null, _react["default"].createElement("tr", null, columns.map(function (column, index) {
245
267
  return _react["default"].createElement(TableHeader, {
246
268
  key: "tableHeader_".concat(index)
247
269
  }, _react["default"].createElement(HeaderContainer, {
248
270
  key: "headerContainer_".concat(index),
249
271
  onClick: function onClick() {
250
272
  return column.isSortable && changeSorting(index);
251
- }
273
+ },
274
+ tabIndex: column.isSortable ? tabIndex : -1
252
275
  }, _react["default"].createElement(TitleDiv, {
253
276
  isSortable: column.isSortable
254
- }, column.displayValue), column.isSortable && _react["default"].createElement(SortIcon, {
255
- src: getIconForSortableColumn(index)
256
- })));
277
+ }, column.displayValue), column.isSortable && _react["default"].createElement(SortIcon, null, getIconForSortableColumn(index))));
257
278
  }))), _react["default"].createElement(TableRowGroup, null, filteredResultset.map(function (cells, index) {
258
279
  return _react["default"].createElement("tr", {
259
280
  key: "resultSetTableCell_".concat(index)
@@ -262,30 +283,29 @@ var DxcResultsetTable = function DxcResultsetTable(_ref) {
262
283
  key: "resultSetTableCellContent_".concat(index)
263
284
  }, cellContent.displayValue);
264
285
  }));
265
- })))), _react["default"].createElement(PaginatorContainer, {
266
- margin: margin
267
- }, _react["default"].createElement(_Paginator["default"], {
286
+ })))), _react["default"].createElement(PaginatorContainer, null, _react["default"].createElement(_Paginator["default"], {
268
287
  totalItems: rows.length,
269
288
  itemsPerPage: itemsPerPage,
289
+ itemsPerPageOptions: itemsPerPageOptions,
290
+ itemsPerPageFunction: itemsPerPageFunction,
270
291
  currentPage: page,
271
- nextFunction: next,
272
- prevFunction: previous,
273
- firstFunction: first,
274
- lastFunction: last
292
+ showGoToPage: true,
293
+ onPageChange: goToPage,
294
+ tabIndex: tabIndex
275
295
  }))));
276
296
  };
277
297
 
278
298
  var TableContainer = _styledComponents["default"].div(_templateObject());
279
299
 
280
- var PaginatorContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
281
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
282
- }, function (props) {
283
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
284
- });
300
+ var PaginatorContainer = _styledComponents["default"].div(_templateObject2());
285
301
 
286
- var TableRowGroup = _styledComponents["default"].tbody(_templateObject3());
302
+ var TableRowGroup = _styledComponents["default"].tbody(_templateObject3(), function (props) {
303
+ return props.theme.rowHeight || "70px";
304
+ });
287
305
 
288
- var SortIcon = _styledComponents["default"].img(_templateObject4());
306
+ var SortIcon = _styledComponents["default"].div(_templateObject4(), function (props) {
307
+ return props.theme.sortIconColor;
308
+ });
289
309
 
290
310
  var TitleDiv = _styledComponents["default"].div(_templateObject5(), function (props) {
291
311
  return props.isSortable && "pointer" || "default";
@@ -293,11 +313,15 @@ var TitleDiv = _styledComponents["default"].div(_templateObject5(), function (pr
293
313
 
294
314
  var TableHeader = _styledComponents["default"].th(_templateObject6());
295
315
 
296
- var HeaderContainer = _styledComponents["default"].div(_templateObject7());
316
+ var HeaderContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
317
+ return props.theme.headerTextAlign === "center" ? "center" : props.theme.headerTextAlign === "right" ? "flex-end" : "flex-start";
318
+ });
297
319
 
298
320
  var HeaderRow = _styledComponents["default"].thead(_templateObject8());
299
321
 
300
322
  var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
323
+ return props.theme.fontSizeBase;
324
+ }, function (props) {
301
325
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
302
326
  }, function (props) {
303
327
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -307,28 +331,28 @@ var DxcResultsetTableContainer = _styledComponents["default"].div(_templateObjec
307
331
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
308
332
  }, function (props) {
309
333
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
310
- }, function (props) {
311
- return props.theme.darkGrey;
312
- }, function (props) {
313
- return props.theme.lightGrey;
314
334
  });
315
335
 
316
336
  DxcResultsetTable.propTypes = {
317
337
  rows: _propTypes["default"].array,
318
338
  columns: _propTypes["default"].array,
319
339
  itemsPerPage: _propTypes["default"].number,
340
+ itemsPerPageOptions: _propTypes["default"].arrayOf(_propTypes["default"].number),
341
+ itemsPerPageFunction: _propTypes["default"].func,
320
342
  margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
321
343
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
322
344
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
323
345
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
324
346
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
325
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
347
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
348
+ tabIndex: _propTypes["default"].number
326
349
  };
327
350
  DxcResultsetTable.defaultProps = {
328
351
  rows: [],
329
352
  columns: [],
330
353
  itemsPerPage: 5,
331
- margin: "xxsmall"
354
+ itemsPerPageOptions: null,
355
+ itemsPerPageFunction: null
332
356
  };
333
357
  var _default = DxcResultsetTable;
334
358
  exports["default"] = _default;
@@ -0,0 +1,19 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ columns?: any;
11
+ rows?: any;
12
+ itemsPerPage?: number;
13
+ itemsPerPageOptions?: number[];
14
+ itemsPerPageFunction?: void,
15
+ margin?: Space | Margin;
16
+ tabIndex?: number;
17
+ };
18
+
19
+ export default function DxcResultsetTable(props: Props): JSX.Element;