@dxc-technology/halstack-react 0.0.0-2eb3d87 → 0.0.0-2f08981

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/README.md +66 -0
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +237 -2
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Select/index.d.ts +27 -0
  7. package/dist/V3Textarea/V3Textarea.js +264 -0
  8. package/dist/V3Textarea/index.d.ts +27 -0
  9. package/dist/accordion/Accordion.js +170 -81
  10. package/dist/accordion/index.d.ts +28 -0
  11. package/dist/accordion-group/AccordionGroup.js +186 -0
  12. package/dist/accordion-group/index.d.ts +16 -0
  13. package/dist/alert/Alert.js +184 -83
  14. package/dist/alert/index.d.ts +51 -0
  15. package/dist/badge/Badge.js +63 -0
  16. package/dist/box/Box.js +39 -19
  17. package/dist/box/index.d.ts +25 -0
  18. package/dist/button/Button.js +93 -42
  19. package/dist/button/index.d.ts +24 -0
  20. package/dist/card/Card.js +64 -56
  21. package/dist/card/index.d.ts +22 -0
  22. package/dist/checkbox/Checkbox.js +117 -39
  23. package/dist/checkbox/index.d.ts +24 -0
  24. package/dist/chip/Chip.js +265 -0
  25. package/dist/chip/index.d.ts +22 -0
  26. package/dist/common/RequiredComponent.js +5 -15
  27. package/dist/common/variables.js +1507 -10
  28. package/dist/date/Date.js +110 -76
  29. package/dist/date/index.d.ts +27 -0
  30. package/dist/date-input/DateInput.js +400 -0
  31. package/dist/date-input/index.d.ts +95 -0
  32. package/dist/dialog/Dialog.js +87 -33
  33. package/dist/dialog/index.d.ts +18 -0
  34. package/dist/dropdown/Dropdown.js +226 -94
  35. package/dist/dropdown/index.d.ts +26 -0
  36. package/dist/file-input/FileInput.js +644 -0
  37. package/dist/file-input/FileItem.js +287 -0
  38. package/dist/file-input/index.d.ts +81 -0
  39. package/dist/footer/Footer.js +125 -45
  40. package/dist/footer/Icons.js +77 -0
  41. package/dist/footer/index.d.ts +25 -0
  42. package/dist/header/Header.js +215 -85
  43. package/dist/header/Icons.js +59 -0
  44. package/dist/header/index.d.ts +25 -0
  45. package/dist/heading/Heading.js +93 -22
  46. package/dist/heading/index.d.ts +17 -0
  47. package/dist/input-text/Icons.js +22 -0
  48. package/dist/input-text/InputText.js +300 -104
  49. package/dist/input-text/index.d.ts +36 -0
  50. package/dist/layout/ApplicationLayout.js +327 -0
  51. package/dist/layout/Icons.js +55 -0
  52. package/dist/link/Link.js +142 -34
  53. package/dist/link/index.d.ts +23 -0
  54. package/dist/main.d.ts +40 -0
  55. package/dist/main.js +120 -24
  56. package/dist/number-input/NumberInput.js +136 -0
  57. package/dist/number-input/NumberInputContext.js +16 -0
  58. package/dist/number-input/index.d.ts +113 -0
  59. package/dist/paginator/Icons.js +66 -0
  60. package/dist/paginator/Paginator.js +187 -60
  61. package/dist/paginator/index.d.ts +20 -0
  62. package/dist/password-input/PasswordInput.js +203 -0
  63. package/dist/password-input/index.d.ts +94 -0
  64. package/dist/progress-bar/ProgressBar.js +97 -44
  65. package/dist/progress-bar/index.d.ts +18 -0
  66. package/dist/radio/Radio.js +39 -34
  67. package/dist/radio/index.d.ts +23 -0
  68. package/dist/resultsetTable/ResultsetTable.js +99 -71
  69. package/dist/resultsetTable/index.d.ts +19 -0
  70. package/dist/select/Select.js +920 -249
  71. package/dist/select/index.d.ts +53 -0
  72. package/dist/sidenav/Sidenav.js +87 -125
  73. package/dist/sidenav/index.d.ts +13 -0
  74. package/dist/slider/Slider.js +219 -83
  75. package/dist/slider/index.d.ts +29 -0
  76. package/dist/spinner/Spinner.js +249 -64
  77. package/dist/spinner/index.d.ts +17 -0
  78. package/dist/switch/Switch.js +54 -51
  79. package/dist/switch/index.d.ts +24 -0
  80. package/dist/table/Table.js +63 -15
  81. package/dist/table/index.d.ts +13 -0
  82. package/dist/tabs/Tabs.js +210 -50
  83. package/dist/tabs/index.d.ts +19 -0
  84. package/dist/tag/Tag.js +100 -35
  85. package/dist/tag/index.d.ts +24 -0
  86. package/dist/text-input/TextInput.js +974 -0
  87. package/dist/text-input/index.d.ts +135 -0
  88. package/dist/textarea/Textarea.js +250 -107
  89. package/dist/textarea/index.d.ts +117 -0
  90. package/dist/toggle/Toggle.js +16 -19
  91. package/dist/toggle/index.d.ts +21 -0
  92. package/dist/toggle-group/ToggleGroup.js +327 -0
  93. package/dist/toggle-group/index.d.ts +21 -0
  94. package/dist/upload/Upload.js +13 -8
  95. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  96. package/dist/upload/buttons-upload/Icons.js +40 -0
  97. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  98. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  99. package/dist/upload/file-upload/FileToUpload.js +64 -33
  100. package/dist/upload/file-upload/Icons.js +66 -0
  101. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  102. package/dist/upload/index.d.ts +15 -0
  103. package/dist/upload/transaction/Icons.js +160 -0
  104. package/dist/upload/transaction/Transaction.js +42 -49
  105. package/dist/upload/transactions/Transactions.js +38 -20
  106. package/dist/useTheme.js +22 -0
  107. package/dist/wizard/Icons.js +65 -0
  108. package/dist/wizard/Wizard.js +156 -61
  109. package/dist/wizard/index.d.ts +18 -0
  110. package/package.json +23 -16
  111. package/test/AccordionGroup.test.js +125 -0
  112. package/test/Chip.test.js +25 -0
  113. package/test/Date.test.js +15 -13
  114. package/test/DateInput.test.js +242 -0
  115. package/test/Dropdown.test.js +19 -4
  116. package/test/FileInput.test.js +201 -0
  117. package/test/Footer.test.js +2 -7
  118. package/test/Header.test.js +7 -20
  119. package/test/Heading.test.js +60 -12
  120. package/test/InputText.test.js +30 -26
  121. package/test/Link.test.js +25 -7
  122. package/test/NumberInput.test.js +259 -0
  123. package/test/Paginator.test.js +76 -60
  124. package/test/PasswordInput.test.js +83 -0
  125. package/test/ResultsetTable.test.js +65 -17
  126. package/test/Select.test.js +371 -147
  127. package/test/Sidenav.test.js +22 -64
  128. package/test/Slider.test.js +24 -15
  129. package/test/Spinner.test.js +5 -0
  130. package/test/Tabs.test.js +21 -0
  131. package/test/TextInput.test.js +732 -0
  132. package/test/Textarea.test.js +193 -0
  133. package/test/ToggleGroup.test.js +85 -0
  134. package/test/Upload.test.js +1 -1
  135. package/test/V3Select.test.js +212 -0
  136. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  137. package/dist/accordion/Accordion.stories.js +0 -207
  138. package/dist/accordion/readme.md +0 -96
  139. package/dist/alert/Alert.stories.js +0 -158
  140. package/dist/alert/close.svg +0 -4
  141. package/dist/alert/error.svg +0 -4
  142. package/dist/alert/info.svg +0 -4
  143. package/dist/alert/readme.md +0 -43
  144. package/dist/alert/success.svg +0 -4
  145. package/dist/alert/warning.svg +0 -4
  146. package/dist/button/Button.stories.js +0 -224
  147. package/dist/button/readme.md +0 -93
  148. package/dist/checkbox/Checkbox.stories.js +0 -144
  149. package/dist/checkbox/readme.md +0 -116
  150. package/dist/common/services/example-service.js +0 -10
  151. package/dist/common/services/example-service.test.js +0 -12
  152. package/dist/date/Date.stories.js +0 -205
  153. package/dist/date/calendar.svg +0 -1
  154. package/dist/date/calendar_dark.svg +0 -1
  155. package/dist/date/readme.md +0 -73
  156. package/dist/dialog/Dialog.stories.js +0 -217
  157. package/dist/dialog/readme.md +0 -32
  158. package/dist/dropdown/Dropdown.stories.js +0 -249
  159. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  161. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  162. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  163. package/dist/dropdown/readme.md +0 -69
  164. package/dist/footer/Footer.stories.js +0 -94
  165. package/dist/footer/dxc_logo_wht.png +0 -0
  166. package/dist/footer/readme.md +0 -41
  167. package/dist/header/Header.stories.js +0 -176
  168. package/dist/header/close_icon.svg +0 -1
  169. package/dist/header/dxc_logo_black.png +0 -0
  170. package/dist/header/dxc_logo_white.png +0 -0
  171. package/dist/header/hamb_menu_black.svg +0 -1
  172. package/dist/header/hamb_menu_white.svg +0 -1
  173. package/dist/header/readme.md +0 -33
  174. package/dist/input-text/InputText.stories.js +0 -209
  175. package/dist/input-text/error.svg +0 -1
  176. package/dist/input-text/readme.md +0 -91
  177. package/dist/link/readme.md +0 -51
  178. package/dist/paginator/images/next.svg +0 -3
  179. package/dist/paginator/images/nextPage.svg +0 -3
  180. package/dist/paginator/images/previous.svg +0 -3
  181. package/dist/paginator/images/previousPage.svg +0 -3
  182. package/dist/paginator/readme.md +0 -50
  183. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  184. package/dist/progress-bar/readme.md +0 -63
  185. package/dist/radio/Radio.stories.js +0 -166
  186. package/dist/radio/readme.md +0 -70
  187. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  188. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  189. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  190. package/dist/select/Select.stories.js +0 -235
  191. package/dist/select/readme.md +0 -72
  192. package/dist/sidenav/arrow_icon.svg +0 -3
  193. package/dist/slider/Slider.stories.js +0 -241
  194. package/dist/slider/readme.md +0 -64
  195. package/dist/spinner/Spinner.stories.js +0 -183
  196. package/dist/spinner/readme.md +0 -65
  197. package/dist/switch/Switch.stories.js +0 -134
  198. package/dist/switch/readme.md +0 -133
  199. package/dist/tabs/Tabs.stories.js +0 -130
  200. package/dist/tabs/readme.md +0 -78
  201. package/dist/tabs-for-sections/TabsForSections.js +0 -107
  202. package/dist/tabs-for-sections/readme.md +0 -78
  203. package/dist/toggle/Toggle.stories.js +0 -297
  204. package/dist/toggle/readme.md +0 -80
  205. package/dist/upload/Upload.stories.js +0 -72
  206. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  207. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  208. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  209. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  210. package/dist/upload/file-upload/audio-icon.svg +0 -4
  211. package/dist/upload/file-upload/close.svg +0 -4
  212. package/dist/upload/file-upload/file-icon.svg +0 -4
  213. package/dist/upload/file-upload/video-icon.svg +0 -4
  214. package/dist/upload/readme.md +0 -37
  215. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  216. package/dist/upload/transaction/audio-icon.svg +0 -4
  217. package/dist/upload/transaction/error-icon.svg +0 -4
  218. package/dist/upload/transaction/file-icon-err.svg +0 -4
  219. package/dist/upload/transaction/file-icon.svg +0 -4
  220. package/dist/upload/transaction/image-icon-err.svg +0 -4
  221. package/dist/upload/transaction/image-icon.svg +0 -4
  222. package/dist/upload/transaction/success-icon.svg +0 -4
  223. package/dist/upload/transaction/video-icon-err.svg +0 -4
  224. package/dist/upload/transaction/video-icon.svg +0 -4
  225. package/dist/wizard/invalid_icon.svg +0 -6
  226. package/dist/wizard/valid_icon.svg +0 -6
  227. package/dist/wizard/validation-wrong.svg +0 -6
  228. package/test/TabsForSections.test.js +0 -34
  229. package/test/Toggle.test.js +0 -43
