@dxc-technology/halstack-react 0.0.0-9a0ea8a → 0.0.0-9b341c0

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 (231) 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 +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 +152 -67
  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 +183 -84
  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 +63 -27
  19. package/dist/button/index.d.ts +24 -0
  20. package/dist/card/Card.js +72 -35
  21. package/dist/card/index.d.ts +22 -0
  22. package/dist/checkbox/Checkbox.js +99 -40
  23. package/dist/checkbox/index.d.ts +24 -0
  24. package/dist/chip/Chip.js +128 -36
  25. package/dist/chip/index.d.ts +22 -0
  26. package/dist/common/RequiredComponent.js +2 -8
  27. package/dist/common/utils.js +2 -22
  28. package/dist/common/variables.js +1444 -304
  29. package/dist/date/Date.js +75 -52
  30. package/dist/date/index.d.ts +27 -0
  31. package/dist/date-input/DateInput.js +400 -0
  32. package/dist/date-input/index.d.ts +95 -0
  33. package/dist/dialog/Dialog.js +58 -37
  34. package/dist/dialog/index.d.ts +18 -0
  35. package/dist/dropdown/Dropdown.js +199 -71
  36. package/dist/dropdown/index.d.ts +26 -0
  37. package/dist/file-input/FileInput.js +644 -0
  38. package/dist/file-input/FileItem.js +287 -0
  39. package/dist/file-input/index.d.ts +81 -0
  40. package/dist/footer/Footer.js +121 -46
  41. package/dist/footer/Icons.js +77 -0
  42. package/dist/footer/index.d.ts +25 -0
  43. package/dist/header/Header.js +192 -95
  44. package/dist/header/Icons.js +59 -0
  45. package/dist/header/index.d.ts +25 -0
  46. package/dist/heading/Heading.js +93 -16
  47. package/dist/heading/index.d.ts +17 -0
  48. package/dist/input-text/Icons.js +22 -0
  49. package/dist/input-text/InputText.js +289 -103
  50. package/dist/input-text/index.d.ts +36 -0
  51. package/dist/layout/ApplicationLayout.js +18 -26
  52. package/dist/layout/Icons.js +55 -0
  53. package/dist/link/Link.js +107 -41
  54. package/dist/link/index.d.ts +23 -0
  55. package/dist/main.d.ts +40 -0
  56. package/dist/main.js +96 -16
  57. package/dist/number-input/NumberInput.js +136 -0
  58. package/dist/number-input/NumberInputContext.js +16 -0
  59. package/dist/number-input/index.d.ts +113 -0
  60. package/dist/paginator/Icons.js +66 -0
  61. package/dist/paginator/Paginator.js +150 -63
  62. package/dist/paginator/index.d.ts +20 -0
  63. package/dist/password-input/PasswordInput.js +203 -0
  64. package/dist/password-input/index.d.ts +94 -0
  65. package/dist/progress-bar/ProgressBar.js +95 -38
  66. package/dist/progress-bar/index.d.ts +18 -0
  67. package/dist/radio/Radio.js +31 -17
  68. package/dist/radio/index.d.ts +23 -0
  69. package/dist/resultsetTable/ResultsetTable.js +90 -65
  70. package/dist/resultsetTable/index.d.ts +19 -0
  71. package/dist/select/Select.js +888 -272
  72. package/dist/select/index.d.ts +53 -0
  73. package/dist/sidenav/Sidenav.js +66 -15
  74. package/dist/sidenav/index.d.ts +13 -0
  75. package/dist/slider/Slider.js +211 -73
  76. package/dist/slider/index.d.ts +29 -0
  77. package/dist/spinner/Spinner.js +247 -59
  78. package/dist/spinner/index.d.ts +17 -0
  79. package/dist/switch/Switch.js +50 -27
  80. package/dist/switch/index.d.ts +24 -0
  81. package/dist/table/Table.js +51 -24
  82. package/dist/table/index.d.ts +13 -0
  83. package/dist/tabs/Tabs.js +206 -35
  84. package/dist/tabs/index.d.ts +19 -0
  85. package/dist/tag/Tag.js +85 -37
  86. package/dist/tag/index.d.ts +24 -0
  87. package/dist/text-input/TextInput.js +974 -0
  88. package/dist/text-input/index.d.ts +135 -0
  89. package/dist/textarea/Textarea.js +248 -106
  90. package/dist/textarea/index.d.ts +117 -0
  91. package/dist/toggle/Toggle.js +16 -19
  92. package/dist/toggle/index.d.ts +21 -0
  93. package/dist/toggle-group/ToggleGroup.js +156 -43
  94. package/dist/toggle-group/index.d.ts +21 -0
  95. package/dist/upload/Upload.js +13 -8
  96. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  97. package/dist/upload/buttons-upload/Icons.js +40 -0
  98. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  99. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  100. package/dist/upload/file-upload/FileToUpload.js +64 -33
  101. package/dist/upload/file-upload/Icons.js +66 -0
  102. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  103. package/dist/upload/index.d.ts +15 -0
  104. package/dist/upload/transaction/Icons.js +160 -0
  105. package/dist/upload/transaction/Transaction.js +42 -49
  106. package/dist/upload/transactions/Transactions.js +38 -20
  107. package/dist/useTheme.js +22 -0
  108. package/dist/wizard/Icons.js +65 -0
  109. package/dist/wizard/Wizard.js +138 -60
  110. package/dist/wizard/index.d.ts +18 -0
  111. package/package.json +14 -11
  112. package/test/AccordionGroup.test.js +125 -0
  113. package/test/Date.test.js +15 -13
  114. package/test/DateInput.test.js +242 -0
  115. package/test/Dropdown.test.js +15 -0
  116. package/test/FileInput.test.js +201 -0
  117. package/test/Footer.test.js +2 -7
  118. package/test/Header.test.js +5 -10
  119. package/test/Heading.test.js +60 -12
  120. package/test/InputText.test.js +29 -25
  121. package/test/Link.test.js +12 -2
  122. package/test/NumberInput.test.js +259 -0
  123. package/test/Paginator.test.js +72 -60
  124. package/test/PasswordInput.test.js +83 -0
  125. package/test/ResultsetTable.test.js +66 -19
  126. package/test/Slider.test.js +9 -17
  127. package/test/Spinner.test.js +5 -0
  128. package/test/Tabs.test.js +21 -0
  129. package/test/TextInput.test.js +732 -0
  130. package/test/Textarea.test.js +193 -0
  131. package/test/ToggleGroup.test.js +5 -1
  132. package/test/Upload.test.js +1 -1
  133. package/test/{Select.test.js → V3Select.test.js} +67 -46
  134. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  135. package/dist/accordion/Accordion.stories.js +0 -207
  136. package/dist/accordion/readme.md +0 -96
  137. package/dist/alert/Alert.stories.js +0 -158
  138. package/dist/alert/close.svg +0 -4
  139. package/dist/alert/error.svg +0 -4
  140. package/dist/alert/info.svg +0 -4
  141. package/dist/alert/readme.md +0 -43
  142. package/dist/alert/success.svg +0 -4
  143. package/dist/alert/warning.svg +0 -4
  144. package/dist/button/Button.stories.js +0 -224
  145. package/dist/button/readme.md +0 -93
  146. package/dist/checkbox/Checkbox.stories.js +0 -144
  147. package/dist/checkbox/readme.md +0 -116
  148. package/dist/common/services/example-service.js +0 -10
  149. package/dist/common/services/example-service.test.js +0 -12
  150. package/dist/date/Date.stories.js +0 -205
  151. package/dist/date/calendar.svg +0 -1
  152. package/dist/date/calendar_dark.svg +0 -1
  153. package/dist/date/readme.md +0 -73
  154. package/dist/dialog/Dialog.stories.js +0 -217
  155. package/dist/dialog/readme.md +0 -32
  156. package/dist/dropdown/Dropdown.stories.js +0 -249
  157. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  158. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  159. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  161. package/dist/dropdown/readme.md +0 -69
  162. package/dist/footer/Footer.stories.js +0 -94
  163. package/dist/footer/dxc_logo_wht.png +0 -0
  164. package/dist/footer/readme.md +0 -41
  165. package/dist/header/Header.stories.js +0 -176
  166. package/dist/header/close_icon.svg +0 -1
  167. package/dist/header/dxc_logo_black.png +0 -0
  168. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  169. package/dist/header/dxc_logo_white.png +0 -0
  170. package/dist/header/hamb_menu_black.svg +0 -1
  171. package/dist/header/hamb_menu_white.svg +0 -1
  172. package/dist/header/readme.md +0 -33
  173. package/dist/input-text/InputText.stories.js +0 -209
  174. package/dist/input-text/error.svg +0 -1
  175. package/dist/input-text/readme.md +0 -91
  176. package/dist/layout/facebook.svg +0 -45
  177. package/dist/layout/linkedin.svg +0 -50
  178. package/dist/layout/twitter.svg +0 -53
  179. package/dist/link/readme.md +0 -51
  180. package/dist/paginator/images/next.svg +0 -3
  181. package/dist/paginator/images/nextPage.svg +0 -3
  182. package/dist/paginator/images/previous.svg +0 -3
  183. package/dist/paginator/images/previousPage.svg +0 -3
  184. package/dist/paginator/readme.md +0 -50
  185. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  186. package/dist/progress-bar/readme.md +0 -63
  187. package/dist/radio/Radio.stories.js +0 -166
  188. package/dist/radio/readme.md +0 -70
  189. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  190. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  191. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  192. package/dist/select/Select.stories.js +0 -235
  193. package/dist/select/readme.md +0 -72
  194. package/dist/slider/Slider.stories.js +0 -241
  195. package/dist/slider/readme.md +0 -64
  196. package/dist/spinner/Spinner.stories.js +0 -183
  197. package/dist/spinner/readme.md +0 -65
  198. package/dist/switch/Switch.stories.js +0 -134
  199. package/dist/switch/readme.md +0 -133
  200. package/dist/tabs/Tabs.stories.js +0 -130
  201. package/dist/tabs/readme.md +0 -78
  202. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  203. package/dist/tabs-for-sections/readme.md +0 -78
  204. package/dist/toggle/Toggle.stories.js +0 -297
  205. package/dist/toggle/readme.md +0 -80
  206. package/dist/toggle-group/readme.md +0 -82
  207. package/dist/upload/Upload.stories.js +0 -72
  208. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  209. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  210. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  211. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  212. package/dist/upload/file-upload/audio-icon.svg +0 -4
  213. package/dist/upload/file-upload/close.svg +0 -4
  214. package/dist/upload/file-upload/file-icon.svg +0 -4
  215. package/dist/upload/file-upload/video-icon.svg +0 -4
  216. package/dist/upload/readme.md +0 -37
  217. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  218. package/dist/upload/transaction/audio-icon.svg +0 -4
  219. package/dist/upload/transaction/error-icon.svg +0 -4
  220. package/dist/upload/transaction/file-icon-err.svg +0 -4
  221. package/dist/upload/transaction/file-icon.svg +0 -4
  222. package/dist/upload/transaction/image-icon-err.svg +0 -4
  223. package/dist/upload/transaction/image-icon.svg +0 -4
  224. package/dist/upload/transaction/success-icon.svg +0 -4
  225. package/dist/upload/transaction/video-icon-err.svg +0 -4
  226. package/dist/upload/transaction/video-icon.svg +0 -4
  227. package/dist/wizard/invalid_icon.svg +0 -6
  228. package/dist/wizard/valid_icon.svg +0 -6
  229. package/dist/wizard/validation-wrong.svg +0 -6
  230. package/test/TabsForSections.test.js +0 -34
  231. package/test/Toggle.test.js +0 -43
