@dxc-technology/halstack-react 0.0.0-5aa300b → 0.0.0-5b32837

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 (292) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1231 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +30 -87
  8. package/accordion/Accordion.stories.tsx +52 -115
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -43
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +68 -102
  45. package/button/Button.stories.tsx +104 -94
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +36 -64
  58. package/chip/Chip.stories.tsx +80 -17
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1383 -0
  67. package/common/variables.js +886 -1143
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/date-input/Calendar.d.ts +1 -1
  73. package/date-input/Calendar.js +52 -96
  74. package/date-input/DateInput.js +103 -107
  75. package/date-input/DateInput.stories.tsx +194 -60
  76. package/date-input/DateInput.test.js +676 -620
  77. package/date-input/DatePicker.js +47 -92
  78. package/date-input/Icons.d.ts +6 -0
  79. package/date-input/Icons.js +58 -0
  80. package/date-input/YearPicker.d.ts +1 -1
  81. package/date-input/YearPicker.js +29 -44
  82. package/date-input/types.d.ts +31 -27
  83. package/dialog/Dialog.d.ts +1 -1
  84. package/dialog/Dialog.js +61 -119
  85. package/dialog/Dialog.stories.tsx +310 -212
  86. package/dialog/Dialog.test.js +269 -32
  87. package/dialog/types.d.ts +18 -26
  88. package/dropdown/Dropdown.js +50 -103
  89. package/dropdown/Dropdown.stories.tsx +200 -82
  90. package/dropdown/Dropdown.test.js +393 -379
  91. package/dropdown/DropdownMenu.js +20 -37
  92. package/dropdown/DropdownMenuItem.js +9 -34
  93. package/dropdown/types.d.ts +17 -19
  94. package/file-input/FileInput.js +184 -256
  95. package/file-input/FileInput.stories.tsx +86 -3
  96. package/file-input/FileInput.test.js +356 -395
  97. package/file-input/FileItem.js +15 -41
  98. package/file-input/types.d.ts +10 -10
  99. package/flex/Flex.js +27 -39
  100. package/flex/Flex.stories.tsx +35 -26
  101. package/flex/types.d.ts +74 -9
  102. package/footer/Footer.d.ts +1 -1
  103. package/footer/Footer.js +70 -117
  104. package/footer/Footer.stories.tsx +55 -21
  105. package/footer/Footer.test.js +33 -57
  106. package/footer/Icons.d.ts +3 -2
  107. package/footer/Icons.js +66 -7
  108. package/footer/types.d.ts +25 -27
  109. package/grid/Grid.d.ts +7 -0
  110. package/grid/Grid.js +76 -0
  111. package/grid/Grid.stories.tsx +219 -0
  112. package/grid/types.d.ts +115 -0
  113. package/header/Header.d.ts +4 -3
  114. package/header/Header.js +48 -133
  115. package/header/Header.stories.tsx +115 -36
  116. package/header/Header.test.js +13 -26
  117. package/header/Icons.d.ts +2 -2
  118. package/header/Icons.js +2 -7
  119. package/header/types.d.ts +5 -20
  120. package/heading/Heading.js +10 -32
  121. package/heading/Heading.test.js +71 -88
  122. package/heading/types.d.ts +7 -7
  123. package/image/Image.d.ts +4 -0
  124. package/image/Image.js +70 -0
  125. package/image/Image.stories.tsx +127 -0
  126. package/image/types.d.ts +72 -0
  127. package/image/types.js +5 -0
  128. package/inset/Inset.js +13 -21
  129. package/inset/Inset.stories.tsx +2 -1
  130. package/inset/types.d.ts +2 -2
  131. package/layout/ApplicationLayout.d.ts +5 -5
  132. package/layout/ApplicationLayout.js +29 -66
  133. package/layout/ApplicationLayout.stories.tsx +1 -1
  134. package/layout/Icons.d.ts +8 -5
  135. package/layout/Icons.js +51 -59
  136. package/layout/SidenavContext.d.ts +1 -1
  137. package/layout/SidenavContext.js +3 -9
  138. package/layout/types.d.ts +5 -6
  139. package/link/Link.js +24 -45
  140. package/link/Link.stories.tsx +60 -0
  141. package/link/Link.test.js +24 -44
  142. package/link/types.d.ts +14 -14
  143. package/main.d.ts +8 -5
  144. package/main.js +33 -59
  145. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  146. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  147. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +109 -5
  148. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  149. package/nav-tabs/Tab.js +118 -0
  150. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  151. package/nav-tabs/types.js +5 -0
  152. package/number-input/NumberInput.d.ts +7 -0
  153. package/number-input/NumberInput.js +26 -35
  154. package/number-input/NumberInput.stories.tsx +42 -26
  155. package/number-input/NumberInput.test.js +701 -413
  156. package/number-input/types.d.ts +11 -5
  157. package/package.json +31 -29
  158. package/paginator/Icons.d.ts +5 -5
  159. package/paginator/Icons.js +5 -19
  160. package/paginator/Paginator.js +17 -47
  161. package/paginator/Paginator.stories.tsx +24 -0
  162. package/paginator/Paginator.test.js +252 -225
  163. package/paginator/types.d.ts +3 -3
  164. package/paragraph/Paragraph.d.ts +3 -4
  165. package/paragraph/Paragraph.js +6 -22
  166. package/paragraph/Paragraph.stories.tsx +0 -17
  167. package/password-input/Icons.d.ts +6 -0
  168. package/password-input/Icons.js +35 -0
  169. package/password-input/PasswordInput.js +57 -126
  170. package/password-input/PasswordInput.stories.tsx +1 -33
  171. package/password-input/PasswordInput.test.js +158 -141
  172. package/password-input/types.d.ts +8 -7
  173. package/progress-bar/ProgressBar.d.ts +2 -2
  174. package/progress-bar/ProgressBar.js +23 -55
  175. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  176. package/progress-bar/ProgressBar.test.js +36 -53
  177. package/progress-bar/types.d.ts +4 -3
  178. package/quick-nav/QuickNav.js +4 -27
  179. package/quick-nav/QuickNav.stories.tsx +15 -1
  180. package/quick-nav/types.d.ts +10 -10
  181. package/radio-group/Radio.d.ts +1 -1
  182. package/radio-group/Radio.js +31 -63
  183. package/radio-group/RadioGroup.js +45 -93
  184. package/radio-group/RadioGroup.stories.tsx +131 -18
  185. package/radio-group/RadioGroup.test.js +505 -471
  186. package/radio-group/types.d.ts +8 -8
  187. package/resultset-table/Icons.d.ts +7 -0
  188. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  189. package/resultset-table/ResultsetTable.d.ts +7 -0
  190. package/{resultsetTable → resultset-table}/ResultsetTable.js +38 -66
  191. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +86 -5
  192. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
  193. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  194. package/resultset-table/types.js +5 -0
  195. package/select/Icons.d.ts +7 -7
  196. package/select/Icons.js +1 -5
  197. package/select/Listbox.d.ts +1 -1
  198. package/select/Listbox.js +17 -72
  199. package/select/Option.js +19 -40
  200. package/select/Select.js +120 -175
  201. package/select/Select.stories.tsx +478 -190
  202. package/select/Select.test.js +1974 -1837
  203. package/select/types.d.ts +16 -17
  204. package/sidenav/Icons.d.ts +7 -0
  205. package/sidenav/Icons.js +47 -0
  206. package/sidenav/Sidenav.d.ts +2 -2
  207. package/sidenav/Sidenav.js +81 -151
  208. package/sidenav/Sidenav.stories.tsx +110 -17
  209. package/sidenav/Sidenav.test.js +3 -10
  210. package/sidenav/types.d.ts +31 -28
  211. package/slider/Slider.js +70 -128
  212. package/slider/Slider.test.js +108 -104
  213. package/slider/types.d.ts +4 -4
  214. package/spinner/Spinner.js +29 -73
  215. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  216. package/spinner/Spinner.test.js +26 -35
  217. package/spinner/types.d.ts +3 -3
  218. package/status-light/StatusLight.d.ts +4 -0
  219. package/status-light/StatusLight.js +51 -0
  220. package/status-light/StatusLight.stories.tsx +74 -0
  221. package/status-light/StatusLight.test.js +25 -0
  222. package/status-light/types.d.ts +17 -0
  223. package/status-light/types.js +5 -0
  224. package/switch/Switch.js +51 -99
  225. package/switch/Switch.stories.tsx +33 -34
  226. package/switch/Switch.test.js +52 -97
  227. package/switch/types.d.ts +4 -4
  228. package/table/ActionsCell.d.ts +4 -0
  229. package/table/ActionsCell.js +54 -0
  230. package/table/DropdownTheme.js +57 -0
  231. package/table/Table.d.ts +4 -1
  232. package/table/Table.js +27 -32
  233. package/table/Table.stories.tsx +615 -0
  234. package/table/Table.test.js +94 -7
  235. package/table/types.d.ts +45 -6
  236. package/tabs/Tab.js +23 -40
  237. package/tabs/Tabs.js +62 -145
  238. package/tabs/Tabs.stories.tsx +39 -1
  239. package/tabs/Tabs.test.js +66 -123
  240. package/tabs/types.d.ts +19 -19
  241. package/tag/Tag.js +28 -60
  242. package/tag/Tag.stories.tsx +14 -1
  243. package/tag/Tag.test.js +20 -31
  244. package/tag/types.d.ts +7 -7
  245. package/text-input/Icons.d.ts +5 -5
  246. package/text-input/Icons.js +1 -5
  247. package/text-input/Suggestion.js +11 -28
  248. package/text-input/Suggestions.d.ts +1 -1
  249. package/text-input/Suggestions.js +15 -65
  250. package/text-input/TextInput.js +219 -320
  251. package/text-input/TextInput.stories.tsx +117 -152
  252. package/text-input/TextInput.test.js +1211 -1196
  253. package/text-input/types.d.ts +25 -17
  254. package/textarea/Textarea.js +70 -113
  255. package/textarea/Textarea.stories.tsx +174 -0
  256. package/textarea/Textarea.test.js +152 -183
  257. package/textarea/types.d.ts +9 -5
  258. package/toggle-group/ToggleGroup.d.ts +2 -2
  259. package/toggle-group/ToggleGroup.js +92 -106
  260. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  261. package/toggle-group/ToggleGroup.test.js +69 -88
  262. package/toggle-group/types.d.ts +26 -17
  263. package/typography/Typography.d.ts +2 -2
  264. package/typography/Typography.js +15 -123
  265. package/typography/Typography.stories.tsx +1 -1
  266. package/typography/types.d.ts +1 -1
  267. package/useTheme.d.ts +1135 -1
  268. package/useTheme.js +2 -9
  269. package/useTranslatedLabels.d.ts +84 -1
  270. package/useTranslatedLabels.js +1 -7
  271. package/utils/BaseTypography.d.ts +21 -0
  272. package/utils/BaseTypography.js +94 -0
  273. package/utils/FocusLock.d.ts +13 -0
  274. package/utils/FocusLock.js +124 -0
  275. package/wizard/Wizard.js +16 -51
  276. package/wizard/Wizard.stories.tsx +20 -0
  277. package/wizard/Wizard.test.js +54 -81
  278. package/wizard/types.d.ts +8 -9
  279. package/card/ice-cream.jpg +0 -0
  280. package/number-input/NumberInputContext.d.ts +0 -4
  281. package/number-input/NumberInputContext.js +0 -19
  282. package/number-input/numberInputContextTypes.d.ts +0 -19
  283. package/resultsetTable/Icons.d.ts +0 -7
  284. package/resultsetTable/ResultsetTable.d.ts +0 -4
  285. package/slider/Slider.stories.tsx +0 -183
  286. package/table/Table.stories.jsx +0 -277
  287. package/tabs-nav/Tab.js +0 -128
  288. package/textarea/Textarea.stories.jsx +0 -157
  289. /package/{resultsetTable → action-icon}/types.js +0 -0
  290. /package/{tabs-nav → container}/types.js +0 -0
  291. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  292. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,40 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
