@dxc-technology/halstack-react 0.0.0-c709eea → 0.0.0-c713b1b

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 (313) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +10 -0
  4. package/{ThemeContext.js → HalstackContext.js} +31 -34
  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 +2 -2
  16. package/alert/Alert.stories.tsx +170 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/alert/types.d.ts +1 -1
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +1 -1
  21. package/badge/types.d.ts +4 -0
  22. package/badge/types.js +5 -0
  23. package/bleed/Bleed.d.ts +3 -0
  24. package/bleed/Bleed.js +84 -0
  25. package/bleed/Bleed.stories.tsx +342 -0
  26. package/bleed/types.d.ts +37 -0
  27. package/bleed/types.js +5 -0
  28. package/box/Box.d.ts +4 -0
  29. package/box/Box.js +6 -32
  30. package/box/Box.stories.tsx +132 -0
  31. package/box/Box.test.js +18 -0
  32. package/box/types.d.ts +43 -0
  33. package/box/types.js +5 -0
  34. package/button/Button.d.ts +1 -1
  35. package/button/Button.js +24 -32
  36. package/button/Button.stories.tsx +223 -242
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +9 -13
  39. package/card/Card.js +32 -34
  40. package/card/Card.stories.tsx +201 -0
  41. package/card/Card.test.js +50 -0
  42. package/card/ice-cream.jpg +0 -0
  43. package/card/types.d.ts +4 -6
  44. package/checkbox/Checkbox.d.ts +1 -1
  45. package/checkbox/Checkbox.js +42 -41
  46. package/checkbox/Checkbox.stories.tsx +188 -0
  47. package/checkbox/Checkbox.test.js +78 -0
  48. package/checkbox/types.d.ts +9 -5
  49. package/chip/Chip.d.ts +4 -0
  50. package/chip/Chip.js +16 -76
  51. package/chip/Chip.stories.tsx +119 -0
  52. package/chip/Chip.test.js +56 -0
  53. package/chip/types.d.ts +45 -0
  54. package/chip/types.js +5 -0
  55. package/common/variables.js +101 -294
  56. package/date-input/DateInput.js +60 -52
  57. package/date-input/DateInput.stories.tsx +138 -0
  58. package/date-input/DateInput.test.js +479 -0
  59. package/date-input/types.d.ts +16 -9
  60. package/dialog/Dialog.d.ts +4 -0
  61. package/dialog/Dialog.js +10 -56
  62. package/dialog/Dialog.stories.tsx +212 -0
  63. package/dialog/Dialog.test.js +40 -0
  64. package/dialog/types.d.ts +43 -0
  65. package/dialog/types.js +5 -0
  66. package/dropdown/Dropdown.d.ts +4 -0
  67. package/dropdown/Dropdown.js +28 -87
  68. package/dropdown/Dropdown.stories.tsx +249 -0
  69. package/dropdown/Dropdown.test.js +189 -0
  70. package/dropdown/types.d.ts +80 -0
  71. package/dropdown/types.js +5 -0
  72. package/file-input/FileInput.d.ts +4 -0
  73. package/file-input/FileInput.js +167 -109
  74. package/file-input/FileInput.stories.tsx +507 -0
  75. package/file-input/FileInput.test.js +457 -0
  76. package/file-input/FileItem.d.ts +14 -0
  77. package/file-input/FileItem.js +16 -23
  78. package/file-input/types.d.ts +112 -0
  79. package/file-input/types.js +5 -0
  80. package/footer/Footer.d.ts +4 -0
  81. package/footer/Footer.js +32 -146
  82. package/footer/Footer.stories.tsx +130 -0
  83. package/footer/Footer.test.js +109 -0
  84. package/footer/Icons.d.ts +2 -0
  85. package/footer/Icons.js +3 -3
  86. package/footer/types.d.ts +65 -0
  87. package/footer/types.js +5 -0
  88. package/header/Header.d.ts +7 -0
  89. package/header/Header.js +48 -74
  90. package/header/Header.stories.tsx +172 -0
  91. package/header/Header.test.js +79 -0
  92. package/header/Icons.d.ts +2 -0
  93. package/header/Icons.js +2 -27
  94. package/header/types.d.ts +47 -0
  95. package/header/types.js +5 -0
  96. package/heading/Heading.d.ts +4 -0
  97. package/heading/Heading.js +7 -24
  98. package/heading/Heading.stories.tsx +54 -0
  99. package/heading/Heading.test.js +186 -0
  100. package/heading/types.d.ts +33 -0
  101. package/heading/types.js +5 -0
  102. package/inset/Inset.d.ts +3 -0
  103. package/inset/Inset.js +84 -0
  104. package/inset/Inset.stories.tsx +229 -0
  105. package/inset/types.d.ts +37 -0
  106. package/inset/types.js +5 -0
  107. package/layout/ApplicationLayout.d.ts +10 -0
  108. package/layout/ApplicationLayout.js +14 -31
  109. package/layout/ApplicationLayout.stories.tsx +171 -0
  110. package/layout/types.d.ts +57 -0
  111. package/layout/types.js +5 -0
  112. package/link/Link.d.ts +4 -0
  113. package/link/Link.js +70 -91
  114. package/link/Link.stories.tsx +186 -0
  115. package/link/Link.test.js +83 -0
  116. package/link/types.d.ts +55 -0
  117. package/link/types.js +5 -0
  118. package/list/List.d.ts +4 -0
  119. package/list/List.js +47 -0
  120. package/list/List.stories.tsx +95 -0
  121. package/list/types.d.ts +7 -0
  122. package/list/types.js +5 -0
  123. package/main.d.ts +11 -8
  124. package/main.js +66 -42
  125. package/number-input/NumberInput.d.ts +4 -0
  126. package/number-input/NumberInput.js +16 -68
  127. package/number-input/NumberInput.stories.tsx +115 -0
  128. package/number-input/NumberInput.test.js +506 -0
  129. package/number-input/NumberInputContext.d.ts +4 -0
  130. package/number-input/NumberInputContext.js +5 -2
  131. package/number-input/numberInputContextTypes.d.ts +19 -0
  132. package/number-input/numberInputContextTypes.js +5 -0
  133. package/number-input/types.d.ts +124 -0
  134. package/number-input/types.js +5 -0
  135. package/package.json +9 -6
  136. package/paginator/Paginator.js +2 -8
  137. package/paginator/Paginator.stories.tsx +63 -0
  138. package/paginator/Paginator.test.js +266 -0
  139. package/password-input/PasswordInput.d.ts +4 -0
  140. package/password-input/PasswordInput.js +19 -55
  141. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
  142. package/password-input/PasswordInput.test.js +181 -0
  143. package/password-input/types.d.ts +110 -0
  144. package/password-input/types.js +5 -0
  145. package/progress-bar/ProgressBar.d.ts +4 -0
  146. package/progress-bar/ProgressBar.js +5 -23
  147. package/progress-bar/ProgressBar.stories.jsx +58 -0
  148. package/progress-bar/ProgressBar.test.js +65 -0
  149. package/progress-bar/types.d.ts +37 -0
  150. package/progress-bar/types.js +5 -0
  151. package/quick-nav/QuickNav.d.ts +4 -0
  152. package/quick-nav/QuickNav.js +64 -0
  153. package/quick-nav/QuickNav.stories.tsx +237 -0
  154. package/quick-nav/types.d.ts +21 -0
  155. package/quick-nav/types.js +5 -0
  156. package/radio/Radio.js +12 -13
  157. package/radio/Radio.stories.tsx +192 -0
  158. package/radio/Radio.test.js +71 -0
  159. package/radio/types.d.ts +2 -2
  160. package/radio-group/Radio.d.ts +4 -0
  161. package/radio-group/Radio.js +141 -0
  162. package/radio-group/RadioGroup.d.ts +4 -0
  163. package/radio-group/RadioGroup.js +280 -0
  164. package/radio-group/RadioGroup.stories.tsx +100 -0
  165. package/radio-group/RadioGroup.test.js +695 -0
  166. package/radio-group/types.d.ts +114 -0
  167. package/radio-group/types.js +5 -0
  168. package/resultsetTable/ResultsetTable.d.ts +4 -0
  169. package/resultsetTable/ResultsetTable.js +9 -29
  170. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  171. package/resultsetTable/ResultsetTable.test.js +306 -0
  172. package/resultsetTable/types.d.ts +67 -0
  173. package/resultsetTable/types.js +5 -0
  174. package/row/Row.d.ts +3 -0
  175. package/row/Row.js +127 -0
  176. package/row/Row.stories.tsx +237 -0
  177. package/row/types.d.ts +28 -0
  178. package/row/types.js +5 -0
  179. package/select/Icons.d.ts +10 -0
  180. package/select/Icons.js +93 -0
  181. package/select/Listbox.d.ts +4 -0
  182. package/select/Listbox.js +148 -0
  183. package/select/Option.d.ts +4 -0
  184. package/select/Option.js +110 -0
  185. package/select/Select.d.ts +4 -0
  186. package/select/Select.js +107 -317
  187. package/select/Select.stories.tsx +582 -0
  188. package/select/Select.test.js +2057 -0
  189. package/select/types.d.ts +213 -0
  190. package/select/types.js +5 -0
  191. package/sidenav/Sidenav.d.ts +9 -0
  192. package/sidenav/Sidenav.js +6 -15
  193. package/sidenav/Sidenav.stories.tsx +182 -0
  194. package/sidenav/Sidenav.test.js +56 -0
  195. package/sidenav/types.d.ts +50 -0
  196. package/sidenav/types.js +5 -0
  197. package/slider/Slider.d.ts +4 -0
  198. package/slider/Slider.js +63 -85
  199. package/slider/Slider.stories.tsx +177 -0
  200. package/slider/Slider.test.js +150 -0
  201. package/slider/types.d.ts +82 -0
  202. package/slider/types.js +5 -0
  203. package/spinner/Spinner.d.ts +4 -0
  204. package/spinner/Spinner.js +8 -25
  205. package/spinner/Spinner.stories.jsx +103 -0
  206. package/spinner/Spinner.test.js +64 -0
  207. package/spinner/types.d.ts +32 -0
  208. package/spinner/types.js +5 -0
  209. package/stack/Stack.d.ts +3 -0
  210. package/stack/Stack.js +97 -0
  211. package/stack/Stack.stories.tsx +164 -0
  212. package/stack/types.d.ts +24 -0
  213. package/stack/types.js +5 -0
  214. package/switch/Switch.d.ts +1 -1
  215. package/switch/Switch.js +34 -21
  216. package/switch/Switch.stories.tsx +160 -0
  217. package/switch/Switch.test.js +98 -0
  218. package/switch/types.d.ts +6 -2
  219. package/table/Table.d.ts +4 -0
  220. package/table/Table.js +3 -3
  221. package/table/Table.stories.jsx +277 -0
  222. package/table/Table.test.js +26 -0
  223. package/table/types.d.ts +21 -0
  224. package/table/types.js +5 -0
  225. package/tabs/Tabs.d.ts +4 -0
  226. package/tabs/Tabs.js +24 -72
  227. package/tabs/Tabs.stories.tsx +112 -0
  228. package/tabs/Tabs.test.js +140 -0
  229. package/tabs/types.d.ts +82 -0
  230. package/tabs/types.js +5 -0
  231. package/tag/Tag.d.ts +4 -0
  232. package/tag/Tag.js +34 -59
  233. package/tag/Tag.stories.tsx +142 -0
  234. package/tag/Tag.test.js +60 -0
  235. package/tag/types.d.ts +69 -0
  236. package/tag/types.js +5 -0
  237. package/text/Text.d.ts +7 -0
  238. package/text/Text.js +30 -0
  239. package/text/Text.stories.tsx +19 -0
  240. package/text-input/TextInput.d.ts +4 -0
  241. package/text-input/TextInput.js +64 -93
  242. package/text-input/TextInput.stories.tsx +474 -0
  243. package/text-input/TextInput.test.js +1712 -0
  244. package/text-input/types.d.ts +166 -0
  245. package/text-input/types.js +5 -0
  246. package/textarea/Textarea.d.ts +4 -0
  247. package/textarea/Textarea.js +37 -68
  248. package/textarea/Textarea.stories.jsx +37 -15
  249. package/textarea/Textarea.test.js +437 -0
  250. package/textarea/types.d.ts +137 -0
  251. package/textarea/types.js +5 -0
  252. package/toggle-group/ToggleGroup.d.ts +4 -0
  253. package/toggle-group/ToggleGroup.js +18 -46
  254. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  255. package/toggle-group/ToggleGroup.test.js +156 -0
  256. package/toggle-group/types.d.ts +105 -0
  257. package/toggle-group/types.js +5 -0
  258. package/useTheme.d.ts +2 -0
  259. package/useTheme.js +2 -2
  260. package/wizard/Wizard.d.ts +4 -0
  261. package/wizard/Wizard.js +89 -70
  262. package/wizard/Wizard.stories.tsx +214 -0
  263. package/wizard/Wizard.test.js +141 -0
  264. package/wizard/types.d.ts +64 -0
  265. package/wizard/types.js +5 -0
  266. package/V3Select/V3Select.js +0 -455
  267. package/V3Select/index.d.ts +0 -27
  268. package/V3Textarea/V3Textarea.js +0 -260
  269. package/V3Textarea/index.d.ts +0 -27
  270. package/box/index.d.ts +0 -25
  271. package/chip/index.d.ts +0 -22
  272. package/date/Date.js +0 -373
  273. package/date/index.d.ts +0 -27
  274. package/dialog/index.d.ts +0 -18
  275. package/dropdown/index.d.ts +0 -26
  276. package/file-input/index.d.ts +0 -81
  277. package/footer/index.d.ts +0 -25
  278. package/header/index.d.ts +0 -25
  279. package/heading/index.d.ts +0 -17
  280. package/input-text/Icons.js +0 -22
  281. package/input-text/InputText.js +0 -611
  282. package/input-text/index.d.ts +0 -36
  283. package/link/index.d.ts +0 -23
  284. package/number-input/index.d.ts +0 -113
  285. package/password-input/index.d.ts +0 -94
  286. package/progress-bar/index.d.ts +0 -18
  287. package/resultsetTable/index.d.ts +0 -19
  288. package/select/index.d.ts +0 -131
  289. package/sidenav/index.d.ts +0 -13
  290. package/slider/index.d.ts +0 -29
  291. package/spinner/index.d.ts +0 -17
  292. package/table/index.d.ts +0 -13
  293. package/tabs/index.d.ts +0 -19
  294. package/tag/index.d.ts +0 -24
  295. package/text-input/index.d.ts +0 -135
  296. package/textarea/index.d.ts +0 -117
  297. package/toggle/Toggle.js +0 -186
  298. package/toggle/index.d.ts +0 -21
  299. package/toggle-group/index.d.ts +0 -21
  300. package/upload/Upload.js +0 -201
  301. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  302. package/upload/buttons-upload/Icons.js +0 -40
  303. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  304. package/upload/dragAndDropArea/Icons.js +0 -39
  305. package/upload/file-upload/FileToUpload.js +0 -115
  306. package/upload/file-upload/Icons.js +0 -66
  307. package/upload/files-upload/FilesToUpload.js +0 -109
  308. package/upload/index.d.ts +0 -15
  309. package/upload/transaction/Icons.js +0 -160
  310. package/upload/transaction/Transaction.js +0 -104
  311. package/upload/transactions/Transactions.js +0 -94
  312. package/wizard/Icons.js +0 -65
  313. package/wizard/index.d.ts +0 -18
