@dxc-technology/halstack-react 0.0.0-98ce7b0 → 0.0.0-996618c

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 (254) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +294 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +121 -123
  5. package/accordion/Accordion.stories.tsx +13 -14
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +9 -4
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +126 -0
  12. package/accordion-group/types.d.ts +14 -3
  13. package/alert/Alert.js +5 -2
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +1 -1
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +1 -0
  18. package/bleed/Bleed.js +1 -34
  19. package/bleed/Bleed.stories.tsx +94 -95
  20. package/bleed/types.d.ts +25 -1
  21. package/box/Box.js +23 -33
  22. package/box/Box.test.js +18 -0
  23. package/box/types.d.ts +1 -0
  24. package/bulleted-list/BulletedList.d.ts +7 -0
  25. package/bulleted-list/BulletedList.js +123 -0
  26. package/bulleted-list/BulletedList.stories.tsx +200 -0
  27. package/bulleted-list/types.d.ts +11 -0
  28. package/{list → bulleted-list}/types.js +0 -0
  29. package/button/Button.js +53 -68
  30. package/button/Button.stories.tsx +9 -0
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +7 -7
  33. package/card/Card.js +24 -27
  34. package/card/Card.test.js +50 -0
  35. package/card/types.d.ts +1 -0
  36. package/checkbox/Checkbox.d.ts +2 -2
  37. package/checkbox/Checkbox.js +106 -109
  38. package/checkbox/Checkbox.stories.tsx +146 -130
  39. package/checkbox/Checkbox.test.js +155 -0
  40. package/checkbox/types.d.ts +13 -5
  41. package/chip/Chip.test.js +56 -0
  42. package/chip/types.d.ts +1 -1
  43. package/common/variables.js +236 -339
  44. package/date-input/DateInput.js +56 -42
  45. package/date-input/DateInput.stories.tsx +7 -7
  46. package/date-input/DateInput.test.js +543 -0
  47. package/date-input/types.d.ts +16 -9
  48. package/dialog/Dialog.js +46 -50
  49. package/dialog/Dialog.stories.tsx +57 -2
  50. package/dialog/Dialog.test.js +70 -0
  51. package/dialog/types.d.ts +3 -2
  52. package/dropdown/Dropdown.d.ts +1 -1
  53. package/dropdown/Dropdown.js +247 -251
  54. package/dropdown/Dropdown.stories.tsx +126 -63
  55. package/dropdown/Dropdown.test.js +585 -0
  56. package/dropdown/DropdownMenu.d.ts +4 -0
  57. package/dropdown/DropdownMenu.js +80 -0
  58. package/dropdown/DropdownMenuItem.d.ts +4 -0
  59. package/dropdown/DropdownMenuItem.js +92 -0
  60. package/dropdown/types.d.ts +25 -5
  61. package/file-input/FileInput.d.ts +2 -2
  62. package/file-input/FileInput.js +183 -222
  63. package/file-input/FileInput.stories.tsx +38 -10
  64. package/file-input/FileInput.test.js +498 -0
  65. package/file-input/FileItem.d.ts +4 -14
  66. package/file-input/FileItem.js +43 -66
  67. package/file-input/types.d.ts +17 -0
  68. package/flex/Flex.d.ts +4 -0
  69. package/flex/Flex.js +69 -0
  70. package/flex/Flex.stories.tsx +103 -0
  71. package/flex/types.d.ts +32 -0
  72. package/{radio → flex}/types.js +0 -0
  73. package/footer/Footer.js +15 -88
  74. package/footer/Footer.stories.tsx +8 -1
  75. package/footer/Footer.test.js +109 -0
  76. package/footer/Icons.js +1 -1
  77. package/footer/types.d.ts +2 -1
  78. package/header/Header.js +95 -114
  79. package/header/Header.stories.tsx +46 -36
  80. package/header/Header.test.js +79 -0
  81. package/header/Icons.js +2 -2
  82. package/header/types.d.ts +3 -2
  83. package/heading/Heading.test.js +186 -0
  84. package/inset/Inset.js +1 -34
  85. package/inset/Inset.stories.tsx +36 -36
  86. package/inset/types.d.ts +25 -1
  87. package/layout/ApplicationLayout.d.ts +16 -6
  88. package/layout/ApplicationLayout.js +71 -131
  89. package/layout/ApplicationLayout.stories.tsx +84 -93
  90. package/layout/Icons.d.ts +5 -0
  91. package/layout/Icons.js +13 -2
  92. package/layout/SidenavContext.d.ts +5 -0
  93. package/layout/SidenavContext.js +19 -0
  94. package/layout/types.d.ts +18 -33
  95. package/link/Link.d.ts +3 -2
  96. package/link/Link.js +58 -75
  97. package/link/Link.stories.tsx +95 -53
  98. package/link/Link.test.js +83 -0
  99. package/link/types.d.ts +7 -23
  100. package/main.d.ts +10 -15
  101. package/main.js +48 -82
  102. package/number-input/NumberInput.js +11 -18
  103. package/number-input/NumberInput.stories.tsx +5 -5
  104. package/number-input/NumberInput.test.js +542 -0
  105. package/number-input/types.d.ts +17 -10
  106. package/package.json +20 -16
  107. package/paginator/Paginator.js +17 -38
  108. package/paginator/Paginator.test.js +308 -0
  109. package/paragraph/Paragraph.d.ts +6 -0
  110. package/paragraph/Paragraph.js +38 -0
  111. package/paragraph/Paragraph.stories.tsx +44 -0
  112. package/password-input/PasswordInput.js +7 -4
  113. package/password-input/PasswordInput.test.js +181 -0
  114. package/password-input/types.d.ts +14 -11
  115. package/progress-bar/ProgressBar.d.ts +2 -2
  116. package/progress-bar/ProgressBar.js +57 -51
  117. package/progress-bar/ProgressBar.stories.jsx +13 -11
  118. package/progress-bar/ProgressBar.test.js +110 -0
  119. package/progress-bar/types.d.ts +3 -4
  120. package/quick-nav/QuickNav.d.ts +4 -0
  121. package/quick-nav/QuickNav.js +117 -0
  122. package/quick-nav/QuickNav.stories.tsx +342 -0
  123. package/quick-nav/types.d.ts +21 -0
  124. package/{row → quick-nav}/types.js +0 -0
  125. package/radio-group/Radio.d.ts +1 -1
  126. package/radio-group/Radio.js +53 -37
  127. package/radio-group/RadioGroup.js +67 -57
  128. package/radio-group/RadioGroup.stories.tsx +61 -39
  129. package/radio-group/RadioGroup.test.js +563 -89
  130. package/radio-group/types.d.ts +82 -4
  131. package/resultsetTable/ResultsetTable.js +1 -3
  132. package/resultsetTable/ResultsetTable.test.js +348 -0
  133. package/select/Icons.d.ts +10 -0
  134. package/select/Icons.js +93 -0
  135. package/select/Listbox.d.ts +4 -0
  136. package/select/Listbox.js +198 -0
  137. package/select/Option.d.ts +4 -0
  138. package/select/Option.js +110 -0
  139. package/select/Select.js +147 -365
  140. package/select/Select.stories.tsx +231 -176
  141. package/select/Select.test.js +2233 -0
  142. package/select/types.d.ts +52 -12
  143. package/sidenav/Sidenav.d.ts +6 -5
  144. package/sidenav/Sidenav.js +184 -52
  145. package/sidenav/Sidenav.stories.tsx +154 -156
  146. package/sidenav/Sidenav.test.js +44 -0
  147. package/sidenav/types.d.ts +50 -27
  148. package/slider/Slider.d.ts +2 -2
  149. package/slider/Slider.js +122 -96
  150. package/slider/Slider.stories.tsx +15 -9
  151. package/slider/Slider.test.js +250 -0
  152. package/slider/types.d.ts +10 -2
  153. package/spinner/Spinner.js +1 -1
  154. package/spinner/Spinner.test.js +64 -0
  155. package/switch/Switch.d.ts +2 -2
  156. package/switch/Switch.js +150 -67
  157. package/switch/Switch.stories.tsx +20 -42
  158. package/switch/Switch.test.js +225 -0
  159. package/switch/types.d.ts +12 -4
  160. package/table/Table.js +1 -1
  161. package/table/Table.test.js +26 -0
  162. package/tabs/Tab.d.ts +4 -0
  163. package/tabs/Tab.js +135 -0
  164. package/tabs/Tabs.d.ts +1 -1
  165. package/tabs/Tabs.js +362 -108
  166. package/tabs/Tabs.stories.tsx +74 -8
  167. package/tabs/Tabs.test.js +351 -0
  168. package/tabs/types.d.ts +19 -5
  169. package/tabs-nav/NavTabs.d.ts +8 -0
  170. package/tabs-nav/NavTabs.js +125 -0
  171. package/tabs-nav/NavTabs.stories.tsx +170 -0
  172. package/tabs-nav/NavTabs.test.js +82 -0
  173. package/tabs-nav/Tab.d.ts +4 -0
  174. package/tabs-nav/Tab.js +130 -0
  175. package/tabs-nav/types.d.ts +53 -0
  176. package/{stack → tabs-nav}/types.js +0 -0
  177. package/tag/Tag.js +15 -20
  178. package/tag/Tag.stories.tsx +12 -8
  179. package/tag/Tag.test.js +60 -0
  180. package/tag/types.d.ts +1 -1
  181. package/text-input/Icons.d.ts +8 -0
  182. package/text-input/Icons.js +60 -0
  183. package/text-input/Suggestion.d.ts +4 -0
  184. package/text-input/Suggestion.js +57 -0
  185. package/text-input/Suggestions.d.ts +4 -0
  186. package/text-input/Suggestions.js +134 -0
  187. package/text-input/TextInput.js +217 -334
  188. package/text-input/TextInput.stories.tsx +219 -194
  189. package/text-input/TextInput.test.js +1624 -0
  190. package/text-input/types.d.ts +50 -12
  191. package/textarea/Textarea.js +20 -27
  192. package/textarea/Textarea.stories.jsx +33 -12
  193. package/textarea/Textarea.test.js +437 -0
  194. package/textarea/types.d.ts +18 -11
  195. package/toggle-group/ToggleGroup.d.ts +1 -1
  196. package/toggle-group/ToggleGroup.js +5 -4
  197. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  198. package/toggle-group/ToggleGroup.test.js +156 -0
  199. package/toggle-group/types.d.ts +9 -1
  200. package/typography/Typography.d.ts +4 -0
  201. package/typography/Typography.js +131 -0
  202. package/typography/Typography.stories.tsx +198 -0
  203. package/typography/types.d.ts +18 -0
  204. package/typography/types.js +5 -0
  205. package/useTheme.js +2 -2
  206. package/useTranslatedLabels.d.ts +2 -0
  207. package/useTranslatedLabels.js +20 -0
  208. package/wizard/Wizard.d.ts +1 -1
  209. package/wizard/Wizard.js +58 -54
  210. package/wizard/Wizard.stories.tsx +33 -24
  211. package/wizard/Wizard.test.js +141 -0
  212. package/wizard/types.d.ts +10 -5
  213. package/ThemeContext.d.ts +0 -15
  214. package/ThemeContext.js +0 -243
  215. package/V3Select/V3Select.js +0 -455
  216. package/V3Select/index.d.ts +0 -27
  217. package/V3Textarea/V3Textarea.js +0 -260
  218. package/V3Textarea/index.d.ts +0 -27
  219. package/date/Date.js +0 -373
  220. package/date/index.d.ts +0 -27
  221. package/input-text/Icons.js +0 -22
  222. package/input-text/InputText.js +0 -611
  223. package/input-text/index.d.ts +0 -36
  224. package/list/List.d.ts +0 -4
  225. package/list/List.js +0 -47
  226. package/list/List.stories.tsx +0 -95
  227. package/list/types.d.ts +0 -7
  228. package/radio/Radio.d.ts +0 -4
  229. package/radio/Radio.js +0 -174
  230. package/radio/Radio.stories.tsx +0 -192
  231. package/radio/types.d.ts +0 -54
  232. package/row/Row.d.ts +0 -3
  233. package/row/Row.js +0 -127
  234. package/row/Row.stories.tsx +0 -237
  235. package/row/types.d.ts +0 -10
  236. package/stack/Stack.d.ts +0 -3
  237. package/stack/Stack.js +0 -97
  238. package/stack/Stack.stories.tsx +0 -164
  239. package/stack/types.d.ts +0 -9
  240. package/text/Text.d.ts +0 -7
  241. package/text/Text.js +0 -30
  242. package/text/Text.stories.tsx +0 -19
  243. package/upload/Upload.js +0 -201
  244. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  245. package/upload/buttons-upload/Icons.js +0 -40
  246. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  247. package/upload/dragAndDropArea/Icons.js +0 -39
  248. package/upload/file-upload/FileToUpload.js +0 -115
  249. package/upload/file-upload/Icons.js +0 -66
  250. package/upload/files-upload/FilesToUpload.js +0 -109
  251. package/upload/index.d.ts +0 -15
  252. package/upload/transaction/Icons.js +0 -160
  253. package/upload/transaction/Transaction.js +0 -104
  254. package/upload/transactions/Transactions.js +0 -94