@@ -9,42 +9,240 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
18
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
- var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
25
 
26
- var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
26
+ var _variables = require("../common/variables.js");
27
27
 
28
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
28
+ var _uuid = require("uuid");
29
29
 
30
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
30
+ var _utils = require("../common/utils.js");
31
31
 
32
- var _styles = require("@material-ui/core/styles");
32
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
33
33
 
34
- var _propTypes = _interopRequireDefault(require("prop-types"));
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 _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
37
+ _templateObject28 = function _templateObject28() {
38
+ return data;
39
+ };
37
40
 
38
- require("../common/OpenSans.css");
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 _ThemeContext = _interopRequireDefault(require("../ThemeContext.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"]);
166
+
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
+ }
203
+
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
+ }
233
+
234
+ function _templateObject8() {
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"]);
236
+
237
+ _templateObject8 = function _templateObject8() {
238
+ return data;
239
+ };
240
+
241
+ return data;
242
+ }
45
243
 
46
244
  function _templateObject7() {
47
- 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 &::before {\n content:'", "';\n color: ", ";\n font-size: 18px; \n }\n &.Mui-disabled{\n opacity:0.5;\n color: ", ";\n }\n &.Mui-focused{\n font-size: 16px;\n color: ", ";\n }\n }\n .MuiSelect-select {\n width:100%;\n height: 20px;\n display: flex;\n padding-right: unset;\n color: ", ";\n align-items: center;\n :focus {\n background-color: transparent;\n }\n & > *:last-child::after {\n content: unset;\n }\n & > *:last-child::before {\n content: unset;\n }\n &.Mui-disabled {\n color: ", ";\n opacity:0.5;\n cursor: not-allowed;\n }\n }\n .MuiInputBase-root {\n width: 100%;\n &.Mui-disabled {\n opacity:0.5;\n cursor: not-allowed;\n }\n }\n .MuiInput-underline{\n &.Mui-disabled:before{\n border-bottom-style: solid;\n opacity: 0.5;\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"]);
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"]);
48
246
 
49
247
  _templateObject7 = function _templateObject7() {
50
248
  return data;
@@ -54,7 +252,7 @@ function _templateObject7() {
54
252
  }
55
253
 
56
254
  function _templateObject6() {
57
- 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"]);
255
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n width: 48px;\n"]);
58
256
 
59
257
  _templateObject6 = function _templateObject6() {
60
258
  return data;
@@ -64,7 +262,7 @@ function _templateObject6() {
64
262
  }
65
263
 
66
264
  function _templateObject5() {
67
- 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"]);
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"]);
68
266
 
69
267
  _templateObject5 = function _templateObject5() {
70
268
  return data;
@@ -74,7 +272,7 @@ function _templateObject5() {
74
272
  }
75
273
 
76
274
  function _templateObject4() {
77
- 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"]);
275
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
78
276
 
79
277
  _templateObject4 = function _templateObject4() {
80
278
  return data;
@@ -84,7 +282,7 @@ function _templateObject4() {
84
282
  }
85
283
 
86
284
  function _templateObject3() {
87
- 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"]);
88
286
 
89
287
  _templateObject3 = function _templateObject3() {
90
288
  return data;
@@ -94,7 +292,7 @@ function _templateObject3() {
94
292
  }
95
293
 
96
294
  function _templateObject2() {
97
- 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"]);
98
296
 
99
297
  _templateObject2 = function _templateObject2() {
100
298
  return data;
@@ -104,7 +302,7 @@ function _templateObject2() {
104
302
  }
105
303
 
106
304
  function _templateObject() {
107
- 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"]);
108
306
 
109
307
  _templateObject = function _templateObject() {
110
308
  return data;
@@ -113,313 +311,786 @@ function _templateObject() {
113
311
  return data;
114
312
  }
115
313
 
116
- var useStyles = (0, _styles.makeStyles)(function (theme) {
117
- return {
118
- root: function root(props) {
119
- return {
120
- minWidth: props.width
121
- };
122
- },
123
- dropdownStyle: function dropdownStyle(props) {
124
- return {
125
- boxShadow: "0px 2px 10px 0px rgba(0, 0, 0, 0.3)",
126
- minWidth: props.width,
127
- width: props.width
128
- };
129
- },
130
- itemList: function itemList(props) {
131
- return {
132
- color: props.darkGrey,
133
- "&.MuiList-padding": {
134
- paddingBottom: "0px",
135
- paddingTop: "0px"
136
- },
137
- "& li": {
138
- fontSize: "16px",
139
- "&:hover": {
140
- backgroundColor: props.darkWhite,
141
- color: props.darkGrey
142
- },
143
- "&:active": {
144
- backgroundColor: props.lightGrey,
145
- color: props.black
146
- },
147
- "&.Mui-selected": {
148
- backgroundColor: props.lightGrey,
149
- color: props.black
150
- }
151
- }
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
+ };
388
+
389
+ var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
390
+ return "This field is required. Please, enter a value.";
391
+ };
392
+
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
+ })
152
401
  };
153
- }
154
- };
155
- });
402
+ return group;
403
+ });else return options.filter(function (option) {
404
+ return option.label.toUpperCase().includes(searchValue.toUpperCase());
405
+ });
406
+ }
407
+ };
156
408
 
157
- var DxcSelect = function DxcSelect(_ref) {
158
- var value = _ref.value,
159
- name = _ref.name,
160
- onChange = _ref.onChange,
161
- label = _ref.label,
162
- _ref$required = _ref.required,
163
- 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,
164
422
  _ref$disabled = _ref.disabled,
165
423
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
166
- _ref$options = _ref.options,
167
- options = _ref$options === void 0 ? [] : _ref$options,
168
- _ref$theme = _ref.theme,
169
- theme = _ref$theme === void 0 ? "light" : _ref$theme,
170
- _ref$disableRipple = _ref.disableRipple,
171
- disableRipple = _ref$disableRipple === void 0 ? false : _ref$disableRipple,
172
- _ref$iconPosition = _ref.iconPosition,
173
- 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,
174
428
  _ref$multiple = _ref.multiple,
175
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,
176
434
  margin = _ref.margin,
177
435
  _ref$size = _ref.size,
178
- size = _ref$size === void 0 ? "medium" : _ref$size;
436
+ size = _ref$size === void 0 ? "medium" : _ref$size,
437
+ _ref$tabIndex = _ref.tabIndex,
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);
470
+ var colorsTheme = (0, _useTheme["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
+ };
179
478
 
180
- var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]) || _variables.colors;
479
+ var notOptionalCheck = function notOptionalCheck(value) {
480
+ return value === "" && !optional;
481
+ };
181
482
 
182
- var _useState = (0, _react.useState)(multiple && [] || ""),
183
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
184
- selectedValue = _useState2[0],
185
- setSelectedValue = _useState2[1];
483
+ var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
484
+ return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
485
+ };
186
486
 
187
- var selectValues = {
188
- width: "auto"
487
+ var canBeOpenOptions = function canBeOpenOptions() {
488
+ return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
189
489
  };
190
- var classes = useStyles(selectValues, colorsTheme);
191
490
 
192
- var handleSelectChange = function handleSelectChange(selectedOption) {
193
- if (multiple) {
194
- setSelectedValue(selectedOption.target.value);
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
+ };
195
496
 
196
- if (typeof onChange === "function") {
197
- onChange(selectedOption.target.value);
198
- }
497
+ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions() {
498
+ return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
499
+ var _groupOption$options;
500
+
501
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
502
+ }) : true;
503
+ };
504
+
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
+ });
199
537
  } else {
200
- 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
+ };
201
548
 
202
- if (typeof onChange === "function") {
203
- onChange(selectedOption.target.value);
204
- }
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;
205
632
  }
206
633
  };