@@ -11,6 +11,8 @@ exports["default"] = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
17
 
16
18
  var _react = _interopRequireWildcard(require("react"));
@@ -23,13 +25,13 @@ var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/Click
23
25
 
24
26
  var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
25
27
 
26
- var _moment = _interopRequireDefault(require("moment"));
28
+ var _dayjs = _interopRequireDefault(require("dayjs"));
27
29
 
28
- var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
30
+ var _dayjs2 = _interopRequireDefault(require("@date-io/dayjs"));
29
31
 
30
32
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
31
33
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
34
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
33
35
 
34
36
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
35
37
 
@@ -39,37 +41,37 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
41
 
40
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
41
43
 
44
+ 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; }
45
+
46
+ 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; }
47
+
48
+ var getValueForPicker = function getValueForPicker(value, format) {
49
+ return (0, _dayjs["default"])(value, format.toUpperCase(), true).format();
50
+ };
51
+
42
52
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
- var _ref$label = _ref.label,
44
- label = _ref$label === void 0 ? "" : _ref$label,
45
- _ref$name = _ref.name,
46
- name = _ref$name === void 0 ? "" : _ref$name,
53
+ var label = _ref.label,
54
+ name = _ref.name,
55
+ _ref$defaultValue = _ref.defaultValue,
56
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
47
57
  value = _ref.value,
