@dxc-technology/halstack-react 0.0.0-da224ae → 0.0.0-da4b2be

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 (329) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +118 -142
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +9 -8
  10. package/accordion-group/AccordionGroup.d.ts +5 -4
  11. package/accordion-group/AccordionGroup.js +34 -76
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +15 -8
  17. package/alert/Alert.js +11 -12
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +92 -0
  20. package/alert/types.d.ts +1 -1
  21. package/badge/Badge.d.ts +4 -0
  22. package/badge/Badge.js +6 -4
  23. package/badge/types.d.ts +5 -0
  24. package/bleed/Bleed.d.ts +3 -0
  25. package/bleed/Bleed.js +51 -0
  26. package/bleed/Bleed.stories.tsx +342 -0
  27. package/bleed/types.d.ts +37 -0
  28. package/bleed/types.js +5 -0
  29. package/box/Box.d.ts +1 -1
  30. package/box/Box.js +23 -55
  31. package/box/Box.stories.tsx +38 -51
  32. package/box/Box.test.js +18 -0
  33. package/box/types.d.ts +0 -15
  34. package/bulleted-list/BulletedList.d.ts +7 -0
  35. package/bulleted-list/BulletedList.js +125 -0
  36. package/bulleted-list/BulletedList.stories.tsx +206 -0
  37. package/bulleted-list/types.d.ts +38 -0
  38. package/bulleted-list/types.js +5 -0
  39. package/button/Button.d.ts +1 -1
  40. package/button/Button.js +61 -85
  41. package/button/Button.stories.tsx +163 -14
  42. package/button/Button.test.js +35 -0
  43. package/button/types.d.ts +8 -12
  44. package/card/Card.js +35 -40
  45. package/card/Card.stories.tsx +200 -0
  46. package/card/Card.test.js +50 -0
  47. package/card/ice-cream.jpg +0 -0
  48. package/card/types.d.ts +5 -6
  49. package/checkbox/Checkbox.d.ts +2 -2
  50. package/checkbox/Checkbox.js +108 -111
  51. package/checkbox/Checkbox.stories.tsx +198 -130
  52. package/checkbox/Checkbox.test.js +155 -0
  53. package/checkbox/types.d.ts +13 -5
  54. package/chip/Chip.d.ts +4 -0
  55. package/chip/Chip.js +37 -118
  56. package/chip/Chip.stories.tsx +123 -30
  57. package/chip/Chip.test.js +54 -0
  58. package/chip/types.d.ts +45 -0
  59. package/chip/types.js +5 -0
  60. package/common/OpenSans.css +68 -80
  61. package/common/coreTokens.d.ts +146 -0
  62. package/common/coreTokens.js +167 -0
  63. package/common/utils.d.ts +1 -0
  64. package/common/utils.js +4 -4
  65. package/common/variables.d.ts +1482 -0
  66. package/common/variables.js +1100 -1316
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +258 -0
  69. package/date-input/DateInput.js +174 -266
  70. package/date-input/DateInput.stories.tsx +199 -33
  71. package/date-input/DateInput.test.js +835 -0
  72. package/date-input/DatePicker.d.ts +4 -0
  73. package/date-input/DatePicker.js +146 -0
  74. package/date-input/Icons.d.ts +6 -0
  75. package/date-input/Icons.js +75 -0
  76. package/date-input/YearPicker.d.ts +4 -0
  77. package/date-input/YearPicker.js +126 -0
  78. package/date-input/types.d.ts +67 -9
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +69 -103
  81. package/dialog/Dialog.stories.tsx +154 -171
  82. package/dialog/Dialog.test.js +369 -0
  83. package/dialog/types.d.ts +0 -12
  84. package/dropdown/Dropdown.d.ts +1 -1
  85. package/dropdown/Dropdown.js +248 -277
  86. package/dropdown/Dropdown.stories.tsx +438 -0
  87. package/dropdown/Dropdown.test.js +586 -0
  88. package/dropdown/DropdownMenu.d.ts +4 -0
  89. package/dropdown/DropdownMenu.js +74 -0
  90. package/dropdown/DropdownMenuItem.d.ts +4 -0
  91. package/dropdown/DropdownMenuItem.js +79 -0
  92. package/dropdown/types.d.ts +28 -17
  93. package/file-input/FileInput.d.ts +4 -0
  94. package/file-input/FileInput.js +183 -168
  95. package/file-input/FileInput.stories.tsx +618 -0
  96. package/file-input/FileInput.test.js +457 -0
  97. package/file-input/FileItem.d.ts +4 -0
  98. package/file-input/FileItem.js +50 -81
  99. package/file-input/types.d.ts +129 -0
  100. package/file-input/types.js +5 -0
  101. package/flex/Flex.d.ts +4 -0
  102. package/flex/Flex.js +71 -0
  103. package/flex/Flex.stories.tsx +112 -0
  104. package/flex/types.d.ts +97 -0
  105. package/flex/types.js +5 -0
  106. package/footer/Footer.d.ts +1 -1
  107. package/footer/Footer.js +34 -117
  108. package/footer/Footer.stories.tsx +228 -0
  109. package/footer/Footer.test.js +97 -0
  110. package/footer/Icons.d.ts +2 -0
  111. package/footer/Icons.js +4 -4
  112. package/footer/types.d.ts +23 -18
  113. package/grid/Grid.d.ts +7 -0
  114. package/grid/Grid.js +91 -0
  115. package/grid/Grid.stories.tsx +219 -0
  116. package/grid/types.d.ts +115 -0
  117. package/grid/types.js +5 -0
  118. package/header/Header.d.ts +3 -2
  119. package/header/Header.js +110 -131
  120. package/header/Header.stories.tsx +315 -0
  121. package/header/Header.test.js +79 -0
  122. package/header/Icons.d.ts +2 -0
  123. package/header/Icons.js +2 -2
  124. package/header/types.d.ts +5 -2
  125. package/heading/Heading.js +2 -2
  126. package/heading/Heading.stories.tsx +54 -0
  127. package/heading/Heading.test.js +186 -0
  128. package/inset/Inset.d.ts +3 -0
  129. package/inset/Inset.js +51 -0
  130. package/inset/Inset.stories.tsx +230 -0
  131. package/inset/types.d.ts +37 -0
  132. package/inset/types.js +5 -0
  133. package/layout/ApplicationLayout.d.ts +20 -0
  134. package/layout/ApplicationLayout.js +72 -136
  135. package/layout/ApplicationLayout.stories.tsx +162 -0
  136. package/layout/Icons.d.ts +5 -0
  137. package/layout/Icons.js +13 -2
  138. package/layout/SidenavContext.d.ts +5 -0
  139. package/layout/SidenavContext.js +19 -0
  140. package/layout/types.d.ts +41 -0
  141. package/layout/types.js +5 -0
  142. package/link/Link.d.ts +3 -2
  143. package/link/Link.js +64 -89
  144. package/link/Link.stories.tsx +199 -16
  145. package/link/Link.test.js +81 -0
  146. package/link/types.d.ts +7 -27
  147. package/main.d.ts +13 -12
  148. package/main.js +68 -54
  149. package/nav-tabs/NavTabs.d.ts +8 -0
  150. package/nav-tabs/NavTabs.js +122 -0
  151. package/nav-tabs/NavTabs.stories.tsx +274 -0
  152. package/nav-tabs/NavTabs.test.js +82 -0
  153. package/nav-tabs/Tab.d.ts +4 -0
  154. package/nav-tabs/Tab.js +146 -0
  155. package/nav-tabs/types.d.ts +52 -0
  156. package/nav-tabs/types.js +5 -0
  157. package/number-input/NumberInput.js +14 -24
  158. package/number-input/NumberInput.stories.tsx +5 -5
  159. package/number-input/NumberInput.test.js +542 -0
  160. package/number-input/NumberInputContext.d.ts +4 -0
  161. package/number-input/NumberInputContext.js +5 -2
  162. package/number-input/numberInputContextTypes.d.ts +19 -0
  163. package/number-input/numberInputContextTypes.js +5 -0
  164. package/number-input/types.d.ts +17 -10
  165. package/package.json +22 -23
  166. package/paginator/Icons.d.ts +5 -0
  167. package/paginator/Icons.js +16 -28
  168. package/paginator/Paginator.js +22 -57
  169. package/paginator/Paginator.stories.tsx +24 -0
  170. package/paginator/Paginator.test.js +318 -0
  171. package/paragraph/Paragraph.d.ts +5 -0
  172. package/paragraph/Paragraph.js +38 -0
  173. package/paragraph/Paragraph.stories.tsx +44 -0
  174. package/password-input/PasswordInput.js +23 -19
  175. package/password-input/PasswordInput.stories.tsx +3 -3
  176. package/password-input/PasswordInput.test.js +181 -0
  177. package/password-input/types.d.ts +29 -19
  178. package/progress-bar/ProgressBar.js +63 -57
  179. package/progress-bar/ProgressBar.stories.jsx +47 -12
  180. package/progress-bar/ProgressBar.test.js +110 -0
  181. package/quick-nav/QuickNav.d.ts +4 -0
  182. package/quick-nav/QuickNav.js +117 -0
  183. package/quick-nav/QuickNav.stories.tsx +356 -0
  184. package/quick-nav/types.d.ts +21 -0
  185. package/quick-nav/types.js +5 -0
  186. package/radio-group/Radio.d.ts +4 -0
  187. package/radio-group/Radio.js +156 -0
  188. package/radio-group/RadioGroup.d.ts +4 -0
  189. package/radio-group/RadioGroup.js +281 -0
  190. package/radio-group/RadioGroup.stories.tsx +214 -0
  191. package/radio-group/RadioGroup.test.js +722 -0
  192. package/radio-group/types.d.ts +114 -0
  193. package/radio-group/types.js +5 -0
  194. package/resultsetTable/Icons.d.ts +7 -0
  195. package/resultsetTable/Icons.js +51 -0
  196. package/resultsetTable/ResultsetTable.d.ts +4 -0
  197. package/resultsetTable/ResultsetTable.js +54 -133
  198. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  199. package/resultsetTable/ResultsetTable.test.js +325 -0
  200. package/resultsetTable/types.d.ts +67 -0
  201. package/resultsetTable/types.js +5 -0
  202. package/select/Icons.d.ts +10 -0
  203. package/select/Icons.js +93 -0
  204. package/select/Listbox.d.ts +4 -0
  205. package/select/Listbox.js +169 -0
  206. package/select/Option.d.ts +4 -0
  207. package/select/Option.js +97 -0
  208. package/select/Select.d.ts +4 -0
  209. package/select/Select.js +202 -401
  210. package/select/Select.stories.tsx +600 -201
  211. package/select/Select.test.js +2228 -0
  212. package/select/types.d.ts +210 -0
  213. package/select/types.js +5 -0
  214. package/sidenav/Icons.d.ts +7 -0
  215. package/sidenav/Icons.js +51 -0
  216. package/sidenav/Sidenav.d.ts +6 -5
  217. package/sidenav/Sidenav.js +148 -46
  218. package/sidenav/Sidenav.stories.tsx +282 -0
  219. package/sidenav/Sidenav.test.js +44 -0
  220. package/sidenav/types.d.ts +52 -26
  221. package/slider/Slider.d.ts +2 -2
  222. package/slider/Slider.js +124 -99
  223. package/slider/Slider.stories.tsx +72 -9
  224. package/slider/Slider.test.js +250 -0
  225. package/slider/types.d.ts +8 -0
  226. package/spinner/Spinner.js +20 -26
  227. package/spinner/Spinner.stories.jsx +53 -26
  228. package/spinner/Spinner.test.js +64 -0
  229. package/switch/Switch.d.ts +2 -2
  230. package/switch/Switch.js +153 -70
  231. package/switch/Switch.stories.tsx +54 -43
  232. package/switch/Switch.test.js +225 -0
  233. package/switch/types.d.ts +10 -2
  234. package/table/Table.js +6 -6
  235. package/table/Table.stories.jsx +81 -1
  236. package/table/Table.test.js +26 -0
  237. package/tabs/Tab.d.ts +4 -0
  238. package/tabs/Tab.js +132 -0
  239. package/tabs/Tabs.d.ts +1 -1
  240. package/tabs/Tabs.js +362 -112
  241. package/tabs/Tabs.stories.tsx +226 -0
  242. package/tabs/Tabs.test.js +350 -0
  243. package/tabs/types.d.ts +39 -18
  244. package/tag/Tag.d.ts +1 -1
  245. package/tag/Tag.js +25 -37
  246. package/tag/Tag.stories.tsx +38 -28
  247. package/tag/Tag.test.js +60 -0
  248. package/tag/types.d.ts +23 -14
  249. package/text-input/Icons.d.ts +8 -0
  250. package/text-input/Icons.js +60 -0
  251. package/text-input/Suggestion.d.ts +4 -0
  252. package/text-input/Suggestion.js +84 -0
  253. package/text-input/Suggestions.d.ts +4 -0
  254. package/text-input/Suggestions.js +134 -0
  255. package/text-input/TextInput.d.ts +4 -0
  256. package/text-input/TextInput.js +236 -388
  257. package/text-input/TextInput.stories.tsx +569 -0
  258. package/text-input/TextInput.test.js +1723 -0
  259. package/text-input/types.d.ts +197 -0
  260. package/text-input/types.js +5 -0
  261. package/textarea/Textarea.d.ts +4 -0
  262. package/textarea/Textarea.js +41 -82
  263. package/textarea/Textarea.stories.jsx +96 -15
  264. package/textarea/Textarea.test.js +435 -0
  265. package/textarea/types.d.ts +137 -0
  266. package/textarea/types.js +5 -0
  267. package/toggle-group/ToggleGroup.d.ts +4 -0
  268. package/toggle-group/ToggleGroup.js +24 -49
  269. package/toggle-group/ToggleGroup.stories.tsx +69 -32
  270. package/toggle-group/ToggleGroup.test.js +156 -0
  271. package/toggle-group/types.d.ts +105 -0
  272. package/toggle-group/types.js +5 -0
  273. package/typography/Typography.d.ts +4 -0
  274. package/typography/Typography.js +32 -0
  275. package/typography/Typography.stories.tsx +198 -0
  276. package/typography/types.d.ts +18 -0
  277. package/typography/types.js +5 -0
  278. package/useTheme.d.ts +1235 -0
  279. package/useTheme.js +3 -3
  280. package/useTranslatedLabels.d.ts +85 -0
  281. package/useTranslatedLabels.js +20 -0
  282. package/utils/BaseTypography.d.ts +21 -0
  283. package/utils/BaseTypography.js +108 -0
  284. package/utils/FocusLock.d.ts +13 -0
  285. package/utils/FocusLock.js +138 -0
  286. package/wizard/Wizard.d.ts +1 -1
  287. package/wizard/Wizard.js +113 -59
  288. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  289. package/wizard/Wizard.test.js +141 -0
  290. package/wizard/types.d.ts +10 -10
  291. package/ThemeContext.js +0 -246
  292. package/V3Select/V3Select.js +0 -455
  293. package/V3Select/index.d.ts +0 -27
  294. package/V3Textarea/V3Textarea.js +0 -260
  295. package/V3Textarea/index.d.ts +0 -27
  296. package/chip/index.d.ts +0 -22
  297. package/common/RequiredComponent.js +0 -32
  298. package/date/Date.js +0 -373
  299. package/date/index.d.ts +0 -27
  300. package/file-input/index.d.ts +0 -81
  301. package/footer/Footer.stories.jsx +0 -151
  302. package/input-text/Icons.js +0 -22
  303. package/input-text/InputText.js +0 -611
  304. package/input-text/index.d.ts +0 -36
  305. package/radio/Radio.d.ts +0 -4
  306. package/radio/Radio.js +0 -174
  307. package/radio/Radio.stories.tsx +0 -192
  308. package/radio/types.d.ts +0 -54
  309. package/resultsetTable/index.d.ts +0 -19
  310. package/select/index.d.ts +0 -131
  311. package/text-input/index.d.ts +0 -135
  312. package/textarea/index.d.ts +0 -117
  313. package/toggle/Toggle.js +0 -186
  314. package/toggle/index.d.ts +0 -21
  315. package/toggle-group/index.d.ts +0 -21
  316. package/upload/Upload.js +0 -201
  317. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  318. package/upload/buttons-upload/Icons.js +0 -40
  319. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  320. package/upload/dragAndDropArea/Icons.js +0 -39
  321. package/upload/file-upload/FileToUpload.js +0 -115
  322. package/upload/file-upload/Icons.js +0 -66
  323. package/upload/files-upload/FilesToUpload.js +0 -109
  324. package/upload/index.d.ts +0 -15
  325. package/upload/transaction/Icons.js +0 -160
  326. package/upload/transaction/Transaction.js +0 -104
  327. package/upload/transactions/Transactions.js +0 -94
  328. package/wizard/Icons.js +0 -65
  329. /package/{radio → badge}/types.js +0 -0