- var _dayjs = _interopRequireDefault(require("dayjs"));
17
-
18
11
  var _react = _interopRequireWildcard(require("react"));
19
-
20
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
21
-
22
13
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
-
24
- var _main = require("../main");
25
-
26
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
27
-
28
- 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); }
29
-
30
- 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; }
31
-
14
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
32
18
  var getDays = function getDays(innerDate) {
33
19
  var monthDayCells = [];
34
20
  var lastMonthNumberOfDays = innerDate.set("month", innerDate.get("month") - 1).endOf("month");
35
21
  var firstDayOfMonth = innerDate.startOf("month").day() === 0 ? 6 : innerDate.startOf("month").day() - 1;
36
22
  var daysInMonth = firstDayOfMonth + innerDate.daysInMonth();
37
-
38
23
  for (var i = 0; i < 42; i++) {
39
24
  if (i < firstDayOfMonth) {
40
25
  monthDayCells.push({
@@ -56,142 +41,112 @@ var getDays = function getDays(innerDate) {
56
41
  });
57
42
  }
58
43
  }
59
-
60
44
  return monthDayCells;
61
45
  };
62
-
46
+ var getDateToFocus = function getDateToFocus(selectedDate, innerDate, today) {
47
+ return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === innerDate.get("month") && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === innerDate.get("year") ? selectedDate : today.get("month") === innerDate.get("month") && today.get("year") === innerDate.get("year") ? today : innerDate.set("date", 1);
48
+ };
63
49
  var isDaySelected = function isDaySelected(date, selectedDate) {
64
50
  return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === date.month && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === date.year && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("date")) === date.day;
65
51
  };
