@dxc-technology/halstack-react 0.0.0-eb2a4cc → 0.0.0-ebb089f

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