48
58
  _ref$format = _ref.format,
49
59
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
50
- _ref$helperText = _ref.helperText,
51
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
60
+ helperText = _ref.helperText,
52
61
  _ref$placeholder = _ref.placeholder,
53
62
  placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
54
- _ref$clearable = _ref.clearable,
55
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
56
- _ref$disabled = _ref.disabled,
57
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
58
- _ref$optional = _ref.optional,
59
- optional = _ref$optional === void 0 ? false : _ref$optional,
63
+ clearable = _ref.clearable,
64
+ disabled = _ref.disabled,
65
+ optional = _ref.optional,
60
66
  onChange = _ref.onChange,
61
67
  onBlur = _ref.onBlur,
62
- _ref$error = _ref.error,
63
- error = _ref$error === void 0 ? "" : _ref$error,
64
- _ref$autocomplete = _ref.autocomplete,
65
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
68
+ error = _ref.error,
69
+ autocomplete = _ref.autocomplete,
66
70
  margin = _ref.margin,
67
- _ref$size = _ref.size,
68
- size = _ref$size === void 0 ? "medium" : _ref$size,
69
- _ref$tabIndex = _ref.tabIndex,
70
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
71
+ size = _ref.size,
72
+ tabIndex = _ref.tabIndex;
71
73
 