@@ -15,10 +15,10 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
15
15
 
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
17
 
18
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
-
20
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
19
 
20
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
+
22
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
23
23
 
24
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -33,11 +33,13 @@ var _variables = require("../common/variables.js");
33
33
 
34
34
  var _useTheme = _interopRequireDefault(require("../useTheme"));
35
35
 
36
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
37
+
36
38
  var _Button = _interopRequireDefault(require("../button/Button"));
37
39
 
38
40
  var _FileItem = _interopRequireDefault(require("./FileItem"));
39
41
 
40
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
41
43
 
42
44
  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); }
43
45
 
@@ -86,7 +88,18 @@ var fileIcon = /*#__PURE__*/_react["default"].createElement("svg", {
86
88
  d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z"
87
89
  }));
88
90
 
89
- var DxcFileInput = function DxcFileInput(_ref) {
91
+ var getFilePreview = function getFilePreview(file) {
92
+ if (file.type.includes("video")) return videoIcon;else if (file.type.includes("audio")) return audioIcon;else if (file.type.includes("image")) return new Promise(function (resolve) {
93
+ var reader = new FileReader();
94
+ reader.readAsDataURL(file);
95
+
96
+ reader.onload = function (e) {
97
+ resolve(e.target.result);
98
+ };
99
+ });else return fileIcon;
100
+ };
101
+
102
+ var DxcFileInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
90
103
  var _ref$name = _ref.name,
91
104
  name = _ref$name === void 0 ? "" : _ref$name,
92
105
  _ref$mode = _ref.mode,
@@ -127,129 +140,27 @@ var DxcFileInput = function DxcFileInput(_ref) {
127
140
  fileInputId = _useState6[0];
128
141
 
129
142
  var colorsTheme = (0, _useTheme["default"])();
130
- (0, _react.useEffect)(function () {
131
- var getFiles = /*#__PURE__*/function () {
132
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
133
- var valueFiles;
134
- return _regenerator["default"].wrap(function _callee2$(_context2) {
135
- while (1) {
136
- switch (_context2.prev = _context2.next) {
137
- case 0:
138
- if (!value) {
139
- _context2.next = 5;
140
- break;
141
- }
142
-
143
- _context2.next = 3;
144
- return Promise.all(value.map( /*#__PURE__*/function () {
145
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file) {
146
- var preview;
147
- return _regenerator["default"].wrap(function _callee$(_context) {
148
- while (1) {
149
- switch (_context.prev = _context.next) {
150
- case 0:
151
- if (!file.preview) {
152
- _context.next = 4;
153
- break;
154
- }
155
-
156
- return _context.abrupt("return", file);
157
-
158
- case 4:
159
- _context.next = 6;
160
- return getFilePreview(file.file);
161
-
162
- case 6:
163
- preview = _context.sent;
164
- return _context.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
165
- preview: preview
166
- }));
167
-
168
- case 8:
169
- case "end":
170
- return _context.stop();
171
- }
172
- }
173
- }, _callee);
174
- }));
175
-
176
- return function (_x) {
177
- return _ref3.apply(this, arguments);
178
- };
179
- }()));
180
-
181
- case 3:
182
- valueFiles = _context2.sent;
183
- setFiles(valueFiles);
184
-
185
- case 5:
186
- case "end":
187
- return _context2.stop();
188
- }
189
- }
190
- }, _callee2);
191
- }));
192
-
193
- return function getFiles() {
194
- return _ref2.apply(this, arguments);
195
- };
196
- }();
197
-
198
- getFiles();
199
- }, [value]);
200
-
201
- var handleClick = function handleClick() {
202
- document.getElementById(fileInputId).click();
203
- };
143
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
204
144
 
