@dxc-technology/halstack-react 0.0.0-1d5e7bf → 0.0.0-1da0f40

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