66
-
67
52
  var Calendar = function Calendar(_ref) {
68
53
  var selectedDate = _ref.selectedDate,
69
- innerDate = _ref.innerDate,
70
- onInnerDateChange = _ref.onInnerDateChange,
71
- onDaySelect = _ref.onDaySelect;
72
-
73
- var _useState = (0, _react.useState)((selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === innerDate.get("month") && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === innerDate.get("year") ? selectedDate : (0, _dayjs["default"])()),
74
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
75
- dateToFocus = _useState2[0],
76
- setDateToFocus = _useState2[1];
77
-
54
+ innerDate = _ref.innerDate,
55
+ onInnerDateChange = _ref.onInnerDateChange,
56
+ onDaySelect = _ref.onDaySelect,
57
+ today = _ref.today;
58
+ var _useState = (0, _react.useState)(getDateToFocus(selectedDate, innerDate, today)),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ dateToFocus = _useState2[0],
61
+ setDateToFocus = _useState2[1];
78
62
  var _useState3 = (0, _react.useState)(false),
79
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
80
- toFocus = _useState4[0],
81
- setToFocus = _useState4[1];
82
-
83
- var today = (0, _dayjs["default"])();
63
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
64
+ isFocusable = _useState4[0],
65
+ setIsFocusable = _useState4[1];
84
66
  var dayCells = (0, _react.useMemo)(function () {
85
67
  return getDays(innerDate);
86
68
  }, [innerDate]);
87
69
  var translatedLabels = (0, _useTranslatedLabels["default"])();
88
70
  var weekDays = translatedLabels.calendar.daysShort;
89
-
90
71
  var onDateClickHandler = function onDateClickHandler(date) {
91
72
  var newDate = innerDate.set("month", date.month).set("date", date.day);
92
73
  onDaySelect(newDate);
93
74
  setDateToFocus(newDate);
94
75
  };
95
-
96
76
  var handleOnBlur = function handleOnBlur(event) {
97
77
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) {
98
- updateDateToFocus();
78
+ setDateToFocus(getDateToFocus(selectedDate, innerDate, today));
99
79
  }
100
80
  };
101
-
102
- var updateDateToFocus = function updateDateToFocus() {
103
- if ((selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === innerDate.get("month") && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === innerDate.get("year")) {
104
- setDateToFocus(selectedDate);
105
- } else if (today.get("month") === innerDate.get("month") && today.get("year") === innerDate.get("year")) {
106
- setDateToFocus(today);
107
- } else {
108
- setDateToFocus(innerDate.set("date", 1));
109
- }
110
- };
111
-
112
81
  var focusDate = function focusDate(date) {
113
82
  if (innerDate.get("month") !== date.get("month") || innerDate.get("year") !== date.get("year")) {
114
83
  onInnerDateChange(date);
115
84
  }
116
-
117
85
  setDateToFocus(date);
118
- setToFocus(true);
86
+ setIsFocusable(true);
119
87
  };
120
-
121
88
  (0, _react.useEffect)(function () {
122
- if (toFocus) {
89
+ if (isFocusable) {
123
90
  var _document$getElementB;
124
-
125
91
  (_document$getElementB = document.getElementById("day_".concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
126
- setToFocus(false);
92
+ setIsFocusable(false);
127
93
  }
128
- }, [dateToFocus, toFocus]);
94
+ }, [dateToFocus, isFocusable]);
129
95
  (0, _react.useEffect)(function () {
130
96
  if (dateToFocus.get("month") !== innerDate.get("month") || dateToFocus.get("year") !== innerDate.get("year")) {
131
- updateDateToFocus();
97
+ setDateToFocus(getDateToFocus(selectedDate, innerDate, today));
132
98
  }
133
- }, [innerDate, dateToFocus, selectedDate]);
134
-
99
+ }, [innerDate, dateToFocus, selectedDate, today]);
135
100
  var handleDayKeyboardEvent = function handleDayKeyboardEvent(event, date) {
136
101
  var dateToFocusTemp = date.month === innerDate.get("month") ? innerDate.set("date", date.day) : innerDate.set("date", date.day).set("month", date.month);
137
-
138
102
  switch (event.key) {
139
103
  case "PageUp":
140
104
  event.preventDefault();
141
105
  event.shiftKey ? dateToFocusTemp = dateToFocusTemp.set("year", dateToFocusTemp.get("year") - 1) : dateToFocusTemp = dateToFocusTemp.set("month", dateToFocusTemp.get("month") - 1);
142
106
  focusDate(dateToFocusTemp);
143
107
  break;
144
-
145
108
  case "PageDown":
146
109
  event.preventDefault();
147
110
  event.shiftKey ? dateToFocusTemp = dateToFocusTemp.set("year", dateToFocusTemp.get("year") + 1) : dateToFocusTemp = dateToFocusTemp.set("month", dateToFocusTemp.get("month") + 1);
148
111
  focusDate(dateToFocusTemp);
149
112
  break;
150
-
151
113
  case "ArrowLeft":
152
114
  event.preventDefault();
153
115
  dateToFocusTemp = dateToFocusTemp.set("date", dateToFocusTemp.get("date") - 1);
154
116
  focusDate(dateToFocusTemp);
155
117
  break;
156
-
157
118
  case "ArrowRight":
158
119
  event.preventDefault();
159
120
  dateToFocusTemp = dateToFocusTemp.set("date", dateToFocusTemp.get("date") + 1);
160
121
  focusDate(dateToFocusTemp);
161
122
  break;
162
-
163
123
  case "ArrowUp":
164
124
  event.preventDefault();
165
125
  dateToFocusTemp = dateToFocusTemp.set("date", dateToFocusTemp.get("date") - 7);
166
126
  focusDate(dateToFocusTemp);
167
127
  break;
168
-
169
128
  case "ArrowDown":
170
129
  event.preventDefault();
171
130
  dateToFocusTemp = dateToFocusTemp.set("date", dateToFocusTemp.get("date") + 7);
172
131
  focusDate(dateToFocusTemp);
173
132
  break;
174
-
175
133
  case "Home":
176
134
  event.preventDefault();
177
135
  dateToFocus.get("day") !== 0 ? dateToFocusTemp = dateToFocusTemp.day(1) : dateToFocusTemp = innerDate.date(date.day - 1).day(1);
178
136
  focusDate(dateToFocusTemp);
179
137
  break;
180
-
181
138
  case "End":
182
139
  event.preventDefault();
183
140
  dateToFocusTemp.get("day") !== 0 && (dateToFocusTemp = dateToFocusTemp.day(7));
184
141
  focusDate(dateToFocusTemp);
185
142
  break;
186
-
187
143
  case " ":
188
144
  event.preventDefault();
189
145
  onDaySelect(dateToFocusTemp);
190
146
  break;
191
147
  }
192
148
  };
193
-
194
- return /*#__PURE__*/_react["default"].createElement(CalendarContainer, null, /*#__PURE__*/_react["default"].createElement(_main.DxcFlex, {
149
+ return /*#__PURE__*/_react["default"].createElement(CalendarContainer, null, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
195
150
  alignItems: "center",
196
151
  justifyContent: "space-between"
197
152
  }, weekDays.map(function (weekDay) {
@@ -201,7 +156,7 @@ var Calendar = function Calendar(_ref) {
201
156
  })), /*#__PURE__*/_react["default"].createElement(DayCellsContainer, {
202
157
  onBlur: handleOnBlur
203
158
  }, dayCells.map(function (date, index) {
204
- return date !== 0 ? /*#__PURE__*/_react["default"].createElement(DayCell, {
159
+ return /*#__PURE__*/_react["default"].createElement(DayCell, {
205
160
  onKeyDown: function onKeyDown(event) {
206
161
  return handleDayKeyboardEvent(event, date);
207
162
  },
@@ -217,42 +172,43 @@ var Calendar = function Calendar(_ref) {
217
172
  "aria-selected": isDaySelected(date, selectedDate),
218
173
  tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
219
174
  isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
220
- }, date.day) : /*#__PURE__*/_react["default"].createElement(EmptyDayCell, {
221
- key: "empty_".concat(index)
222
- });
175
+ }, date.day);
223
176
  })));
224
177
  };
225
-
226
- var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: ", ";\n"])), function (props) {
227
- return props.theme.dateInput.pickerWidth;
228
- });
229
-
230
- var WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n font-family: ", ";\n font-size: 14px;\n line-height: 19px;\n color: ", ";\n"])), function (props) {
178
+ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: 292px;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
231
179
  return props.theme.dateInput.pickerFontFamily;
232
180
  }, function (props) {
233
- return props.theme.dateInput.pickerWeekFontColor;
181
+ return props.theme.dateInput.pickerFontSize;
182
+ }, function (props) {
183
+ return props.theme.dateInput.pickerFontColor;
184
+ }, function (props) {
185
+ return props.theme.dateInput.pickerFontWeight;
234
186
  });