@@ -11,27 +11,31 @@ 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"));
17
19
 
18
- var _pickers = require("@material-ui/pickers");
20
+ var _dayjs = _interopRequireDefault(require("dayjs"));
21
+
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
23
 
20
- var _core = require("@material-ui/core");
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
25
 
22
- var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
27
 
24
- var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
28
+ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
25
29
 
26
- var _moment = _interopRequireDefault(require("moment"));
30
+ var _DatePicker = _interopRequireDefault(require("./DatePicker"));
27
31
 
28
- var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
32
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
29
33
 
30
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
34
+ var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
31
35
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
36
+ var _uuid = require("uuid");
33
37
 
34
- var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
38
+ var _Icons = require("./Icons");
35
39
 
36
40
  var _templateObject;
37
41
 
@@ -39,37 +43,61 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
43
 
40
44
  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
45
 
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ _dayjs["default"].extend(_customParseFormat["default"]);
51
+
52
+ var getValueForPicker = function getValueForPicker(value, format) {
53
+ return (0, _dayjs["default"])(value, format.toUpperCase(), true);
54
+ };
55
+
56
+ var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
57
+ if ((value || value === "") && format.toUpperCase().includes("YYYY")) return getValueForPicker(value, format);else {
58
+ var newDate = getValueForPicker(value, format);
59
+
60
+ if (!lastValidYear) {
61
+ if (+newDate.format("YY") < 68) {
62
+ setLastValidYear(2000 + +newDate.format("YY"));
63
+ newDate = newDate.set("year", 2000 + +newDate.format("YY"));
64
+ } else {
65
+ setLastValidYear(1900 + +newDate.format("YY"));
66
+ newDate = newDate.set("year", 1900 + +newDate.format("YY"));
67
+ }
68
+ } else {
69
+ newDate = newDate.set("year", (lastValidYear <= 1999 ? 1900 : 2000) + +newDate.format("YY"));
70
+ }
71
+
72
+ return newDate;
73
+ }
74
+ };
75
+
42
76
  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,
