@dxc-technology/halstack-react 0.0.0-e1a279c → 0.0.0-e201636

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