235
-
187
+ var WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
236
188
  var DayCellsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n justify-content: space-between;\n"])));
237
-
238
- var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n font-size: 0.875rem;\n font-family: ", ";\n font-weight: 400;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: #4b1c7d;\n color: #ffffff;\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
189
+ var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
239
190
  return props.theme.dateInput.pickerFontFamily;
191
+ }, function (props) {
192
+ return props.theme.dateInput.pickerFontSize;
193
+ }, function (props) {
194
+ return props.theme.dateInput.pickerFontColor;
195
+ }, function (props) {
196
+ return props.theme.dateInput.pickerFontWeight;
240
197
  }, function (props) {
241
198
  return props.theme.dateInput.pickerFocusColor;
242
199
  }, function (props) {
243
- return props.selected ? props.theme.dateInput.pickerSelectedDateBackgroundColor : props.theme.dateInput.pickerHoverDateBackgroundColor;
200
+ return props.selected ? props.theme.dateInput.pickerSelectedBackgroundColor : props.theme.dateInput.pickerHoverBackgroundColor;
201
+ }, function (props) {
202
+ return props.selected ? props.theme.dateInput.pickerSelectedFontColor : props.theme.dateInput.pickerHoverFontColor;
203
+ }, function (props) {
204
+ return props.theme.dateInput.pickerActiveBackgroundColor;
244
205
  }, function (props) {
245
- return props.selected ? props.theme.dateInput.pickerSelectedDateColor : props.theme.dateInput.pickerHoverDateFontColor;
206
+ return props.theme.dateInput.pickerActiveFontColor;
246
207
  }, function (props) {
247
- return props.isCurrentDay && !props.selected && "border: 1px solid #cbacec;";
208
+ return props.isCurrentDay && !props.selected && "border: ".concat(props.theme.dateInput.pickerCurrentDateBorderWidth, " solid ").concat(props.theme.dateInput.pickerCurrentDateBorderColor, ";");
248
209
  }, function (props) {
249
- return props.selected ? props.theme.dateInput.pickerSelectedDateBackgroundColor : "transparent";
210
+ return props.selected ? props.theme.dateInput.pickerSelectedBackgroundColor : "transparent";
250
211
  }, function (props) {
251
- return props.selected ? props.theme.dateInput.pickerSelectedDateColor : props.isCurrentDay ? props.theme.dateInput.pickerActualDateFontColor : !props.actualMonth ? "#999999" : props.theme.dateInput.pickerDayFontColor;
212
+ return props.selected ? props.theme.dateInput.pickerSelectedFontColor : props.isCurrentDay ? props.theme.dateInput.pickerCurrentDateFontColor : !props.actualMonth ? props.theme.dateInput.pickerNonCurrentMonthFontColor : props.theme.dateInput.pickerFontColor;
252
213
  });