207
634
 
208
- var getLabelForSingleSelect = function getLabelForSingleSelect(selected) {
209
- var selectedItem = options.filter(function (option) {
210
- return option.value === selected;
211
- })[0];
212
- return _react["default"].createElement(SelectedIconContainer, {
213
- iconPosition: iconPosition,
214
- multiple: multiple,
215
- label: selectedItem.label
216
- }, selectedItem.iconSrc && _react["default"].createElement(ListIcon, {
217
- src: selectedItem.iconSrc
218
- }), " ", selectedItem.label && _react["default"].createElement(SelectedLabelContainer, {
219
- iconSrc: selectedItem.iconSrc,
220
- iconPosition: iconPosition,
221
- brightness: theme,
222
- disabled: disabled
223
- }, selectedItem.label));
224
- };
225
-
226
- var getSelectedValuesWithLabel = function getSelectedValuesWithLabel(optionsList, selected) {
227
- return _react["default"].createElement(MultipleLabelSelected, null, optionsList.filter(function (x) {
228
- return selected.includes(x.value);
229
- }).map(function (optionToRender) {
230
- return optionToRender.label;
231
- }).join(", "));
232
- };
233
-
234
- var getSelectedValuesWithIcons = function getSelectedValuesWithIcons(optionsList, selected) {
235
- return options.filter(function (x) {
236
- return selected.includes(x.value);
237
- }).map(function (optionToRender) {
238
- 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()
239
652
  });
653
+ selectContainerRef.current.focus();
240
654
  };