77
+ var _ref2;
78
+
79
+ var label = _ref.label,
80
+ name = _ref.name,
81
+ _ref$defaultValue = _ref.defaultValue,
82
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
47
83
  value = _ref.value,
48
84
  _ref$format = _ref.format,
49
85
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
50
- _ref$helperText = _ref.helperText,
51
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
86
+ helperText = _ref.helperText,
52
87
  _ref$placeholder = _ref.placeholder,
53
88
  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,
89
+ clearable = _ref.clearable,
90
+ disabled = _ref.disabled,
91
+ optional = _ref.optional,
60
92
  onChange = _ref.onChange,
61
93
  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,
94
+ error = _ref.error,
95
+ autocomplete = _ref.autocomplete,
66
96
  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;
97
+ size = _ref.size,
98
+ tabIndex = _ref.tabIndex;
71
99
 
72
- var _useState = (0, _react.useState)(""),
100
+ var _useState = (0, _react.useState)(defaultValue),
73
101
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
102
  innerValue = _useState2[0],
75
103
  setInnerValue = _useState2[1];
@@ -79,238 +107,138 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
79
107
  isOpen = _useState4[0],
80
108
  setIsOpen = _useState4[1];
81
109
 
82
- var _useState5 = (0, _react.useState)(null),
83
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
84
- anchorEl = _useState6[0],
85
- setAnchorEl = _useState6[1];
110
+ var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
111
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
112
+ calendarId = _useState6[0];
86
113
 