@@ -9,46 +9,230 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
17
 
20
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
19
 
22
20
  var _react = _interopRequireWildcard(require("react"));
23
21
 
24
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
25
23
 
26
- var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
27
25
 
28
- var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
26
+ var _variables = require("../common/variables.js");
29
27
 
30
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
28
+ var _uuid = require("uuid");
31
29
 
32
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
30
+ var _utils = require("../common/utils.js");
33
31
 
34
- var _styles = require("@material-ui/core/styles");
32
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
35
33
 
36
- var _propTypes = _interopRequireDefault(require("prop-types"));
34
+ function _templateObject27() {
35
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"]);
37
36
 
38
- var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
37
+ _templateObject27 = function _templateObject27() {
38
+ return data;
39
+ };
39
40
 
40
- require("../common/OpenSans.css");
41
+ return data;
42
+ }
41
43
 
42
- var _variables = require("../common/variables.js");
44
+ function _templateObject26() {
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]);
43
46
 
44
- var _utils = require("../common/utils.js");
47
+ _templateObject26 = function _templateObject26() {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _templateObject25() {
55
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"]);
56
+
57
+ _templateObject25 = function _templateObject25() {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
64
+ function _templateObject24() {
65
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n margin-left: 8px;\n color: ", ";\n"]);
66
+
67
+ _templateObject24 = function _templateObject24() {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
74
+ function _templateObject23() {
75
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n padding-left: 8px;\n ", "\n"]);
76
+
77
+ _templateObject23 = function _templateObject23() {
78
+ return data;
79
+ };
80
+
81
+ return data;
82
+ }
45
83
 
46
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
84
+ function _templateObject22() {
85
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 8px 3px 0;\n min-height: 24px;\n ", "\n ", ";\n"]);
86
+
87
+ _templateObject22 = function _templateObject22() {
88
+ return data;
89
+ };
90
+
91
+ return data;
92
+ }
93
+
94
+ function _templateObject21() {
95
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 8px;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"]);
96
+
97
+ _templateObject21 = function _templateObject21() {
98
+ return data;
99
+ };
100
+
101
+ return data;
102
+ }
103
+
104
+ function _templateObject20() {
105
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"]);
106
+
107
+ _templateObject20 = function _templateObject20() {
108
+ return data;
109
+ };
110
+
111
+ return data;
112
+ }
113
+
114
+ function _templateObject19() {
115
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: calc(1rem * 0.25);\n"]);
116
+
117
+ _templateObject19 = function _templateObject19() {
118
+ return data;
119
+ };
120
+
121
+ return data;
122
+ }
123
+
124
+ function _templateObject18() {
125
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"]);
126
+
127
+ _templateObject18 = function _templateObject18() {
128
+ return data;
129
+ };
130
+
131
+ return data;
132
+ }
133
+
134
+ function _templateObject17() {
135
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-x: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 4px 0;\n width: 100%;\n box-sizing: border-box;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 4px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"]);
136
+
137
+ _templateObject17 = function _templateObject17() {
138
+ return data;
139
+ };
140
+
141
+ return data;
142
+ }
47
143
 
48
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
144
+ function _templateObject16() {
145
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n margin-left: calc(1rem * 0.25);\n ", "\n background-color: ", ";\n color: ", ";\n\n ", "\n\n svg {\n line-height: 18px;\n }\n"]);
146
+
147
+ _templateObject16 = function _templateObject16() {
148
+ return data;
149
+ };
150
+
151
+ return data;
152
+ }
153
+
154
+ function _templateObject15() {
155
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-left: calc(1rem * 0.25);\n color: ", ";\n"]);
156
+
157
+ _templateObject15 = function _templateObject15() {
158
+ return data;
159
+ };
160
+
161
+ return data;
162
+ }
163
+
164
+ function _templateObject14() {
165
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
166
+
167
+ _templateObject14 = function _templateObject14() {
168
+ return data;
169
+ };
170
+
171
+ return data;
172
+ }
173
+
174
+ function _templateObject13() {
175
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n margin-left: calc(1rem * 0.25);\n pointer-events: none;\n color: ", ";\n\n svg {\n line-height: 18px;\n font-size: 1.25rem;\n }\n"]);
176
+
177
+ _templateObject13 = function _templateObject13() {
178
+ return data;
179
+ };
180
+
181
+ return data;
182
+ }
183
+
184
+ function _templateObject12() {
185
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n height: calc(calc(1rem * 2.5) - calc(1px * 2));\n background: none;\n border: none;\n outline: none;\n padding: 0 calc(1rem * 0.5);\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n"]);
186
+
187
+ _templateObject12 = function _templateObject12() {
188
+ return data;
189
+ };
190
+
191
+ return data;
192
+ }
193
+
194
+ function _templateObject11() {
195
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"]);
196
+
197
+ _templateObject11 = function _templateObject11() {
198
+ return data;
199
+ };
200
+
201
+ return data;
202
+ }
203
+
204
+ function _templateObject10() {
205
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n display: inline-flex;\n align-items: center;\n height: calc(calc(1rem * 2.5) - calc(1px * 2));\n padding: 0 calc(1rem * 0.5);\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n"]);
206
+
207
+ _templateObject10 = function _templateObject10() {
208
+ return data;
209
+ };
210
+
211
+ return data;
212
+ }
213
+
214
+ function _templateObject9() {
215
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"]);
216
+
217
+ _templateObject9 = function _templateObject9() {
218
+ return data;
219
+ };
220
+
221
+ return data;
222
+ }
223
+
224
+ function _templateObject8() {
225
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n padding: 3px;\n ", "\n background-color: ", ";\n color: ", ";\n\n ", "\n\n svg {\n line-height: 18px;\n }\n"]);
226
+
227
+ _templateObject8 = function _templateObject8() {
228
+ return data;
229
+ };
230
+
231
+ return data;
232
+ }
49
233
 
50
234
  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"]);
235
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n user-select: none;\n background-color: ", ";\n border-right: 1px solid ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n ", "\n"]);
52
236
 
53
237
  _templateObject7 = function _templateObject7() {
54
238
  return data;
@@ -58,7 +242,7 @@ function _templateObject7() {
58
242
  }
59
243
 
60
244
  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"]);
245
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n width: 48px;\n"]);
62
246
 
63
247
  _templateObject6 = function _templateObject6() {
64
248
  return data;
@@ -68,7 +252,7 @@ function _templateObject6() {
68
252
  }
69
253
 
70
254
  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"]);
255
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(calc(1rem * 2.5) - calc(1px * 2));\n margin: calc(1rem * 0.25) 0;\n padding: 0 calc(1rem * 0.5);\n outline: none;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"]);
72
256
 
73
257
  _templateObject5 = function _templateObject5() {
74
258
  return data;
@@ -78,7 +262,7 @@ function _templateObject5() {
78
262
  }
79
263
 
80
264
  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"]);
265
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
82
266
 
83
267
  _templateObject4 = function _templateObject4() {
84
268
  return data;
@@ -88,7 +272,7 @@ function _templateObject4() {
88
272
  }
89
273
 
90
274
  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"]);
275
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"]);
92
276
 
93
277
  _templateObject3 = function _templateObject3() {
94
278
  return data;
@@ -98,7 +282,7 @@ function _templateObject3() {
98
282
  }
99
283
 
100
284
  function _templateObject2() {
101
- var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
285
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n cursor: default;\n"]);
102
286
 
103
287
  _templateObject2 = function _templateObject2() {
104
288
  return data;
@@ -108,7 +292,7 @@ function _templateObject2() {
108
292
  }
109
293
 
110
294
  function _templateObject() {
111
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: calc(100% - 24px);\n overflow: hidden;\n text-overflow: ellipsis;\n"]);
295
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
112
296
 
113
297
  _templateObject = function _templateObject() {
114
298
  return data;
@@ -117,337 +301,769 @@ function _templateObject() {
117
301
  return data;
118
302
  }
119
303
 
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; }
304
+ var selectIcons = {
305
+ error: _react["default"].createElement("svg", {
306
+ xmlns: "http://www.w3.org/2000/svg",
307
+ height: "24px",
308
+ viewBox: "0 0 24 24",
309
+ width: "24px",
310
+ fill: "currentColor"
311
+ }, _react["default"].createElement("path", {
312
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
313
+ })),
314
+ arrowUp: _react["default"].createElement("svg", {
315
+ xmlns: "http://www.w3.org/2000/svg",
316
+ height: "24px",
317
+ viewBox: "0 0 24 24",
318
+ width: "24px",
319
+ fill: "currentColor"
320
+ }, _react["default"].createElement("path", {
321
+ d: "M0 0h24v24H0V0z",
322
+ fill: "none"
323
+ }), _react["default"].createElement("path", {
324
+ d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
325
+ })),
326
+ arrowDown: _react["default"].createElement("svg", {
327
+ xmlns: "http://www.w3.org/2000/svg",
328
+ height: "24px",
329
+ viewBox: "0 0 24 24",
330
+ width: "24px",
331
+ fill: "currentColor"
332
+ }, _react["default"].createElement("path", {
333
+ d: "M0 0h24v24H0V0z",
334
+ fill: "none"
335
+ }), _react["default"].createElement("path", {
336
+ d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
337
+ })),
338
+ clear: _react["default"].createElement("svg", {
339
+ xmlns: "http://www.w3.org/2000/svg",
340
+ width: "24",
341
+ height: "24",
342
+ viewBox: "0 0 24 24",
343
+ fill: "currentColor"
344
+ }, _react["default"].createElement("path", {
345
+ d: "M0 0h24v24H0V0z",
346
+ fill: "none"
347
+ }), _react["default"].createElement("path", {
348
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
349
+ })),
350
+ selected: _react["default"].createElement("svg", {
351
+ xmlns: "http://www.w3.org/2000/svg",
352
+ height: "24px",
353
+ viewBox: "0 0 24 24",
354
+ width: "24px",
355
+ fill: "currentColor"
356
+ }, _react["default"].createElement("path", {
357
+ d: "M0 0h24v24H0z",
358
+ fill: "none"
359
+ }), _react["default"].createElement("path", {
360
+ d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
361
+ })),
362
+ searchOff: _react["default"].createElement("svg", {
363
+ xmlns: "http://www.w3.org/2000/svg",
364
+ height: "24px",
365
+ viewBox: "0 0 24 24",
366
+ width: "24px",
367
+ fill: "currentColor"
368
+ }, _react["default"].createElement("g", null, _react["default"].createElement("rect", {
369
+ fill: "none",
370
+ height: "24",
371
+ width: "24"
372
+ })), _react["default"].createElement("g", null, _react["default"].createElement("g", null, _react["default"].createElement("path", {
373
+ d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
374
+ }), _react["default"].createElement("polygon", {
375
+ points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
376
+ }))))
377
+ };
121
378
 
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; }
379
+ var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
380
+ return "This field is required. Please, enter a value.";
381
+ };
123
382
 
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
- }
383
+ var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
384
+ if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
385
+ if (options[0].options) return options.map(function (optionGroup) {
386
+ var group = {
387
+ label: optionGroup.label,
388
+ options: optionGroup.options.filter(function (option) {
389
+ return option.label.toUpperCase().includes(searchValue.toUpperCase());
390
+ })
177
391
  };
178
- }
179
- };
180
- });
392
+ return group;
393
+ });else return options.filter(function (option) {
394
+ return option.label.toUpperCase().includes(searchValue.toUpperCase());
395
+ });
396
+ }
397
+ };
181
398
 
182
- var DxcSelect = function DxcSelect(_ref) {
183
- var value = _ref.value,
184
- name = _ref.name,
185
- onChange = _ref.onChange,
186
- label = _ref.label,
187
- _ref$required = _ref.required,
188
- required = _ref$required === void 0 ? false : _ref$required,
399
+ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
400
+ var _ref3;
401
+
402
+ var _ref$label = _ref.label,
403
+ label = _ref$label === void 0 ? "" : _ref$label,
404
+ _ref$name = _ref.name,
405
+ name = _ref$name === void 0 ? "" : _ref$name,
406
+ value = _ref.value,
407
+ options = _ref.options,
408
+ _ref$helperText = _ref.helperText,
409
+ helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
410
+ _ref$placeholder = _ref.placeholder,
411
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
189
412
  _ref$disabled = _ref.disabled,
190
413
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
191
- _ref$invalid = _ref.invalid,
192
- invalid = _ref$invalid === void 0 ? false : _ref$invalid,
193
- _ref$options = _ref.options,
194
- options = _ref$options === void 0 ? [] : _ref$options,
195
- _ref$iconPosition = _ref.iconPosition,
196
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
414
+ _ref$optional = _ref.optional,
415
+ optional = _ref$optional === void 0 ? false : _ref$optional,
416
+ _ref$searchable = _ref.searchable,
417
+ searchable = _ref$searchable === void 0 ? false : _ref$searchable,
197
418
  _ref$multiple = _ref.multiple,
198
419
  multiple = _ref$multiple === void 0 ? false : _ref$multiple,
420
+ onChange = _ref.onChange,
421
+ onBlur = _ref.onBlur,
422
+ _ref$error = _ref.error,
423
+ error = _ref$error === void 0 ? "" : _ref$error,
199
424
  margin = _ref.margin,
200
425
  _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]);
426
+ size = _ref$size === void 0 ? "medium" : _ref$size,
427
+ _ref$tabIndex = _ref.tabIndex,
428
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
429
+
430
+ var _useState = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
431
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
432
+ selectId = _useState2[0];
433
+
434
+ var selectLabelId = "label-".concat(selectId);
435
+
436
+ var _useState3 = (0, _react.useState)(multiple ? [] : ""),
437
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
438
+ innerValue = _useState4[0],
439
+ setInnerValue = _useState4[1];
440
+
441
+ var _useState5 = (0, _react.useState)(""),
442
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
443
+ searchValue = _useState6[0],
444
+ setSearchValue = _useState6[1];
445
+
446
+ var _useState7 = (0, _react.useState)(-1),
447
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
448
+ visualFocusIndex = _useState8[0],
449
+ changeVisualFocusIndex = _useState8[1];
450
+
451
+ var _useState9 = (0, _react.useState)(false),
452
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
453
+ isOpen = _useState10[0],
454
+ changeIsOpen = _useState10[1];
455
+
456
+ var selectContainerRef = (0, _react.useRef)(null);
457
+ var selectSearchInputRef = (0, _react.useRef)(null);
458
+ var selectOptionsListRef = (0, _react.useRef)(null);
459
+ var colorsTheme = (0, _useTheme["default"])();
460
+ var filteredOptions = (0, _react.useMemo)(function () {
461
+ return filterOptionsBySearchValue(options, searchValue);
462
+ }, [options, searchValue]);
463
+ var optionalEmptyOption = {
464
+ label: placeholder,
465
+ value: ""
466
+ };
206
467
 
207
- var _useState = (0, _react.useState)(multiple && [] || ""),
208
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
209
- selectedValue = _useState2[0],
210
- setSelectedValue = _useState2[1];
468
+ var notOptionalCheck = function notOptionalCheck(value) {
469
+ return value === "" && !optional;
470
+ };
211
471
 
212
- var selectValues = _objectSpread({
213
- width: "auto"
214
- }, colorsTheme.select);
472
+ var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
473
+ return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
474
+ };
215
475
 
216
- var classes = useStyles(selectValues);
476
+ var canBeOpenOptions = function canBeOpenOptions() {
477
+ return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
478
+ };
217
479
 
218
- var handleSelectChange = function handleSelectChange(selectedOption) {
219
- if (multiple) {
220
- setSelectedValue(selectedOption.target.value);
480
+ var groupsHaveOptions = function groupsHaveOptions() {
481
+ return options[0].hasOwnProperty("options") ? options[0].options ? options.some(function (groupOption) {
482
+ return groupOption.options.length > 0;
483
+ }) : false : true;
484
+ };
221
485
 
222
- if (typeof onChange === "function") {
223
- onChange(selectedOption.target.value);
224
- }
486
+ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions() {
487
+ return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
488
+ var _groupOption$options;
489
+
490
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
491
+ }) : true;
492
+ };
493
+
494
+ var openOptions = function openOptions() {
495
+ if (!isOpen && canBeOpenOptions()) changeIsOpen(true);
496
+ };
497
+
498
+ var closeOptions = function closeOptions() {
499
+ if (isOpen) {
500
+ changeIsOpen(false);
501
+ changeVisualFocusIndex(-1);
502
+ }
503
+ };
504
+
505
+ var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
506
+ if (multiple) {
507
+ var _res, _res2;
508
+
509
+ var res;
510
+ if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) value ? res = value.filter(function (optionVal) {
511
+ return optionVal !== newOption.value;
512
+ }) : setInnerValue(function (previous) {
513
+ return previous.filter(function (optionVal) {
514
+ return optionVal !== newOption.value;
515
+ });
516
+ });else value ? res = [].concat((0, _toConsumableArray2["default"])(value), [newOption.value]) : setInnerValue(function (previous) {
517
+ return [].concat((0, _toConsumableArray2["default"])(previous), [newOption.value]);
518
+ });
519
+ if (notOptionalMultipleCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
520
+ value: (_res = res) !== null && _res !== void 0 ? _res : innerValue,
521
+ error: getNotOptionalErrorMessage()
522
+ });else onChange === null || onChange === void 0 ? void 0 : onChange({
523
+ value: (_res2 = res) !== null && _res2 !== void 0 ? _res2 : innerValue,
524
+ error: null
525
+ });
225
526
  } else {
226
- setSelectedValue(selectedOption.target.value);
527
+ value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
528
+ if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
529
+ value: newOption.value,
530
+ error: getNotOptionalErrorMessage()
531
+ });else onChange === null || onChange === void 0 ? void 0 : onChange({
532
+ value: newOption.value,
533
+ error: null
534
+ });
535
+ }
536
+ };
227
537
 
