@dxc-technology/halstack-react 0.0.0-9ae76ab → 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 (227) hide show
  1. package/README.md +1 -1
  2. package/dist/BackgroundColorContext.js +46 -0
  3. package/dist/ThemeContext.js +213 -153
  4. package/dist/V3Select/V3Select.js +549 -0
  5. package/dist/V3Select/index.d.ts +27 -0
  6. package/dist/V3Textarea/V3Textarea.js +264 -0
  7. package/dist/V3Textarea/index.d.ts +27 -0
  8. package/dist/accordion/Accordion.js +131 -46
  9. package/dist/accordion/index.d.ts +28 -0
  10. package/dist/accordion-group/AccordionGroup.js +34 -4
  11. package/dist/accordion-group/index.d.ts +16 -0
  12. package/dist/alert/Alert.js +180 -80
  13. package/dist/alert/index.d.ts +51 -0
  14. package/dist/badge/Badge.js +28 -7
  15. package/dist/box/Box.js +29 -18
  16. package/dist/box/index.d.ts +25 -0
  17. package/dist/button/Button.js +62 -23
  18. package/dist/button/index.d.ts +24 -0
  19. package/dist/card/Card.js +72 -35
  20. package/dist/card/index.d.ts +22 -0
  21. package/dist/checkbox/Checkbox.js +98 -28
  22. package/dist/checkbox/index.d.ts +24 -0
  23. package/dist/chip/Chip.js +92 -32
  24. package/dist/chip/index.d.ts +22 -0
  25. package/dist/common/utils.js +2 -22
  26. package/dist/common/variables.js +1404 -179
  27. package/dist/date/Date.js +65 -38
  28. package/dist/date/index.d.ts +27 -0
  29. package/dist/date-input/DateInput.js +400 -0
  30. package/dist/date-input/index.d.ts +95 -0
  31. package/dist/dialog/Dialog.js +54 -31
  32. package/dist/dialog/index.d.ts +18 -0
  33. package/dist/dropdown/Dropdown.js +173 -75
  34. package/dist/dropdown/index.d.ts +26 -0
  35. package/dist/file-input/FileInput.js +644 -0
  36. package/dist/file-input/FileItem.js +287 -0
  37. package/dist/file-input/index.d.ts +81 -0
  38. package/dist/footer/Footer.js +89 -34
  39. package/dist/footer/Icons.js +77 -0
  40. package/dist/footer/index.d.ts +25 -0
  41. package/dist/header/Header.js +190 -88
  42. package/dist/header/Icons.js +59 -0
  43. package/dist/header/index.d.ts +25 -0
  44. package/dist/heading/Heading.js +93 -16
  45. package/dist/heading/index.d.ts +17 -0
  46. package/dist/input-text/Icons.js +22 -0
  47. package/dist/input-text/InputText.js +247 -101
  48. package/dist/input-text/index.d.ts +36 -0
  49. package/dist/layout/ApplicationLayout.js +15 -18
  50. package/dist/layout/Icons.js +55 -0
  51. package/dist/link/Link.js +84 -34
  52. package/dist/link/index.d.ts +23 -0
  53. package/dist/main.d.ts +40 -0
  54. package/dist/main.js +72 -16
  55. package/dist/number-input/NumberInput.js +136 -0
  56. package/dist/number-input/NumberInputContext.js +16 -0
  57. package/dist/number-input/index.d.ts +113 -0
  58. package/dist/paginator/Icons.js +66 -0
  59. package/dist/paginator/Paginator.js +68 -32
  60. package/dist/paginator/index.d.ts +20 -0
  61. package/dist/password-input/PasswordInput.js +203 -0
  62. package/dist/password-input/index.d.ts +94 -0
  63. package/dist/progress-bar/ProgressBar.js +91 -33
  64. package/dist/progress-bar/index.d.ts +18 -0
  65. package/dist/radio/Radio.js +30 -11
  66. package/dist/radio/index.d.ts +23 -0
  67. package/dist/resultsetTable/ResultsetTable.js +79 -48
  68. package/dist/resultsetTable/index.d.ts +19 -0
  69. package/dist/select/Select.js +873 -279
  70. package/dist/select/index.d.ts +53 -0
  71. package/dist/sidenav/Sidenav.js +64 -8
  72. package/dist/sidenav/index.d.ts +13 -0
  73. package/dist/slider/Slider.js +212 -65
  74. package/dist/slider/index.d.ts +29 -0
  75. package/dist/spinner/Spinner.js +247 -56
  76. package/dist/spinner/index.d.ts +17 -0
  77. package/dist/switch/Switch.js +51 -19
  78. package/dist/switch/index.d.ts +24 -0
  79. package/dist/table/Table.js +48 -18
  80. package/dist/table/index.d.ts +13 -0
  81. package/dist/tabs/Tabs.js +58 -17
  82. package/dist/tabs/index.d.ts +19 -0
  83. package/dist/tag/Tag.js +68 -35
  84. package/dist/tag/index.d.ts +24 -0
  85. package/dist/text-input/TextInput.js +974 -0
  86. package/dist/text-input/index.d.ts +135 -0
  87. package/dist/textarea/Textarea.js +246 -97
  88. package/dist/textarea/index.d.ts +117 -0
  89. package/dist/toggle/Toggle.js +16 -19
  90. package/dist/toggle/index.d.ts +21 -0
  91. package/dist/toggle-group/ToggleGroup.js +150 -32
  92. package/dist/toggle-group/index.d.ts +21 -0
  93. package/dist/upload/Upload.js +13 -8
  94. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  95. package/dist/upload/buttons-upload/Icons.js +40 -0
  96. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  97. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  98. package/dist/upload/file-upload/FileToUpload.js +64 -33
  99. package/dist/upload/file-upload/Icons.js +66 -0
  100. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  101. package/dist/upload/index.d.ts +15 -0
  102. package/dist/upload/transaction/Icons.js +160 -0
  103. package/dist/upload/transaction/Transaction.js +42 -49
  104. package/dist/upload/transactions/Transactions.js +38 -20
  105. package/dist/wizard/Icons.js +65 -0
  106. package/dist/wizard/Wizard.js +126 -46
  107. package/dist/wizard/index.d.ts +18 -0
  108. package/package.json +10 -12
  109. package/test/AccordionGroup.test.js +16 -0
  110. package/test/Date.test.js +15 -13
  111. package/test/DateInput.test.js +242 -0
  112. package/test/Dropdown.test.js +15 -0
  113. package/test/FileInput.test.js +201 -0
  114. package/test/Footer.test.js +2 -7
  115. package/test/Header.test.js +5 -10
  116. package/test/Heading.test.js +60 -12
  117. package/test/Link.test.js +3 -2
  118. package/test/NumberInput.test.js +259 -0
  119. package/test/Paginator.test.js +1 -1
  120. package/test/PasswordInput.test.js +83 -0
  121. package/test/ResultsetTable.test.js +1 -2
  122. package/test/Slider.test.js +9 -17
  123. package/test/Spinner.test.js +5 -0
  124. package/test/TextInput.test.js +732 -0
  125. package/test/Textarea.test.js +193 -0
  126. package/test/ToggleGroup.test.js +5 -1
  127. package/test/Upload.test.js +1 -1
  128. package/test/{Select.test.js → V3Select.test.js} +56 -36
  129. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  130. package/dist/accordion/Accordion.stories.js +0 -207
  131. package/dist/accordion/readme.md +0 -96
  132. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  133. package/dist/accordion-group/readme.md +0 -70
  134. package/dist/alert/Alert.stories.js +0 -158
  135. package/dist/alert/close.svg +0 -4
  136. package/dist/alert/error.svg +0 -4
  137. package/dist/alert/info.svg +0 -4
  138. package/dist/alert/readme.md +0 -43
  139. package/dist/alert/success.svg +0 -4
  140. package/dist/alert/warning.svg +0 -4
  141. package/dist/button/Button.stories.js +0 -224
  142. package/dist/button/readme.md +0 -93
  143. package/dist/checkbox/Checkbox.stories.js +0 -144
  144. package/dist/checkbox/readme.md +0 -116
  145. package/dist/common/services/example-service.js +0 -10
  146. package/dist/common/services/example-service.test.js +0 -12
  147. package/dist/date/Date.stories.js +0 -205
  148. package/dist/date/calendar.svg +0 -1
  149. package/dist/date/calendar_dark.svg +0 -1
  150. package/dist/date/readme.md +0 -73
  151. package/dist/dialog/Dialog.stories.js +0 -217
  152. package/dist/dialog/readme.md +0 -32
  153. package/dist/dropdown/Dropdown.stories.js +0 -249
  154. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  155. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  156. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  157. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  158. package/dist/dropdown/readme.md +0 -69
  159. package/dist/footer/Footer.stories.js +0 -94
  160. package/dist/footer/dxc_logo_wht.png +0 -0
  161. package/dist/footer/readme.md +0 -41
  162. package/dist/header/Header.stories.js +0 -176
  163. package/dist/header/close_icon.svg +0 -1
  164. package/dist/header/dxc_logo_black.png +0 -0
  165. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  166. package/dist/header/dxc_logo_white.png +0 -0
  167. package/dist/header/hamb_menu_black.svg +0 -1
  168. package/dist/header/hamb_menu_white.svg +0 -1
  169. package/dist/header/readme.md +0 -33
  170. package/dist/input-text/InputText.stories.js +0 -209
  171. package/dist/input-text/error.svg +0 -1
  172. package/dist/input-text/readme.md +0 -91
  173. package/dist/layout/facebook.svg +0 -45
  174. package/dist/layout/linkedin.svg +0 -50
  175. package/dist/layout/twitter.svg +0 -53
  176. package/dist/link/readme.md +0 -51
  177. package/dist/paginator/images/next.svg +0 -3
  178. package/dist/paginator/images/nextPage.svg +0 -3
  179. package/dist/paginator/images/previous.svg +0 -3
  180. package/dist/paginator/images/previousPage.svg +0 -3
  181. package/dist/paginator/readme.md +0 -50
  182. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  183. package/dist/progress-bar/readme.md +0 -63
  184. package/dist/radio/Radio.stories.js +0 -166
  185. package/dist/radio/readme.md +0 -70
  186. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  187. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  188. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  189. package/dist/select/Select.stories.js +0 -235
  190. package/dist/select/readme.md +0 -72
  191. package/dist/slider/Slider.stories.js +0 -241
  192. package/dist/slider/readme.md +0 -64
  193. package/dist/spinner/Spinner.stories.js +0 -183
  194. package/dist/spinner/readme.md +0 -65
  195. package/dist/switch/Switch.stories.js +0 -134
  196. package/dist/switch/readme.md +0 -133
  197. package/dist/tabs/Tabs.stories.js +0 -130
  198. package/dist/tabs/readme.md +0 -78
  199. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  200. package/dist/tabs-for-sections/readme.md +0 -78
  201. package/dist/toggle/Toggle.stories.js +0 -297
  202. package/dist/toggle/readme.md +0 -80
  203. package/dist/toggle-group/readme.md +0 -82
  204. package/dist/upload/Upload.stories.js +0 -72
  205. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  206. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  207. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  208. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  209. package/dist/upload/file-upload/audio-icon.svg +0 -4
  210. package/dist/upload/file-upload/close.svg +0 -4
  211. package/dist/upload/file-upload/file-icon.svg +0 -4
  212. package/dist/upload/file-upload/video-icon.svg +0 -4
  213. package/dist/upload/readme.md +0 -37
  214. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  215. package/dist/upload/transaction/audio-icon.svg +0 -4
  216. package/dist/upload/transaction/error-icon.svg +0 -4
  217. package/dist/upload/transaction/file-icon-err.svg +0 -4
  218. package/dist/upload/transaction/file-icon.svg +0 -4
  219. package/dist/upload/transaction/image-icon-err.svg +0 -4
  220. package/dist/upload/transaction/image-icon.svg +0 -4
  221. package/dist/upload/transaction/success-icon.svg +0 -4
  222. package/dist/upload/transaction/video-icon-err.svg +0 -4
  223. package/dist/upload/transaction/video-icon.svg +0 -4
  224. package/dist/wizard/invalid_icon.svg +0 -6
  225. package/dist/wizard/valid_icon.svg +0 -6
  226. package/dist/wizard/validation-wrong.svg +0 -6
  227. package/test/TabsForSections.test.js +0 -34