205
145
  var checkFileSize = function checkFileSize(file) {
206
- if (file.size < minSize) {
207
- return "File size must be greater than min size.";
208
- }
209
-
210
- if (file.size > maxSize) {
211
- return "File size must be less than max size.";
212
- }
213
- };
214
-
215
- var getFilePreview = function getFilePreview(file) {
216
- if (file.type.includes("video")) {
217
- return videoIcon;
218
- }
219
-
220
- if (file.type.includes("audio")) {
221
- return audioIcon;
222
- }
223
-
224
- if (file.type.includes("image")) {
225
- return new Promise(function (resolve) {
226
- var reader = new FileReader();
227
- reader.readAsDataURL(file);
228
-
229
- reader.onload = function (e) {
230
- resolve(e.target.result);
231
- };
232
- });
233
- }
234
-
235
- return fileIcon;
146
+ if (file.size < minSize) return translatedLabels.fileInput.fileSizeGreaterThanErrorMessage;else if (file.size > maxSize) return translatedLabels.fileInput.fileSizeLessThanErrorMessage;
236
147
  };
237
148
 
238
149
  var getFilesToAdd = /*#__PURE__*/function () {
239
- var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(selectedFiles) {
150
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selectedFiles) {
240
151
  var filesToAdd;
241
- return _regenerator["default"].wrap(function _callee3$(_context3) {
152
+ return _regenerator["default"].wrap(function _callee$(_context) {
242
153
  while (1) {
243
- switch (_context3.prev = _context3.next) {
154
+ switch (_context.prev = _context.next) {
244
155
  case 0:
245
- _context3.next = 2;
156
+ _context.next = 2;
246
157
  return Promise.all(selectedFiles.map(function (selectedFile) {
247
158
  return getFilePreview(selectedFile);
248
159
  })).then(function (previews) {
249
- return selectedFiles.map(function (selectedFile, index) {
160
+ return selectedFiles.map(function (file, index) {
250
161
  var fileInfo = {
251
- file: selectedFile,
252
- error: checkFileSize(selectedFile),
162
+ file: file,
163
+ error: checkFileSize(file),
253
164
  preview: previews[index]
254
165
  };
255
166
  return fileInfo;
@@ -257,86 +168,79 @@ var DxcFileInput = function DxcFileInput(_ref) {
257
168
  });
258
169
 
259
170
  case 2:
260
- filesToAdd = _context3.sent;
261
- return _context3.abrupt("return", filesToAdd);
171
+ filesToAdd = _context.sent;
172
+ return _context.abrupt("return", filesToAdd);
262
173
 
263
174
  case 4:
264
175
  case "end":
265
- return _context3.stop();
176
+ return _context.stop();
266
177
  }
267
178
  }
268
- }, _callee3);
179
+ }, _callee);
269
180
  }));
270
181
 
271
- return function getFilesToAdd(_x2) {
272
- return _ref4.apply(this, arguments);
182
+ return function getFilesToAdd(_x) {
183
+ return _ref2.apply(this, arguments);
273
184
  };
274
185
  }();
275
186
 
276
187
  var addFile = /*#__PURE__*/function () {
277
- var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(selectedFiles) {
188
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(selectedFiles) {
278
189
  var filesToAdd, finalFiles, fileToAdd;
279
- return _regenerator["default"].wrap(function _callee4$(_context4) {
190
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
280
191
  while (1) {
281
- switch (_context4.prev = _context4.next) {
192
+ switch (_context2.prev = _context2.next) {
282
193
  case 0:
283
194
  if (!multiple) {
284
- _context4.next = 8;
195
+ _context2.next = 8;
285
196
  break;
286
197
  }
287
198
 
288
- _context4.next = 3;
199
+ _context2.next = 3;
289
200
  return getFilesToAdd(selectedFiles);
290
201
 
291
202
  case 3:
292
- filesToAdd = _context4.sent;
203
+ filesToAdd = _context2.sent;
293
204
  finalFiles = [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(filesToAdd));
294
-
295
- if (typeof callbackFile === "function") {
296
- callbackFile(finalFiles);
297
- }
298
-
299
- _context4.next = 19;
205
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(finalFiles);
206
+ _context2.next = 19;
300
207
  break;
301
208
 
302
209
  case 8:
303
210
  if (!(selectedFiles.length === 1)) {
304
- _context4.next = 14;
211
+ _context2.next = 14;
305
212
  break;
306
213
  }
307
214
 
308
- _context4.next = 11;
215
+ _context2.next = 11;
309
216
  return getFilesToAdd(selectedFiles);
310
217
 
311
218
  case 11:
312
- _context4.t0 = _context4.sent;
313
- _context4.next = 17;
219
+ _context2.t0 = _context2.sent;
220
+ _context2.next = 17;
314
221
  break;
315
222
 
316
223
  case 14:
317
- _context4.next = 16;
224
+ _context2.next = 16;
318
225
  return getFilesToAdd([selectedFiles[0]]);
319
226
 
320
227
  case 16:
321
- _context4.t0 = _context4.sent;
228
+ _context2.t0 = _context2.sent;
322
229
 
323
230
  case 17:
324
- fileToAdd = _context4.t0;
325
-
326
- if (typeof callbackFile === "function") {
327
- callbackFile(fileToAdd);
328
- }
231
+ fileToAdd = _context2.t0;
232
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(fileToAdd);
329
233
 
330
234
  case 19:
331
235
  case "end":
332
- return _context4.stop();
236
+ return _context2.stop();
333
237
  }
334
238
  }
335
- }, _callee4);
239
+ }, _callee2);
336
240
  }));
337
241
 
338
- return function addFile(_x3) {
339
- return _ref5.apply(this, arguments);
242
+ return function addFile(_x2) {
243
+ return _ref3.apply(this, arguments);
340
244
  };
341
245
  }();
342
246
 
@@ -348,17 +252,18 @@ var DxcFileInput = function DxcFileInput(_ref) {
348
252
  addFile(filesArray);
349
253
  };
350
254
 
351
- var onDelete = function onDelete(fileName) {
255
+ var onDelete = (0, _react.useCallback)(function (fileName) {
352
256
  var filesCopy = (0, _toConsumableArray2["default"])(files);
353
257
  var fileToRemove = filesCopy.find(function (file) {
354
258
  return file.file.name === fileName;
355
259
  });
356
260
  var fileIndex = filesCopy.indexOf(fileToRemove);
357
261
  filesCopy.splice(fileIndex, 1);
262
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(filesCopy);
263
+ }, [files, callbackFile]);
358
264
 
359
- if (typeof callbackFile === "function") {
360
- callbackFile(filesCopy);
361
- }
265
+ var handleClick = function handleClick() {
266
+ document.getElementById(fileInputId).click();
362
267
  };
363
268
 
364
269
  var handleDrag = function handleDrag(e) {
@@ -367,7 +272,9 @@ var DxcFileInput = function DxcFileInput(_ref) {
367
272
  };
368
273
 
369
274
  var handleDragIn = function handleDragIn(e) {
370
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
275
+ var _e$dataTransfer$items;
276
+
277
+ if (((_e$dataTransfer$items = e.dataTransfer.items) === null || _e$dataTransfer$items === void 0 ? void 0 : _e$dataTransfer$items.length) > 0) setIsDragging(true);
371
278
  };
372
279
 
373
280
  var handleDragOut = function handleDragOut(e) {
@@ -381,7 +288,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
381
288
  setIsDragging(false);
382
289
  var filesObject = e.dataTransfer.files;
383
290
 
384
- if (filesObject && filesObject.length > 0) {
291
+ if ((filesObject === null || filesObject === void 0 ? void 0 : filesObject.length) > 0) {
385
292
  var filesArray = Object.keys(filesObject).map(function (key) {
386
293
  return filesObject[key];
387
294
  });
@@ -389,55 +296,128 @@ var DxcFileInput = function DxcFileInput(_ref) {
389
296
  }
390
297
  };
391
298
 
299
+ (0, _react.useEffect)(function () {
300
+ var getFiles = /*#__PURE__*/function () {
301
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
302
+ var valueFiles;
303
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
304
+ while (1) {
305
+ switch (_context4.prev = _context4.next) {
306
+ case 0:
307
+ if (!value) {
308
+ _context4.next = 5;
309
+ break;
310
+ }
311
+
312
+ _context4.next = 3;
313
+ return Promise.all(value.map( /*#__PURE__*/function () {
314
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(file) {
315
+ var preview;
316
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
317
+ while (1) {
318
+ switch (_context3.prev = _context3.next) {
319
+ case 0:
320
+ if (!file.preview) {
321
+ _context3.next = 4;
322
+ break;
323
+ }
324
+
325
+ return _context3.abrupt("return", file);
326
+
327
+ case 4:
328
+ _context3.next = 6;
329
+ return getFilePreview(file.file);
330
+
331
+ case 6:
332
+ preview = _context3.sent;
333
+ return _context3.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
334
+ preview: preview
335
+ }));
336
+
337
+ case 8:
338
+ case "end":
339
+ return _context3.stop();
340
+ }
341
+ }
342
+ }, _callee3);
343
+ }));
344
+
345
+ return function (_x3) {
346
+ return _ref5.apply(this, arguments);
347
+ };
348
+ }()));
349
+
350
+ case 3:
351
+ valueFiles = _context4.sent;
352
+ setFiles(valueFiles);
353
+
354
+ case 5:
355
+ case "end":
356
+ return _context4.stop();
357
+ }
358
+ }
359
+ }, _callee4);
360
+ }));
361
+
362
+ return function getFiles() {
363
+ return _ref4.apply(this, arguments);
364
+ };
365
+ }();
366
+
367
+ getFiles();
368
+ }, [value]);
392
369
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
393
370
  theme: colorsTheme.fileInput