228
- if (typeof onChange === "function") {
229
- onChange(selectedOption.target.value);
230
- }
538
+ var handleSelectOnClick = function handleSelectOnClick() {
539
+ if (isOpen) {
540
+ closeOptions();
541
+ setSearchValue("");
542
+ } else openOptions();
543
+
544
+ searchable && selectSearchInputRef.current.focus();
545
+ };
546
+
547
+ var handleSelectOnFocus = function handleSelectOnFocus() {
548
+ searchable && selectSearchInputRef.current.focus();
549
+ };
550
+
551
+ var handleSelectOnBlur = function handleSelectOnBlur(event) {
552
+ // focus leaves container (outside, not to childs)
553
+ if (!event.currentTarget.contains(event.relatedTarget)) {
554
+ closeOptions();
555
+ setSearchValue("");
556
+ if (notOptionalCheck(value !== null && value !== void 0 ? value : innerValue)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
557
+ value: value !== null && value !== void 0 ? value : innerValue,
558
+ error: getNotOptionalErrorMessage()
559
+ });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
560
+ value: value !== null && value !== void 0 ? value : innerValue,
561
+ error: null
562
+ });
231
563
  }
232
564
  };
233
565
 
234
- var getLabelForSingleSelect = function getLabelForSingleSelect(selected) {
235
- var selectedItem = options.filter(function (option) {
236
- return option.value === selected;
237
- })[0];
238
- return _react["default"].createElement(SelectedIconContainer, {
239
- iconPosition: iconPosition,
240
- multiple: multiple,
241
- label: selectedItem && selectedItem.label,
242
- 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,
247
- iconPosition: iconPosition,
248
- disabled: disabled
249
- }, selectedItem && selectedItem.label));
250
- };
251
-
252
- var getSelectedValuesWithLabel = function getSelectedValuesWithLabel(optionsList, selected) {
253
- return _react["default"].createElement(MultipleLabelSelected, null, optionsList.filter(function (x) {
254
- return selected.includes(x.value);
255
- }).map(function (optionToRender) {
256
- return optionToRender.label;
257
- }).join(", "));
258
- };
259
-
260
- var getSelectedValuesWithIcons = function getSelectedValuesWithIcons(optionsList, selected) {
261
- return options.filter(function (x) {
262
- return selected.includes(x.value);
263
- }).map(function (optionToRender) {
264
- return getLabelForSingleSelect(optionToRender.value);
566
+ var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
567
+ switch (event.keyCode) {
568
+ case 40:
569
+ // Arrow Down
570
+ event.preventDefault();
571
+ changeVisualFocusIndex(function (visualFocusIndex) {
572
+ if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
573
+ });
574
+ openOptions();
575
+ break;
576
+
577
+ case 38:
578
+ // Arrow Up
579
+ event.preventDefault();
580
+ changeVisualFocusIndex(function (visualFocusIndex) {
581
+ return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
582
+ });
583
+ openOptions();
584
+ break;
585
+
586
+ case 27:
587
+ // Esc
588
+ event.preventDefault();
589
+ closeOptions();
590
+ setSearchValue("");
591
+ break;
592
+
593
+ case 13:
594
+ // Enter
595
+ if (isOpen) {
596
+ var accLength = optional && !multiple ? 1 : 0;
597
+
598
+ if (searchable) {
599
+ if (filteredOptions.length > 0) {
600
+ if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions()) handleSelectChangeValue(optionalEmptyOption);else filteredOptions[0].options ? filteredGroupsHaveOptions() && filteredOptions.some(function (groupOption) {
601
+ var groupLength = accLength + groupOption.options.length;
602
+ groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
603
+ accLength = groupLength;
604
+ return groupLength > visualFocusIndex;
605
+ }) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
606
+ }
607
+ } else {
608
+ if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalEmptyOption);else options[0].options ? options.some(function (groupOption) {
609
+ var groupLength = accLength + groupOption.options.length;
610
+ groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
611
+ accLength = groupLength;
612
+ return groupLength > visualFocusIndex;
613
+ }) : handleSelectChangeValue(options[visualFocusIndex - accLength]);
614
+ }
615
+
616
+ !multiple && closeOptions();
617
+ setSearchValue("");
618
+ }
619
+
620
+ break;
621
+ }
622
+ };
623
+
624
+ var handleSearchIOnChange = function handleSearchIOnChange(event) {
625
+ setSearchValue(event.target.value);
626
+ changeVisualFocusIndex(-1);
627
+ openOptions();
628
+ };
629
+
630
+ var handleClearActionOnClick = function handleClearActionOnClick(event) {
631
+ event.stopPropagation();
632
+ setSearchValue("");
633
+ };
634
+
635
+ var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
636
+ event.stopPropagation();
637
+ value !== null && value !== void 0 ? value : setInnerValue([]);
638
+ onChange === null || onChange === void 0 ? void 0 : onChange({
639
+ value: [],
640
+ error: getNotOptionalErrorMessage()
265
641
  });