@@ -9,46 +9,220 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
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
+ };
45
50
 
46
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
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
+ }
83
+
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
+ };
47
130
 
48
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
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
+ }
143
+
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
+ }
49
223
 
50
224
  function _templateObject8() {
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 }\n &.Mui-focused {\n font-size: 16px;\n color: ", ";\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: 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: ", ";;\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"]);
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"]);
52
226
 
53
227
  _templateObject8 = function _templateObject8() {
54
228
  return data;
@@ -58,7 +232,7 @@ function _templateObject8() {
58
232
  }
59
233
 
60
234
  function _templateObject7() {
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 overflow: hidden;\n opacity: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\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"]);
62
236
 
63
237
  _templateObject7 = function _templateObject7() {
64
238
  return data;
@@ -68,7 +242,7 @@ function _templateObject7() {
68
242
  }
69
243
 
70
244
  function _templateObject6() {
71
- 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"]);
72
246
 
73
247
  _templateObject6 = function _templateObject6() {
74
248
  return data;
@@ -78,7 +252,7 @@ function _templateObject6() {
78
252
  }
79
253
 
80
254
  function _templateObject5() {
81
- 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"]);
82
256
 
83
257
  _templateObject5 = function _templateObject5() {
84
258
  return data;
@@ -88,7 +262,7 @@ function _templateObject5() {
88
262
  }
89
263
 
90
264
  function _templateObject4() {
91
- 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"]);
92
266
 
93
267
  _templateObject4 = function _templateObject4() {
94
268
  return data;
@@ -98,7 +272,7 @@ function _templateObject4() {
98
272
  }
99
273
 
100
274
  function _templateObject3() {
101
- 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"]);
102
276
 
103
277
  _templateObject3 = function _templateObject3() {
104
278
  return data;
@@ -108,7 +282,7 @@ function _templateObject3() {
108
282
  }
109
283
 
110
284
  function _templateObject2() {
111
- 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"]);
112
286
 
113
287
  _templateObject2 = function _templateObject2() {
114
288
  return data;
@@ -118,7 +292,7 @@ function _templateObject2() {
118
292
  }
119
293
 
120
294
  function _templateObject() {
121
- 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"]);
122
296
 
123
297
  _templateObject = function _templateObject() {
124
298
  return data;
@@ -127,349 +301,769 @@ function _templateObject() {
127
301
  return data;
128
302
  }
129
303
 
130
- 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
+ };
131
378
 
132
- 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
+ };
133
382
 
134
- var useStyles = (0, _styles.makeStyles)(function () {
135
- return {
136
- root: function root(props) {
137
- return {
138
- minWidth: props.width
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
+ })
139
391
  };
140
- },
141
- dropdownStyle: function dropdownStyle(props) {
142
- return {
143
- boxShadow: "0px 2px 10px 0px rgba(0, 0, 0, 0.3)",
144
- minWidth: props.width,
145
- width: props.width,
146
- maxHeight: "250px",
147
- "&::-webkit-scrollbar": {
148
- width: "3px",
149
- margin: "5px"
150
- },
151
- "&::-webkit-scrollbar-track": {
152
- borderRadius: "3px",
153
- backgroundColor: props.scrollBarTrackColor
154
- },
155
- "&::-webkit-scrollbar-thumb": {
156
- borderRadius: "3px",
157
- backgroundColor: props.scrollBarThumbColor
158
- },
159
- "& .MuiList-root": {
160
- width: "auto !important",
161
- paddingRight: "0 !important"
162
- }
163
- };
164
- },
165
- itemList: function itemList(props) {
166
- return {
167
- color: props.color,
168
- "&.MuiList-padding": {
169
- paddingBottom: "0px",
170
- paddingTop: "0px"
171
- },
172
- "& li": {
173
- fontSize: "16px",
174
- "&:hover": {
175
- backgroundColor: props.hoveredOptionBackgroundColor,
176
- color: props.color
177
- },
178
- "&:active": {
179
- backgroundColor: props.selectedOptionBackgroundColor + props.hoverOptionBackgroundColor,
180
- color: props.color
181
- },
182
- "&.MuiListItem-root.Mui-selected": {
183
- backgroundColor: props.selectedOptionBackgroundColor,
184
- color: props.color
185
- }
186
- }
187
- };
188
- }
189
- };
190
- });
392
+ return group;
393
+ });else return options.filter(function (option) {
394
+ return option.label.toUpperCase().includes(searchValue.toUpperCase());
395
+ });
396
+ }
397
+ };
191
398
 
192
- var DxcSelect = function DxcSelect(_ref) {
193
- var value = _ref.value,
194
- name = _ref.name,
195
- onChange = _ref.onChange,
196
- label = _ref.label,
197
- _ref$required = _ref.required,
198
- 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,
199
412
  _ref$disabled = _ref.disabled,
200
413
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
201
- _ref$invalid = _ref.invalid,
202
- invalid = _ref$invalid === void 0 ? false : _ref$invalid,
203
- _ref$options = _ref.options,
204
- options = _ref$options === void 0 ? [] : _ref$options,
205
- _ref$iconPosition = _ref.iconPosition,
206
- 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,
207
418
  _ref$multiple = _ref.multiple,
208
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,
209
424
  margin = _ref.margin,
210
425
  _ref$size = _ref.size,
211
- size = _ref$size === void 0 ? "medium" : _ref$size;
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);
212
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
+ };
213
467
 
214
- var _useState = (0, _react.useState)(multiple && [] || ""),
215
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
216
- selectedValue = _useState2[0],
217
- setSelectedValue = _useState2[1];
468
+ var notOptionalCheck = function notOptionalCheck(value) {
469
+ return value === "" && !optional;
470
+ };
218
471
 
219
- var selectValues = _objectSpread({
220
- width: "auto"
221
- }, colorsTheme.select);
472
+ var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
473
+ return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
474
+ };
222
475
 
223
- var classes = useStyles(selectValues);
476
+ var canBeOpenOptions = function canBeOpenOptions() {
477
+ return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
478
+ };
224
479
 
225
- var handleSelectChange = function handleSelectChange(selectedOption) {
226
- if (multiple) {
227
- 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
+ };
228
485
 
229
- if (typeof onChange === "function") {
230
- onChange(selectedOption.target.value);
231
- }
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
+ });
232
526
  } else {
233
- 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
+ };
234
537
 
235
- if (typeof onChange === "function") {
236
- onChange(selectedOption.target.value);
237
- }
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
+ });
563
+ }
564
+ };
565
+
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;
238
621
  }
