@dxc-technology/halstack-react 0.0.0-2b5b4b0 → 0.0.0-2bca710

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 (362) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1348 -0
  4. package/HalstackContext.js +335 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +110 -146
  8. package/accordion/Accordion.stories.tsx +297 -0
  9. package/accordion/Accordion.test.js +71 -0
  10. package/accordion/types.d.ts +8 -19
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +34 -76
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +116 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +14 -19
  18. package/alert/Alert.js +11 -12
  19. package/alert/Alert.stories.tsx +198 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +1 -1
  22. package/badge/Badge.d.ts +4 -0
  23. package/badge/Badge.js +6 -4
  24. package/badge/types.d.ts +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +51 -0
  27. package/bleed/Bleed.stories.tsx +342 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/bleed/types.js +5 -0
  30. package/box/Box.d.ts +4 -0
  31. package/box/Box.js +24 -79
  32. package/box/{Box.stories.jsx → Box.stories.tsx} +38 -51
  33. package/box/Box.test.js +18 -0
  34. package/box/types.d.ts +32 -0
  35. package/box/types.js +5 -0
  36. package/bulleted-list/BulletedList.d.ts +7 -0
  37. package/bulleted-list/BulletedList.js +125 -0
  38. package/bulleted-list/BulletedList.stories.tsx +206 -0
  39. package/bulleted-list/types.d.ts +38 -0
  40. package/bulleted-list/types.js +5 -0
  41. package/button/Button.d.ts +1 -1
  42. package/button/Button.js +49 -87
  43. package/button/Button.stories.tsx +376 -244
  44. package/button/Button.test.js +46 -0
  45. package/button/types.d.ts +15 -15
  46. package/card/Card.d.ts +1 -1
  47. package/card/Card.js +39 -61
  48. package/card/Card.stories.tsx +171 -0
  49. package/card/Card.test.js +50 -0
  50. package/card/types.d.ts +3 -10
  51. package/checkbox/Checkbox.d.ts +2 -2
  52. package/checkbox/Checkbox.js +108 -111
  53. package/checkbox/Checkbox.stories.tsx +260 -0
  54. package/checkbox/Checkbox.test.js +155 -0
  55. package/checkbox/types.d.ts +13 -5
  56. package/chip/Chip.d.ts +4 -0
  57. package/chip/Chip.js +37 -118
  58. package/chip/Chip.stories.tsx +214 -0
  59. package/chip/Chip.test.js +54 -0
  60. package/chip/types.d.ts +45 -0
  61. package/chip/types.js +5 -0
  62. package/common/OpenSans.css +68 -80
  63. package/common/coreTokens.d.ts +146 -0
  64. package/common/coreTokens.js +167 -0
  65. package/common/utils.d.ts +1 -0
  66. package/common/utils.js +4 -4
  67. package/common/variables.d.ts +1494 -0
  68. package/common/variables.js +1111 -1307
  69. package/date-input/Calendar.d.ts +4 -0
  70. package/date-input/Calendar.js +258 -0
  71. package/date-input/DateInput.js +178 -268
  72. package/date-input/DateInput.stories.tsx +314 -0
  73. package/date-input/DateInput.test.js +849 -0
  74. package/date-input/DatePicker.d.ts +4 -0
  75. package/date-input/DatePicker.js +146 -0
  76. package/date-input/Icons.d.ts +6 -0
  77. package/date-input/Icons.js +75 -0
  78. package/date-input/YearPicker.d.ts +4 -0
  79. package/date-input/YearPicker.js +126 -0
  80. package/date-input/types.d.ts +71 -9
  81. package/dialog/Dialog.d.ts +1 -1
  82. package/dialog/Dialog.js +69 -103
  83. package/dialog/Dialog.stories.tsx +195 -0
  84. package/dialog/Dialog.test.js +369 -0
  85. package/dialog/types.d.ts +0 -12
  86. package/dropdown/Dropdown.d.ts +1 -1
  87. package/dropdown/Dropdown.js +248 -277
  88. package/dropdown/Dropdown.stories.tsx +438 -0
  89. package/dropdown/Dropdown.test.js +586 -0
  90. package/dropdown/DropdownMenu.d.ts +4 -0
  91. package/dropdown/DropdownMenu.js +74 -0
  92. package/dropdown/DropdownMenuItem.d.ts +4 -0
  93. package/dropdown/DropdownMenuItem.js +79 -0
  94. package/dropdown/types.d.ts +28 -17
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +183 -168
  97. package/file-input/FileInput.stories.tsx +618 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +4 -0
  100. package/file-input/FileItem.js +50 -81
  101. package/file-input/types.d.ts +129 -0
  102. package/file-input/types.js +5 -0
  103. package/flex/Flex.d.ts +4 -0
  104. package/flex/Flex.js +71 -0
  105. package/flex/Flex.stories.tsx +112 -0
  106. package/flex/types.d.ts +97 -0
  107. package/flex/types.js +5 -0
  108. package/footer/Footer.d.ts +1 -1
  109. package/footer/Footer.js +56 -157
  110. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
  111. package/footer/Footer.test.js +99 -0
  112. package/footer/Icons.d.ts +2 -0
  113. package/footer/Icons.js +4 -4
  114. package/footer/types.d.ts +26 -23
  115. package/grid/Grid.d.ts +7 -0
  116. package/grid/Grid.js +91 -0
  117. package/grid/Grid.stories.tsx +219 -0
  118. package/grid/types.d.ts +115 -0
  119. package/grid/types.js +5 -0
  120. package/header/Header.d.ts +8 -0
  121. package/header/Header.js +121 -171
  122. package/header/Header.stories.tsx +251 -0
  123. package/header/Header.test.js +79 -0
  124. package/header/Icons.d.ts +2 -0
  125. package/header/Icons.js +4 -29
  126. package/header/types.d.ts +34 -0
  127. package/header/types.js +5 -0
  128. package/heading/Heading.d.ts +4 -0
  129. package/heading/Heading.js +8 -25
  130. package/heading/Heading.stories.tsx +54 -0
  131. package/heading/Heading.test.js +186 -0
  132. package/heading/types.d.ts +33 -0
  133. package/heading/types.js +5 -0
  134. package/image/Image.d.ts +4 -0
  135. package/image/Image.js +85 -0
  136. package/image/Image.stories.tsx +127 -0
  137. package/image/types.d.ts +72 -0
  138. package/image/types.js +5 -0
  139. package/inset/Inset.d.ts +3 -0
  140. package/inset/Inset.js +51 -0
  141. package/inset/Inset.stories.tsx +230 -0
  142. package/inset/types.d.ts +37 -0
  143. package/inset/types.js +5 -0
  144. package/layout/ApplicationLayout.d.ts +20 -0
  145. package/layout/ApplicationLayout.js +81 -142
  146. package/layout/ApplicationLayout.stories.tsx +162 -0
  147. package/layout/Icons.d.ts +8 -0
  148. package/layout/Icons.js +52 -45
  149. package/layout/SidenavContext.d.ts +5 -0
  150. package/layout/SidenavContext.js +19 -0
  151. package/layout/types.d.ts +41 -0
  152. package/layout/types.js +5 -0
  153. package/link/Link.d.ts +4 -0
  154. package/link/Link.js +62 -109
  155. package/link/Link.stories.tsx +253 -0
  156. package/link/Link.test.js +81 -0
  157. package/link/types.d.ts +54 -0
  158. package/link/types.js +5 -0
  159. package/main.d.ts +14 -12
  160. package/main.js +76 -54
  161. package/nav-tabs/NavTabs.d.ts +8 -0
  162. package/nav-tabs/NavTabs.js +122 -0
  163. package/nav-tabs/NavTabs.stories.tsx +274 -0
  164. package/nav-tabs/NavTabs.test.js +82 -0
  165. package/nav-tabs/Tab.d.ts +4 -0
  166. package/nav-tabs/Tab.js +146 -0
  167. package/nav-tabs/types.d.ts +52 -0
  168. package/nav-tabs/types.js +5 -0
  169. package/number-input/NumberInput.d.ts +11 -0
  170. package/number-input/NumberInput.js +21 -71
  171. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
  172. package/number-input/NumberInput.test.js +725 -0
  173. package/number-input/types.d.ts +124 -0
  174. package/number-input/types.js +5 -0
  175. package/package.json +23 -24
  176. package/paginator/Icons.d.ts +5 -0
  177. package/paginator/Icons.js +16 -28
  178. package/paginator/Paginator.js +22 -57
  179. package/paginator/Paginator.stories.tsx +24 -0
  180. package/paginator/Paginator.test.js +318 -0
  181. package/paragraph/Paragraph.d.ts +5 -0
  182. package/paragraph/Paragraph.js +38 -0
  183. package/paragraph/Paragraph.stories.tsx +44 -0
  184. package/password-input/Icons.d.ts +6 -0
  185. package/password-input/Icons.js +39 -0
  186. package/password-input/PasswordInput.d.ts +4 -0
  187. package/password-input/PasswordInput.js +42 -122
  188. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +5 -4
  189. package/password-input/PasswordInput.test.js +174 -0
  190. package/password-input/types.d.ts +110 -0
  191. package/password-input/types.js +5 -0
  192. package/progress-bar/ProgressBar.js +63 -57
  193. package/progress-bar/ProgressBar.stories.jsx +93 -0
  194. package/progress-bar/ProgressBar.test.js +110 -0
  195. package/quick-nav/QuickNav.d.ts +4 -0
  196. package/quick-nav/QuickNav.js +117 -0
  197. package/quick-nav/QuickNav.stories.tsx +356 -0
  198. package/quick-nav/types.d.ts +21 -0
  199. package/quick-nav/types.js +5 -0
  200. package/radio-group/Radio.d.ts +4 -0
  201. package/radio-group/Radio.js +156 -0
  202. package/radio-group/RadioGroup.d.ts +4 -0
  203. package/radio-group/RadioGroup.js +281 -0
  204. package/radio-group/RadioGroup.stories.tsx +214 -0
  205. package/radio-group/RadioGroup.test.js +722 -0
  206. package/radio-group/types.d.ts +114 -0
  207. package/radio-group/types.js +5 -0
  208. package/resultsetTable/Icons.d.ts +7 -0
  209. package/resultsetTable/Icons.js +51 -0
  210. package/resultsetTable/ResultsetTable.d.ts +4 -0
  211. package/resultsetTable/ResultsetTable.js +54 -133
  212. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  213. package/resultsetTable/ResultsetTable.test.js +325 -0
  214. package/resultsetTable/types.d.ts +67 -0
  215. package/resultsetTable/types.js +5 -0
  216. package/select/Icons.d.ts +10 -0
  217. package/select/Icons.js +93 -0
  218. package/select/Listbox.d.ts +4 -0
  219. package/select/Listbox.js +169 -0
  220. package/select/Option.d.ts +4 -0
  221. package/select/Option.js +97 -0
  222. package/select/Select.d.ts +4 -0
  223. package/select/Select.js +202 -401
  224. package/select/Select.stories.tsx +971 -0
  225. package/select/Select.test.js +2228 -0
  226. package/select/types.d.ts +210 -0
  227. package/select/types.js +5 -0
  228. package/sidenav/Icons.d.ts +7 -0
  229. package/sidenav/Icons.js +51 -0
  230. package/sidenav/Sidenav.d.ts +10 -0
  231. package/sidenav/Sidenav.js +147 -54
  232. package/sidenav/Sidenav.stories.tsx +282 -0
  233. package/sidenav/Sidenav.test.js +44 -0
  234. package/sidenav/types.d.ts +76 -0
  235. package/sidenav/types.js +5 -0
  236. package/slider/Slider.d.ts +2 -2
  237. package/slider/Slider.js +150 -114
  238. package/slider/Slider.stories.tsx +240 -0
  239. package/slider/Slider.test.js +250 -0
  240. package/slider/types.d.ts +10 -7
  241. package/spinner/Spinner.d.ts +4 -0
  242. package/spinner/Spinner.js +20 -43
  243. package/spinner/Spinner.stories.jsx +53 -26
  244. package/spinner/Spinner.test.js +64 -0
  245. package/spinner/types.d.ts +32 -0
  246. package/spinner/types.js +5 -0
  247. package/switch/Switch.d.ts +2 -2
  248. package/switch/Switch.js +153 -70
  249. package/switch/Switch.stories.tsx +171 -0
  250. package/switch/Switch.test.js +225 -0
  251. package/switch/types.d.ts +10 -2
  252. package/table/Table.d.ts +4 -0
  253. package/table/Table.js +6 -6
  254. package/table/Table.stories.jsx +81 -1
  255. package/table/Table.test.js +26 -0
  256. package/table/types.d.ts +21 -0
  257. package/table/types.js +5 -0
  258. package/tabs/Tab.d.ts +4 -0
  259. package/tabs/Tab.js +132 -0
  260. package/tabs/Tabs.d.ts +1 -1
  261. package/tabs/Tabs.js +362 -112
  262. package/tabs/Tabs.stories.tsx +226 -0
  263. package/tabs/Tabs.test.js +350 -0
  264. package/tabs/types.d.ts +39 -18
  265. package/tag/Tag.d.ts +4 -0
  266. package/tag/Tag.js +38 -65
  267. package/tag/Tag.stories.tsx +155 -0
  268. package/tag/Tag.test.js +60 -0
  269. package/tag/types.d.ts +69 -0
  270. package/tag/types.js +5 -0
  271. package/text-input/Icons.d.ts +8 -0
  272. package/text-input/Icons.js +60 -0
  273. package/text-input/Suggestion.d.ts +4 -0
  274. package/text-input/Suggestion.js +84 -0
  275. package/text-input/Suggestions.d.ts +4 -0
  276. package/text-input/Suggestions.js +134 -0
  277. package/text-input/TextInput.d.ts +4 -0
  278. package/text-input/TextInput.js +272 -438
  279. package/text-input/TextInput.stories.tsx +608 -0
  280. package/text-input/TextInput.test.js +1812 -0
  281. package/text-input/types.d.ts +201 -0
  282. package/text-input/types.js +5 -0
  283. package/textarea/Textarea.d.ts +4 -0
  284. package/textarea/Textarea.js +64 -103
  285. package/textarea/Textarea.stories.jsx +104 -15
  286. package/textarea/Textarea.test.js +479 -0
  287. package/textarea/types.d.ts +141 -0
  288. package/textarea/types.js +5 -0
  289. package/toggle-group/ToggleGroup.d.ts +4 -0
  290. package/toggle-group/ToggleGroup.js +94 -96
  291. package/toggle-group/ToggleGroup.stories.tsx +218 -0
  292. package/toggle-group/ToggleGroup.test.js +170 -0
  293. package/toggle-group/types.d.ts +114 -0
  294. package/toggle-group/types.js +5 -0
  295. package/typography/Typography.d.ts +4 -0
  296. package/typography/Typography.js +32 -0
  297. package/typography/Typography.stories.tsx +198 -0
  298. package/typography/types.d.ts +18 -0
  299. package/typography/types.js +5 -0
  300. package/useTheme.d.ts +1247 -0
  301. package/useTheme.js +3 -3
  302. package/useTranslatedLabels.d.ts +85 -0
  303. package/useTranslatedLabels.js +20 -0
  304. package/utils/BaseTypography.d.ts +21 -0
  305. package/utils/BaseTypography.js +108 -0
  306. package/utils/FocusLock.d.ts +13 -0
  307. package/utils/FocusLock.js +138 -0
  308. package/wizard/Wizard.d.ts +4 -0
  309. package/wizard/Wizard.js +119 -105
  310. package/wizard/Wizard.stories.tsx +253 -0
  311. package/wizard/Wizard.test.js +141 -0
  312. package/wizard/types.d.ts +64 -0
  313. package/wizard/types.js +5 -0
  314. package/ThemeContext.js +0 -246
  315. package/V3Select/V3Select.js +0 -455
  316. package/V3Select/index.d.ts +0 -27
  317. package/V3Textarea/V3Textarea.js +0 -260
  318. package/V3Textarea/index.d.ts +0 -27
  319. package/box/index.d.ts +0 -25
  320. package/chip/index.d.ts +0 -22
  321. package/common/RequiredComponent.js +0 -32
  322. package/date/Date.js +0 -373
  323. package/date/index.d.ts +0 -27
  324. package/file-input/index.d.ts +0 -81
  325. package/header/index.d.ts +0 -25
  326. package/heading/index.d.ts +0 -17
  327. package/input-text/Icons.js +0 -22
  328. package/input-text/InputText.js +0 -611
  329. package/input-text/index.d.ts +0 -36
  330. package/link/index.d.ts +0 -23
  331. package/number-input/NumberInputContext.js +0 -16
  332. package/number-input/index.d.ts +0 -113
  333. package/password-input/index.d.ts +0 -94
  334. package/radio/Radio.d.ts +0 -4
  335. package/radio/Radio.js +0 -174
  336. package/radio/types.d.ts +0 -54
  337. package/resultsetTable/index.d.ts +0 -19
  338. package/select/index.d.ts +0 -131
  339. package/sidenav/index.d.ts +0 -13
  340. package/spinner/index.d.ts +0 -17
  341. package/table/index.d.ts +0 -13
  342. package/tag/index.d.ts +0 -24
  343. package/text-input/index.d.ts +0 -135
  344. package/textarea/index.d.ts +0 -117
  345. package/toggle/Toggle.js +0 -186
  346. package/toggle/index.d.ts +0 -21
  347. package/toggle-group/index.d.ts +0 -21
  348. package/upload/Upload.js +0 -201
  349. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  350. package/upload/buttons-upload/Icons.js +0 -40
  351. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  352. package/upload/dragAndDropArea/Icons.js +0 -39
  353. package/upload/file-upload/FileToUpload.js +0 -115
  354. package/upload/file-upload/Icons.js +0 -66
  355. package/upload/files-upload/FilesToUpload.js +0 -109
  356. package/upload/index.d.ts +0 -15
  357. package/upload/transaction/Icons.js +0 -160
  358. package/upload/transaction/Transaction.js +0 -104
  359. package/upload/transactions/Transactions.js +0 -94
  360. package/wizard/Icons.js +0 -65
  361. package/wizard/index.d.ts +0 -18
  362. /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,62 @@ 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
