@dxc-technology/halstack-react 0.0.0-9d656a4 → 0.0.0-a0543ea

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 (123) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +235 -2
  5. package/dist/accordion/Accordion.js +168 -63
  6. package/dist/accordion-group/AccordionGroup.js +186 -0
  7. package/dist/alert/Alert.js +183 -84
  8. package/dist/alert/index.d.ts +51 -0
  9. package/dist/badge/Badge.js +63 -0
  10. package/dist/box/Box.js +31 -23
  11. package/dist/button/Button.js +83 -26
  12. package/dist/card/Card.js +72 -35
  13. package/dist/checkbox/Checkbox.js +98 -38
  14. package/dist/chip/Chip.js +128 -36
  15. package/dist/common/RequiredComponent.js +2 -8
  16. package/dist/common/utils.js +2 -22
  17. package/dist/common/variables.js +1439 -304
  18. package/dist/date/Date.js +75 -52
  19. package/dist/dialog/Dialog.js +58 -37
  20. package/dist/dropdown/Dropdown.js +199 -71
  21. package/dist/file-input/FileInput.js +644 -0
  22. package/dist/file-input/FileItem.js +280 -0
  23. package/dist/file-input/index.d.ts +81 -0
  24. package/dist/footer/Footer.js +85 -36
  25. package/dist/footer/dxc_logo.svg +15 -0
  26. package/dist/header/Header.js +111 -68
  27. package/dist/header/dxc_logo_black.svg +8 -0
  28. package/dist/heading/Heading.js +81 -16
  29. package/dist/input-text/InputText.js +288 -100
  30. package/dist/layout/ApplicationLayout.js +21 -23
  31. package/dist/link/Link.js +110 -41
  32. package/dist/main.d.ts +8 -0
  33. package/dist/main.js +89 -1
  34. package/dist/new-date/NewDate.js +400 -0
  35. package/dist/new-date/index.d.ts +95 -0
  36. package/dist/new-input-text/NewInputText.js +971 -0
  37. package/dist/new-input-text/index.d.ts +135 -0
  38. package/dist/new-select/NewSelect.js +836 -0
  39. package/dist/new-select/index.d.ts +53 -0
  40. package/dist/new-textarea/NewTextarea.js +369 -0
  41. package/dist/new-textarea/index.d.ts +117 -0
  42. package/dist/number/Number.js +136 -0
  43. package/dist/number/NumberContext.js +16 -0
  44. package/dist/number/index.d.ts +113 -0
  45. package/dist/paginator/Paginator.js +149 -56
  46. package/dist/password/Password.js +200 -0
  47. package/dist/password/index.d.ts +94 -0
  48. package/dist/password/styles.css +3 -0
  49. package/dist/progress-bar/ProgressBar.js +95 -38
  50. package/dist/radio/Radio.js +31 -17
  51. package/dist/resultsetTable/ResultsetTable.js +90 -65
  52. package/dist/select/Select.js +239 -143
  53. package/dist/sidenav/Sidenav.js +119 -9
  54. package/dist/slider/Slider.js +197 -69
  55. package/dist/spinner/Spinner.js +247 -59
  56. package/dist/switch/Switch.js +50 -27
  57. package/dist/table/Table.js +51 -24
  58. package/dist/tabs/Tabs.js +206 -35
  59. package/dist/tag/Tag.js +85 -37
  60. package/dist/textarea/Textarea.js +77 -40
  61. package/dist/toggle/Toggle.js +16 -19
  62. package/dist/toggle-group/ToggleGroup.js +156 -43
  63. package/dist/upload/Upload.js +13 -8
  64. package/dist/upload/buttons-upload/ButtonsUpload.js +31 -14
  65. package/dist/upload/dragAndDropArea/DragAndDropArea.js +78 -28
  66. package/dist/upload/file-upload/FileToUpload.js +50 -24
  67. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  68. package/dist/upload/transaction/Transaction.js +44 -24
  69. package/dist/upload/transactions/Transactions.js +38 -20
  70. package/dist/useTheme.js +22 -0
  71. package/dist/wizard/Wizard.js +139 -55
  72. package/dist/wizard/invalid_icon.svg +4 -5
  73. package/dist/wizard/valid_icon.svg +4 -5
  74. package/package.json +11 -4
  75. package/test/AccordionGroup.test.js +125 -0
  76. package/test/Date.test.js +13 -13
  77. package/test/Dropdown.test.js +15 -0
  78. package/test/FileInput.test.js +201 -0
  79. package/test/InputText.test.js +29 -25
  80. package/test/Link.test.js +12 -2
  81. package/test/NewDate.test.js +232 -0
  82. package/test/NewInputText.test.js +734 -0
  83. package/test/NewTextarea.test.js +195 -0
  84. package/test/Number.test.js +257 -0
  85. package/test/Paginator.test.js +72 -60
  86. package/test/Password.test.js +83 -0
  87. package/test/ResultsetTable.test.js +66 -19
  88. package/test/Select.test.js +55 -34
  89. package/test/Sidenav.test.js +28 -2
  90. package/test/Spinner.test.js +5 -0
  91. package/test/Tabs.test.js +21 -0
  92. package/test/ToggleGroup.test.js +5 -1
  93. package/dist/accordion/Accordion.stories.js +0 -207
  94. package/dist/accordion/readme.md +0 -96
  95. package/dist/alert/Alert.stories.js +0 -158
  96. package/dist/alert/close.svg +0 -4
  97. package/dist/alert/error.svg +0 -4
  98. package/dist/alert/info.svg +0 -4
  99. package/dist/alert/readme.md +0 -43
  100. package/dist/alert/success.svg +0 -4
  101. package/dist/alert/warning.svg +0 -4
  102. package/dist/button/Button.stories.js +0 -224
  103. package/dist/button/readme.md +0 -93
  104. package/dist/common/services/example-service.js +0 -10
  105. package/dist/common/services/example-service.test.js +0 -12
  106. package/dist/date/calendar.svg +0 -1
  107. package/dist/date/calendar_dark.svg +0 -1
  108. package/dist/dialog/Dialog.stories.js +0 -217
  109. package/dist/dialog/readme.md +0 -32
  110. package/dist/dropdown/Dropdown.stories.js +0 -249
  111. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  112. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  113. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  114. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  115. package/dist/dropdown/readme.md +0 -69
  116. package/dist/footer/dxc_logo_wht.png +0 -0
  117. package/dist/header/dxc_logo_black.png +0 -0
  118. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  119. package/dist/header/dxc_logo_white.png +0 -0
  120. package/dist/select/Select.stories.js +0 -235
  121. package/dist/select/readme.md +0 -72
  122. package/dist/toggle-group/readme.md +0 -82
  123. package/test/Toggle.test.js +0 -43