239
622
  };
240
623
 
241
- var getLabelForSingleSelect = function getLabelForSingleSelect(selected) {
242
- var selectedItem = options.filter(function (option) {
243
- return option.value === selected;
244
- })[0];
245
- return _react["default"].createElement(SelectedIconContainer, {
246
- iconPosition: iconPosition,
247
- multiple: multiple,
248
- label: selectedItem && selectedItem.label,
249
- key: selectedItem && selectedItem.label
250
- }, selectedItem && selectedItem.icon ? _react["default"].createElement(ListIconContainer, {
251
- disabled: disabled
252
- }, (0, _typeof2["default"])(selectedItem.icon) === "object" ? selectedItem.icon : _react["default"].createElement(selectedItem.icon)) : selectedItem && selectedItem.iconSrc && _react["default"].createElement(ListIcon, {
253
- src: selectedItem && selectedItem.iconSrc
254
- }), selectedItem && selectedItem.label && _react["default"].createElement(SelectedLabelContainer, {
255
- iconSrc: selectedItem && selectedItem.iconSrc && selectedItem.icon,
256
- iconPosition: iconPosition,
257
- disabled: disabled
258
- }, selectedItem && selectedItem.label));
259
- };
260
-
261
- var getSelectedValuesWithLabel = function getSelectedValuesWithLabel(optionsList, selected) {
262
- return _react["default"].createElement(MultipleLabelSelected, null, optionsList.filter(function (x) {
263
- return selected.includes(x.value);
264
- }).map(function (optionToRender) {
265
- return optionToRender.label;
266
- }).join(", "));
267
- };
268
-
269
- var getSelectedValuesWithIcons = function getSelectedValuesWithIcons(optionsList, selected) {
270
- return options.filter(function (x) {
271
- return selected.includes(x.value);
272
- }).map(function (optionToRender) {
273
- return getLabelForSingleSelect(optionToRender.value);
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()
274
641
  });
642
+ selectContainerRef.current.focus();
275
643
  };