241
655
 
242
- var labelForMultipleSelect = function labelForMultipleSelect(selected) {
243
- return options.findIndex(function (option) {
244
- return !option.label;
245
- }) !== -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;
246
667
  };
247
668
 
248
- var getRenderValue = function getRenderValue(selected) {
249
- 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;
250
700
  };
251
701
 
252
- var isChecked = function isChecked(checkedValue, value, option) {
253
- if (value !== undefined) {
254
- var result = false;
255
- value.map(function (val) {
256
- if (val === option.value) {
257
- result = true;
258
- }
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
259
784
  });
260
- return result;
261
- } else if (checkedValue) {
262
- return checkedValue.findIndex(function (element) {
263
- return element === option.value;
264
- }) !== -1 || false;
265
785
  }
266
786
  };
267
787
 
268
788
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
269
- theme: colorsTheme
789
+ theme: colorsTheme.select
270
790
  }, _react["default"].createElement(SelectContainer, {
271
791
  margin: margin,
272
- brightness: theme,
273
- required: required,
274
- size: size
275
- }, _react["default"].createElement(_FormControl["default"], null, _react["default"].createElement(_InputLabel["default"], {
792
+ size: size,
793
+ ref: ref
794
+ }, _react["default"].createElement(Label, {
795
+ id: selectLabelId,
796
+ disabled: disabled,
797
+ onClick: function onClick() {
798
+ selectContainerRef.current.focus();
799
+ }
800
+ }, label, " ", optional && _react["default"].createElement(OptionalLabel, null, "(Optional)")), _react["default"].createElement(HelperText, {
801
+ disabled: disabled
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, {
276
821
  disabled: disabled
277
- }, label), _react["default"].createElement(_Select["default"], {
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, {
278
829
  name: name,
279
- brightness: theme,
280
- multiple: multiple,
281
- renderValue: getRenderValue,
282
- onChange: handleSelectChange,
283
- 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,
284
834
  disabled: disabled,
285
- MenuProps: {
286
- classes: {
287
- paper: classes.dropdownStyle,
288
- list: classes.itemList
289
- },
290
- getContentAnchorEl: null,
291
- anchorOrigin: {
292
- vertical: "bottom",
293
- horizontal: "left"
294
- }
295
- }
296
- }, options.map(function (option) {
297
- return _react["default"].createElement(_MenuItem["default"], {
298
- id: option.value,
299
- value: option.value,
300
- disableRipple: disableRipple
301
- }, multiple && _react["default"].createElement(_Checkbox["default"], {
302
- size: "fitContent",
303
- disableRipple: true,
304
- checked: isChecked(selectedValue, value, option)
305
- }), _react["default"].createElement(OptionContainer, {
306
- iconPosition: iconPosition
307
- }, option.iconSrc && _react["default"].createElement(ListIcon, {
308
- src: option.iconSrc,
309
- label: option.label,
310
- iconPosition: iconPosition
311
- }), " ", _react["default"].createElement(LabelCont, null, option.label)));
312
- })))));
313
- };
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();
858
+ },
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
+ });
314
871
 