72
- var _useState = (0, _react.useState)(""),
74
+ var _useState = (0, _react.useState)(defaultValue),
73
75
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
76
  innerValue = _useState2[0],
75
77
  setInnerValue = _useState2[1];
@@ -85,6 +87,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
85
87
  setAnchorEl = _useState6[1];
86
88
 
87
89
  var colorsTheme = (0, _useTheme["default"])();
90
+ var refDate = ref || (0, _react.useRef)(null);
88
91
 
89
92
  var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
90
93
  switch (event.keyCode) {
@@ -97,12 +100,13 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
97
100
  };
98
101
 
99
102
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
100
- var newValue = (0, _moment["default"])(newDate).format(format.toUpperCase());
103
+ var newValue = (0, _dayjs["default"])(newDate).format(format.toUpperCase());
101
104
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
102
- onChange === null || onChange === void 0 ? void 0 : onChange({
105
+ newDate !== null && newDate !== void 0 && newDate.toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
103
106
  value: newValue,
104
- error: null,
105
- date: newDate !== null && newDate !== void 0 && newDate.toJSON() ? newDate : null
107
+ date: newDate
108
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
109
+ value: newValue
106
110
  });
107
111
  };
108
112
 
@@ -110,36 +114,39 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
110
114
  var newValue = _ref2.value,