+ readOnly = _ref.readOnly,
92
+ optional = _ref.optional,
60
93
  onChange = _ref.onChange,
61
94
  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,
95
+ error = _ref.error,
96
+ autocomplete = _ref.autocomplete,
66
97
  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;
98
+ size = _ref.size,
99
+ tabIndex = _ref.tabIndex;
71
100
 
72
- var _useState = (0, _react.useState)(""),
101
+ var _useState = (0, _react.useState)(defaultValue),
73
102
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
103
  innerValue = _useState2[0],
75
104
  setInnerValue = _useState2[1];
@@ -79,283 +108,164 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
79
108
  isOpen = _useState4[0],
80
109
  setIsOpen = _useState4[1];
81
110
 
82
- var _useState5 = (0, _react.useState)(null),
83
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
84
- anchorEl = _useState6[0],
85
- setAnchorEl = _useState6[1];
111
+ var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
112
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
113
+ calendarId = _useState6[0];
86
114
 
87
- var colorsTheme = (0, _useTheme["default"])();
115
+ var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
116
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
117
+ dayjsDate = _useState8[0],
118
+ setDayjsDate = _useState8[1];
119
+
120
+ 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),
121
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
122
+ lastValidYear = _useState10[0],
123
+ setLastValidYear = _useState10[1];
88
124
 