276
644
 
277
- var labelForMultipleSelect = function labelForMultipleSelect(selected) {
278
- return options.findIndex(function (option) {
279
- return !option.label;
280
- }) !== -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;
281
656
  };
282
657
 
283
- var getRenderValue = function getRenderValue(selected) {
284
- 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;
285
689
  };
286
690
 
287
- var isChecked = function isChecked(checkedValue, value, option) {
288
- if (value !== undefined) {
289
- var result = false;
290
- value.map(function (val) {
291
- if (val === option.value) {
292
- result = true;
293
- }
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
294
768
  });
295
- return result;
296
- } else if (checkedValue) {
297
- return checkedValue.findIndex(function (element) {
298
- return element === option.value;
299
- }) !== -1 || false;
300
769
  }
301
770
  };
302
771
 
303
772
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
304
773
  theme: colorsTheme.select
305
- }, _react["default"].createElement(SelectContainer, {
774
+ }, _react["default"].createElement(DxcSelectContainer, {
306
775
  margin: margin,
307
776
  size: size,
308
- invalid: invalid,
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, {
309
785
  disabled: disabled
310
- }, _react["default"].createElement(_FormControl["default"], null, _react["default"].createElement(_InputLabel["default"], {
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, {
311
798
  disabled: disabled
312
- }, required && _react["default"].createElement(_RequiredComponent["default"], null), label), _react["default"].createElement(_Select["default"], {
313
- 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, {
314
806
  name: name,
315
- multiple: multiple,
316
- renderValue: getRenderValue,
317
- onChange: handleSelectChange,
318
- 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,
319
811
  disabled: disabled,
320
- MenuProps: {
321
- classes: {
322
- paper: classes.dropdownStyle,
323
- list: classes.itemList
324
- },
325
- getContentAnchorEl: null,
326
- anchorOrigin: {
327
- vertical: "bottom",
328
- horizontal: "left"
329
- }
330
- }
331
- }, options.map(function (option) {
332
- return _react["default"].createElement(_MenuItem["default"], {
333
- id: option.value,
334
- value: option.value,
335
- disableRipple: true,
336
- key: option.value
337
- }, multiple && _react["default"].createElement(_Checkbox["default"], {
338
- size: "fitContent",
339
- checked: isChecked(selectedValue, value, option)
340
- }), _react["default"].createElement(OptionContainer, {
341
- iconPosition: iconPosition
342
- }, option.icon ? _react["default"].createElement(ListIconContainer, {
343
- label: option.label,
344
- iconPosition: iconPosition
345
- }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)) : option.iconSrc && _react["default"].createElement(ListIcon, {
346
- src: option.iconSrc,
347
- label: option.label,
348
- iconPosition: iconPosition
349
- }), " ", _react["default"].createElement(LabelCont, null, option.label)));
350
- })))));
351
- };
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
+ });
352
846
 