87
- var colorsTheme = (0, _useTheme["default"])();
114
+ var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
115
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
116
+ dayjsDate = _useState8[0],
117
+ setDayjsDate = _useState8[1];
118
+
119
+ var _useState9 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
120
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
121
+ lastValidYear = _useState10[0],
122
+ setLastValidYear = _useState10[1];
88
123
 
89
- var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
90
- switch (event.keyCode) {
91
- case 27:
92
- // Esc
93
- event.preventDefault();
94
- setIsOpen(false);
95
- break;
124
+ var colorsTheme = (0, _useTheme["default"])();
125
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
126
+ var dateRef = (0, _react.useRef)(null);
127
+ (0, _react.useEffect)(function () {
128
+ if (value || value === "") setDayjsDate(getDate(value, format, lastValidYear, setLastValidYear));
129
+ }, [value, format, lastValidYear]);
130
+ (0, _react.useLayoutEffect)(function () {
131
+ if (!disabled) {
132
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
133
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
134
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
135
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
136
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
137
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
96
138
  }
97
- };
139
+ }, [isOpen, disabled, calendarId]);
98
140
 
99
141
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
100
- var newValue = (0, _moment["default"])(newDate).format(format.toUpperCase());
101
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
102
- onChange === null || onChange === void 0 ? void 0 : onChange({
142
+ var newValue = newDate.format(format.toUpperCase());
143
+
144
+ if (!value) {
145
+ setDayjsDate(newDate);
146
+ setInnerValue(newValue);
147
+ }
148
+
149
+ setLastValidYear(newDate.get("year"));
150
+ newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
103
151
  value: newValue,
104
- error: null,
105
- date: newDate !== null && newDate !== void 0 && newDate.toJSON() ? newDate : null
152
+ date: newDate.toDate()
153
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
154
+ value: newValue
106
155
  });
