@dxc-technology/halstack-react 0.0.0-a210ee9 → 0.0.0-a4bef7b

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 (277) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +39 -39
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/{dist/accordion → accordion}/Accordion.js +89 -156
  8. package/accordion/index.d.ts +28 -0
  9. package/{dist/accordion-group → accordion-group}/AccordionGroup.js +13 -17
  10. package/accordion-group/index.d.ts +16 -0
  11. package/alert/Alert.js +309 -0
  12. package/alert/index.d.ts +51 -0
  13. package/badge/Badge.js +59 -0
  14. package/{dist/box → box}/Box.js +9 -21
  15. package/box/index.d.ts +25 -0
  16. package/button/Button.d.ts +4 -0
  17. package/button/Button.js +182 -0
  18. package/button/Button.stories.tsx +10 -0
  19. package/button/types.d.ts +22 -0
  20. package/button/types.js +5 -0
  21. package/{dist/card → card}/Card.js +29 -76
  22. package/card/index.d.ts +22 -0
  23. package/{dist/checkbox → checkbox}/Checkbox.js +44 -60
  24. package/checkbox/index.d.ts +24 -0
  25. package/{dist/chip → chip}/Chip.js +48 -104
  26. package/chip/index.d.ts +22 -0
  27. package/{dist/common → common}/OpenSans.css +0 -0
  28. package/{dist/common → common}/RequiredComponent.js +3 -11
  29. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  30. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  31. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  32. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  33. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  34. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  35. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  36. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  37. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  38. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  39. package/{dist/common → common}/utils.js +0 -0
  40. package/common/variables.js +1567 -0
  41. package/{dist/date → date}/Date.js +33 -51
  42. package/date/index.d.ts +27 -0
  43. package/date-input/DateInput.js +396 -0
  44. package/date-input/index.d.ts +95 -0
  45. package/{dist/dialog → dialog}/Dialog.js +28 -80
  46. package/dialog/index.d.ts +18 -0
  47. package/dropdown/Dropdown.js +450 -0
  48. package/dropdown/index.d.ts +26 -0
  49. package/file-input/FileInput.js +532 -0
  50. package/file-input/FileItem.js +193 -0
  51. package/file-input/index.d.ts +81 -0
  52. package/{dist/footer → footer}/Footer.js +69 -177
  53. package/footer/Icons.js +77 -0
  54. package/footer/index.d.ts +25 -0
  55. package/header/Header.js +326 -0
  56. package/header/Icons.js +59 -0
  57. package/header/index.d.ts +25 -0
  58. package/{dist/heading → heading}/Heading.js +30 -76
  59. package/heading/index.d.ts +17 -0
  60. package/input-text/Icons.js +22 -0
  61. package/{dist/input-text → input-text}/InputText.js +120 -178
  62. package/input-text/index.d.ts +36 -0
  63. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  64. package/layout/Icons.js +55 -0
  65. package/link/Link.js +183 -0
  66. package/link/index.d.ts +23 -0
  67. package/main.d.ts +44 -0
  68. package/{dist/main.js → main.js} +121 -69
  69. package/number-input/NumberInput.js +128 -0
  70. package/number-input/NumberInputContext.js +16 -0
  71. package/number-input/index.d.ts +113 -0
  72. package/package.json +31 -24
  73. package/paginator/Icons.js +66 -0
  74. package/paginator/Paginator.js +221 -0
  75. package/paginator/index.d.ts +20 -0
  76. package/password-input/PasswordInput.js +199 -0
  77. package/password-input/index.d.ts +94 -0
  78. package/progress-bar/ProgressBar.js +188 -0
  79. package/progress-bar/index.d.ts +18 -0
  80. package/{dist/radio → radio}/Radio.js +14 -28
  81. package/radio/index.d.ts +23 -0
  82. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -136
  83. package/resultsetTable/index.d.ts +19 -0
  84. package/select/Select.js +864 -0
  85. package/select/index.d.ts +131 -0
  86. package/{dist/sidenav → sidenav}/Sidenav.js +20 -58
  87. package/sidenav/index.d.ts +13 -0
  88. package/slider/Slider.js +340 -0
  89. package/slider/index.d.ts +29 -0
  90. package/spinner/Spinner.js +267 -0
  91. package/spinner/index.d.ts +17 -0
  92. package/{dist/switch → switch}/Switch.js +14 -28
  93. package/switch/index.d.ts +24 -0
  94. package/table/Table.js +118 -0
  95. package/table/index.d.ts +13 -0
  96. package/{dist/tabs → tabs}/Tabs.js +29 -117
  97. package/tabs/index.d.ts +19 -0
  98. package/{dist/tag → tag}/Tag.js +50 -122
  99. package/tag/index.d.ts +24 -0
  100. package/text-input/TextInput.js +818 -0
  101. package/text-input/index.d.ts +135 -0
  102. package/textarea/Textarea.js +315 -0
  103. package/textarea/index.d.ts +117 -0
  104. package/{dist/toggle → toggle}/Toggle.js +15 -49
  105. package/toggle/index.d.ts +21 -0
  106. package/toggle-group/ToggleGroup.js +243 -0
  107. package/toggle-group/index.d.ts +21 -0
  108. package/{dist/upload → upload}/Upload.js +11 -15
  109. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  110. package/upload/buttons-upload/Icons.js +40 -0
  111. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  112. package/upload/dragAndDropArea/Icons.js +39 -0
  113. package/upload/file-upload/FileToUpload.js +115 -0
  114. package/upload/file-upload/Icons.js +66 -0
  115. package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
  116. package/upload/index.d.ts +15 -0
  117. package/upload/transaction/Icons.js +160 -0
  118. package/upload/transaction/Transaction.js +104 -0
  119. package/upload/transactions/Transactions.js +94 -0
  120. package/{dist/useTheme.js → useTheme.js} +0 -0
  121. package/wizard/Icons.js +65 -0
  122. package/wizard/Wizard.js +271 -0
  123. package/wizard/index.d.ts +18 -0
  124. package/README.md +0 -66
  125. package/babel.config.js +0 -8
  126. package/dist/BackgroundColorContext.js +0 -46
  127. package/dist/ThemeContext.js +0 -216
  128. package/dist/accordion/Accordion.stories.js +0 -207
  129. package/dist/accordion/readme.md +0 -96
  130. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  131. package/dist/accordion-group/readme.md +0 -70
  132. package/dist/alert/Alert.js +0 -388
  133. package/dist/alert/Alert.stories.js +0 -158
  134. package/dist/alert/close.svg +0 -4
  135. package/dist/alert/error.svg +0 -4
  136. package/dist/alert/info.svg +0 -4
  137. package/dist/alert/readme.md +0 -43
  138. package/dist/alert/success.svg +0 -4
  139. package/dist/alert/warning.svg +0 -4
  140. package/dist/badge/Badge.js +0 -61
  141. package/dist/button/Button.js +0 -228
  142. package/dist/button/Button.stories.js +0 -224
  143. package/dist/button/readme.md +0 -93
  144. package/dist/checkbox/Checkbox.stories.js +0 -144
  145. package/dist/checkbox/readme.md +0 -116
  146. package/dist/common/variables.js +0 -1165
  147. package/dist/date/Date.stories.js +0 -205
  148. package/dist/date/calendar.svg +0 -1
  149. package/dist/date/calendar_dark.svg +0 -1
  150. package/dist/date/readme.md +0 -73
  151. package/dist/dialog/Dialog.stories.js +0 -217
  152. package/dist/dialog/readme.md +0 -32
  153. package/dist/dropdown/Dropdown.js +0 -498
  154. package/dist/dropdown/Dropdown.stories.js +0 -249
  155. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  156. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  157. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  158. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  159. package/dist/dropdown/readme.md +0 -69
  160. package/dist/footer/Footer.stories.js +0 -94
  161. package/dist/footer/dxc_logo_wht.png +0 -0
  162. package/dist/footer/readme.md +0 -41
  163. package/dist/header/Header.js +0 -431
  164. package/dist/header/Header.stories.js +0 -176
  165. package/dist/header/close_icon.svg +0 -1
  166. package/dist/header/dxc_logo_black.png +0 -0
  167. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  168. package/dist/header/dxc_logo_white.png +0 -0
  169. package/dist/header/hamb_menu_black.svg +0 -1
  170. package/dist/header/hamb_menu_white.svg +0 -1
  171. package/dist/header/readme.md +0 -33
  172. package/dist/input-text/InputText.stories.js +0 -209
  173. package/dist/input-text/error.svg +0 -1
  174. package/dist/input-text/readme.md +0 -91
  175. package/dist/layout/facebook.svg +0 -45
  176. package/dist/layout/linkedin.svg +0 -50
  177. package/dist/layout/twitter.svg +0 -53
  178. package/dist/link/Link.js +0 -212
  179. package/dist/link/readme.md +0 -51
  180. package/dist/paginator/Paginator.js +0 -283
  181. package/dist/paginator/images/next.svg +0 -3
  182. package/dist/paginator/images/nextPage.svg +0 -3
  183. package/dist/paginator/images/previous.svg +0 -3
  184. package/dist/paginator/images/previousPage.svg +0 -3
  185. package/dist/paginator/readme.md +0 -50
  186. package/dist/progress-bar/ProgressBar.js +0 -206
  187. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  188. package/dist/progress-bar/readme.md +0 -63
  189. package/dist/radio/Radio.stories.js +0 -166
  190. package/dist/radio/readme.md +0 -70
  191. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  192. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  193. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  194. package/dist/select/Select.js +0 -525
  195. package/dist/select/Select.stories.js +0 -235
  196. package/dist/select/readme.md +0 -72
  197. package/dist/slider/Slider.js +0 -315
  198. package/dist/slider/Slider.stories.js +0 -241
  199. package/dist/slider/readme.md +0 -64
  200. package/dist/spinner/Spinner.js +0 -214
  201. package/dist/spinner/Spinner.stories.js +0 -183
  202. package/dist/spinner/readme.md +0 -65
  203. package/dist/switch/Switch.stories.js +0 -134
  204. package/dist/switch/readme.md +0 -133
  205. package/dist/table/Table.js +0 -122
  206. package/dist/tabs/Tabs.stories.js +0 -130
  207. package/dist/tabs/readme.md +0 -78
  208. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  209. package/dist/tabs-for-sections/readme.md +0 -78
  210. package/dist/toggle/Toggle.stories.js +0 -297
  211. package/dist/toggle/readme.md +0 -80
  212. package/dist/toggle-group/ToggleGroup.js +0 -241
  213. package/dist/toggle-group/readme.md +0 -82
  214. package/dist/upload/Upload.stories.js +0 -72
  215. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  216. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  217. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  218. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -325
  219. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  220. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  221. package/dist/upload/file-upload/FileToUpload.js +0 -184
  222. package/dist/upload/file-upload/audio-icon.svg +0 -4
  223. package/dist/upload/file-upload/close.svg +0 -4
  224. package/dist/upload/file-upload/file-icon.svg +0 -4
  225. package/dist/upload/file-upload/video-icon.svg +0 -4
  226. package/dist/upload/readme.md +0 -37
  227. package/dist/upload/transaction/Transaction.js +0 -171
  228. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  229. package/dist/upload/transaction/audio-icon.svg +0 -4
  230. package/dist/upload/transaction/error-icon.svg +0 -4
  231. package/dist/upload/transaction/file-icon-err.svg +0 -4
  232. package/dist/upload/transaction/file-icon.svg +0 -4
  233. package/dist/upload/transaction/image-icon-err.svg +0 -4
  234. package/dist/upload/transaction/image-icon.svg +0 -4
  235. package/dist/upload/transaction/success-icon.svg +0 -4
  236. package/dist/upload/transaction/video-icon-err.svg +0 -4
  237. package/dist/upload/transaction/video-icon.svg +0 -4
  238. package/dist/upload/transactions/Transactions.js +0 -138
  239. package/dist/wizard/Wizard.js +0 -383
  240. package/dist/wizard/invalid_icon.svg +0 -6
  241. package/dist/wizard/valid_icon.svg +0 -6
  242. package/dist/wizard/validation-wrong.svg +0 -6
  243. package/test/Accordion.test.js +0 -33
  244. package/test/AccordionGroup.test.js +0 -125
  245. package/test/Alert.test.js +0 -53
  246. package/test/Box.test.js +0 -10
  247. package/test/Button.test.js +0 -18
  248. package/test/Card.test.js +0 -30
  249. package/test/Checkbox.test.js +0 -45
  250. package/test/Chip.test.js +0 -25
  251. package/test/Date.test.js +0 -393
  252. package/test/Dialog.test.js +0 -23
  253. package/test/Dropdown.test.js +0 -130
  254. package/test/Footer.test.js +0 -99
  255. package/test/Header.test.js +0 -39
  256. package/test/Heading.test.js +0 -35
  257. package/test/InputText.test.js +0 -240
  258. package/test/Link.test.js +0 -42
  259. package/test/Paginator.test.js +0 -177
  260. package/test/ProgressBar.test.js +0 -35
  261. package/test/Radio.test.js +0 -37
  262. package/test/ResultsetTable.test.js +0 -330
  263. package/test/Select.test.js +0 -192
  264. package/test/Sidenav.test.js +0 -45
  265. package/test/Slider.test.js +0 -82
  266. package/test/Spinner.test.js +0 -27
  267. package/test/Switch.test.js +0 -45
  268. package/test/Table.test.js +0 -36
  269. package/test/Tabs.test.js +0 -109
  270. package/test/TabsForSections.test.js +0 -34
  271. package/test/Tag.test.js +0 -32
  272. package/test/TextArea.test.js +0 -52
  273. package/test/ToggleGroup.test.js +0 -81
  274. package/test/Upload.test.js +0 -60
  275. package/test/Wizard.test.js +0 -130
  276. package/test/mocks/pngMock.js +0 -1
  277. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,818 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