89
- var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
90
- switch (event.keyCode) {
91
- case 27:
92
- // Esc
93
- event.preventDefault();
94
- setIsOpen(false);
95
- break;
125
+ var colorsTheme = (0, _useTheme["default"])();
126
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
127
+ var dateRef = (0, _react.useRef)(null);
128
+ (0, _react.useEffect)(function () {
129
+ if (value || value === "") setDayjsDate(getDate(value, format, lastValidYear, setLastValidYear));
130
+ }, [value, format, lastValidYear]);
131
+ (0, _react.useEffect)(function () {
132
+ if (!disabled) {
133
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
134
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
135
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
136
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
137
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
138
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
96
139
  }
97
- };
140
+ }, [isOpen, disabled, calendarId]);
98
141
 
99
142
  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({
143
+ var newValue = newDate.format(format.toUpperCase());
144
+
145
+ if (!value) {
146
+ setDayjsDate(newDate);
147
+ setInnerValue(newValue);
148
+ }
149
+
150
+ setLastValidYear(newDate.get("year"));
151
+ newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
103
152
  value: newValue,
104
- error: null,
105
- date: newDate !== null && newDate !== void 0 && newDate.toJSON() ? newDate : null
153
+ date: newDate.toDate()
154
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
155
+ value: newValue
106
156
  });