394
371
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
395
372
  margin: margin,
396
- name: name
373
+ name: name,
374
+ ref: ref
397
375
  }, /*#__PURE__*/_react["default"].createElement(Label, {
398
376
  htmlFor: fileInputId,
399
377
  disabled: disabled
400
378
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
401
379
  disabled: disabled
402
380
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
403
- multiple: multiple,
404
- files: files
405
- }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
381
+ singleFileMode: !multiple && files.length === 1
382
+ }, /*#__PURE__*/_react["default"].createElement(ValueInput, {
406
383
  id: fileInputId,
407
384
  type: "file",
408
385
  accept: accept,
409
386
  multiple: multiple,
410
- onChange: selectFiles
387
+ onChange: selectFiles,
388
+ name: name,
389
+ disabled: disabled,
390
+ readOnly: true,
391
+ "aria-hidden": "true"
411
392
  }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
412
393
  mode: "secondary",
413
- label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? "Select files" : "Select file",
394
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? translatedLabels.fileInput.multipleButtonLabelDefault : translatedLabels.fileInput.singleButtonLabelDefault,
414
395
  onClick: handleClick,
415
396
  disabled: disabled,
416
- size: "medium",
397
+ size: "fitContent",
417
398
  tabIndex: tabIndex
418
- }), files.map(function (file) {
419
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
420
- mode: mode,
421
- multiple: multiple,
422
- files: files
423
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
424
- mode: mode,
425
- multiple: multiple,
426
- name: file.file.name,
399
+ }), files.length > 0 && /*#__PURE__*/_react["default"].createElement(FileItemListContainer, null, files.map(function (file, index) {
400
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
401
+ fileName: file.file.name,
427
402
  error: file.error,
403
+ singleFileMode: !multiple && files.length === 1,
428
404
  showPreview: mode === "file" && !multiple ? false : showPreview,
429
- numFiles: files.length,
430
405
  preview: file.preview,
431
406
  type: file.file.type,
432
407
  onDelete: onDelete,
433
- tabIndex: tabIndex
434
- })));
435
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
408
+ tabIndex: tabIndex,
409
+ key: "file-".concat(index)
410
+ });
411
+ }))) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
436
412
  id: fileInputId,