107
156
  };
108
157
 
109
- var handleIOnChange = function handleIOnChange(_ref2) {
110
- var newValue = _ref2.value,
111
- inputError = _ref2.error;
158
+ var handleIOnChange = function handleIOnChange(_ref3) {
159
+ var newValue = _ref3.value,
160
+ inputError = _ref3.error;
112
161
  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({
162
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
163
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
164
+ var callbackParams = inputError || invalidDateMessage ? {
116
165
  value: newValue,
117
- error: inputError || invalidDateMessage,
118
- date: momentDate.isValid() ? momentDate.toDate() : null
119
- });
166
+ error: inputError || invalidDateMessage
167
+ } : {
168
+ value: newValue
169
+ };
170
+
171
+ if (newDate.isValid()) {
172
+ setDayjsDate(newDate);
173
+ onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
174
+ date: newDate.toDate()
175
+ }));
176
+ } else {
177
+ onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
178
+ setLastValidYear(function (validYear) {
179
+ var _dayjsDate$get;
180
+
181
+ return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
182
+ });
183
+ setDayjsDate(null);
184
+ }
120
185
  };
121
186
 
122
- var handleIOnBlur = function handleIOnBlur(_ref3) {
123
- var value = _ref3.value,
124
- 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({
187
+ var handleIOnBlur = function handleIOnBlur(_ref4) {
188
+ var value = _ref4.value,
189
+ inputError = _ref4.error;
190
+ var date = getDate(value, format, lastValidYear, setLastValidYear);
191
+ var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
192
+ var callbackParams = inputError || invalidDateMessage ? {
128
193
  value: value,
129
- error: inputError || invalidDateMessage,
130
- date: momentDate.isValid() ? momentDate.toDate() : null
131
- });
194
+ error: inputError || invalidDateMessage
195
+ } : {
196
+ value: value
197
+ };
198
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
199
+ date: date.toDate()
200
+ })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
132
201
  };