111
115
  inputError = _ref2.error;
112
116
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
113
- var momentDate = (0, _moment["default"])(newValue, format.toUpperCase(), true);
114
- var invalidDateMessage = newValue !== "" && !momentDate.isValid() ? "Invalid date." : null;
115
- onChange === null || onChange === void 0 ? void 0 : onChange({
117
+ var dayjsDate = (0, _dayjs["default"])(newValue, format.toUpperCase(), true);
118
+ var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && "Invalid date.";
119
+ var callbackParams = inputError || invalidDateMessage ? {
116
120
  value: newValue,
117
- error: inputError || invalidDateMessage,
118
- date: momentDate.isValid() ? momentDate.toDate() : null
119
- });
121
+ error: inputError || invalidDateMessage
122
+ } : {
123
+ value: newValue
124
+ };
125
+ dayjsDate.isValid() ? onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
126
+ date: dayjsDate.toDate()
127
+ })) : onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
120
128
  };
121
129
 
122
130
  var handleIOnBlur = function handleIOnBlur(_ref3) {
123
131
  var value = _ref3.value,
124
132
  inputError = _ref3.error;
125
- var momentDate = (0, _moment["default"])(value, format.toUpperCase(), true);
126
- var invalidDateMessage = value !== "" && !momentDate.isValid() ? "Invalid date." : null;
127
- onBlur === null || onBlur === void 0 ? void 0 : onBlur({
133
+ var dayjsDate = (0, _dayjs["default"])(value, format.toUpperCase(), true);
134
+ var invalidDateMessage = value !== "" && !dayjsDate.isValid() && "Invalid date.";
135
+ var callbackParams = inputError || invalidDateMessage ? {
128
136
  value: value,
129
- error: inputError || invalidDateMessage,
130
- date: momentDate.isValid() ? momentDate.toDate() : null
131
- });
132
- };
133
-
134
- var getValueForPicker = function getValueForPicker() {
135
- return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
137
+ error: inputError || invalidDateMessage
138
+ } : {
139
+ value: value
140
+ };
141
+ dayjsDate.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
142
+ date: dayjsDate.toDate()
143
+ })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
136
144
  };