642
+ selectContainerRef.current.focus();
266
643
  };
267
644
 
268
- var labelForMultipleSelect = function labelForMultipleSelect(selected) {
269
- return options.findIndex(function (option) {
270
- return !option.label;
271
- }) !== -1 ? getSelectedValuesWithIcons(options, selected) : getSelectedValuesWithLabel(options, selected);
645
+ var getLastOptionIndex = function getLastOptionIndex() {
646
+ var last = 0;
647
+
648
+ var reducer = function reducer(acc, current) {
649
+ var _current$options;
650
+
651
+ return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
652
+ };
653
+
654
+ if (searchable && filteredOptions.length > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
655
+ return optional && !multiple ? last + 1 : last;
272
656
  };
273
657
 
274
- var getRenderValue = function getRenderValue(selected) {
275
- return multiple && labelForMultipleSelect(selected) || getLabelForSingleSelect(selected);
658
+ var lastOptionIndex = (0, _react.useMemo)(function () {
659
+ return getLastOptionIndex();
660
+ }, [searchable, optional, multiple, searchable ? filteredOptions : options]);
661
+
662
+ var getSelectedOption = function getSelectedOption() {
663
+ var val = value !== null && value !== void 0 ? value : innerValue;
664
+ var selectedOption = multiple ? [] : "";
665
+
666
+ if (multiple) {
667
+ if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
668
+ options.forEach(function (option) {
669
+ if (option.options) {
670
+ option.options.forEach(function (singleOption) {
671
+ if (val.includes(singleOption.value)) selectedOption.push(singleOption);
672
+ });
673
+ } else if (val.includes(option.value)) selectedOption.push(option);
674
+ });
675
+ }
676
+ } else {
677
+ if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
678
+ options.forEach(function (option) {
679
+ if (option.options) {
680
+ option.options.forEach(function (singleOption) {
681
+ if (singleOption.value === val) selectedOption = singleOption;
682
+ });
683
+ } else if (option.value === val) selectedOption = option;
684
+ });
685
+ }
686
+ }
687
+
688
+ return selectedOption;
276
689
  };
277
690
 
278
- var isChecked = function isChecked(checkedValue, value, option) {
279
- if (value !== undefined) {
280
- var result = false;
281
- value.map(function (val) {
282
- if (val === option.value) {
283
- result = true;
284
- }
691
+ var selectedOption = (0, _react.useMemo)(function () {
692
+ return getSelectedOption();
693
+ }, [options, multiple, value !== null && value !== void 0 ? value : innerValue]);
694
+ (0, _react.useLayoutEffect)(function () {
695
+ var _selectOptionsListRef;
696
+
697
+ var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
698
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : visualFocusedOptionEl.scrollIntoView({
699
+ block: "nearest",
700
+ inline: "start"
701
+ });
702
+ }, [visualFocusIndex]);
703
+ (0, _react.useLayoutEffect)(function () {
704
+ if (isOpen && !multiple) {
705
+ var listEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : selectOptionsListRef.current;
706
+ var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
707
+ listEl === null || listEl === void 0 ? void 0 : listEl.scrollTo({
708
+ top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
709
+ });
710
+ }
711
+ }, [isOpen]);
712
+
713
+ var Option = function Option(_ref2) {
714
+ var option = _ref2.option,
715
+ index = _ref2.index,
716
+ _ref2$isGroupedOption = _ref2.isGroupedOption,
717
+ isGroupedOption = _ref2$isGroupedOption === void 0 ? false : _ref2$isGroupedOption;
718
+ var isSelected = multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(option.value) : (value !== null && value !== void 0 ? value : innerValue) === option.value;
719
+ var isLastOption = index === lastOptionIndex;
720
+ return _react["default"].createElement(OptionItem, {
721
+ onClick: function onClick(event) {
722
+ // left mouse button only
723
+ handleSelectChangeValue(option);
724
+ !multiple && closeOptions();
725
+ setSearchValue("");
726
+ },
727
+ visualFocused: visualFocusIndex === index,
728
+ selected: isSelected,
729
+ "aria-selected": isSelected && "true",
730
+ role: "option"
731
+ }, _react["default"].createElement(StyledOption, {
732
+ visualFocused: visualFocusIndex === index,
733
+ selected: isSelected,
734
+ last: isLastOption,
735
+ grouped: isGroupedOption,
736
+ multiple: multiple
737
+ }, multiple && _react["default"].createElement(_Checkbox["default"], {
738
+ tabIndex: -1,
739
+ checked: isSelected
740
+ }), option.icon && _react["default"].createElement(OptionIcon, {
741
+ selected: isSelected
742
+ }, typeof option.icon === "string" ? _react["default"].createElement(OptionIconImg, {
743
+ src: option.icon
744
+ }) : option.icon), _react["default"].createElement(OptionContent, {
745
+ grouped: isGroupedOption,
746
+ hasIcon: option.icon,
747
+ multiple: multiple
748
+ }, _react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && _react["default"].createElement(OptionSelectedIndicator, null, selectIcons.selected))));
749
+ };
750
+
751
+ var global_index = optional && !multiple ? 0 : -1; // index for options (not groups), starting from 0 to options.length -1
752
+
753
+ var mapOptionFunc = function mapOptionFunc(option) {
754
+ if (option.options) {
755
+ return _react["default"].createElement(_react["default"].Fragment, null, option.options.length > 0 && _react["default"].createElement(OptionGroupLabel, null, option.label), option.options.map(function (singleOption) {
756
+ global_index++;
757
+ return _react["default"].createElement(Option, {
758
+ option: singleOption,
759
+ index: global_index,
760
+ isGroupedOption: true
761
+ });
762
+ }));
763
+ } else {
764
+ global_index++;
765
+ return _react["default"].createElement(Option, {
766
+ option: option,
767
+ index: global_index
285
768
  });
286
- return result;
287
- } else if (checkedValue) {
288
- return checkedValue.findIndex(function (element) {
289
- return element === option.value;
290
- }) !== -1 || false;
291
769
  }
292
770
  };
293
771
 
294
772
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
295
- theme: colorsTheme
296
- }, _react["default"].createElement(SelectContainer, {
773
+ theme: colorsTheme.select
774
+ }, _react["default"].createElement(DxcSelectContainer, {
297
775
  margin: margin,
298
776
  size: size,
299
- invalid: invalid
300
- }, _react["default"].createElement(_FormControl["default"], null, _react["default"].createElement(_InputLabel["default"], {
777
+ ref: ref
778
+ }, _react["default"].createElement(Label, {
779
+ id: selectLabelId,
780
+ disabled: disabled,
781
+ onClick: function onClick() {
782
+ selectContainerRef.current.focus();
783
+ }
784
+ }, label, " ", optional && _react["default"].createElement(OptionalLabel, null, "(Optional)")), _react["default"].createElement(HelperText, {
785
+ disabled: disabled
786
+ }, helperText), _react["default"].createElement(SelectContainer, {
787
+ id: selectId,
788
+ disabled: disabled,
789
+ error: error,
790
+ onBlur: handleSelectOnBlur,
791
+ onClick: handleSelectOnClick,
792
+ onFocus: handleSelectOnFocus,
793
+ onKeyDown: handleSelectOnKeyDown,
794
+ ref: selectContainerRef,
795
+ tabIndex: tabIndex,
796
+ "aria-labelledby": selectLabelId
797
+ }, multiple && selectedOption.length > 0 && _react["default"].createElement(SelectionIndicator, null, _react["default"].createElement(SelectionNumber, {
301
798
  disabled: disabled
302
- }, required && _react["default"].createElement(_RequiredComponent["default"], null), label), _react["default"].createElement(_Select["default"], {
303
- tabIndex: "0",
799
+ }, selectedOption.length, " "), _react["default"].createElement(ClearOptionsAction, {
800
+ disabled: disabled,
801
+ onClick: handleClearOptionsActionOnClick,
802
+ tabIndex: -1,
803
+ title: "Clear selected options",
804
+ "aria-label": "Clear selected options"
805
+ }, selectIcons.clear)), _react["default"].createElement(SearchableValueContainer, null, _react["default"].createElement(ValueInput, {
304
806
  name: name,
305
- multiple: multiple,
306
- renderValue: getRenderValue,
307
- onChange: handleSelectChange,
308
- value: value !== undefined ? value : selectedValue,
807
+ value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(", ") : value !== null && value !== void 0 ? value : innerValue,
808
+ readOnly: true
809
+ }), searchable && _react["default"].createElement(SearchInput, {
810
+ value: searchValue,
309
811
  disabled: disabled,
310
- MenuProps: {
311
- classes: {
312
- paper: classes.dropdownStyle,
313
- list: classes.itemList
314
- },
315
- getContentAnchorEl: null,
316
- anchorOrigin: {
317
- vertical: "bottom",
318
- horizontal: "left"
319
- }
320
- }
321
- }, options.map(function (option) {
322
- return _react["default"].createElement(_MenuItem["default"], {
323
- id: option.value,
324
- value: option.value,
325
- disableRipple: true,
326
- 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
- })))));
338
- };
812
+ onChange: handleSearchIOnChange,
813
+ ref: selectSearchInputRef,
814
+ autoComplete: "off",
815
+ autoCorrect: "off"
816
+ }), (!searchable || searchValue === "") && (multiple ? _react["default"].createElement(SelectedOption, {
817
+ disabled: disabled,
818
+ atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || isOpen
819
+ }, _react["default"].createElement(OptionLabel, null, selectedOption.map(function (option) {
820
+ return option.label;
821
+ }).join(", ")), selectedOption.length === 0 && placeholder) : _react["default"].createElement(SelectedOption, {
822
+ disabled: disabled,
823
+ atBackground: !(value !== null && value !== void 0 ? value : innerValue) || isOpen
824
+ }, _react["default"].createElement(OptionLabel, null, (_ref3 = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _ref3 !== void 0 ? _ref3 : placeholder)))), !disabled && error && _react["default"].createElement(ErrorIcon, null, selectIcons.error), searchable && searchValue.length > 0 && _react["default"].createElement(ClearAction, {
825
+ onClick: handleClearActionOnClick,
826
+ tabIndex: -1,
827
+ title: "Clear search text",
828
+ "aria-label": "Clear search text"
829
+ }, selectIcons.clear), _react["default"].createElement(CollapseIndicator, {
830
+ disabled: disabled
831
+ }, isOpen ? selectIcons.arrowUp : selectIcons.arrowDown), isOpen && _react["default"].createElement(OptionsList, {
832
+ onClick: function onClick(event) {
833
+ event.stopPropagation();
834
+ },
835
+ onMouseDown: function onMouseDown(event) {
836
+ event.preventDefault();
837
+ },
838
+ ref: selectOptionsListRef,
839
+ role: "listbox",
840
+ "aria-label": label
841
+ }, searchable && (filteredOptions.length === 0 || !filteredGroupsHaveOptions()) ? _react["default"].createElement(OptionsSystemMessage, null, _react["default"].createElement(NoMatchesFoundIcon, null, selectIcons.searchOff), "No matches found") : optional && !multiple && _react["default"].createElement(Option, {
842
+ option: optionalEmptyOption,
843
+ index: 0
844
+ }), searchable ? filteredOptions.map(mapOptionFunc) : options.map(mapOptionFunc))), !disabled && _react["default"].createElement(Error, null, error)));
845
+ });
339
846
 
340
847
  var sizes = {
341
- small: "60px",
342
- medium: "240px",
848
+ small: "240px",
849
+ medium: "360px",
343
850
  large: "480px",
344
851
  fillParent: "100%"
345
852
  };
346
853
 
347
854
  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];