107
157
  };
108
158
 
109
- var handleIOnChange = function handleIOnChange(_ref2) {
110
- var newValue = _ref2.value,
111
- inputError = _ref2.error;
159
+ var handleOnChange = function handleOnChange(_ref3) {
160
+ var newValue = _ref3.value,
161
+ inputError = _ref3.error;
112
162
  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({
163
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
164
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
165
+ var callbackParams = inputError || invalidDateMessage ? {
116
166
  value: newValue,
117
- error: inputError || invalidDateMessage,
118
- date: momentDate.isValid() ? momentDate.toDate() : null
119
- });
167
+ error: inputError || invalidDateMessage
168
+ } : {
169
+ value: newValue
170
+ };
171
+
172
+ if (newDate.isValid()) {
173
+ setDayjsDate(newDate);
174
+ onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
175
+ date: newDate.toDate()
176
+ }));
177
+ } else {
178
+ onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
179
+ setLastValidYear(function (validYear) {
180
+ var _dayjsDate$get;
181
+
182
+ return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
183
+ });
184
+ setDayjsDate(null);
185
+ }
120
186
  };
121
187
 
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({
188
+ var handleOnBlur = function handleOnBlur(_ref4) {
189
+ var value = _ref4.value,
190
+ inputError = _ref4.error;
191
+ var date = getDate(value, format, lastValidYear, setLastValidYear);
192
+ var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
193
+ var callbackParams = inputError || invalidDateMessage ? {
128
194
  value: value,
129
- error: inputError || invalidDateMessage,
130
- date: momentDate.isValid() ? momentDate.toDate() : null
131
- });
195
+ error: inputError || invalidDateMessage
196
+ } : {
197
+ value: value
198
+ };
199
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
200
+ date: date.toDate()
201
+ })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
132
202
  };