@@ -11,11 +11,9 @@ exports["default"] = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
19
17
 
20
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
19
 
@@ -27,28 +25,58 @@ var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel")
27
25
 
28
26
  var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
29
27
 
28
+ var _FormHelperText = _interopRequireDefault(require("@material-ui/core/FormHelperText"));
29
+
30
30
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
31
31
 
32
32
  var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
33
33
 
34
- var _styles = require("@material-ui/core/styles");
35
-
36
34
  var _propTypes = _interopRequireDefault(require("prop-types"));
37
35
 
38
36
  var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
39
37
 
40
- require("../common/OpenSans.css");
41
-
42
38
  var _variables = require("../common/variables.js");
43
39
 
44
40
  var _utils = require("../common/utils.js");
45
41
 
46
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
47
43
 
48
44
  var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
49
45
 
46
+ var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext.js"));
47
+
48
+ function _templateObject10() {
49
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n\n .MuiFormControl-root {\n width: 100%;\n }\n\n .MuiFormHelperText-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n margin-top: 6px;\n\n &.Mui-disabled {\n color: ", ";\n cursor: not-allowed;\n }\n }\n\n .MuiFormLabel-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n margin-top: -3px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n height: 22px;\n display: flex;\n align-items: center;\n\n &.Mui-disabled {\n color: ", ";\n }\n &.Mui-focused {\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n }\n }\n\n .MuiSelect-select.MuiSelect-select {\n padding-right: unset;\n }\n\n .MuiSelect-select {\n width: 100%;\n height: 20px;\n display: flex;\n padding-right: 10px;\n align-items: center;\n\n :focus {\n background-color: transparent;\n outline: ", "\n auto 2px;\n }\n & > *:last-child::after {\n content: unset;\n }\n & > *:last-child::before {\n content: unset;\n }\n &.Mui-disabled {\n color: ", ";\n cursor: not-allowed;\n &:focus {\n outline: none;\n }\n }\n }\n .MuiInputBase-input {\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n }\n .MuiInput-underline {\n &.Mui-focused {\n border-bottom-width: ", ";\n border-bottom-color: ", ";\n }\n &.Mui-disabled:before {\n border-bottom-style: solid;\n }\n }\n .MuiInput-underline:hover:not(.Mui-disabled):before {\n border-bottom: ", " solid;\n border-bottom-color: ", ";\n }\n .MuiInput-underline:after {\n border-bottom: ", " solid;\n border-bottom-color: ", ";\n }\n .MuiInput-underline:before {\n border-bottom: ", " solid;\n border-bottom-color: ", ";\n }\n .MuiSelect-icon {\n color: ", " !important;\n }\n & label {\n text-overflow: ellipsis;\n overflow: hidden;\n width: calc(100% - 24px);\n }\n\n .MuiMenu-paper {\n background-color: ", ";\n box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.3);\n min-width: auto;\n width: auto;\n max-height: 250px;\n border-color: ", ";\n border-width: ", ";\n border-style: ", ";\n\n &::-webkit-scrollbar {\n width: 3px;\n margin: 5px;\n }\n &::-webkit-scrollbar-track {\n border-radius: 3px;\n background-color: ", ";\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 3px;\n background-color: ", ";\n }\n }\n .MuiList-root {\n width: auto !important;\n padding-right: 0 !important;\n }\n .MuiList-padding {\n padding-bottom: 0px;\n padding-top: 0px;\n }\n .MuiMenuItem-root {\n padding-bottom: ", ";\n padding-top: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n &:focus {\n outline: ", "\n auto 2px;\n outline-offset: -1px;\n }\n &.MuiListItem-root.Mui-selected {\n background-color: ", ";\n }\n & span.MuiButtonBase-root {\n // multiple checkbox\n padding: 0px;\n margin: 5px 0px;\n }\n }\n"]);
50
+
51
+ _templateObject10 = function _templateObject10() {
52
+ return data;
53
+ };
54
+
55
+ return data;
56
+ }
57
+
58
+ function _templateObject9() {
59
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
60
+
61
+ _templateObject9 = function _templateObject9() {
62
+ return data;
63
+ };
64
+
65
+ return data;
66
+ }
67
+
68
+ function _templateObject8() {
69
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"]);
70
+
71
+ _templateObject8 = function _templateObject8() {
72
+ return data;
73
+ };
74
+
75
+ return data;
76
+ }
77
+
50
78
  function _templateObject7() {
51
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n .MuiFormControl-root {\n width: 100%;\n }\n .MuiFormLabel-root {\n font-size: 16px;\n color: ", ";\n margin-top: -3px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n height: 22px;\n display: flex;\n align-items: center;\n\n &.Mui-disabled {\n color: ", ";\n opacity: ", ";\n }\n &.Mui-focused {\n font-size: 16px;\n color: ", ";\n }\n }\n .MuiSelect-select {\n width: 100%;\n height: 20px;\n display: flex;\n padding-right: unset;\n color: ", ";\n align-items: center;\n :focus {\n background-color: transparent;\n }\n & > *:last-child::after {\n content: unset;\n }\n & > *:last-child::before {\n content: unset;\n }\n &.Mui-disabled {\n color: ", ";\n cursor: not-allowed;\n }\n }\n .MuiInputBase-root {\n width: 100%;\n &:focus {\n outline: ", " auto 1px;\n }\n &.Mui-disabled {\n opacity: ", ";\n cursor: not-allowed;\n &:focus {\n outline: none;\n }\n }\n }\n .MuiInput-underline {\n &:focus {\n border-bottom: 2px solid;\n border-bottom-color: ", ";\n }\n &.Mui-disabled:before {\n border-bottom-style: solid;\n }\n }\n .MuiInput-underline:hover:not(.Mui-disabled):before {\n border-bottom: 1px solid;\n border-bottom-color: ", ";\n }\n .MuiInput-underline:after {\n border-bottom: 1px solid;\n border-bottom-color: ", ";\n }\n .MuiInput-underline:before {\n border-bottom: 1px solid;\n border-bottom-color: ", "};\n }\n .MuiSelect-icon {\n color: ", ";\n }\n & label {\n text-overflow: ellipsis;\n overflow: hidden;\n width: calc(100% - 24px);\n }\n"]);
79
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
52
80
 
53
81
  _templateObject7 = function _templateObject7() {
54
82
  return data;
@@ -58,7 +86,7 @@ function _templateObject7() {
58
86
  }
59
87
 
60
88
  function _templateObject6() {
61
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n width: 20px;\n height: 20px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
89
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n margin-right: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n width: ", ";\n\n &::before {\n margin: 0 4px;\n ", ";\n }\n &::after {\n margin: 0 4px;\n ", ";\n }\n"]);
62
90
 
63
91
  _templateObject6 = function _templateObject6() {
64
92
  return data;
@@ -68,7 +96,7 @@ function _templateObject6() {
68
96
  }
69
97
 
70
98
  function _templateObject5() {
71
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Open Sans\", sans-serif;\n display: flex;\n align-items: center;\n flex-direction: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
99
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n"]);
72
100
 
73
101
  _templateObject5 = function _templateObject5() {
74
102
  return data;
@@ -78,7 +106,7 @@ function _templateObject5() {
78
106
  }
79
107
 
80
108
  function _templateObject4() {
81
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: \"Open Sans\", sans-serif;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
109
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"]);
82
110
 
83
111
  _templateObject4 = function _templateObject4() {
84
112
  return data;
@@ -88,7 +116,7 @@ function _templateObject4() {
88
116
  }
89
117
 
90
118
  function _templateObject3() {
91
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n margin-right: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n width: ", ";\n\n &::before {\n margin: 0 4px;\n ", ";\n }\n &::after {\n margin: 0 4px;\n ", ";\n }\n"]);
119
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
92
120
 
93
121
  _templateObject3 = function _templateObject3() {
94
122
  return data;
@@ -98,7 +126,7 @@ function _templateObject3() {
98
126
  }
99
127
 
100
128
  function _templateObject2() {
101
- var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
129
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n display: flex;\n align-items: center;\n flex-direction: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n ", "\n"]);
102
130
 
103
131
  _templateObject2 = function _templateObject2() {
104
132
  return data;
@@ -117,73 +145,12 @@ function _templateObject() {
117
145
  return data;
118
146
  }
119
147
 
120
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
121
-
122
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
123
-
124
- var useStyles = (0, _styles.makeStyles)(function () {
125
- return {
126
- root: function root(props) {
127
- return {
128
- minWidth: props.width
129
- };
130
- },
131
- dropdownStyle: function dropdownStyle(props) {
132
- return {
133
- boxShadow: "0px 2px 10px 0px rgba(0, 0, 0, 0.3)",
134
- minWidth: props.width,
135
- width: props.width,
136
- maxHeight: "250px",
137
- "&::-webkit-scrollbar": {
138
- width: "3px",
139
- margin: "5px"
140
- },
141
- "&::-webkit-scrollbar-track": {
142
- borderRadius: "3px",
143
- backgroundColor: props.scrollBarTrackColor
144
- },
145
- "&::-webkit-scrollbar-thumb": {
146
- borderRadius: "3px",
147
- backgroundColor: props.scrollBarThumbColor
148
- },
149
- "& .MuiList-root": {
150
- width: "auto !important",
151
- paddingRight: "0 !important"
152
- }
153
- };
154
- },
155
- itemList: function itemList(props) {
156
- return {
157
- color: props.color,
158
- "&.MuiList-padding": {
159
- paddingBottom: "0px",
160
- paddingTop: "0px"
161
- },
162
- "& li": {
163
- fontSize: "16px",
164
- "&:hover": {
165
- backgroundColor: props.selectedOptionBackgroundColor + props.hoverOptionBackgroundColor,
166
- color: props.color
167
- },
168
- "&:active": {
169
- backgroundColor: props.selectedOptionBackgroundColor + props.hoverOptionBackgroundColor,
170
- color: props.color
171
- },
172
- "&.MuiListItem-root.Mui-selected": {
173
- backgroundColor: props.selectedOptionBackgroundColor,
174
- color: props.color
175
- }
176
- }
177
- };
178
- }
179
- };
180
- });
181
-
182
148
  var DxcSelect = function DxcSelect(_ref) {
183
149
  var value = _ref.value,
184
150
  name = _ref.name,
185
151
  onChange = _ref.onChange,
186
152
  label = _ref.label,
153
+ assistiveText = _ref.assistiveText,
187
154
  _ref$required = _ref.required,
188
155
  required = _ref$required === void 0 ? false : _ref$required,
189
156
  _ref$disabled = _ref.disabled,
@@ -198,23 +165,17 @@ var DxcSelect = function DxcSelect(_ref) {
198
165
  multiple = _ref$multiple === void 0 ? false : _ref$multiple,
199
166
  margin = _ref.margin,
200
167
  _ref$size = _ref.size,
201
- size = _ref$size === void 0 ? "medium" : _ref$size;
202
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
203
- var colorsTheme = (0, _react.useMemo)(function () {
204
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
205
- }, [customTheme]);
168
+ size = _ref$size === void 0 ? "medium" : _ref$size,
169
+ _ref$tabIndex = _ref.tabIndex,
170
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
171
+ var colorsTheme = (0, _useTheme["default"])();
172
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
206
173
 
207
174
  var _useState = (0, _react.useState)(multiple && [] || ""),
208
175
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
209
176
  selectedValue = _useState2[0],
210
177
  setSelectedValue = _useState2[1];
211
178
 
212
- var selectValues = _objectSpread({
213
- width: "auto"
214
- }, colorsTheme.select);
215
-
216
- var classes = useStyles(selectValues);
217
-
218
179
  var handleSelectChange = function handleSelectChange(selectedOption) {
219
180
  if (multiple) {
220
181
  setSelectedValue(selectedOption.target.value);
@@ -235,15 +196,22 @@ var DxcSelect = function DxcSelect(_ref) {
235
196
  var selectedItem = options.filter(function (option) {
236
197
  return option.value === selected;
237
198
  })[0];
238
- return _react["default"].createElement(SelectedIconContainer, {
199
+ return _react["default"].createElement(SelectedOptionContainer, {
239
200
  iconPosition: iconPosition,
240
201
  multiple: multiple,
241
202
  label: selectedItem && selectedItem.label,
242
203
  key: selectedItem && selectedItem.label
243
- }, selectedItem && selectedItem.iconSrc && _react["default"].createElement(ListIcon, {
244
- src: selectedItem && selectedItem.iconSrc
245
- }), selectedItem && selectedItem.label && _react["default"].createElement(SelectedLabelContainer, {
246
- iconSrc: selectedItem && selectedItem.iconSrc,
204
+ }, selectedItem && selectedItem.icon ? _react["default"].createElement(SelectedOptionIconContainer, {
205
+ backgroundType: backgroundType,
206
+ disabled: disabled,
207
+ label: selectedItem.label,
208
+ iconPosition: iconPosition
209
+ }, (0, _typeof2["default"])(selectedItem.icon) === "object" ? selectedItem.icon : _react["default"].createElement(selectedItem.icon)) : selectedItem && selectedItem.iconSrc && _react["default"].createElement(SelectedOptionIcon, {
210
+ src: selectedItem && selectedItem.iconSrc,
211
+ label: selectedItem.label,
212
+ iconPosition: iconPosition
213
+ }), selectedItem && selectedItem.label && _react["default"].createElement(SelectedOptionLabelContainer, {
214
+ iconSrc: selectedItem && selectedItem.iconSrc && selectedItem.icon,
247
215
  iconPosition: iconPosition,
248
216
  disabled: disabled
249
217
  }, selectedItem && selectedItem.label));
@@ -258,7 +226,7 @@ var DxcSelect = function DxcSelect(_ref) {
258
226
  };
259
227
 
260
228
  var getSelectedValuesWithIcons = function getSelectedValuesWithIcons(optionsList, selected) {
261
- return options.filter(function (x) {
229
+ return optionsList.filter(function (x) {
262
230
  return selected.includes(x.value);
263
231
  }).map(function (optionToRender) {
264
232
  return getLabelForSingleSelect(optionToRender.value);
@@ -291,16 +259,40 @@ var DxcSelect = function DxcSelect(_ref) {
291
259
  }
292
260
  };
293
261
 
262
+ var ThemedOption = function ThemedOption(_ref2) {
263
+ var option = _ref2.option;
264
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
265
+ return _react["default"].createElement(_react["default"].Fragment, null, multiple && _react["default"].createElement(_Checkbox["default"], {
266
+ size: "fitContent",
267
+ checked: isChecked(selectedValue, value, option)
268
+ }), _react["default"].createElement(OptionListContainer, {
269
+ iconPosition: iconPosition,
270
+ multiple: multiple
271
+ }, option.icon ? _react["default"].createElement(OptionListIconContainer, {
272
+ backgroundType: backgroundType,
273
+ disabled: disabled,
274
+ label: option.label,
275
+ iconPosition: iconPosition
276
+ }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)) : option.iconSrc && _react["default"].createElement(OptionListIcon, {
277
+ src: option.iconSrc,
278
+ label: option.label,
279
+ iconPosition: iconPosition
280
+ }), " ", _react["default"].createElement(OptionListLabelContainer, {
281
+ backgroundType: backgroundType
282
+ }, option.label)));
283
+ };
284
+
294
285
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
295
- theme: colorsTheme
286
+ theme: colorsTheme.select
296
287
  }, _react["default"].createElement(SelectContainer, {
297
288
  margin: margin,
298
289
  size: size,
299
- invalid: invalid
290
+ invalid: invalid,
291
+ disabled: disabled,
292
+ backgroundType: backgroundType
300
293
  }, _react["default"].createElement(_FormControl["default"], null, _react["default"].createElement(_InputLabel["default"], {
301
294
  disabled: disabled
302
295
  }, required && _react["default"].createElement(_RequiredComponent["default"], null), label), _react["default"].createElement(_Select["default"], {
303
- tabIndex: "0",
304
296
  name: name,
305
297
  multiple: multiple,
306
298
  renderValue: getRenderValue,
@@ -308,15 +300,15 @@ var DxcSelect = function DxcSelect(_ref) {
308
300
  value: value !== undefined ? value : selectedValue,
309
301
  disabled: disabled,
310
302
  MenuProps: {
311
- classes: {
312
- paper: classes.dropdownStyle,
313
- list: classes.itemList
314
- },
315
303
  getContentAnchorEl: null,
316
304
  anchorOrigin: {
317
305
  vertical: "bottom",
318
306
  horizontal: "left"
319
- }
307
+ },
308
+ disablePortal: true
309
+ },
310
+ inputProps: {
311
+ tabIndex: disabled ? -1 : tabIndex
320
312
  }
321
313
  }, options.map(function (option) {
322
314
  return _react["default"].createElement(_MenuItem["default"], {
@@ -324,17 +316,14 @@ var DxcSelect = function DxcSelect(_ref) {
324
316
  value: option.value,
325
317
  disableRipple: true,
326
318
  key: option.value
327
- }, multiple && _react["default"].createElement(_Checkbox["default"], {
328
- size: "fitContent",
329
- checked: isChecked(selectedValue, value, option)
330
- }), _react["default"].createElement(OptionContainer, {
331
- iconPosition: iconPosition
332
- }, option.iconSrc && _react["default"].createElement(ListIcon, {
333
- src: option.iconSrc,
334
- label: option.label,
335
- iconPosition: iconPosition
336
- }), " ", _react["default"].createElement(LabelCont, null, option.label)));
337
- })))));
319
+ }, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
320
+ color: colorsTheme.select.optionBackgroundColor
321
+ }, _react["default"].createElement(ThemedOption, {
322
+ option: option
323
+ })));
324
+ })), assistiveText && _react["default"].createElement(_FormHelperText["default"], {
325
+ disabled: disabled
326
+ }, assistiveText))));
338
327
  };
339
328
 
340
329
  var sizes = {
@@ -345,18 +334,52 @@ var sizes = {
345
334
  };
346
335
 
347
336
  var calculateWidth = function calculateWidth(margin, size) {
348
- if (size === "fillParent") {
349
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
350
- }
351
-
352
- return sizes[size];
337
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
353
338
  };
354
339
 
355
340
  var MultipleLabelSelected = _styledComponents["default"].div(_templateObject());
356
341
 
357
- var LabelCont = _styledComponents["default"].span(_templateObject2());
342
+ var OptionListContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
343
+ return props.theme.fontFamily;
344
+ }, function (props) {
345
+ return props.iconPosition === "before" && "row" || "row-reverse";
346
+ }, function (props) {
347
+ return props.multiple && "margin-left: ".concat(props.theme.optionCheckboxSpacing, ";");
348
+ });
349
+
350
+ var OptionListIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
351
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledColorOnDark : props.theme.disabledColor : props.backgroundType === "dark" ? props.theme.optionIconColorOnDark : props.theme.optionIconColor;
352
+ }, function (props) {
353
+ return props.theme.optionIconSize;
354
+ }, function (props) {
355
+ return props.theme.optionIconSize;
356
+ }, function (props) {
357
+ return props.iconPosition === "after" && props.label && props.theme.optionIconSpacing || "0px";
358
+ }, function (props) {
359
+ return props.iconPosition === "before" && props.label && props.theme.optionIconSpacing || "0px";
360
+ });
358
361
 
359
- var SelectedIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
362
+ var OptionListIcon = _styledComponents["default"].img(_templateObject4(), function (props) {
363
+ return props.theme.optionIconSize;
364
+ }, function (props) {
365
+ return props.theme.optionIconSize;
366
+ }, function (props) {
367
+ return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
368
+ }, function (props) {
369
+ return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
370
+ });
371
+
372
+ var OptionListLabelContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
373
+ return props.theme.optionFontSize;
374
+ }, function (props) {
375
+ return props.theme.optionFontStyle;
376
+ }, function (props) {
377
+ return props.theme.optionFontWeight;
378
+ }, function (props) {
379
+ return props.backgroundType === "dark" ? props.theme.optionFontColorOnDark : props.theme.optionFontColor;
380
+ });
381
+
382
+ var SelectedOptionContainer = _styledComponents["default"].div(_templateObject6(), function (props) {
360
383
  return props.iconPosition === "before" && "row" || "row-reverse";
361
384
  }, function (props) {
362
385
  return props.iconPosition === "before" && "flex-start" || "flex-end";
@@ -370,23 +393,33 @@ var SelectedIconContainer = _styledComponents["default"].div(_templateObject3(),
370
393
  return props.iconPosition === "before" && (props.label !== "" || props.label === undefined) && "content:','";
371
394
  });
372
395
 
373
- var SelectedLabelContainer = _styledComponents["default"].span(_templateObject4(), function (props) {
374
- return (props.iconPosition === "after" || !props.iconSrc) && "0px" || "10px";
375
- }, function (props) {
376
- return (props.iconPosition === "before" || !props.iconSrc) && "0px" || "10px";
396
+ var SelectedOptionLabelContainer = _styledComponents["default"].span(_templateObject7(), function (props) {
397
+ return props.theme.fontFamily;
377
398
  });
378
399
 
379
- var OptionContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
380
- return props.iconPosition === "before" && "row" || "row-reverse";
400
+ var SelectedOptionIcon = _styledComponents["default"].img(_templateObject8(), function (props) {
401
+ return props.theme.valueIconSize;
402
+ }, function (props) {
403
+ return props.theme.valueIconSize;
404
+ }, function (props) {
405
+ return props.iconPosition === "after" && props.label !== "" && props.theme.valueIconSpacing || "0px";
406
+ }, function (props) {
407
+ return props.iconPosition === "before" && props.label !== "" && props.theme.valueIconSpacing || "0px";
381
408
  });
382
409
 
383
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
384
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
410
+ var SelectedOptionIconContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
411
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledColorOnDark : props.theme.disabledColor : props.backgroundType === "dark" ? props.theme.valueIconColorOnDark : props.theme.valueIconColor;
412
+ }, function (props) {
413
+ return props.theme.valueIconSize;
414
+ }, function (props) {
415
+ return props.theme.valueIconSize;
385
416
  }, function (props) {
386
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
417
+ return props.iconPosition === "after" && props.label !== "" && props.theme.valueIconSpacing || "0px";
418
+ }, function (props) {
419
+ return props.iconPosition === "before" && props.label !== "" && props.theme.valueIconSpacing || "0px";
387
420
  });
388
421
 
389
- var SelectContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
422
+ var SelectContainer = _styledComponents["default"].div(_templateObject10(), function (props) {
390
423
  return calculateWidth(props.margin, props.size);
391
424
  }, function (props) {
392
425
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -399,36 +432,97 @@ var SelectContainer = _styledComponents["default"].div(_templateObject7(), funct
399
432
  }, function (props) {
400
433
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
401
434
  }, function (props) {
402
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
435
+ return props.theme.fontFamily;
436
+ }, function (props) {
437
+ return props.theme.assistiveTextFontSize;
438
+ }, function (props) {
439
+ return props.theme.assistiveTextFontStyle;
440
+ }, function (props) {
441
+ return props.theme.assistiveTextFontWeight;
442
+ }, function (props) {
443
+ return props.backgroundType === "dark" ? props.invalid === true ? props.theme.errorColorOnDark : props.theme.assistiveTextFontColorOnDark : props.invalid === true ? props.theme.errorColor : props.theme.assistiveTextFontColor;
444
+ }, function (props) {
445
+ return props.backgroundType === "dark" ? props.theme.disabledColorOnDark : props.theme.disabledColor;
446
+ }, function (props) {
447
+ return props.theme.fontFamily;
448
+ }, function (props) {
449
+ return props.theme.labelFontSize;
450
+ }, function (props) {
451
+ return props.theme.labelFontStyle;
452
+ }, function (props) {
453
+ return props.theme.labelFontWeight;
454
+ }, function (props) {
455
+ return props.backgroundType === "dark" ? props.invalid === true ? props.theme.errorColorOnDark : props.theme.labelFontColorOnDark : props.invalid === true ? props.theme.errorColor : props.theme.labelFontColor;
456
+ }, function (props) {
457
+ return props.backgroundType === "dark" ? props.theme.disabledColorOnDark : props.theme.disabledColor;
458
+ }, function (props) {
459
+ return props.theme.labelFontSize;
460
+ }, function (props) {
461
+ return props.theme.labelFontStyle;
462
+ }, function (props) {
463
+ return props.theme.labelFontWeight;
464
+ }, function (props) {
465
+ return props.backgroundType === "dark" ? props.invalid === true ? props.theme.errorColorOnDark : props.theme.labelFontColorOnDark : props.invalid === true ? props.theme.errorColor : props.theme.labelFontColor;
466
+ }, function (props) {
467
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
468
+ }, function (props) {
469
+ return props.backgroundType === "dark" ? props.theme.disabledColorOnDark : props.theme.disabledColor;
470
+ }, function (props) {
471
+ return props.theme.valueFontSize;
472
+ }, function (props) {
473
+ return props.theme.valueFontStyle;
474
+ }, function (props) {
475
+ return props.theme.valueFontWeight;
476
+ }, function (props) {
477
+ return props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
478
+ }, function (props) {
479
+ return props.theme.underlineThickness;
480
+ }, function (props) {
481
+ return props.backgroundType === "dark" ? props.invalid === true && props.theme.errorColorOnDark || props.disabled && props.theme.disabledColorOnDark || props.theme.underlineFocusColorOnDark : props.invalid === true && props.theme.errorColor || props.disabled && props.theme.disabledColor || props.theme.underlineFocusColor;
482
+ }, function (props) {
483
+ return props.theme.underlineThickness;
484
+ }, function (props) {
485
+ return props.backgroundType === "dark" ? props.invalid === true && props.theme.errorColorOnDark || props.disabled && props.theme.disabledColorOnDark || props.theme.underlineColorOnDark : props.invalid === true && props.theme.errorColor || props.disabled && props.theme.disabledColor || props.theme.underlineColor;
486
+ }, function (props) {
487
+ return props.theme.underlineThickness;
488
+ }, function (props) {
489
+ return props.backgroundType === "dark" ? props.invalid === true ? props.theme.errorColorOnDark : props.theme.underlineFocusColorOnDark : props.invalid === true ? props.theme.errorColor : props.theme.underlineFocusColor;
490
+ }, function (props) {
491
+ return props.theme.underlineThickness;
492
+ }, function (props) {
493
+ return props.backgroundType === "dark" ? props.invalid === true && props.theme.errorColorOnDark || props.disabled && props.theme.disabledColorOnDark || props.theme.underlineColorOnDark : props.invalid === true && props.theme.errorColor || props.disabled && props.theme.disabledColor || props.theme.underlineColor;
494
+ }, function (props) {
495
+ return props.backgroundType === "dark" ? props.disabled && props.theme.disabledColorOnDark || props.theme.arrowColorOnDark : props.disabled && props.theme.disabledColor || props.theme.arrowColor;
403
496
  }, function (props) {
404
- return props.theme.select.color;
497
+ return props.theme.optionBackgroundColor;
405
498
  }, function (props) {
406
- return props.theme.select.disabled;
499
+ return props.theme.optionBorderColor;
407
500
  }, function (props) {
408
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
501
+ return props.theme.optionBorderThickness;
409
502
  }, function (props) {
410
- return props.theme.select.color;
503
+ return props.theme.optionBorderStyle;
411
504
  }, function (props) {
412
- return props.theme.select.color;
505
+ return props.theme.scrollBarTrackColor;
413
506
  }, function (props) {
414
- return props.theme.select.focusColor;
507
+ return props.theme.scrollBarThumbColor;
415
508
  }, function (props) {
416
- return props.theme.select.disabled;
509
+ return props.theme.optionPaddingBottom;
417
510
  }, function (props) {
418
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
511
+ return props.theme.optionPaddingTop;
419
512
  }, function (props) {
420
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
513
+ return props.backgroundType === "dark" ? props.theme.hoverOptionBackgroundColorOnDark : props.theme.hoverOptionBackgroundColor;
421
514
  }, function (props) {
422
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
515
+ return props.backgroundType === "dark" ? props.theme.activeOptionBackgroundColorOnDark : props.theme.activeOptionBackgroundColor;
423
516
  }, function (props) {
424
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
517
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
425
518
  }, function (props) {
426
- return props.theme.select.color;
519
+ return props.backgroundType === "dark" ? props.theme.selectedOptionBackgroundColorOnDark : props.theme.selectedOptionBackgroundColor;
427
520
  });
428
521
 
429
522
  DxcSelect.propTypes = {
430
523
  size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
431
524
  label: _propTypes["default"].string,
525
+ assistiveText: _propTypes["default"].string,
432
526
  name: _propTypes["default"].string,
433
527
  value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]))]),
434
528
  disabled: _propTypes["default"].bool,
@@ -439,6 +533,7 @@ DxcSelect.propTypes = {
439
533
  options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
440
534
  value: _propTypes["default"].any.isRequired,
441
535
  label: _propTypes["default"].string,
536
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
442
537
  iconSrc: _propTypes["default"].string
443
538
  })),
444
539
  multiple: _propTypes["default"].bool,
@@ -447,7 +542,8 @@ DxcSelect.propTypes = {
447
542
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
448
543
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
449
544
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
450
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
545
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
546
+ tabIndex: _propTypes["default"].number
451
547
  };
452
548
  var _default = DxcSelect;
453
549
  exports["default"] = _default;