855
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
353
856
  };
354
857
 
355
- var MultipleLabelSelected = _styledComponents["default"].div(_templateObject());
858
+ var DxcSelectContainer = _styledComponents["default"].div(_templateObject(), function (props) {
859
+ return calculateWidth(props.margin, props.size);
860
+ }, function (props) {
861
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
862
+ }, function (props) {
863
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
864
+ }, function (props) {
865
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
866
+ }, function (props) {
867
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
868
+ }, function (props) {
869
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
870
+ });
356
871
 
357
- var LabelCont = _styledComponents["default"].span(_templateObject2());
872
+ var Label = _styledComponents["default"].span(_templateObject2(), function (props) {
873
+ return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
874
+ }, function (props) {
875
+ return props.theme.fontFamily;
876
+ }, function (props) {
877
+ return props.theme.labelFontSize;
878
+ }, function (props) {
879
+ return props.theme.labelFontStyle;
880
+ }, function (props) {
881
+ return props.theme.labelFontWeight;
882
+ }, function (props) {
883
+ return props.theme.labelLineHeight;
884
+ });
885
+
886
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3(), function (props) {
887
+ return props.theme.optionalLabelFontWeight;
888
+ });
358
889
 
359
- var SelectedIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
360
- return props.iconPosition === "before" && "row" || "row-reverse";
890
+ var HelperText = _styledComponents["default"].span(_templateObject4(), function (props) {
891
+ return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
361
892
  }, function (props) {
362
- return props.iconPosition === "before" && "flex-start" || "flex-end";
893
+ return props.theme.fontFamily;
363
894
  }, function (props) {
364
- return props.multiple && props.label && "15px" || "0px";
895
+ return props.theme.helperTextFontSize;
365
896
  }, function (props) {
366
- return !props.multiple && "calc(100% - 24px)" || "auto";
897
+ return props.theme.helperTextFontStyle;
367
898
  }, function (props) {
368
- return props.iconPosition === "after" && (props.label !== "" || props.label === undefined) && "content:','";
899
+ return props.theme.helperTextFontWeight;
369
900
  }, function (props) {
370
- return props.iconPosition === "before" && (props.label !== "" || props.label === undefined) && "content:','";
901
+ return props.theme.helperTextLineHeight;
371
902
  });