253
-
254
- var EmptyDayCell = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-block;\n width: 40px;\n height: 36px;\n"])));
255
-
256
- var _default = /*#__PURE__*/_react["default"].memo(Calendar);
257
-
258
- exports["default"] = _default;
214
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Calendar);
@@ -1,109 +1,100 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _dayjs = _interopRequireDefault(require("dayjs"));
21
-
22
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
-
28
17
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
29
-
30
18
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
31
-
32
19
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
33
-
34
20
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
35
-
36
21
  var _uuid = require("uuid");
37
-
22
+ var _Icons = require("./Icons");
38
23
  var _templateObject;
39
-
40
- 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); }
41
-
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; }
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
-
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
28
  _dayjs["default"].extend(_customParseFormat["default"]);
49
-
50
- var calendarIcon = /*#__PURE__*/_react["default"].createElement("svg", {
51
- xmlns: "http://www.w3.org/2000/svg",
52
- height: "24",
53
- viewBox: "0 0 24 24",
54
- width: "24",
55
- fill: "currentColor"
56
- }, /*#__PURE__*/_react["default"].createElement("path", {
57
- d: "M0 0h24v24H0z",
58
- fill: "none"
59
- }), /*#__PURE__*/_react["default"].createElement("path", {
60
- 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"
61
- }));
62
-
63
29
  var getValueForPicker = function getValueForPicker(value, format) {
64
30
  return (0, _dayjs["default"])(value, format.toUpperCase(), true);
65
31
  };