353
847
  var sizes = {
354
- small: "60px",
355
- medium: "240px",
848
+ small: "240px",
849
+ medium: "360px",
356
850
  large: "480px",
357
851
  fillParent: "100%"
358
852
  };
359
853
 
360
854
  var calculateWidth = function calculateWidth(margin, size) {
361
- if (size === "fillParent") {
362
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
363
- }
364
-
365
- 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];
366
856
  };
367
857
 
368
- 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
+ });
871
+
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
+ });
369
885
 
370
- var LabelCont = _styledComponents["default"].span(_templateObject2());
886
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3(), function (props) {
887
+ return props.theme.optionalLabelFontWeight;
888
+ });
371
889
 
372
- var SelectedIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
373
- 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;
374
892
  }, function (props) {
375
- return props.iconPosition === "before" && "flex-start" || "flex-end";
893
+ return props.theme.fontFamily;
376
894
  }, function (props) {
377
- return props.multiple && props.label && "15px" || "0px";
895
+ return props.theme.helperTextFontSize;
378
896
  }, function (props) {
379
- return !props.multiple && "calc(100% - 24px)" || "auto";
897
+ return props.theme.helperTextFontStyle;
380
898
  }, function (props) {
381
- return props.iconPosition === "after" && (props.label !== "" || props.label === undefined) && "content:','";
899
+ return props.theme.helperTextFontWeight;
382
900
  }, function (props) {
383
- return props.iconPosition === "before" && (props.label !== "" || props.label === undefined) && "content:','";
901
+ return props.theme.helperTextLineHeight;
384
902
  });