372
903
 
373
- var SelectedLabelContainer = _styledComponents["default"].span(_templateObject4(), function (props) {
374
- return (props.iconPosition === "after" || !props.iconSrc) && "0px" || "10px";
904
+ var SelectContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
905
+ return props.disabled ? props.theme.disabledInputBorderColor : props.theme.enabledInputBorderColor;
906
+ }, function (props) {
907
+ return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.theme.errorInputBorderColor, ";\n ");
908
+ }, function (props) {
909
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
375
910
  }, function (props) {
376
- return (props.iconPosition === "before" || !props.iconSrc) && "0px" || "10px";
911
+ return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.theme.hoverInputBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.theme.hoverInputErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusInputBorderColor, ";\n }\n ");
377
912
  });
378
913
 
379
- var OptionContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
380
- return props.iconPosition === "before" && "row" || "row-reverse";
914
+ var SelectionIndicator = _styledComponents["default"].span(_templateObject6(), function (props) {
915
+ return props.theme.selectionIndicatorBorderColor;
381
916
  });
382
917
 
383
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
384
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
918
+ var SelectionNumber = _styledComponents["default"].span(_templateObject7(), function (props) {
919
+ return props.theme.selectionIndicatorBackgroundColor;
385
920
  }, function (props) {
386
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
921
+ return props.theme.selectionIndicatorBorderColor;
922
+ }, function (props) {
923
+ return props.disabled ? props.theme.disabledColor : props.theme.selectionIndicatorFontColor;
924
+ }, function (props) {
925
+ return props.theme.fontFamily;
926
+ }, function (props) {
927
+ return props.theme.selectionIndicatorFontSize;
928
+ }, function (props) {
929
+ return props.theme.selectionIndicatorFontStyle;
930
+ }, function (props) {
931
+ return props.theme.selectionIndicatorFontWeight;
932
+ }, function (props) {
933
+ return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
387
934
  });