66
-
32
+ var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
33
+ if ((value || value === "") && format.toUpperCase().includes("YYYY")) return getValueForPicker(value, format);else {
34
+ var newDate = getValueForPicker(value, format);
35
+ if (!lastValidYear) {
36
+ if (+newDate.format("YY") < 68) {
37
+ setLastValidYear(2000 + +newDate.format("YY"));
38
+ newDate = newDate.set("year", 2000 + +newDate.format("YY"));
39
+ } else {
40
+ setLastValidYear(1900 + +newDate.format("YY"));
41
+ newDate = newDate.set("year", 1900 + +newDate.format("YY"));
42
+ }
43
+ } else {
44
+ newDate = newDate.set("year", (lastValidYear <= 1999 ? 1900 : 2000) + +newDate.format("YY"));
45
+ }
46
+ return newDate;
47
+ }
48
+ };
67
49
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
50
+ var _ref2;
68
51
  var label = _ref.label,
69
- name = _ref.name,
70
- _ref$defaultValue = _ref.defaultValue,
71
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
72
- value = _ref.value,
73
- _ref$format = _ref.format,
74
- format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
75
- helperText = _ref.helperText,
76
- _ref$placeholder = _ref.placeholder,
77
- placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
78
- clearable = _ref.clearable,
79
- disabled = _ref.disabled,
80
- optional = _ref.optional,
81
- onChange = _ref.onChange,
82
- onBlur = _ref.onBlur,
83
- error = _ref.error,
84
- autocomplete = _ref.autocomplete,
85
- margin = _ref.margin,
86
- size = _ref.size,
87
- tabIndex = _ref.tabIndex;
88
-
52
+ name = _ref.name,
53
+ _ref$defaultValue = _ref.defaultValue,
54
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
55
+ value = _ref.value,
56
+ _ref$format = _ref.format,
57
+ format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
58
+ helperText = _ref.helperText,
59
+ _ref$placeholder = _ref.placeholder,
60
+ placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
61
+ clearable = _ref.clearable,
62
+ disabled = _ref.disabled,
63
+ readOnly = _ref.readOnly,
64
+ optional = _ref.optional,
65
+ onChange = _ref.onChange,
66
+ onBlur = _ref.onBlur,
67
+ error = _ref.error,
68
+ autocomplete = _ref.autocomplete,
69
+ margin = _ref.margin,
70
+ size = _ref.size,
71
+ tabIndex = _ref.tabIndex;
89
72
  var _useState = (0, _react.useState)(defaultValue),