137
145
 
138
- var openCalendar = function openCalendar(event) {
139
- if (event) {
140
- setIsOpen(!isOpen);
141
- setAnchorEl(event.currentTarget);
142
- }
146
+ var openCalendar = function openCalendar() {
147
+ var dateBtn = refDate.current.getElementsByTagName("button")[0];
148
+ setIsOpen(!isOpen);
149
+ setAnchorEl(dateBtn);
143
150
  };
144
151
 
145
152
  var closeCalendar = function closeCalendar() {
@@ -303,10 +310,11 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
303
310
  }, /*#__PURE__*/_react["default"].createElement(_core.MuiThemeProvider, {
304
311
  theme: dateTheme
305
312
  }, /*#__PURE__*/_react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
306
- utils: _dateFns["default"]
313
+ utils: _dayjs2["default"]
307
314
  }, /*#__PURE__*/_react["default"].createElement(StyledDPicker, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
308
315
  label: label,
309
316
  name: name,
317
+ defaultValue: defaultValue,
310
318
  value: value !== null && value !== void 0 ? value : innerValue,
311
319
  helperText: helperText,
312
320
  placeholder: placeholder ? format.toUpperCase() : null,
@@ -321,7 +329,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
321
329
  margin: margin,
322
330
  size: size,
323
331
  tabIndex: tabIndex,
324
- ref: ref
332
+ ref: refDate
325
333
  }), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
326
334
  onKeyDown: handleCalendarOnKeyDown,
327
335
  open: isOpen,
@@ -346,7 +354,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
346
354
  "aria-modal": "true"