388
935
 
389
- var SelectContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
390
- return calculateWidth(props.margin, props.size);
936
+ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8(), function (props) {
937
+ return props.theme.fontFamily;
391
938
  }, function (props) {
392
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
939
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
393
940
  }, function (props) {
394
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
941
+ return props.theme.enabledSelectionIndicatorActionBackgroundColor;
395
942
  }, function (props) {
396
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
943
+ return props.disabled ? props.theme.disabledColor : props.theme.enabledSelectionIndicatorActionIconColor;
397
944
  }, function (props) {
398
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
945
+ return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.hoverSelectionIndicatorActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.activeSelectionIndicatorActionIconColor, ";\n }\n ");
946
+ });
947
+
948
+ var SearchableValueContainer = _styledComponents["default"].div(_templateObject9());
949
+
950
+ var SelectedOption = _styledComponents["default"].span(_templateObject10(), function (props) {
951
+ if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
399
952
  }, function (props) {
400
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
953
+ return props.theme.fontFamily;
401
954
  }, function (props) {
402
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
955
+ return props.theme.valueFontSize;
403
956
  }, function (props) {
404
- return props.theme.select.color;
957
+ return props.theme.valueFontStyle;
405
958
  }, function (props) {
406
- return props.theme.select.disabled;
959
+ return props.theme.valueFontWeight;
960
+ });
961
+
962
+ var ValueInput = _styledComponents["default"].input(_templateObject11());
963
+
964
+ var SearchInput = _styledComponents["default"].input(_templateObject12(), function (props) {
965
+ return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
407
966
  }, function (props) {
408
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
967
+ return props.theme.fontFamily;
409
968
  }, function (props) {
410
- return props.theme.select.color;
969
+ return props.theme.valueFontSize;
411
970
  }, function (props) {
412
- return props.theme.select.color;
971
+ return props.theme.valueFontStyle;
413
972
  }, function (props) {
414
- return props.theme.select.focusColor;
973
+ return props.theme.valueFontWeight;
974
+ });
975
+
976
+ var ErrorIcon = _styledComponents["default"].span(_templateObject13(), function (props) {
977
+ return props.theme.errorColor;
978
+ });
979
+
980
+ var Error = _styledComponents["default"].span(_templateObject14(), function (props) {
981
+ return props.theme.errorColor;
982
+ }, function (props) {
983
+ return props.theme.fontFamily;
984
+ }, function (props) {
985
+ return props.theme.errorMessageFontSize;
986
+ }, function (props) {
987
+ return props.theme.errorMessagetFontStyle;
415
988
  }, function (props) {
416
- return props.theme.select.disabled;
989
+ return props.theme.errorMessageFontWeight;
417
990
  }, function (props) {
418
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
991
+ return props.theme.errorMessagetLineHeight;
992
+ });
993
+
994
+ var CollapseIndicator = _styledComponents["default"].span(_templateObject15(), function (props) {
995
+ return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
996
+ });
997
+
998
+ var ClearAction = _styledComponents["default"].button(_templateObject16(), function (props) {
999
+ return props.theme.fontFamily;
419
1000
  }, function (props) {
420
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
1001
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
421
1002
  }, function (props) {
422
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
1003
+ return props.disabled ? props.theme.disabledActionBackgroundColor : props.theme.actionBackgroundColor;
423
1004
  }, function (props) {
424
- return props.invalid === true ? props.theme.select.error : props.theme.select.color;
1005
+ return props.disabled ? props.theme.disabledColor : props.theme.actionIconColor;
425
1006
  }, function (props) {
426
- return props.theme.select.color;
1007
+ return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverActionBackgroundColor, ";\n color: ").concat(props.theme.hoverActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeActionBackgroundColor, ";\n color: ").concat(props.theme.activeActionIconColor, ";\n }\n ");
1008
+ });
1009
+
1010
+ var OptionsList = _styledComponents["default"].ul(_templateObject17(), function (props) {
1011
+ return props.theme.itemListBackgroundColor;
1012
+ }, function (props) {
1013
+ return props.theme.itemListBorderColor;
1014
+ }, function (props) {
1015
+ return props.theme.listItemFontColor;
1016
+ }, function (props) {
1017
+ return props.theme.fontFamily;
1018
+ }, function (props) {
1019
+ return props.theme.listItemFontSize;
1020
+ }, function (props) {
1021
+ return props.theme.listItemFontStyle;
1022
+ }, function (props) {
1023
+ return props.theme.listItemFontWeight;
1024
+ });
1025
+
1026
+ var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18(), function (props) {
1027
+ return props.theme.systemMessageFontColor;
1028
+ });
1029
+
1030
+ var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19());
1031
+
1032
+ var OptionGroupLabel = _styledComponents["default"].li(_templateObject20(), function (props) {
1033
+ return props.theme.listGroupItemFontWeight;
1034
+ });
1035
+
1036
+ var OptionItem = _styledComponents["default"].li(_templateObject21(), function (props) {
1037
+ return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListItemBorderColor, ";");
1038
+ }, function (props) {
1039
+ return props.selected && "background-color: ".concat(props.theme.selectedListItemBackgroundColor);
1040
+ }, function (props) {
1041
+ return props.selected ? "background-color: ".concat(props.theme.selectedHoverListItemBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListItemBackgroundColor, ";");
1042
+ }, function (props) {
1043
+ return props.selected ? "background-color: ".concat(props.theme.selectedActiveListItemBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListItemBackgroundColor, ";");
1044
+ });
1045
+
1046
+ var StyledOption = _styledComponents["default"].span(_templateObject22(), function (props) {
1047
+ return props.grouped && props.multiple && "padding-left: 16px;";
1048
+ }, function (props) {
1049
+ return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listItemDividerColor);
1050
+ });
1051
+
1052
+ var OptionContent = _styledComponents["default"].span(_templateObject23(), function (props) {
1053
+ return props.grouped && !props.multiple && !props.hasIcon && "padding-left: 16px;";
1054
+ });
1055
+
1056
+ var OptionIcon = _styledComponents["default"].span(_templateObject24(), function (props) {
1057
+ return props.theme.listItemIconColor;
1058
+ });
1059
+
1060
+ var OptionIconImg = _styledComponents["default"].img(_templateObject25());
1061
+
1062
+ var OptionLabel = _styledComponents["default"].span(_templateObject26());
1063
+
1064
+ var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject27(), function (props) {
1065
+ return props.theme.selectedListItemIconColor;
427
1066
  });
428
1067
 
429
- DxcSelect.propTypes = {
430
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
431
- label: _propTypes["default"].string,
432
- name: _propTypes["default"].string,
433
- value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]))]),
434
- disabled: _propTypes["default"].bool,
435
- required: _propTypes["default"].bool,
436
- invalid: _propTypes["default"].bool,
437
- iconPosition: _propTypes["default"].oneOf(["after", "before"]),
438
- onChange: _propTypes["default"].func,
439
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
440
- value: _propTypes["default"].any.isRequired,
441
- label: _propTypes["default"].string,
442
- iconSrc: _propTypes["default"].string
443
- })),
444
- multiple: _propTypes["default"].bool,
445
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
446
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
447
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
448
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
449
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
450
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
451
- };
452
1068
  var _default = DxcSelect;
453
1069
  exports["default"] = _default;