315
872
  var sizes = {
316
- small: "60px",
317
- medium: "240px",
873
+ small: "240px",
874
+ medium: "360px",
318
875
  large: "480px",
319
876
  fillParent: "100%"
320
877
  };
321
878
 
322
879
  var calculateWidth = function calculateWidth(margin, size) {
323
- if (size === "fillParent") {
324
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
325
- }
326
-
327
- 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];
328
881
  };
329
882
 
330
- var MultipleLabelSelected = _styledComponents["default"].div(_templateObject());
883
+ var SelectContainer = _styledComponents["default"].div(_templateObject(), function (props) {
884
+ return calculateWidth(props.margin, props.size);
885
+ }, function (props) {
886
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
887
+ }, function (props) {
888
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
889
+ }, function (props) {
890
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
891
+ }, function (props) {
892
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
893
+ }, function (props) {
894
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
895
+ });
331
896
 
332
- var LabelCont = _styledComponents["default"].span(_templateObject2());
897
+ var Label = _styledComponents["default"].span(_templateObject2(), function (props) {
898
+ return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
899
+ }, function (props) {
900
+ return props.theme.fontFamily;
901
+ }, function (props) {
902
+ return props.theme.labelFontSize;
903
+ }, function (props) {
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;
913
+ });
333
914
 