347
355
  }, /*#__PURE__*/_react["default"].createElement(_pickers.DatePicker, {
348
356
  variant: "static",
349
- value: getValueForPicker(),
357
+ value: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format),
350
358
  onChange: function onChange(date) {
351
359
  return handleCalendarOnClick(date);
352
360
  },
@@ -0,0 +1,138 @@
1
+ import React from "react";
2
+ import { userEvent, within, fireEvent, screen } from "@storybook/testing-library";
3
+ import DxcDateInput from "./DateInput";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
7
+ import DarkContainer from "../../.storybook/components/DarkSection";
8
+
9
+ export default {
10
+ title: "Date input",
11
+ component: DxcDateInput,
12
+ };
13
+
14
+ export const Chromatic = () => (
15
+ <>
16
+ <ExampleContainer>
17
+ <Title title="Complete date input" theme="light" level={4} />
18
+ <DxcDateInput label="Date input" helperText="Help message" format="dd/mm/yy" placeholder optional />
19
+ </ExampleContainer>
20
+ <ExampleContainer>
21
+ <Title title="Disabled" theme="light" level={4} />
22
+ <DxcDateInput label="Disabled date input" helperText="Help message" defaultValue="06-04-2027" clearable disabled />
23
+ </ExampleContainer>
24
+ <ExampleContainer>
25
+ <Title title="Invalid" theme="light" level={4} />
26
+ <DxcDateInput label="Error date input" error="Error message." placeholder />
27
+ </ExampleContainer>
28
+ <ExampleContainer>
29
+ <Title title="Relation between icons" theme="light" level={4} />
30
+ <DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-2027" clearable />
31
+ </ExampleContainer>
32
+ <BackgroundColorProvider color="#333333">
33
+ <DarkContainer>
34
+ <Title title="Dark" theme="dark" level={2} />
35
+ <ExampleContainer>
36
+ <Title title="Complete date input" theme="dark" level={4} />
37
+ <DxcDateInput label="Date input" helperText="Help message" format="yyyy/dd/mm" placeholder optional />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Disabled" theme="dark" level={4} />
41
+ <DxcDateInput label="Disabled Date input" helperText="Help message" defaultValue="06-04-2027" clearable disabled />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="Invalid" theme="dark" level={4} />
45
+ <DxcDateInput label="Error date input" error="Error message." placeholder />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="Relation between icons" theme="dark" level={4} />
49
+ <DxcDateInput label="Error date input" defaultValue="06-04-2027" error="Error message." clearable />
50
+ </ExampleContainer>
51
+ </DarkContainer>
52
+ </BackgroundColorProvider>
53
+ <Title title="Margins" theme="light" level={2} />
54
+ <ExampleContainer>
55
+ <Title title="Xxsmall" theme="light" level={4} />
56
+ <DxcDateInput label="Xxsmall" margin="xxsmall" />
57
+ </ExampleContainer>
58
+ <ExampleContainer>
59
+ <Title title="Xsmall" theme="light" level={4} />
60
+ <DxcDateInput label="Xsmall" margin="xsmall" />
61
+ </ExampleContainer>
62
+ <ExampleContainer>
63
+ <Title title="Small" theme="light" level={4} />
64
+ <DxcDateInput label="Small" margin="small" />
65
+ </ExampleContainer>
66
+ <ExampleContainer>
67
+ <Title title="Medium" theme="light" level={4} />
68
+ <DxcDateInput label="Medium" margin="medium" />
69
+ </ExampleContainer>
70
+ <ExampleContainer>
71
+ <Title title="Large" theme="light" level={4} />
72
+ <DxcDateInput label="Large" margin="large" />
73
+ </ExampleContainer>
74
+ <ExampleContainer>
75
+ <Title title="Xlarge" theme="light" level={4} />
76
+ <DxcDateInput label="Xlarge" margin="xlarge" />
77
+ </ExampleContainer>
78
+ <ExampleContainer>
79
+ <Title title="Xxlarge" theme="light" level={4} />
80
+ <DxcDateInput label="Xxlarge" margin="xxlarge" />
81
+ </ExampleContainer>
82
+ <Title title="Sizes" theme="light" level={2} />
83
+ <ExampleContainer>
84
+ <Title title="Medium size" theme="light" level={4} />
85
+ <DxcDateInput label="Medium" size="medium" />
86
+ </ExampleContainer>
87
+ <ExampleContainer>
88
+ <Title title="Large size" theme="light" level={4} />
89
+ <DxcDateInput label="Large" size="large" />
90
+ </ExampleContainer>
91
+ <ExampleContainer>
92
+ <Title title="FillParent size" theme="light" level={4} />
93
+ <DxcDateInput label="FillParent" size="fillParent" />
94
+ </ExampleContainer>
95
+ </>
96
+ );
97
+
98
+ const DatePicker = () => (
99
+ <ExampleContainer expanded>
100
+ <Title title="Show date input" theme="light" level={4} />
101
+ <DxcDateInput label="Date input" defaultValue="10-06-2023" />
102
+ </ExampleContainer>
103
+ );
104
+
105
+ export const ShowDatePicker = DatePicker.bind({});
106
+ ShowDatePicker.play = async ({ canvasElement }) => {
107
+ const canvas = within(canvasElement);
108
+ const dateBtn = canvas.getByRole("button");
109
+ await userEvent.click(dateBtn);
110
+ await userEvent.tab();
111
+ };
112
+
113
+ const YearPicker = () => (
114
+ <ExampleContainer expanded>
115
+ <Title title="Show date input" theme="light" level={4} />
116
+ <DxcDateInput label="Date input" defaultValue="10-06-2023" />
117
+ </ExampleContainer>
118
+ );
119
+
120
+ export const ShowYearPicker = YearPicker.bind({});
121
+ ShowYearPicker.play = async () => {
122
+ await fireEvent.click(screen.getByRole("button"));
123
+ await fireEvent.click(screen.getByText("2023"));
124
+ };
125
+
126
+ const YearPickerFocus = () => (
127
+ <ExampleContainer expanded>
128
+ <Title title="Show date input" theme="light" level={4} />
129
+ <DxcDateInput label="Date input" defaultValue="10-06-2023" />
130
+ </ExampleContainer>
131
+ );
132
+
133
+ export const ShowYearPickerFocus = YearPickerFocus.bind({});
134
+ ShowYearPickerFocus.play = async () => {
135
+ await fireEvent.click(screen.getByRole("button"));
136
+ await fireEvent.click(screen.getByText("2023"));
137
+ await screen.getByText("2021").focus();
138
+ };