437
413
  type: "file",
438
414
  accept: accept,
439
415
  multiple: multiple,
440
- onChange: selectFiles
416
+ onChange: selectFiles,
417
+ name: name,
418
+ disabled: disabled,
419
+ readOnly: true,
420
+ "aria-hidden": "true"
441
421
  }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
442
422
  isDragging: isDragging,
443
423
  disabled: disabled,
@@ -446,39 +426,30 @@ var DxcFileInput = function DxcFileInput(_ref) {
446
426
  onDragEnter: handleDragIn,
447
427
  onDragOver: handleDrag,
448
428
  onDragLeave: handleDragOut
449
- }, /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
450
- mode: mode
451
429
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
452
430
  mode: "secondary",
453
- label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : "Select",
431
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translatedLabels.fileInput.dropAreaButtonLabelDefault,
454
432
  onClick: handleClick,
455
433
  disabled: disabled,
456
434
  size: "fitContent"
457
- })), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
435
+ }), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
458
436
  disabled: disabled
459
- }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file") : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
437
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault) : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
460
438
  disabled: disabled
461
- }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file")), files.map(function (file) {
462
- return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
463
- mode: mode,
464
- multiple: multiple,
465
- files: files
466
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
467
- mode: mode,
468
- multiple: multiple,
469
- name: file.file.name,
439
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault)), files.length > 0 && /*#__PURE__*/_react["default"].createElement(FileItemListContainer, null, files.map(function (file, index) {
440
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
441
+ fileName: file.file.name,
470
442
  error: file.error,
443
+ singleFileMode: false,
471
444
  showPreview: showPreview,
472
- numFiles: files.length,
473
445
  preview: file.preview,
474
446
  type: file.file.type,
475
447
  onDelete: onDelete,
476
- tabIndex: tabIndex
477
- }));
478
- })), files.length === 1 && files.map(function (file) {
479
- return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
480
- })));
481
- };
448
+ tabIndex: tabIndex,
449
+ key: "file-".concat(index)
450
+ });
451
+ }))), mode === "file" && !multiple && files.length === 1 && files[0].error && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, files[0].error)));
452
+ });
482
453
 