133
202
 
134
- var getValueForPicker = function getValueForPicker() {
135
- return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
136
- };
137
-
138
- var openCalendar = function openCalendar(event) {
139
- if (event) {
140
- setIsOpen(!isOpen);
141
- setAnchorEl(event.currentTarget);
142
- }
203
+ var openCalendar = function openCalendar() {
204
+ setIsOpen(!isOpen);
143
205
  };
144
206
 
145
207
  var closeCalendar = function closeCalendar() {
146
208
  setIsOpen(false);
147
209
  };
148
210
 
149
- var calendarAction = {
150
- onClick: openCalendar,
151
- icon: /*#__PURE__*/_react["default"].createElement("svg", {
152
- xmlns: "http://www.w3.org/2000/svg",
153
- height: "24",
154
- viewBox: "0 0 24 24",
155
- width: "24",
156
- fill: "currentColor"
157
- }, /*#__PURE__*/_react["default"].createElement("path", {
158
- d: "M0 0h24v24H0z",
159
- fill: "none"
160
- }), /*#__PURE__*/_react["default"].createElement("path", {
161
- d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
162
- }))
211
+ var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
212
+ event.preventDefault();
213
+ closeCalendar();
214
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
163
215
  };
164
- var dateTheme = (0, _core.createMuiTheme)({
165
- overrides: {
166
- MuiTypography: {
167
- root: {
168
- fontFamily: "".concat(colorsTheme.dateInput.pickerFontFamily, " !important")
169
- }
170
- },
171
- MuiPickersYearSelection: {
172
- container: {
173
- color: colorsTheme.dateInput.pickerYearFontColor,
174
- "&::-webkit-scrollbar": {
175
- width: "3px"
176
- },
177
- "&::-webkit-scrollbar-track": {
178
- backgroundColor: "#D9D9D9",
179
- borderRadius: "3px"
180
- },
181
- "&::-webkit-scrollbar-thumb": {
182
- backgroundColor: "#666666",
183
- borderRadius: "3px"
184
- }
185
- }
186
- },
187
- MuiPickersToolbar: {
188
- toolbar: {
189
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
190
- color: colorsTheme.dateInput.pickerDayFontColor
191
- }
192
- },
193
- MuiIconButton: {
194
- root: {
195
- height: "36px",
196
- width: "36px",
197
- padding: "0px"
198
- }
199
- },
200
- MuiTouchRipple: {
201
- child: {
202
- opacity: "0"
203
- }
204
- },
205
- MuiButtonBase: {
206
- root: {
207
- "&:focus": {
208
- outline: colorsTheme.dateInput.pickerFocusColor + " solid 2px"
209
- }
210
- }
211
- },
212
- MuiPickersBasePicker: {
213
- pickerView: {
214
- minWidth: "unset",
215
- maxWidth: "unset",
216
- minHeight: "unset",
217
- padding: "0px 10px",
218
- height: colorsTheme.dateInput.pickerHeight,
219
- width: colorsTheme.dateInput.pickerWidth,
220
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
221
- fontFamily: colorsTheme.dateInput.pickerFontFamily
222
- }
223
- },
224
- MuiPickersToolbarText: {
225
- toolbarTxt: {
226
- color: colorsTheme.dateInput.pickerActualDateFontColor,
227
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
228
- fontSize: "2rem"
229
- },
230
- toolbarBtnSelected: {
231
- color: colorsTheme.dateInput.pickerActualDateFontColor
232
- }
233
- },
234
- MuiPickersCalendarHeader: {
235
- transitionContainer: {
236
- color: colorsTheme.dateInput.pickerMonthFontColor
237
- },
238
- dayLabel: {
239
- color: colorsTheme.dateInput.pickerWeekFontColor,
240
- fontFamily: colorsTheme.dateInput.pickerFontFamily
241
- },
242
- switchHeader: {
243
- backgroundColor: "#ffffff",
244
- color: colorsTheme.dateInput.pickerDayFontColor
245
- },
246
- iconButton: {
247
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor,
248
- "&:hover": {
249
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor
250
- }
251
- }
252
- },
253
- MuiPickersCalendar: {
254
- week: {
255
- marginBottom: "2px"
256
- }
257
- },
258
- MuiPickersDay: {
259
- current: {
260
- color: colorsTheme.dateInput.pickerDayFontColor
261
- },
262
- day: {
263
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
264
- color: colorsTheme.dateInput.pickerDayFontColor,
265
- "&:hover": {
266
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor,
267
- color: colorsTheme.dateInput.pickerHoverDateFontColor
268
- }
269
- },
270
- daySelected: {
271
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
272
- color: colorsTheme.dateInput.pickerSelectedDateColor,
273
- "&:hover": {
274
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
275
- color: colorsTheme.dateInput.pickerSelectedDateColor,
276
- opacity: "1"
277
- }
278
- }
279
- },
280
- MuiPickersYear: {
281
- yearSelected: {
282
- color: colorsTheme.dateInput.pickerSelectedDateColor,
283
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
284
- margin: "0px 100px",
285
- borderRadius: "20px"
286
- },
287
- root: {
288
- "&:focus": {
289
- color: colorsTheme.dateInput.pickerHoverDateFontColor,
290
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor
291
- }
292
- }
293
- },
294
- MuiPickersModal: {
295
- dialogAction: {
296
- color: "pink"
297
- }
298
- }
299
- }
300
- });
216
+
217
+ var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
218
+ if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
219
+ };
220
+
301
221
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
302
222
  theme: colorsTheme