133
203
 
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
- }
204
+ var openCalendar = function openCalendar() {
205
+ setIsOpen(!isOpen);
143
206
  };
144
207
 
145
208
  var closeCalendar = function closeCalendar() {
146
209
  setIsOpen(false);
147
210
  };
148
211
 
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
- }))
212
+ var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
213
+ event.preventDefault();
214
+ closeCalendar();
215
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
163
216
  };
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
- });
217
+
218
+ var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
219
+ if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
220
+ };
221
+
301
222
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
302
223
  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"], {
224
+ }, /*#__PURE__*/_react["default"].createElement("div", {
225
+ ref: ref
226
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
227
+ open: isOpen
228
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
229
+ asChild: true,
230
+ "aria-controls": undefined
231
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
308
232
  label: label,
309
233
  name: name,
234
+ defaultValue: defaultValue,
310
235
  value: value !== null && value !== void 0 ? value : innerValue,
311
236
  helperText: helperText,
312
237
  placeholder: placeholder ? format.toUpperCase() : null,
313
- action: calendarAction,
238
+ action: {
239
+ onClick: openCalendar,
240
+ icon: _Icons.calendarIcon,
241
+ title: "Open calendar"
242
+ },
314
243
  clearable: clearable,
315
244
  disabled: disabled,
245
+ readOnly: readOnly,
316
246
  optional: optional,
317
- onChange: handleIOnChange,
318
- onBlur: handleIOnBlur,
247
+ onChange: handleOnChange,
248
+ onBlur: handleOnBlur,
319
249
  error: error,
320
250
  autocomplete: autocomplete,
321
251
  margin: margin,
322
252
  size: size,
323
253
  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
- }))))))));
254
+ ref: dateRef
255
+ })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
256
+ sideOffset: error ? -18 : 2,
257
+ align: "end",
258
+ "aria-modal": true,
259
+ onBlur: handleDatePickerOnBlur,
260
+ onEscapeKeyDown: handleDatePickerEscKeydown,
261
+ avoidCollisions: false
262
+ }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
263
+ id: calendarId,
264
+ onDateSelect: handleCalendarOnClick,
265
+ date: dayjsDate
266
+ })))));
356
267
  });
357
268
 
358
- var StyledDPicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
359
-
269
+ var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
360
270
  var _default = DxcDateInput;
361
271
  exports["default"] = _default;