+
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _variables = require("../common/variables.js");
29
+
30
+ var _utils = require("../common/utils.js");
31
+
32
+ var _uuid = require("uuid");
33
+
34
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
35
+
36
+ var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext.js"));
37
+
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ var textInputIcons = {
45
+ error: /*#__PURE__*/_react["default"].createElement("svg", {
46
+ xmlns: "http://www.w3.org/2000/svg",
47
+ height: "24px",
48
+ viewBox: "0 0 24 24",
49
+ width: "24px",
50
+ fill: "currentColor"
51
+ }, /*#__PURE__*/_react["default"].createElement("path", {
52
+ 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"
53
+ })),
54
+ clear: /*#__PURE__*/_react["default"].createElement("svg", {
55
+ xmlns: "http://www.w3.org/2000/svg",
56
+ width: "24",
57
+ height: "24",
58
+ viewBox: "0 0 24 24",
59
+ fill: "currentColor"
60
+ }, /*#__PURE__*/_react["default"].createElement("path", {
61
+ d: "M0 0h24v24H0V0z",
62
+ fill: "none"
63
+ }), /*#__PURE__*/_react["default"].createElement("path", {
64
+ 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"
65
+ })),
66
+ increment: /*#__PURE__*/_react["default"].createElement("svg", {
67
+ xmlns: "http://www.w3.org/2000/svg",
68
+ height: "24px",
69
+ viewBox: "0 0 24 24",
70
+ width: "24px",
71
+ fill: "currentColor"
72
+ }, /*#__PURE__*/_react["default"].createElement("path", {
73
+ d: "M0 0h24v24H0z",
74
+ fill: "none"
75
+ }), /*#__PURE__*/_react["default"].createElement("path", {
76
+ d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
77
+ })),
78
+ decrement: /*#__PURE__*/_react["default"].createElement("svg", {
79
+ xmlns: "http://www.w3.org/2000/svg",
80
+ height: "24px",
81
+ viewBox: "0 0 24 24",
82
+ width: "24px",
83
+ fill: "currentColor"
84
+ }, /*#__PURE__*/_react["default"].createElement("path", {
85
+ d: "M0 0h24v24H0z",
86
+ fill: "none"
87
+ }), /*#__PURE__*/_react["default"].createElement("path", {
88
+ d: "M19 13H5v-2h14v2z"
89
+ }))
90
+ };
91
+
92
+ var makeCancelable = function makeCancelable(promise) {
93
+ var hasCanceled_ = false;
94
+ var wrappedPromise = new Promise(function (resolve, reject) {
95
+ promise.then(function (val) {
96
+ return hasCanceled_ ? reject({
97
+ isCanceled: true
98
+ }) : resolve(val);
99
+ }, function (promiseError) {
100
+ return hasCanceled_ ? reject({
101
+ isCanceled: true
102
+ }) : reject(promiseError);
103
+ });
104
+ });
105
+ return {
106
+ promise: wrappedPromise,
107
+ cancel: function cancel() {
108
+ hasCanceled_ = true;
109
+ }
110
+ };
111
+ };
112
+
113
+ var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
114
+ return "This field is required. Please, enter a value.";
115
+ };
116
+
117
+ var getLengthErrorMessage = function getLengthErrorMessage(length) {
118
+ return "Min length ".concat(length.min, ", max length ").concat(length.max, ".");
119
+ };
120
+
121
+ var getPatternErrorMessage = function getPatternErrorMessage() {
122
+ return "Please match the format requested.";
123
+ };
124
+
125
+ var patternMatch = function patternMatch(pattern, value) {
126
+ return new RegExp(pattern).test(value);
127
+ };
128
+
129
+ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
130
+ var _action$title;
131
+
132
+ var _ref$label = _ref.label,
133
+ label = _ref$label === void 0 ? "" : _ref$label,
134
+ _ref$name = _ref.name,
135
+ name = _ref$name === void 0 ? "" : _ref$name,
136
+ value = _ref.value,
137
+ _ref$helperText = _ref.helperText,
138
+ helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
139
+ _ref$placeholder = _ref.placeholder,
140
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
141
+ action = _ref.action,
142
+ _ref$clearable = _ref.clearable,
143
+ clearable = _ref$clearable === void 0 ? false : _ref$clearable,
144
+ _ref$disabled = _ref.disabled,
145
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
146
+ _ref$optional = _ref.optional,
147
+ optional = _ref$optional === void 0 ? false : _ref$optional,
148
+ _ref$prefix = _ref.prefix,
149
+ prefix = _ref$prefix === void 0 ? "" : _ref$prefix,
150
+ _ref$suffix = _ref.suffix,
151
+ suffix = _ref$suffix === void 0 ? "" : _ref$suffix,
152
+ onChange = _ref.onChange,
153
+ onBlur = _ref.onBlur,
154
+ _ref$error = _ref.error,
155
+ error = _ref$error === void 0 ? "" : _ref$error,
156
+ suggestions = _ref.suggestions,
157
+ pattern = _ref.pattern,
158
+ length = _ref.length,
159
+ _ref$autocomplete = _ref.autocomplete,
160
+ autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
161
+ margin = _ref.margin,
162
+ _ref$size = _ref.size,
163
+ size = _ref$size === void 0 ? "medium" : _ref$size,
164
+ _ref$tabIndex = _ref.tabIndex,
165
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
166
+
167
+ var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
168
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
169
+ inputId = _useState2[0];
170
+
171
+ var _useState3 = (0, _react.useState)(""),
172
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
173
+ innerValue = _useState4[0],
174
+ setInnerValue = _useState4[1];
175
+
176
+ var _useState5 = (0, _react.useState)(false),
177
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
178
+ isOpen = _useState6[0],
179
+ changeIsOpen = _useState6[1];
180
+
181
+ var _useState7 = (0, _react.useState)(false),
182
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
183
+ isSearching = _useState8[0],
184
+ changeIsSearching = _useState8[1];
185
+
186
+ var _useState9 = (0, _react.useState)(false),
187
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
188
+ isAutosuggestError = _useState10[0],
189
+ changeIsAutosuggestError = _useState10[1];
190
+
191
+ var _useState11 = (0, _react.useState)([]),
192
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
193
+ filteredSuggestions = _useState12[0],
194
+ changeFilteredSuggestions = _useState12[1];
195
+
196
+ var _useState13 = (0, _react.useState)(-1),
197
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
198
+ visualFocusedSuggIndex = _useState14[0],
199
+ changeVisualFocusedSuggIndex = _useState14[1];
200
+
201
+ var suggestionsRef = (0, _react.useRef)(null);
202
+ var inputRef = (0, _react.useRef)(null);
203
+ var actionRef = (0, _react.useRef)(null);
204
+ var colorsTheme = (0, _useTheme["default"])();
205
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
206
+ var autosuggestId = "".concat(inputId, "-listBox");
207
+ var errorId = "error-message-".concat(inputId);
208
+ var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
209
+
210
+ var isNotOptional = function isNotOptional(value) {
211
+ return value === "" && !optional;
212
+ };
213
+
214
+ var isLengthIncorrect = function isLengthIncorrect(value) {
215
+ return value !== "" && length && length.min && length.max && (value.length < length.min || value.length > length.max);
216
+ };
217
+
218
+ var isNumberIncorrect = function isNumberIncorrect(value) {
219
+ return (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
220
+ };
221
+
222
+ var isTextInputType = function isTextInputType() {
223
+ var _inputRef$current, _inputRef$current2;
224
+
225
+ return !(inputRef !== null && inputRef !== void 0 && (_inputRef$current = inputRef.current) !== null && _inputRef$current !== void 0 && _inputRef$current.getAttribute("type")) || (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.getAttribute("type")) === "text";
226
+ };
227
+
228
+ var getNumberErrorMessage = function getNumberErrorMessage(value) {
229
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return "Value must be greater than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, ".");else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return "Value must be less than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber, ".");
230
+ };
231
+
232
+ var hasSuggestions = function hasSuggestions() {
233
+ return typeof suggestions === "function" || suggestions && suggestions.length > 0;
234
+ };
235
+
236
+ var openSuggestions = function openSuggestions() {
237
+ if (hasSuggestions() && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError)) changeIsOpen(true);
238
+ };
239
+
240
+ var closeSuggestions = function closeSuggestions() {
241
+ changeIsOpen(false);
242
+ changeVisualFocusedSuggIndex(-1);
243
+ };
244
+
245
+ var changeValue = function changeValue(newValue) {
246
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
247
+ var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
248
+ if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
249
+ value: changedValue,
250
+ error: getNotOptionalErrorMessage()
251
+ });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
252
+ value: changedValue,
253
+ error: getLengthErrorMessage(length)
254
+ });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
255
+ value: changedValue,
256
+ error: getPatternErrorMessage()
257
+ });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
258
+ value: changedValue,
259
+ error: getNumberErrorMessage(newValue)
260
+ });else onChange === null || onChange === void 0 ? void 0 : onChange({
261
+ value: changedValue,
262
+ error: null
263
+ });
264
+ };
265
+
266
+ var handleInputContainerOnClick = function handleInputContainerOnClick() {
267
+ document.activeElement !== actionRef.current && inputRef.current.focus();
268
+ };
269
+
270
+ var handleIOnChange = function handleIOnChange(event) {
271
+ openSuggestions();
272
+ changeValue(event.target.value);
273
+ };
274
+
275
+ var handleIOnClick = function handleIOnClick() {
276
+ openSuggestions();
277
+ };
278
+
279
+ var handleIOnBlur = function handleIOnBlur(event) {
280
+ suggestions && closeSuggestions();
281
+ if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
282
+ value: event.target.value,
283
+ error: getNotOptionalErrorMessage()
284
+ });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
285
+ value: event.target.value,
286
+ error: getLengthErrorMessage(length)
287
+ });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
288
+ value: event.target.value,
289
+ error: getPatternErrorMessage()
290
+ });else if (event.target.value && isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
291
+ value: event.target.value,
292
+ error: getNumberErrorMessage(event.target.value)
293
+ });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
294
+ value: event.target.value,
295
+ error: null
296
+ });
297
+ };
298
+
299
+ var handleIOnFocus = function handleIOnFocus() {
300
+ openSuggestions();
301
+ };
302
+
303
+ var handleIOnKeyDown = function handleIOnKeyDown(event) {
304
+ switch (event.keyCode) {
305
+ case 40:
306
+ // Arrow Down
307
+ if (numberInputContext) {
308
+ decrementNumber();
309
+ event.preventDefault();
310
+ } else {
311
+ event.preventDefault();
312
+ openSuggestions();
313
+
314
+ if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
315
+ changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
316
+ if (visualFocusedSuggIndex < filteredSuggestions.length - 1) return visualFocusedSuggIndex + 1;else if (visualFocusedSuggIndex === filteredSuggestions.length - 1) return 0;
317
+ });
318
+ }
319
+ }
320
+
321
+ break;
322
+
323
+ case 38:
324
+ // Arrow Up
325
+ if (numberInputContext) {
326
+ incrementNumber();
327
+ event.preventDefault();
328
+ } else {
329
+ event.preventDefault();
330
+ openSuggestions();
331
+
332
+ if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
333
+ changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
334
+ if (visualFocusedSuggIndex === 0 || visualFocusedSuggIndex === -1) return filteredSuggestions.length > 0 ? filteredSuggestions.length - 1 : suggestions.length - 1;else return visualFocusedSuggIndex - 1;
335
+ });
336
+ }
337
+ }
338
+
339
+ break;
340
+
341
+ case 27:
342
+ // Esc
343
+ event.preventDefault();
344
+
345
+ if (hasSuggestions()) {
346
+ changeValue("");
347
+ isOpen && closeSuggestions();
348
+ }
349
+
350
+ break;
351
+
352
+ case 13:
353
+ // Enter
354
+ if (hasSuggestions() && !isSearching) {
355
+ var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
356
+ validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
357
+ isOpen && closeSuggestions();
358
+ }
359
+
360
+ break;
361
+ }
362
+ };
363
+
364
+ var handleClearActionOnClick = function handleClearActionOnClick() {
365
+ changeValue("");
366
+ inputRef.current.focus();
367
+ suggestions && closeSuggestions();
368
+ };
369
+
370
+ var handleDecrementActionOnClick = function handleDecrementActionOnClick() {
371
+ decrementNumber();
372
+ inputRef.current.focus();
373
+ };
374
+
375
+ var handleIncrementActionOnClick = function handleIncrementActionOnClick() {
376
+ incrementNumber();
377
+ inputRef.current.focus();
378
+ };
379
+
380
+ var setNumberProps = function setNumberProps(type, min, max, step) {
381
+ var _inputRef$current3, _inputRef$current4, _inputRef$current5, _inputRef$current6;
382
+
383
+ type && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("type", type));
384
+ min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("min", min));
385
+ max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("max", max));
386
+ step && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 ? void 0 : _inputRef$current6.setAttribute("step", step));
387
+ };
388
+
389
+ var decrementNumber = function decrementNumber() {
390
+ var numberValue = value !== null && value !== void 0 ? value : innerValue;
391
+
392
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) {
393
+ changeValue(parseInt(numberValue));
394
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
395
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
396
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && (parseInt(numberValue) === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberValue === "" || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber))) {
397
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
398
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) >= (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue !== "") {
399
+ changeValue(parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
400
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
401
+ changeValue(-(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
402
+ } else if (numberValue === "") {
403
+ changeValue(-1);
404
+ } else {
405
+ changeValue(parseInt(numberValue) - 1);
406
+ }
407
+ };
408
+
409
+ var incrementNumber = function incrementNumber() {
410
+ var numberValue = value !== null && value !== void 0 ? value : innerValue;
411
+
412
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
413
+ changeValue(parseInt(numberValue));
414
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && (parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberValue === "")) {
415
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
416
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && (parseInt(numberValue) === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber))) {
417
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
418
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) <= (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue !== "") {
419
+ changeValue(parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
420
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
421
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber);
422
+ } else if (numberValue === "") {
423
+ changeValue(1);
424
+ } else {
425
+ changeValue(parseInt(numberValue) + 1);
426
+ }
427
+ };
428
+
429
+ (0, _react.useLayoutEffect)(function () {
430
+ var _suggestionsRef$curre, _visualFocusedOptionE;
431
+
432
+ var visualFocusedOptionEl = suggestionsRef === null || suggestionsRef === void 0 ? void 0 : (_suggestionsRef$curre = suggestionsRef.current) === null || _suggestionsRef$curre === void 0 ? void 0 : _suggestionsRef$curre.querySelectorAll("[role='option']")[visualFocusedSuggIndex];
433
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
434
+ block: "nearest",
435
+ inline: "start"
436
+ });
437
+ }, [visualFocusedSuggIndex]);
438
+ (0, _react.useEffect)(function () {
439
+ if (typeof suggestions === "function") {
440
+ changeIsSearching(true);
441
+ changeIsAutosuggestError(false);
442
+ changeFilteredSuggestions([]);
443
+ var cancelablePromise = makeCancelable(suggestions(value !== null && value !== void 0 ? value : innerValue));
444
+ cancelablePromise.promise.then(function (promiseResponse) {
445
+ changeIsSearching(false);
446
+ changeIsAutosuggestError(false);
447
+ changeFilteredSuggestions(promiseResponse);
448
+ })["catch"](function (err) {
449
+ if (!err.isCanceled) {
450
+ changeIsSearching(false);
451
+ changeIsAutosuggestError(true);
452
+ }
453
+ });
454
+ return function () {
455
+ cancelablePromise.cancel();
456
+ };
457
+ } else if ((suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0) {
458
+ changeFilteredSuggestions(suggestions.filter(function (suggestion) {
459
+ return suggestion.toUpperCase().startsWith((value !== null && value !== void 0 ? value : innerValue).toUpperCase());
460
+ }));
461
+ changeVisualFocusedSuggIndex(-1);
462
+ }
463
+
464
+ numberInputContext && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
465
+ }, [value, innerValue, suggestions]);
466
+ (0, _react.useLayoutEffect)(function () {
467
+ if (filteredSuggestions.length === 0 && !isSearching && !isAutosuggestError) closeSuggestions();
468
+ }, [filteredSuggestions]);
469
+
470
+ var getLastOptionIndex = function getLastOptionIndex() {
471
+ var last = 0;
472
+
473
+ var reducer = function reducer(acc, current) {
474
+ var _current$options;
475
+
476
+ return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
477
+ };
478
+
479
+ if (filteredSuggestions.length > 0) filteredSuggestions[0].options ? last = filteredSuggestions.reduce(reducer, 0) - 1 : last = filteredSuggestions.length - 1;
480
+ return last;
481
+ };
482
+
483
+ var lastOptionIndex = (0, _react.useMemo)(function () {
484
+ return getLastOptionIndex();
485
+ }, [filteredSuggestions]);
486
+
487
+ var HighlightedSuggestion = function HighlightedSuggestion(_ref2) {
488
+ var suggestion = _ref2.suggestion,
489
+ index = _ref2.index;
490
+ var regEx = new RegExp(value !== null && value !== void 0 ? value : innerValue, "i");
491
+ var matchedWords = suggestion.match(regEx);
492
+ var noMatchedWords = suggestion.replace(regEx, "");
493
+ var isLastOption = index === lastOptionIndex;
494
+ return /*#__PURE__*/_react["default"].createElement(Suggestion, {
495
+ id: "suggestion-".concat(index),
496
+ onClick: function onClick() {
497
+ changeValue(suggestion);
498
+ closeSuggestions();
499
+ },
500
+ role: "option",
501
+ "aria-selected": visualFocusedSuggIndex === index && "true",
502
+ visualFocused: visualFocusedSuggIndex === index
503
+ }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
504
+ last: isLastOption,
505
+ visualFocused: visualFocusedSuggIndex === index
506
+ }, typeof suggestions === "function" ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
507
+ };
508
+
509
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
510
+ theme: colorsTheme.textInput
511
+ }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
512
+ margin: margin,
513
+ ref: ref,
514
+ size: size
515
+ }, /*#__PURE__*/_react["default"].createElement(Label, {
516
+ htmlFor: inputId,
517
+ disabled: disabled,
518
+ backgroundType: backgroundType
519
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), /*#__PURE__*/_react["default"].createElement(HelperText, {
520
+ disabled: disabled,
521
+ backgroundType: backgroundType
522
+ }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
523
+ error: error,
524
+ disabled: disabled,
525
+ backgroundType: backgroundType,
526
+ onClick: handleInputContainerOnClick
527
+ }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
528
+ disabled: disabled,
529
+ backgroundType: backgroundType
530
+ }, prefix), /*#__PURE__*/_react["default"].createElement(Input, {
531
+ id: inputId,
532
+ name: name,
533
+ value: value !== null && value !== void 0 ? value : innerValue,
534
+ placeholder: placeholder,
535
+ onChange: handleIOnChange,
536
+ onClick: handleIOnClick,
537
+ onBlur: handleIOnBlur,
538
+ onFocus: handleIOnFocus,
539
+ onKeyDown: handleIOnKeyDown,
540
+ disabled: disabled,
541
+ ref: inputRef,
542
+ backgroundType: backgroundType,
543
+ pattern: pattern,
544
+ minLength: length === null || length === void 0 ? void 0 : length.min,
545
+ maxLength: length === null || length === void 0 ? void 0 : length.max,
546
+ autoComplete: autocomplete,
547
+ tabIndex: tabIndex,
548
+ role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
549
+ "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
550
+ "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
551
+ "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
552
+ "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
553
+ "aria-invalid": error ? "true" : "false",
554
+ "aria-describedby": error ? errorId : undefined,
555
+ "aria-required": optional ? "false" : "true"
556
+ }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
557
+ backgroundType: backgroundType,
558
+ "aria-label": "Error"
559
+ }, textInputIcons.error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
560
+ onClick: handleClearActionOnClick,
561
+ backgroundType: backgroundType,
562
+ tabIndex: tabIndex,
563
+ "aria-label": "Clear"
564
+ }, textInputIcons.clear), (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Action, {
565
+ ref: actionRef,
566
+ disabled: disabled,
567
+ onClick: handleDecrementActionOnClick,
568
+ backgroundType: backgroundType,
569
+ tabIndex: tabIndex,
570
+ "aria-label": "Decrement"
571
+ }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
572
+ ref: actionRef,
573
+ disabled: disabled,
574
+ onClick: handleIncrementActionOnClick,
575
+ backgroundType: backgroundType,
576
+ tabIndex: tabIndex,
577
+ "aria-label": "Increment"
578
+ }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
579
+ ref: actionRef,
580
+ disabled: disabled,
581
+ onClick: action.onClick,
582
+ title: (_action$title = action.title) !== null && _action$title !== void 0 ? _action$title : action.title,
583
+ backgroundType: backgroundType,
584
+ tabIndex: tabIndex
585
+ }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ActionIcon, {
586
+ src: action.icon
587
+ }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
588
+ disabled: disabled,
589
+ backgroundType: backgroundType
590
+ }, suffix), isOpen && /*#__PURE__*/_react["default"].createElement(Suggestions, {
591
+ id: autosuggestId,
592
+ isError: isAutosuggestError,
593
+ onMouseDown: function onMouseDown(event) {
594
+ event.preventDefault();
595
+ },
596
+ onMouseLeave: function onMouseLeave() {
597
+ changeVisualFocusedSuggIndex(-1);
598
+ },
599
+ ref: suggestionsRef,
600
+ role: "listbox",
601
+ "aria-label": label
602
+ }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
603
+ return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
604
+ key: "suggestion-".concat((0, _uuid.v4)()),
605
+ suggestion: suggestion,
606
+ index: index
607
+ });
608
+ }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
609
+ backgroundType: backgroundType
610
+ }, textInputIcons.error), "Error fetching data"))), !disabled && /*#__PURE__*/_react["default"].createElement(Error, {
611
+ id: errorId,
612
+ backgroundType: backgroundType
613
+ }, error)));
614
+ });
615
+
616
+ var sizes = {
617
+ small: "240px",
618
+ medium: "360px",
619
+ large: "480px",
620
+ fillParent: "100%"
621
+ };
622
+
623
+ var calculateWidth = function calculateWidth(margin, size) {
624
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
625
+ };
626
+
627
+ var DxcInput = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
628
+ return calculateWidth(props.margin, props.size);
629
+ }, function (props) {
630
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
631
+ }, function (props) {
632
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
633
+ }, function (props) {
634
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
635
+ }, function (props) {
636
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
637
+ }, function (props) {
638
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
639
+ });
640
+
641
+ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
642
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
643
+ }, function (props) {
644
+ return props.theme.fontFamily;
645
+ }, function (props) {
646
+ return props.theme.labelFontSize;
647
+ }, function (props) {
648
+ return props.theme.labelFontStyle;
649
+ }, function (props) {
650
+ return props.theme.labelFontWeight;
651
+ }, function (props) {
652
+ return props.theme.labelLineHeight;
653
+ });
654
+
655
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
656
+ return props.theme.optionalLabelFontWeight;
657
+ });
658
+
659
+ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
660
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
661
+ }, function (props) {
662
+ return props.theme.fontFamily;
663
+ }, function (props) {
664
+ return props.theme.helperTextFontSize;
665
+ }, function (props) {
666
+ return props.theme.helperTextFontStyle;
667
+ }, function (props) {
668
+ return props.theme.helperTextFontWeight;
669
+ }, function (props) {
670
+ return props.theme.helperTextLineHeight;
671
+ });
672
+
673
+ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n margin: ", ";\n padding: 0 0.5rem;\n\n ", "\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
674
+ return "".concat(props.theme.inputMarginTop, " 0 ").concat(props.theme.inputMarginBottom, " 0");
675
+ }, function (props) {
676
+ if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");
677
+ }, function (props) {
678
+ if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
679
+ }, function (props) {
680
+ return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
681
+ }, function (props) {
682
+ return props.disabled && "cursor: not-allowed;";
683
+ }, function (props) {
684
+ return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
685
+ });
686
+
687
+ var Input = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: calc(2.5rem - 2px);\n width: 100%;\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n ", "\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
688
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
689
+ }, function (props) {
690
+ return props.theme.fontFamily;
691
+ }, function (props) {
692
+ return props.theme.valueFontSize;
693
+ }, function (props) {
694
+ return props.theme.valueFontStyle;
695
+ }, function (props) {
696
+ return props.theme.valueFontWeight;
697
+ }, function (props) {
698
+ return props.disabled && "cursor: not-allowed;";
699
+ }, function (props) {
700
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
701
+ });
702
+
703
+ var ActionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
704
+
705
+ var Action = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (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: 0.25rem;\n ", "\n\n box-shadow: 0 0 0 2px transparent;\n background-color: ", ";\n\n color: ", ";\n\n ", "\n\n svg {\n line-height: 18px;\n }\n"])), function (props) {
706
+ return props.theme.fontFamily;
707
+ }, function (props) {
708
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
709
+ }, function (props) {
710
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionBackgroundColorOnDark : props.theme.disabledActionBackgroundColor : props.backgroundType === "dark" ? props.theme.actionBackgroundColorOnDark : props.theme.actionBackgroundColor;
711
+ }, function (props) {
712
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionIconColorOnDark : props.theme.disabledActionIconColor : props.backgroundType === "dark" ? props.theme.actionIconColorOnDark : props.theme.actionIconColor;
713
+ }, function (props) {
714
+ return !props.disabled && "\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.focusActionBorderColorOnDark : props.theme.focusActionBorderColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.focusActionIconColorOnDark : props.theme.focusActionIconColor, ";\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusActionBorderColorOnDark : props.theme.focusActionBorderColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.focusActionIconColorOnDark : props.theme.focusActionIconColor, ";\n }\n &:hover {\n background-color: ").concat(props.backgroundType === "dark" ? props.theme.hoverActionBackgroundColorOnDark : props.theme.hoverActionBackgroundColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.hoverActionIconColorOnDark : props.theme.hoverActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.backgroundType === "dark" ? props.theme.activeActionBackgroundColorOnDark : props.theme.activeActionBackgroundColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.activeActionIconColorOnDark : props.theme.activeActionIconColor, ";\n }\n ");
715
+ });
716
+
717
+ var Prefix = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n line-height: 1.5rem;\n margin-left: 0.25rem;\n padding: 0 0.5rem 0 0;\n ", ";\n font-family: ", ";\n font-size: 1rem;\n pointer-events: none;\n"])), function (props) {
718
+ var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPrefixColorOnDark : props.theme.disabledPrefixColor : props.backgroundType === "dark" ? props.theme.prefixColorOnDark : props.theme.prefixColor;
719
+ return "color: ".concat(color, "; border-right: 1px solid ").concat(color, ";");
720
+ }, function (props) {
721
+ return props.theme.fontFamily;
722
+ });
723
+
724
+ var Suffix = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n line-height: 1.5rem;\n margin: 0 0.25rem;\n padding: 0 0 0 0.5rem;\n ", ";\n font-family: ", ";\n font-size: 1rem;\n pointer-events: none;\n"])), function (props) {
725
+ var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledSuffixColorOnDark : props.theme.disabledSuffixColor : props.backgroundType === "dark" ? props.theme.suffixColorOnDark : props.theme.suffixColor;
726
+ return "color: ".concat(color, "; border-left: 1px solid ").concat(color, ";");
727
+ }, function (props) {
728
+ return props.theme.fontFamily;
729
+ });
730
+
731
+ var ErrorIcon = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (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: 0.25rem;\n color: ", ";\n\n svg {\n line-height: 18px;\n font-size: 1.25rem;\n }\n"])), function (props) {
732
+ return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
733
+ });
734
+
735
+ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n"])), function (props) {
736
+ return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
737
+ }, function (props) {
738
+ return props.theme.fontFamily;
739
+ });
740
+
741
+ var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid\n ", ";\n border-radius: 0.25rem;\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"])), function (props) {
742
+ return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
743
+ }, function (props) {
744
+ return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
745
+ }, function (props) {
746
+ return props.theme.listOptionFontColor;
747
+ }, function (props) {
748
+ return props.theme.fontFamily;
749
+ }, function (props) {
750
+ return props.theme.listOptionFontSize;
751
+ }, function (props) {
752
+ return props.theme.listOptionFontStyle;
753
+ }, function (props) {
754
+ return props.theme.listOptionFontWeight;
755
+ });
756
+
757
+ var Suggestion = _styledComponents["default"].li(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
758
+ return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
759
+ }, function (props) {
760
+ return props.theme.hoverListOptionBackgroundColor;
761
+ }, function (props) {
762
+ return props.theme.activeListOptionBackgroundColor;
763
+ });
764
+
765
+ var StyledSuggestion = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
766
+ return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
767
+ });
768
+
769
+ var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
770
+ return props.theme.systemMessageFontColor;
771
+ });
772
+
773
+ var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
774
+ return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
775
+ });
776
+
777
+ var SuggestionsError = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
778
+ return props.theme.errorListDialogFontColor;
779
+ });
780
+
781
+ DxcTextInput.propTypes = {
782
+ label: _propTypes["default"].string,
783
+ name: _propTypes["default"].string,
784
+ value: _propTypes["default"].string,
785
+ helperText: _propTypes["default"].string,
786
+ placeholder: _propTypes["default"].string,
787
+ action: _propTypes["default"].shape({
788
+ onClick: _propTypes["default"].func.isRequired,
789
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].shape({
790
+ type: _propTypes["default"].oneOf(["svg"])
791
+ }), _propTypes["default"].string]).isRequired
792
+ }),
793
+ clearable: _propTypes["default"].bool,
794
+ disabled: _propTypes["default"].bool,
795
+ optional: _propTypes["default"].bool,
796
+ prefix: _propTypes["default"].string,
797
+ suffix: _propTypes["default"].string,
798
+ onChange: _propTypes["default"].func,
799
+ onBlur: _propTypes["default"].func,
800
+ error: _propTypes["default"].string,
801
+ autocomplete: _propTypes["default"].string,
802
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
803
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
804
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
805
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
806
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
807
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
808
+ size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
809
+ suggestions: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].array]),
810
+ pattern: _propTypes["default"].string,
811
+ length: _propTypes["default"].shape({
812
+ min: _propTypes["default"].number,
813
+ max: _propTypes["default"].number
814
+ }),
815
+ tabIndex: _propTypes["default"].number
816
+ };
817
+ var _default = DxcTextInput;
818
+ exports["default"] = _default;