90
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
91
- innerValue = _useState2[0],
92
- setInnerValue = _useState2[1];
93
-
73
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
+ innerValue = _useState2[0],
75
+ setInnerValue = _useState2[1];
94
76
  var _useState3 = (0, _react.useState)(false),
95
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
96
- isOpen = _useState4[0],
97
- setIsOpen = _useState4[1];
98
-
77
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
78
+ isOpen = _useState4[0],
79
+ setIsOpen = _useState4[1];
99
80
  var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
100
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
101
- calendarId = _useState6[0];
102
-
81
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
82
+ calendarId = _useState6[0];
83
+ var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
84
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
85
+ dayjsDate = _useState8[0],
86
+ setDayjsDate = _useState8[1];
87
+ 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),
88
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
89
+ lastValidYear = _useState10[0],
90
+ setLastValidYear = _useState10[1];
103
91
  var colorsTheme = (0, _useTheme["default"])();
104
92
  var translatedLabels = (0, _useTranslatedLabels["default"])();
105
93
  var dateRef = (0, _react.useRef)(null);
106
- (0, _react.useLayoutEffect)(function () {
94
+ (0, _react.useEffect)(function () {
95
+ if (value || value === "") setDayjsDate(getDate(value, format, lastValidYear, setLastValidYear));
96
+ }, [value, format, lastValidYear]);
97
+ (0, _react.useEffect)(function () {
107
98
  if (!disabled) {
108
99
  var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
109
100
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
@@ -113,69 +104,75 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
113
104
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
114
105
  }
115
106
  }, [isOpen, disabled, calendarId]);
116
-
117
107
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
118
108
  var newValue = newDate.format(format.toUpperCase());
119
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
109
+ if (!value) {
110
+ setDayjsDate(newDate);
111
+ setInnerValue(newValue);
112
+ }
113
+ setLastValidYear(newDate.get("year"));
120
114
  newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
121
115
  value: newValue,
122
- date: newDate
116
+ date: newDate.toDate()
123
117
  }) : onChange === null || onChange === void 0 ? void 0 : onChange({
124
118
  value: newValue
125
119
  });