334
- var SelectedIconContainer = _styledComponents["default"].div(_templateObject3(), function (props) {
335
- return props.iconPosition === "before" && "row" || "row-reverse";
915
+ var HelperText = _styledComponents["default"].span(_templateObject4(), function (props) {
916
+ return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
336
917
  }, function (props) {
337
- return props.iconPosition === "before" && "flex-start" || "flex-end";
918
+ return props.theme.fontFamily;
338
919
  }, function (props) {
339
- return props.multiple && props.label && "15px" || "0px";
920
+ return props.theme.helperTextFontSize;
340
921
  }, function (props) {
341
- return !props.multiple && "calc(100% - 24px)" || "auto";
922
+ return props.theme.helperTextFontStyle;
342
923
  }, function (props) {
343
- return props.iconPosition === "after" && (props.label !== "" || props.label === undefined) && "content:','";
924
+ return props.theme.helperTextFontWeight;
344
925
  }, function (props) {
345
- return props.iconPosition === "before" && (props.label !== "" || props.label === undefined) && "content:','";
926
+ return props.theme.helperTextLineHeight;
346
927
  });
347
928
 
348
- var SelectedLabelContainer = _styledComponents["default"].span(_templateObject4(), function (props) {
349
- return (props.iconPosition === "after" || !props.iconSrc) && "0px" || "10px";
929
+ var Select = _styledComponents["default"].div(_templateObject5(), function (props) {
930
+ return props.disabled ? props.theme.disabledInputBorderColor : props.theme.enabledInputBorderColor;
931
+ }, function (props) {
932
+ return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.theme.errorInputBorderColor, ";\n ");
933
+ }, function (props) {
934
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
350
935
  }, function (props) {
351
- return (props.iconPosition === "before" || !props.iconSrc) && "0px" || "10px";
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 ");
352
937
  });
353
938
 
354
- var OptionContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
355
- return props.iconPosition === "before" && "row" || "row-reverse";
939
+ var SelectionIndicator = _styledComponents["default"].span(_templateObject6(), function (props) {
940
+ return props.theme.selectionIndicatorBorderColor;
356
941
  });
357
942
 
358
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
359
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
943
+ var SelectionNumber = _styledComponents["default"].span(_templateObject7(), function (props) {
944
+ return props.theme.selectionIndicatorBackgroundColor;
360
945
  }, function (props) {
361
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
946
+ return props.theme.selectionIndicatorBorderColor;
947
+ }, function (props) {
948
+ return props.disabled ? props.theme.disabledColor : props.theme.selectionIndicatorFontColor;
949
+ }, function (props) {
950
+ return props.theme.fontFamily;
951
+ }, function (props) {
952
+ return props.theme.selectionIndicatorFontSize;
953
+ }, function (props) {
954
+ return props.theme.selectionIndicatorFontStyle;
955
+ }, function (props) {
956
+ return props.theme.selectionIndicatorFontWeight;
957
+ }, function (props) {
958
+ return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
362
959
  });
363
960
 
364
- var SelectContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
365
- return calculateWidth(props.margin, props.size);
961
+ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8(), function (props) {
962
+ return props.theme.fontFamily;
366
963
  }, function (props) {
367
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
964
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
368
965
  }, function (props) {
369
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
966
+ return props.theme.enabledSelectionIndicatorActionBackgroundColor;
370
967
  }, function (props) {
371
- 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;
372
969
  }, function (props) {
373
- 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;
374
977
  }, function (props) {
375
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
978
+ return props.theme.fontFamily;
979
+ }, function (props) {
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;
376
991
  }, function (props) {
377
- return props.brightness === "light" ? props.theme.darkGrey : props.theme.lightGrey;
992
+ return props.theme.fontFamily;
378
993
  }, function (props) {
379
- return props.required && "*" || "";
994
+ return props.theme.valueFontSize;
380
995
  }, function (props) {
381
- return props.brightness === "light" ? props.theme.darkRed : props.theme.lightRed;
996
+ return props.theme.valueFontStyle;
382
997
  }, function (props) {
383
- return props.brightness === "light" ? props.theme.darkGrey : props.theme.lightGrey;
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;
384
1007
  }, function (props) {
385
- return props.brightness === "light" ? props.theme.black : props.theme.lightGrey;
1008
+ return props.theme.fontFamily;
386
1009
  }, function (props) {
387
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
1010
+ return props.theme.errorMessageFontSize;
388
1011
  }, function (props) {
389
- return props.brightness === "light" ? props.theme.darkGrey : props.theme.lightGrey;
1012
+ return props.theme.errorMessagetFontStyle;
390
1013
  }, function (props) {
391
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
1014
+ return props.theme.errorMessageFontWeight;
392
1015
  }, function (props) {
393
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
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;
1025
+ }, function (props) {
1026
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
394
1027
  }, function (props) {
395
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
1028
+ return props.disabled ? props.theme.disabledActionBackgroundColor : props.theme.actionBackgroundColor;
396
1029
  }, function (props) {
397
- return props.brightness === "dark" ? props.theme.white : props.theme.black;
1030
+ return props.disabled ? props.theme.disabledColor : props.theme.actionIconColor;
1031
+ }, function (props) {
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;
1037
+ }, function (props) {
1038
+ return props.theme.itemListBorderColor;
1039
+ }, function (props) {
1040
+ return props.theme.listItemFontColor;
1041
+ }, function (props) {
1042
+ return props.theme.fontFamily;
1043
+ }, function (props) {
1044
+ return props.theme.listItemFontSize;
1045
+ }, function (props) {
1046
+ return props.theme.listItemFontStyle;
1047
+ }, function (props) {
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;
398
1093
  });
399
1094
 
400
- DxcSelect.propTypes = {
401
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
402
- label: _propTypes["default"].string,
403
- name: _propTypes["default"].string,
404
- value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]))]),
405
- disabled: _propTypes["default"].bool,
406
- required: _propTypes["default"].bool,
407
- disableRipple: _propTypes["default"].bool,
408
- theme: _propTypes["default"].oneOf(["dark", "light"]),
409
- iconPosition: _propTypes["default"].oneOf(["after", "before"]),
410
- onChange: _propTypes["default"].func,
411
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
412
- value: _propTypes["default"].any.isRequired,
413
- label: _propTypes["default"].any.isRequired,
414
- iconSrc: _propTypes["default"].string
415
- })),
416
- multiple: _propTypes["default"].bool,
417
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
418
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
419
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
420
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
421
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
422
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
423
- };
424
1095
  var _default = DxcSelect;
425
1096
  exports["default"] = _default;