385
903
 
386
- var SelectedLabelContainer = _styledComponents["default"].span(_templateObject4(), function (props) {
387
- 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;";
388
910
  }, function (props) {
389
- 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 ");
390
912
  });
391
913
 
392
- var OptionContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
393
- return props.iconPosition === "before" && "row" || "row-reverse";
914
+ var SelectionIndicator = _styledComponents["default"].span(_templateObject6(), function (props) {
915
+ return props.theme.selectionIndicatorBorderColor;
394
916
  });
395
917
 
396
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
397
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
918
+ var SelectionNumber = _styledComponents["default"].span(_templateObject7(), function (props) {
919
+ return props.theme.selectionIndicatorBackgroundColor;
920
+ }, function (props) {
921
+ return props.theme.selectionIndicatorBorderColor;
922
+ }, function (props) {
923
+ return props.disabled ? props.theme.disabledColor : props.theme.selectionIndicatorFontColor;
398
924
  }, function (props) {
399
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
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;";
400
934
  });
401
935
 
402
- var ListIconContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
403
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
936
+ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8(), function (props) {
937
+ return props.theme.fontFamily;
938
+ }, function (props) {
939
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
404
940
  }, function (props) {
405
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
941
+ return props.theme.enabledSelectionIndicatorActionBackgroundColor;
406
942
  }, function (props) {
407
- return props.disabled && "0.34";
943
+ return props.disabled ? props.theme.disabledColor : props.theme.enabledSelectionIndicatorActionIconColor;
944
+ }, function (props) {
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 ");
408
946
  });