126
120
  };
127
-
128
- var handleIOnChange = function handleIOnChange(_ref2) {
129
- var newValue = _ref2.value,
130
- inputError = _ref2.error;
121
+ var handleOnChange = function handleOnChange(_ref3) {
122
+ var newValue = _ref3.value,
123
+ inputError = _ref3.error;
131
124
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
132
- var dayjsDate = getValueForPicker(newValue, format);
133
- var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
125
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
126
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
134
127
  var callbackParams = inputError || invalidDateMessage ? {
135
128
  value: newValue,
136
129
  error: inputError || invalidDateMessage
137
130
  } : {
138
131
  value: newValue
139
132
  };
140
- dayjsDate.isValid() ? onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
141
- date: dayjsDate.toDate()
142
- })) : onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
133
+ if (newDate.isValid()) {
134
+ setDayjsDate(newDate);
135
+ onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
136
+ date: newDate.toDate()
137
+ }));
138
+ } else {
139
+ onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
140
+ setLastValidYear(function (validYear) {
141
+ var _dayjsDate$get;
142
+ return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
143
+ });
144
+ setDayjsDate(null);
145
+ }
143
146
  };
144
-
145
- var handleIOnBlur = function handleIOnBlur(_ref3) {
146
- var value = _ref3.value,
147
- inputError = _ref3.error;
148
- var dayjsDate = getValueForPicker(value, format);
149
- var invalidDateMessage = value !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
147
+ var handleOnBlur = function handleOnBlur(_ref4) {
148
+ var value = _ref4.value,
149
+ inputError = _ref4.error;
150
+ var date = getDate(value, format, lastValidYear, setLastValidYear);
151
+ var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
150
152
  var callbackParams = inputError || invalidDateMessage ? {
151
153
  value: value,
152
154
  error: inputError || invalidDateMessage
153
155
  } : {
154
156
  value: value
155
157
  };
156
- dayjsDate.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
157
- date: dayjsDate.toDate()
158
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
159
+ date: date.toDate()
158
160
  })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
159
161
  };
160
-
161
162
  var openCalendar = function openCalendar() {
162
163
  setIsOpen(!isOpen);
163
164
  };
164
-
165
165
  var closeCalendar = function closeCalendar() {
166
166
  setIsOpen(false);
167
167
  };
168
-
169
168
  var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
170
169
  event.preventDefault();
171
170
  closeCalendar();
172
171
  dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
173
172
  };
174
-
175
173
  var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
176
174
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
177
175
  };
178
-
179
176
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
180
177
  theme: colorsTheme
181
178
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -194,21 +191,22 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
194
191
  placeholder: placeholder ? format.toUpperCase() : null,
195
192
  action: {
196
193
  onClick: openCalendar,
197
- icon: calendarIcon,
194
+ icon: _Icons.calendarIcon,
198
195
  title: "Open calendar"
199
196
  },
200
197
  clearable: clearable,
201
198
  disabled: disabled,
199
+ readOnly: readOnly,
202
200
  optional: optional,
203
- onChange: handleIOnChange,
204
- onBlur: handleIOnBlur,
201
+ onChange: handleOnChange,
202
+ onBlur: handleOnBlur,
205
203
  error: error,
206
204
  autocomplete: autocomplete,
207
205
  margin: margin,
208
206
  size: size,
209
207
  tabIndex: tabIndex,
210
208
  ref: dateRef
211
- })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
209
+ })), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(StyledPopoverContent, {
212
210
  sideOffset: error ? -18 : 2,
213
211
  align: "end",
214
212
  "aria-modal": true,
@@ -218,10 +216,8 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
218
216
  }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
219
217
  id: calendarId,
220
218
  onDateSelect: handleCalendarOnClick,
221
- date: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase())
222
- })))));
219
+ date: dayjsDate
220
+ }))))));
223
221
  });
224
-
225
- var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
226
- var _default = DxcDateInput;
227
- exports["default"] = _default;
222
+ var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
223
+ var _default = exports["default"] = DxcDateInput;