@dxc-technology/halstack-react 0.0.0-c8db8a2 → 0.0.0-cc01d9c

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