303
- }, /*#__PURE__*/_react["default"].createElement(_core.MuiThemeProvider, {
304
- theme: dateTheme
305
- }, /*#__PURE__*/_react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
306
- utils: _dateFns["default"]
307
- }, /*#__PURE__*/_react["default"].createElement(StyledDPicker, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
223
+ }, /*#__PURE__*/_react["default"].createElement("div", {
224
+ ref: ref
225
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
226
+ open: isOpen
227
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
228
+ asChild: true,
229
+ "aria-controls": undefined
230
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
308
231
  label: label,
309
232
  name: name,
233
+ defaultValue: defaultValue,
310
234
  value: value !== null && value !== void 0 ? value : innerValue,
311
235
  helperText: helperText,
312
236
  placeholder: placeholder ? format.toUpperCase() : null,
313
- action: calendarAction,
237
+ action: {
238
+ onClick: openCalendar,
239
+ icon: _Icons.calendarIcon,
240
+ title: "Open calendar"
241
+ },
314
242
  clearable: clearable,
315
243
  disabled: disabled,
316
244
  optional: optional,
@@ -321,41 +249,21 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
321
249
  margin: margin,
322
250
  size: size,
323
251
  tabIndex: tabIndex,
324
- ref: ref
325
- }), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
326
- onKeyDown: handleCalendarOnKeyDown,
327
- open: isOpen,
328
- anchorEl: anchorEl,
329
- anchorOrigin: {
330
- vertical: "bottom",
331
- horizontal: "left"
332
- },
333
- transformOrigin: {
334
- vertical: "top",
335
- horizontal: "center"
336
- },
337
- PaperProps: {
338
- style: {
339
- marginTop: "10px"
340
- }
341
- }
342
- }, /*#__PURE__*/_react["default"].createElement(_ClickAwayListener["default"], {
343
- onClickAway: closeCalendar
344
- }, /*#__PURE__*/_react["default"].createElement(_core.Paper, {
345
- role: "dialog",
346
- "aria-modal": "true"
347
- }, /*#__PURE__*/_react["default"].createElement(_pickers.DatePicker, {
348
- variant: "static",
349
- value: getValueForPicker(),
350
- onChange: function onChange(date) {
351
- return handleCalendarOnClick(date);
352
- },
353
- format: format,
354
- disabled: disabled
355
- }))))))));
252
+ ref: dateRef
253
+ })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
254
+ sideOffset: error ? -18 : 2,
255
+ align: "end",
256
+ "aria-modal": true,
257
+ onBlur: handleDatePickerOnBlur,
258
+ onEscapeKeyDown: handleDatePickerEscKeydown,
259
+ avoidCollisions: false
260
+ }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
261
+ id: calendarId,
262
+ onDateSelect: handleCalendarOnClick,
263
+ date: dayjsDate
264
+ })))));
356
265
  });
357
266
 
358
- var StyledDPicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
359
-
267
+ var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
360
268
  var _default = DxcDateInput;
361
269
  exports["default"] = _default;