483
454
  var FileInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: fit-content;\n"])), function (props) {
484
455
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -516,12 +487,20 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
516
487
  return props.theme.helperTextLineHeight;
517
488
  });
518
489
 
519
- var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n flex-direction: ", ";\n ", ";\n align-items: center;\n height: ", ";\n width: 320px;\n\n box-shadow: 0 0 0 2px transparent;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n\n ", "\n\n cursor: ", ";\n"])), function (props) {
520
- return props.mode === "filedrop" ? "row" : "column";
521
- }, function (props) {
522
- return props.mode === "dropzone" && "justify-content: center; padding: 1rem;";
490
+ var FileContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", "\n margin-top: 0.25rem;\n"])), function (props) {
491
+ return props.singleFileMode ? "flex-direction: row; column-gap: 0.25rem;" : "flex-direction: column; row-gap: 0.25rem;";
492
+ });
493
+
494
+ var ValueInput = _styledComponents["default"].input(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
495
+
496
+ var FileItemListContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n row-gap: 0.25rem;\n"])));
497
+
498
+ var Container = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n row-gap: 0.25rem;\n margin-top: 0.25rem;\n"])));
499
+
500
+ var DragDropArea = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n ", "\n align-items: center;\n width: 320px;\n padding: ", ";\n overflow: hidden;\n box-shadow: 0 0 0 2px transparent;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n ", "\n cursor: ", ";\n"])), function (props) {
501
+ return props.mode === "filedrop" ? "flex-direction: row; column-gap: 0.75rem; height: 48px;" : "justify-content: center; flex-direction: column; row-gap: 0.5rem; height: 160px;";
523
502
  }, function (props) {
524
- return props.mode === "filedrop" ? "48px" : "160px";
503
+ return props.mode === "filedrop" ? "calc(4px - ".concat(props.theme.dropBorderThickness, ") 1rem calc(4px - ").concat(props.theme.dropBorderThickness, ") calc(4px - ").concat(props.theme.dropBorderThickness, ")") : "1rem";
525
504
  }, function (props) {
526
505
  return props.theme.dropBorderRadius;
527
506
  }, function (props) {
@@ -536,17 +515,7 @@ var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templa
536
515
  return props.disabled && "not-allowed";
537
516
  });