409
947
 
410
- var SelectContainer = _styledComponents["default"].div(_templateObject8(), function (props) {
411
- return calculateWidth(props.margin, props.size);
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;
412
952
  }, function (props) {
413
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
953
+ return props.theme.fontFamily;
414
954
  }, function (props) {
415
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
955
+ return props.theme.valueFontSize;
416
956
  }, function (props) {
417
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
957
+ return props.theme.valueFontStyle;
418
958
  }, function (props) {
419
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
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;
420
966
  }, function (props) {
421
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
967
+ return props.theme.fontFamily;
968
+ }, function (props) {
969
+ return props.theme.valueFontSize;
970
+ }, function (props) {
971
+ return props.theme.valueFontStyle;
972
+ }, function (props) {
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;
422
986
  }, function (props) {
423
- return props.invalid === true ? props.theme.error : props.theme.color;
987
+ return props.theme.errorMessagetFontStyle;
424
988
  }, function (props) {
425
- return props.theme.disabledColor;
989
+ return props.theme.errorMessageFontWeight;
426
990
  }, function (props) {
427
- return props.invalid === true ? props.theme.error : props.theme.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;
428
1000
  }, function (props) {
429
- return props.theme.color;
1001
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
430
1002
  }, function (props) {
431
- return props.theme.disabledColor;
1003
+ return props.disabled ? props.theme.disabledActionBackgroundColor : props.theme.actionBackgroundColor;
432
1004
  }, function (props) {
433
- return props.theme.focusColor;
1005
+ return props.disabled ? props.theme.disabledColor : props.theme.actionIconColor;
434
1006
  }, function (props) {
435
- return props.theme.disabled;
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;
436
1012
  }, function (props) {
437
- return props.disabled && "0px solid" || "2px solid";
1013
+ return props.theme.itemListBorderColor;
438
1014
  }, function (props) {
439
- return props.invalid === true && props.theme.error || props.disabled && props.theme.disabledColor || props.theme.color;
1015
+ return props.theme.listItemFontColor;
440
1016
  }, function (props) {
441
- return props.invalid === true && props.theme.error || props.disabled && props.theme.disabledColor || props.theme.color;
1017
+ return props.theme.fontFamily;
442
1018
  }, function (props) {
443
- return props.invalid === true ? props.theme.error : props.theme.color;
1019
+ return props.theme.listItemFontSize;
444
1020
  }, function (props) {
445
- return props.invalid === true && props.theme.error || props.disabled && props.theme.disabledColor || props.theme.color;
1021
+ return props.theme.listItemFontStyle;
446
1022
  }, function (props) {
447
- return props.theme.color;
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;
448
1066
  });
449
1067
 
450
- DxcSelect.propTypes = {
451
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
452
- label: _propTypes["default"].string,
453
- name: _propTypes["default"].string,
454
- value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]))]),
455
- disabled: _propTypes["default"].bool,
456
- required: _propTypes["default"].bool,
457
- invalid: _propTypes["default"].bool,
458
- iconPosition: _propTypes["default"].oneOf(["after", "before"]),
459
- onChange: _propTypes["default"].func,
460
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
461
- value: _propTypes["default"].any.isRequired,
462
- label: _propTypes["default"].string,
463
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
464
- iconSrc: _propTypes["default"].string
465
- })),
466
- multiple: _propTypes["default"].bool,
467
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
468
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
469
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
470
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
471
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
472
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
473
- };
474
1068
  var _default = DxcSelect;
475
1069
  exports["default"] = _default;