538
517
 
539
- var FileContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
540
- return props.multiple || props.files.length > 1 ? "column" : "row";
541
- });
542
-
543
- var HiddenInputFile = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n"])));
544
-
545
- var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
546
- return props.mode === "filedrop" && "padding: 2px 12px 2px 3px";
547
- });
548
-
549
- var DropzoneLabel = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 3;\n text-align: center;\n margin-top: 0.5rem;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
518
+ var DropzoneLabel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 3;\n text-align: center;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
550
519
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
551
520
  }, function (props) {
552
521
  return props.theme.dropLabelFontFamily;
@@ -556,7 +525,7 @@ var DropzoneLabel = _styledComponents["default"].div(_templateObject8 || (_templ
556
525
  return props.theme.dropLabelFontWeight;
557
526
  });
558
527
 
559
- var FiledropLabel = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n margin-right: 1rem;\n"])), function (props) {
528
+ var FiledropLabel = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
560
529
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
561
530
  }, function (props) {
562
531
  return props.theme.dropLabelFontFamily;
@@ -566,15 +535,7 @@ var FiledropLabel = _styledComponents["default"].span(_templateObject9 || (_temp
566
535
  return props.theme.dropLabelFontWeight;
567
536
  });
568
537
 
569
- var Container = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
570
-
571
- var FileItemContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
572
- return (props.multiple || props.files.length > 1 || props.mode !== "file") && "4px";
573
- }, function (props) {
574
- return props.mode === "file" && props.files.length === 1 && !props.multiple && "4px";
575
- });
576
-
577
- var ErrorMessage = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
538
+ var ErrorMessage = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
578
539
  return props.theme.errorMessageFontColor;
579
540
  }, function (props) {
580
541
  return props.theme.errorMessageFontFamily;