@dnb/eufemia 10.70.0 → 10.71.0

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 (478) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  3. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  4. package/cjs/components/avatar/Avatar.js +3 -8
  5. package/cjs/components/avatar/Avatar.js.map +1 -1
  6. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  7. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  8. package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
  9. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  10. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  11. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  12. package/cjs/components/date-picker/DatePickerInput.js +110 -136
  13. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  14. package/cjs/components/date-picker/DatePickerProvider.js +0 -2
  15. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  16. package/cjs/components/date-picker/hooks/useDates.d.ts +0 -2
  17. package/cjs/components/date-picker/hooks/useDates.js +5 -5
  18. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  19. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  20. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  21. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  22. package/cjs/components/dialog/DialogDocs.js +7 -2
  23. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  24. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  25. package/cjs/components/dropdown/DropdownDocs.d.ts +1 -0
  26. package/cjs/components/dropdown/DropdownDocs.js +158 -1
  27. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  28. package/cjs/components/flex/ContainerDocs.js +1 -1
  29. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  30. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  31. package/cjs/components/flex/ItemDocs.js +39 -0
  32. package/cjs/components/flex/ItemDocs.js.map +1 -0
  33. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  34. package/cjs/components/grid/ItemDocs.js +19 -0
  35. package/cjs/components/grid/ItemDocs.js.map +1 -0
  36. package/cjs/components/input/InputDocs.js +3 -3
  37. package/cjs/components/input/InputDocs.js.map +1 -1
  38. package/cjs/components/input-masked/InputMasked.d.ts +0 -3
  39. package/cjs/components/input-masked/InputMaskedDocs.d.ts +1 -0
  40. package/cjs/components/input-masked/InputMaskedDocs.js +58 -1
  41. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  42. package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
  43. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  44. package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
  45. package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
  46. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  47. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  48. package/cjs/components/input-masked/MultiInputMaskedDocs.js +70 -1
  49. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  50. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  51. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  52. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  53. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  54. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  55. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  56. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  57. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  58. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  59. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  60. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  61. package/cjs/components/modal/ModalDocs.d.ts +5 -0
  62. package/cjs/components/modal/ModalDocs.js +201 -0
  63. package/cjs/components/modal/ModalDocs.js.map +1 -0
  64. package/cjs/components/radio/RadioDocs.js +2 -2
  65. package/cjs/components/radio/RadioDocs.js.map +1 -1
  66. package/cjs/components/section/Section.js +2 -7
  67. package/cjs/components/section/Section.js.map +1 -1
  68. package/cjs/components/section/SectionDocs.js +1 -1
  69. package/cjs/components/section/SectionDocs.js.map +1 -1
  70. package/cjs/components/slider/SliderDocs.js +2 -2
  71. package/cjs/components/slider/SliderDocs.js.map +1 -1
  72. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  73. package/cjs/components/space/SpaceDocs.js +61 -0
  74. package/cjs/components/space/SpaceDocs.js.map +1 -0
  75. package/cjs/components/switch/SwitchDocs.js +2 -2
  76. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  77. package/cjs/components/textarea/TextareaDocs.js +3 -3
  78. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  79. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  80. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  81. package/cjs/components/tooltip/TooltipDocs.js +1 -1
  82. package/cjs/components/tooltip/TooltipDocs.js.map +1 -1
  83. package/cjs/components/upload/Upload.js +6 -3
  84. package/cjs/components/upload/Upload.js.map +1 -1
  85. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  86. package/cjs/components/upload/UploadDocs.js +43 -1
  87. package/cjs/components/upload/UploadDocs.js.map +1 -1
  88. package/cjs/components/upload/UploadFileListCell.js +32 -12
  89. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  90. package/cjs/components/upload/types.d.ts +7 -0
  91. package/cjs/components/upload/types.js.map +1 -1
  92. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  93. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  94. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  95. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Number/Number.js +3 -6
  98. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  100. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  101. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  102. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  103. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  104. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  106. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
  107. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  109. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  110. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  111. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  112. package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
  113. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  114. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  115. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  116. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  117. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  118. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  119. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  120. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  121. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  122. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  123. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  124. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  125. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  126. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  127. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  128. package/cjs/extensions/forms/hooks/useFieldProps.js +55 -18
  129. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  130. package/cjs/extensions/forms/types.d.ts +8 -5
  131. package/cjs/extensions/forms/types.js.map +1 -1
  132. package/cjs/extensions/forms/utils/FormError.d.ts +20 -16
  133. package/cjs/extensions/forms/utils/FormError.js.map +1 -1
  134. package/cjs/shared/Eufemia.d.ts +1 -1
  135. package/cjs/shared/Eufemia.js +2 -2
  136. package/cjs/shared/Eufemia.js.map +1 -1
  137. package/cjs/shared/helpers.d.ts +1 -0
  138. package/cjs/shared/helpers.js +7 -0
  139. package/cjs/shared/helpers.js.map +1 -1
  140. package/cjs/shared/locales/sv-SE.js +2 -2
  141. package/cjs/shared/locales/sv-SE.js.map +1 -1
  142. package/cjs/style/core/scopes.scss +1 -1
  143. package/cjs/style/dnb-ui-basis.css +1 -1
  144. package/cjs/style/dnb-ui-basis.min.css +1 -1
  145. package/cjs/style/dnb-ui-body.css +1 -1
  146. package/cjs/style/dnb-ui-body.min.css +1 -1
  147. package/cjs/style/dnb-ui-components.css +13 -0
  148. package/cjs/style/dnb-ui-components.min.css +1 -1
  149. package/cjs/style/dnb-ui-core.css +1 -1
  150. package/cjs/style/dnb-ui-core.min.css +1 -1
  151. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  152. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  153. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  154. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  155. package/cjs/style/themes/theme-ui/ui-theme-components.css +13 -0
  156. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  157. package/components/autocomplete/AutocompleteDocs.js +3 -3
  158. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  159. package/components/avatar/Avatar.js +1 -6
  160. package/components/avatar/Avatar.js.map +1 -1
  161. package/components/checkbox/CheckboxDocs.js +2 -2
  162. package/components/checkbox/CheckboxDocs.js.map +1 -1
  163. package/components/date-picker/DatePickerContext.d.ts +0 -1
  164. package/components/date-picker/DatePickerContext.js.map +1 -1
  165. package/components/date-picker/DatePickerDocs.js +1 -1
  166. package/components/date-picker/DatePickerDocs.js.map +1 -1
  167. package/components/date-picker/DatePickerInput.js +111 -137
  168. package/components/date-picker/DatePickerInput.js.map +1 -1
  169. package/components/date-picker/DatePickerProvider.js +0 -2
  170. package/components/date-picker/DatePickerProvider.js.map +1 -1
  171. package/components/date-picker/hooks/useDates.d.ts +0 -2
  172. package/components/date-picker/hooks/useDates.js +3 -5
  173. package/components/date-picker/hooks/useDates.js.map +1 -1
  174. package/components/date-picker/style/dnb-date-picker.css +4 -0
  175. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  176. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  177. package/components/dialog/DialogDocs.js +7 -2
  178. package/components/dialog/DialogDocs.js.map +1 -1
  179. package/components/dropdown/Dropdown.d.ts +20 -20
  180. package/components/dropdown/DropdownDocs.d.ts +1 -0
  181. package/components/dropdown/DropdownDocs.js +157 -0
  182. package/components/dropdown/DropdownDocs.js.map +1 -1
  183. package/components/flex/ContainerDocs.js +1 -1
  184. package/components/flex/ContainerDocs.js.map +1 -1
  185. package/components/flex/ItemDocs.d.ts +2 -0
  186. package/components/flex/ItemDocs.js +33 -0
  187. package/components/flex/ItemDocs.js.map +1 -0
  188. package/components/grid/ItemDocs.d.ts +2 -0
  189. package/components/grid/ItemDocs.js +13 -0
  190. package/components/grid/ItemDocs.js.map +1 -0
  191. package/components/input/InputDocs.js +3 -3
  192. package/components/input/InputDocs.js.map +1 -1
  193. package/components/input-masked/InputMasked.d.ts +0 -3
  194. package/components/input-masked/InputMaskedDocs.d.ts +1 -0
  195. package/components/input-masked/InputMaskedDocs.js +57 -0
  196. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  197. package/components/input-masked/InputMaskedHooks.js +11 -7
  198. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  199. package/components/input-masked/InputMaskedUtils.d.ts +1 -1
  200. package/components/input-masked/InputMaskedUtils.js +2 -1
  201. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  202. package/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  203. package/components/input-masked/MultiInputMaskedDocs.js +69 -0
  204. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  205. package/components/input-masked/style/dnb-input-masked.css +9 -0
  206. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  207. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  208. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  209. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  210. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  211. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  212. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  213. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  214. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  215. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  216. package/components/modal/ModalDocs.d.ts +5 -0
  217. package/components/modal/ModalDocs.js +195 -0
  218. package/components/modal/ModalDocs.js.map +1 -0
  219. package/components/radio/RadioDocs.js +2 -2
  220. package/components/radio/RadioDocs.js.map +1 -1
  221. package/components/section/Section.js +1 -6
  222. package/components/section/Section.js.map +1 -1
  223. package/components/section/SectionDocs.js +1 -1
  224. package/components/section/SectionDocs.js.map +1 -1
  225. package/components/slider/SliderDocs.js +2 -2
  226. package/components/slider/SliderDocs.js.map +1 -1
  227. package/components/space/SpaceDocs.d.ts +3 -0
  228. package/components/space/SpaceDocs.js +55 -0
  229. package/components/space/SpaceDocs.js.map +1 -0
  230. package/components/switch/SwitchDocs.js +2 -2
  231. package/components/switch/SwitchDocs.js.map +1 -1
  232. package/components/textarea/TextareaDocs.js +3 -3
  233. package/components/textarea/TextareaDocs.js.map +1 -1
  234. package/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  235. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  236. package/components/tooltip/TooltipDocs.js +1 -1
  237. package/components/tooltip/TooltipDocs.js.map +1 -1
  238. package/components/upload/Upload.js +6 -3
  239. package/components/upload/Upload.js.map +1 -1
  240. package/components/upload/UploadDocs.d.ts +1 -0
  241. package/components/upload/UploadDocs.js +42 -0
  242. package/components/upload/UploadDocs.js.map +1 -1
  243. package/components/upload/UploadFileListCell.js +32 -12
  244. package/components/upload/UploadFileListCell.js.map +1 -1
  245. package/components/upload/types.d.ts +7 -0
  246. package/components/upload/types.js.map +1 -1
  247. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  248. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  249. package/es/components/avatar/Avatar.js +1 -6
  250. package/es/components/avatar/Avatar.js.map +1 -1
  251. package/es/components/checkbox/CheckboxDocs.js +2 -2
  252. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  253. package/es/components/date-picker/DatePickerContext.d.ts +0 -1
  254. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  255. package/es/components/date-picker/DatePickerDocs.js +1 -1
  256. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  257. package/es/components/date-picker/DatePickerInput.js +103 -130
  258. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  259. package/es/components/date-picker/DatePickerProvider.js +0 -2
  260. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  261. package/es/components/date-picker/hooks/useDates.d.ts +0 -2
  262. package/es/components/date-picker/hooks/useDates.js +3 -5
  263. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  264. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  265. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  266. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  267. package/es/components/dialog/DialogDocs.js +7 -2
  268. package/es/components/dialog/DialogDocs.js.map +1 -1
  269. package/es/components/dropdown/Dropdown.d.ts +20 -20
  270. package/es/components/dropdown/DropdownDocs.d.ts +1 -0
  271. package/es/components/dropdown/DropdownDocs.js +157 -0
  272. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  273. package/es/components/flex/ContainerDocs.js +1 -1
  274. package/es/components/flex/ContainerDocs.js.map +1 -1
  275. package/es/components/flex/ItemDocs.d.ts +2 -0
  276. package/es/components/flex/ItemDocs.js +33 -0
  277. package/es/components/flex/ItemDocs.js.map +1 -0
  278. package/es/components/grid/ItemDocs.d.ts +2 -0
  279. package/es/components/grid/ItemDocs.js +13 -0
  280. package/es/components/grid/ItemDocs.js.map +1 -0
  281. package/es/components/input/InputDocs.js +3 -3
  282. package/es/components/input/InputDocs.js.map +1 -1
  283. package/es/components/input-masked/InputMasked.d.ts +0 -3
  284. package/es/components/input-masked/InputMaskedDocs.d.ts +1 -0
  285. package/es/components/input-masked/InputMaskedDocs.js +57 -0
  286. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  287. package/es/components/input-masked/InputMaskedHooks.js +11 -7
  288. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  289. package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
  290. package/es/components/input-masked/InputMaskedUtils.js +2 -1
  291. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  292. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  293. package/es/components/input-masked/MultiInputMaskedDocs.js +69 -0
  294. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  295. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  296. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  297. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  298. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  299. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  300. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  301. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  302. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  303. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  304. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  305. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  306. package/es/components/modal/ModalDocs.d.ts +5 -0
  307. package/es/components/modal/ModalDocs.js +191 -0
  308. package/es/components/modal/ModalDocs.js.map +1 -0
  309. package/es/components/radio/RadioDocs.js +2 -2
  310. package/es/components/radio/RadioDocs.js.map +1 -1
  311. package/es/components/section/Section.js +1 -6
  312. package/es/components/section/Section.js.map +1 -1
  313. package/es/components/section/SectionDocs.js +1 -1
  314. package/es/components/section/SectionDocs.js.map +1 -1
  315. package/es/components/slider/SliderDocs.js +2 -2
  316. package/es/components/slider/SliderDocs.js.map +1 -1
  317. package/es/components/space/SpaceDocs.d.ts +3 -0
  318. package/es/components/space/SpaceDocs.js +55 -0
  319. package/es/components/space/SpaceDocs.js.map +1 -0
  320. package/es/components/switch/SwitchDocs.js +2 -2
  321. package/es/components/switch/SwitchDocs.js.map +1 -1
  322. package/es/components/textarea/TextareaDocs.js +3 -3
  323. package/es/components/textarea/TextareaDocs.js.map +1 -1
  324. package/es/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  325. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  326. package/es/components/tooltip/TooltipDocs.js +1 -1
  327. package/es/components/tooltip/TooltipDocs.js.map +1 -1
  328. package/es/components/upload/Upload.js +6 -3
  329. package/es/components/upload/Upload.js.map +1 -1
  330. package/es/components/upload/UploadDocs.d.ts +1 -0
  331. package/es/components/upload/UploadDocs.js +42 -0
  332. package/es/components/upload/UploadDocs.js.map +1 -1
  333. package/es/components/upload/UploadFileListCell.js +32 -12
  334. package/es/components/upload/UploadFileListCell.js.map +1 -1
  335. package/es/components/upload/types.d.ts +7 -0
  336. package/es/components/upload/types.js.map +1 -1
  337. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  338. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  339. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  340. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  341. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  342. package/es/extensions/forms/Field/Number/Number.js +3 -6
  343. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  344. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  345. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  346. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  347. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  348. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
  349. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  350. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  351. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  352. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  353. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  354. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  355. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  356. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  357. package/es/extensions/forms/Field/Upload/Upload.js +3 -1
  358. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  359. package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  360. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  361. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  362. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  363. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  364. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  365. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  366. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  367. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  368. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  369. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  370. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  371. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  372. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  373. package/es/extensions/forms/hooks/useFieldProps.js +56 -19
  374. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  375. package/es/extensions/forms/types.d.ts +8 -5
  376. package/es/extensions/forms/types.js.map +1 -1
  377. package/es/extensions/forms/utils/FormError.d.ts +20 -16
  378. package/es/extensions/forms/utils/FormError.js +1 -0
  379. package/es/extensions/forms/utils/FormError.js.map +1 -1
  380. package/es/shared/Eufemia.d.ts +1 -1
  381. package/es/shared/Eufemia.js +2 -2
  382. package/es/shared/Eufemia.js.map +1 -1
  383. package/es/shared/helpers.d.ts +1 -0
  384. package/es/shared/helpers.js +6 -0
  385. package/es/shared/helpers.js.map +1 -1
  386. package/es/shared/locales/sv-SE.js +2 -2
  387. package/es/shared/locales/sv-SE.js.map +1 -1
  388. package/es/style/core/scopes.scss +1 -1
  389. package/es/style/dnb-ui-basis.css +1 -1
  390. package/es/style/dnb-ui-basis.min.css +1 -1
  391. package/es/style/dnb-ui-body.css +1 -1
  392. package/es/style/dnb-ui-body.min.css +1 -1
  393. package/es/style/dnb-ui-components.css +13 -0
  394. package/es/style/dnb-ui-components.min.css +1 -1
  395. package/es/style/dnb-ui-core.css +1 -1
  396. package/es/style/dnb-ui-core.min.css +1 -1
  397. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  398. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  399. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  400. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  401. package/es/style/themes/theme-ui/ui-theme-components.css +13 -0
  402. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  403. package/esm/dnb-ui-basis.min.mjs +1 -1
  404. package/esm/dnb-ui-components.min.mjs +1 -1
  405. package/esm/dnb-ui-elements.min.mjs +1 -1
  406. package/esm/dnb-ui-extensions.min.mjs +1 -1
  407. package/esm/dnb-ui-lib.min.mjs +1 -1
  408. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  409. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  410. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  411. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  412. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  413. package/extensions/forms/Field/Number/Number.js +3 -6
  414. package/extensions/forms/Field/Number/Number.js.map +1 -1
  415. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  416. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  417. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  418. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  419. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  420. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  421. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  422. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  423. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  424. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  425. package/extensions/forms/Field/String/StringDocs.js +1 -1
  426. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  427. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  428. package/extensions/forms/Field/Upload/Upload.js +3 -1
  429. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  430. package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  431. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  432. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  433. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  434. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  435. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  436. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  437. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  438. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  439. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  440. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  441. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  442. package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  443. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  444. package/extensions/forms/hooks/useFieldProps.js +56 -19
  445. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  446. package/extensions/forms/types.d.ts +8 -5
  447. package/extensions/forms/types.js.map +1 -1
  448. package/extensions/forms/utils/FormError.d.ts +20 -16
  449. package/extensions/forms/utils/FormError.js.map +1 -1
  450. package/package.json +1 -1
  451. package/shared/Eufemia.d.ts +1 -1
  452. package/shared/Eufemia.js +2 -2
  453. package/shared/Eufemia.js.map +1 -1
  454. package/shared/helpers.d.ts +1 -0
  455. package/shared/helpers.js +6 -0
  456. package/shared/helpers.js.map +1 -1
  457. package/shared/locales/sv-SE.js +2 -2
  458. package/shared/locales/sv-SE.js.map +1 -1
  459. package/style/core/scopes.scss +1 -1
  460. package/style/dnb-ui-basis.css +1 -1
  461. package/style/dnb-ui-basis.min.css +1 -1
  462. package/style/dnb-ui-body.css +1 -1
  463. package/style/dnb-ui-body.min.css +1 -1
  464. package/style/dnb-ui-components.css +13 -0
  465. package/style/dnb-ui-components.min.css +1 -1
  466. package/style/dnb-ui-core.css +1 -1
  467. package/style/dnb-ui-core.min.css +1 -1
  468. package/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  469. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  470. package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  471. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  472. package/style/themes/theme-ui/ui-theme-components.css +13 -0
  473. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  474. package/umd/dnb-ui-basis.min.js +1 -1
  475. package/umd/dnb-ui-components.min.js +1 -1
  476. package/umd/dnb-ui-elements.min.js +1 -1
  477. package/umd/dnb-ui-extensions.min.js +1 -1
  478. package/umd/dnb-ui-lib.min.js +1 -1
@@ -8,9 +8,6 @@ exports.default = void 0;
8
8
  require("core-js/modules/es.string.replace.js");
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _addDays = _interopRequireDefault(require("date-fns/addDays"));
12
- var _addMonths = _interopRequireDefault(require("date-fns/addMonths"));
13
- var _addYears = _interopRequireDefault(require("date-fns/addYears"));
14
11
  var _isValid = _interopRequireDefault(require("date-fns/isValid"));
15
12
  var _parseISO = _interopRequireDefault(require("date-fns/parseISO"));
16
13
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -18,6 +15,7 @@ var _TextMask = _interopRequireDefault(require("../input-masked/TextMask"));
18
15
  var _Button = _interopRequireDefault(require("../button/Button"));
19
16
  var _Input = _interopRequireWildcard(require("../input/Input"));
20
17
  var _componentHelper = require("../../shared/component-helper");
18
+ var _helpers = require("../../shared/helpers");
21
19
  var _DatePickerCalc = require("./DatePickerCalc");
22
20
  var _DatePickerContext = _interopRequireDefault(require("./DatePickerContext"));
23
21
  var _shared = require("../../shared");
@@ -84,7 +82,6 @@ function DatePickerInput(externalProps) {
84
82
  const {
85
83
  updateDates,
86
84
  callOnChangeHandler,
87
- hasHadValidDate,
88
85
  getReturnObject,
89
86
  __startDay,
90
87
  __startMonth,
@@ -96,10 +93,12 @@ function DatePickerInput(externalProps) {
96
93
  endDate,
97
94
  props: {
98
95
  onType,
99
- label
96
+ label,
97
+ correctInvalidDate
100
98
  }
101
99
  } = (0, _react.useContext)(_DatePickerContext.default);
102
100
  const translation = (0, _shared.useTranslation)().DatePicker;
101
+ const hasHadValidDate = (0, _isValid.default)(startDate) || (0, _isValid.default)(endDate);
103
102
  const modeDate = (0, _react.useMemo)(() => ({
104
103
  startDate,
105
104
  endDate
@@ -289,129 +288,7 @@ function DatePickerInput(externalProps) {
289
288
  is_valid_start_date,
290
289
  is_valid_end_date
291
290
  }, returnObject), typedDates));
292
- }, [isRange, dateRefs, getReturnObject, inputDates, onType]);
293
- const prepareCounting = (0, _react.useCallback)(async _ref3 => {
294
- let {
295
- keyCode,
296
- target,
297
- event
298
- } = _ref3;
299
- try {
300
- const isDate = target.getAttribute('class').match(/__input--(day|month|year)($|\s)/)[1];
301
- const isInRange = target.getAttribute('id').match(/-(start|end)-(day|month|year)/)[1];
302
- let date = isInRange === 'start' ? startDate : endDate;
303
- if (!date) {
304
- return;
305
- }
306
- const count = keyCode === 'ArrowUp' ? 1 : -1;
307
- if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {
308
- switch (isDate) {
309
- case 'day':
310
- date = (0, _addDays.default)(date, count);
311
- break;
312
- case 'month':
313
- date = (0, _addMonths.default)(date, count);
314
- break;
315
- case 'year':
316
- date = (0, _addYears.default)(date, count);
317
- break;
318
- }
319
- }
320
- callOnChange({
321
- [isInRange === 'start' ? 'startDate' : 'endDate']: date,
322
- event
323
- });
324
- await wait(1);
325
- selectAll(target);
326
- } catch (e) {
327
- (0, _componentHelper.warn)(e);
328
- }
329
- }, [startDate, endDate, callOnChange]);
330
- const selectStart = (0, _react.useCallback)(target => {
331
- target.focus();
332
- target.setSelectionRange(0, 0);
333
- }, []);
334
- const onFocusHandler = (0, _react.useCallback)(event => {
335
- try {
336
- selectAll(event.target);
337
- } catch (e) {
338
- (0, _componentHelper.warn)(e);
339
- }
340
- setFocusState('focus');
341
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(_objectSpread(_objectSpread({}, event), getReturnObject({
342
- event
343
- })));
344
- }, [getReturnObject, onFocus]);
345
- const onBlurHandler = (0, _react.useCallback)(event => {
346
- focusMode.current = null;
347
- setFocusState('blur');
348
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, event), getReturnObject(_objectSpread({
349
- event
350
- }, partialDatesRef.current))));
351
- }, [onBlur, getReturnObject, partialDatesRef]);
352
- const onKeyDownHandler = (0, _react.useCallback)(async event => {
353
- const keyCode = event.key;
354
- const target = event.target;
355
- if (target.selectionStart !== target.selectionEnd) {
356
- selectStart(target);
357
- }
358
- switch (keyCode) {
359
- case 'ArrowUp':
360
- case 'ArrowDown':
361
- event.persist();
362
- event.preventDefault();
363
- prepareCounting({
364
- event,
365
- keyCode,
366
- target
367
- });
368
- return false;
369
- case 'Tab':
370
- return false;
371
- }
372
- const size = parseFloat(target.getAttribute('size'));
373
- const firstSelectionStart = target.selectionStart;
374
- await wait(1);
375
- const secondSelectionStart = target.selectionStart;
376
- const isValid = /[0-9]/g.test(keyCode);
377
- const refListArray = refList.current;
378
- const index = refListArray.findIndex(_ref4 => {
379
- let {
380
- current
381
- } = _ref4;
382
- return current === target;
383
- });
384
- if (index < refListArray.length - 1 && (secondSelectionStart === size && isValid && keyCode !== 'ArrowLeft' && keyCode !== 'Backspace' || firstSelectionStart === size && keyCode === 'ArrowRight')) {
385
- try {
386
- if (!refListArray[index + 1].current) {
387
- return;
388
- }
389
- const nextSibling = refListArray[index + 1].current;
390
- if (nextSibling) {
391
- nextSibling.focus();
392
- nextSibling.setSelectionRange(0, 0);
393
- }
394
- } catch (e) {
395
- (0, _componentHelper.warn)(e);
396
- }
397
- } else if (firstSelectionStart === 0 && index > 0) {
398
- switch (keyCode) {
399
- case 'ArrowLeft':
400
- case 'Backspace':
401
- try {
402
- const prevSibling = refListArray[index - 1].current;
403
- if (prevSibling) {
404
- const endPos = prevSibling.value.length;
405
- prevSibling.focus();
406
- prevSibling.setSelectionRange(endPos, endPos);
407
- }
408
- } catch (e) {
409
- (0, _componentHelper.warn)(e);
410
- }
411
- break;
412
- }
413
- }
414
- }, [prepareCounting, selectStart]);
291
+ }, [setPartialDates, isRange, getReturnObject, partialDatesRef, onType, inputDates]);
415
292
  const setDate = (0, _react.useCallback)((event, mode, type) => {
416
293
  event.persist();
417
294
  const value = event.target.value;
@@ -476,6 +353,92 @@ function DatePickerInput(externalProps) {
476
353
  setDate(event, 'end', 'Year');
477
354
  }
478
355
  }), [setDate]);
356
+ const onFocusHandler = (0, _react.useCallback)(event => {
357
+ setFocusState('focus');
358
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(_objectSpread(_objectSpread({}, event), getReturnObject({
359
+ event
360
+ })));
361
+ if (isNaN(parseFloat(event.target.value))) {
362
+ setCursorPosition(event.target);
363
+ }
364
+ }, [getReturnObject, onFocus]);
365
+ const onBlurHandler = (0, _react.useCallback)(event => {
366
+ focusMode.current = null;
367
+ setFocusState('blur');
368
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, event), getReturnObject(_objectSpread({
369
+ event
370
+ }, partialDatesRef.current))));
371
+ }, [onBlur, getReturnObject, partialDatesRef]);
372
+ const onKeyDownHandler = (0, _react.useCallback)(async event => {
373
+ const keyCode = event.key;
374
+ const target = event.target;
375
+ if (correctInvalidDate && target.selectionStart !== target.selectionEnd) {
376
+ setCursorPosition(target);
377
+ }
378
+ const size = parseFloat(target.getAttribute('size'));
379
+ const firstSelectionStart = target.selectionStart;
380
+ const firstSelectionEnd = target.selectionEnd;
381
+ await wait(_helpers.IS_IOS ? 10 : 1);
382
+ const secondSelectionStart = target.selectionStart;
383
+ const isValid = /[0-9]/g.test(keyCode);
384
+ const refListArray = refList.current;
385
+ const index = refListArray.findIndex(_ref3 => {
386
+ let {
387
+ current
388
+ } = _ref3;
389
+ return current === target;
390
+ });
391
+ const isLastChar = secondSelectionStart === size;
392
+ const isFirstChar = firstSelectionStart === size;
393
+ const isMovingForward = keyCode !== 'ArrowLeft' && keyCode !== 'Backspace' && isValid && isLastChar;
394
+ const isExplicitForward = (keyCode === 'ArrowRight' || keyCode === 'Enter') && isFirstChar;
395
+ const hasNextField = index < refListArray.length - 1;
396
+ if (hasNextField && (isMovingForward || isExplicitForward)) {
397
+ var _refListArray;
398
+ if (!refListArray[index + 1].current) {
399
+ return;
400
+ }
401
+ const nextSibling = (_refListArray = refListArray[index + 1]) === null || _refListArray === void 0 ? void 0 : _refListArray.current;
402
+ if (nextSibling) {
403
+ setCursorPosition(nextSibling, 0, {
404
+ withoutDelay: true
405
+ });
406
+ }
407
+ if (parseFloat(keyCode) <= 9 && firstSelectionStart === target.size) {
408
+ const name = (0, _componentHelper.toCapitalized)(nextSibling.getAttribute('class').match(/__input--(day|month|year)($|\s)/)[1]);
409
+ const mode = nextSibling.getAttribute('id').match(/-(start|end)-(day|month|year)/)[1];
410
+ dateSetters[`set_${mode}${name}`](_objectSpread(_objectSpread({
411
+ persist: () => null
412
+ }, event), {}, {
413
+ target: {
414
+ value: keyCode + nextSibling.value.slice(1)
415
+ }
416
+ }));
417
+ setCursorPosition(nextSibling, 1);
418
+ }
419
+ } else if (index > 0 && firstSelectionStart === firstSelectionEnd) {
420
+ const isMovingBackward = keyCode === 'ArrowLeft' && firstSelectionStart === 0;
421
+ const isPressingBackspace = keyCode === 'Backspace' && firstSelectionStart <= 1;
422
+ if (isMovingBackward || isPressingBackspace) {
423
+ var _refListArray2;
424
+ const prevSibling = (_refListArray2 = refListArray[index - 1]) === null || _refListArray2 === void 0 ? void 0 : _refListArray2.current;
425
+ if (prevSibling) {
426
+ const endPos = prevSibling.value.length;
427
+ setCursorPosition(prevSibling, endPos, {
428
+ withoutDelay: true
429
+ });
430
+ }
431
+ }
432
+ }
433
+ }, [correctInvalidDate, dateSetters]);
434
+ const onInputHandler = (0, _react.useCallback)(event => {
435
+ const target = event.currentTarget;
436
+ if (_helpers.IS_ANDROID && event.nativeEvent.inputType === 'deleteContentBackward' && target.selectionStart === 0 && target.selectionEnd === 0) {
437
+ onKeyDownHandler(_objectSpread(_objectSpread({}, event), {}, {
438
+ key: 'Backspace'
439
+ }));
440
+ }
441
+ }, [onKeyDownHandler]);
479
442
  const getPlaceholderChar = (0, _react.useCallback)(value => {
480
443
  const index = maskOrder.indexOf(value);
481
444
  return maskPlaceholder[index];
@@ -493,6 +456,7 @@ function DatePickerInput(externalProps) {
493
456
  if (!separatorRegExp.test(value)) {
494
457
  if (!inputElement) {
495
458
  element = _objectSpread(_objectSpread({}, element), {}, {
459
+ onInput: onInputHandler,
496
460
  onKeyDown: onKeyDownHandler,
497
461
  onPaste: pasteHandler,
498
462
  onFocus: e => {
@@ -574,7 +538,7 @@ function DatePickerInput(externalProps) {
574
538
  "aria-hidden": true
575
539
  }, placeholderChar);
576
540
  });
577
- }, [id, inputElement, isRange, size, translation, separatorRegExp, dateSetters, inputRefs, maskList, onBlurHandler, onFocusHandler, getPlaceholderChar, pasteHandler, onKeyDownHandler, inputDates]);
541
+ }, [maskList, getPlaceholderChar, translation, isRange, separatorRegExp, inputElement, size, onInputHandler, onKeyDownHandler, pasteHandler, onBlurHandler, onFocusHandler, id, dateSetters, inputDates]);
578
542
  const renderInputElement = (0, _react.useCallback)(element => {
579
543
  refList.current = [];
580
544
  const startDateList = generateDateList(element, 'start');
@@ -587,7 +551,7 @@ function DatePickerInput(externalProps) {
587
551
  "aria-hidden": true
588
552
  }, ' – '))), isRange && endDateList);
589
553
  }, [id, isRange, generateDateList]);
590
- const formatDate = (0, _react.useMemo)(() => selectedDateTitle ? `${selectedDateTitle}, ${translation.openPickerText}` : translation.openPickerText, [selectedDateTitle, translation]);
554
+ const ariaLabel = (0, _react.useMemo)(() => selectedDateTitle ? `${selectedDateTitle}, ${translation.openPickerText}` : translation.openPickerText, [selectedDateTitle, translation]);
591
555
  (0, _componentHelper.validateDOMAttributes)(props, attributes);
592
556
  (0, _componentHelper.validateDOMAttributes)(null, submitAttributes);
593
557
  const SubmitElement = (0, _react.useMemo)(() => showInput ? _Input.SubmitButton : _Button.default, [showInput]);
@@ -615,7 +579,7 @@ function DatePickerInput(externalProps) {
615
579
  disabled: disabled,
616
580
  skeleton: skeleton,
617
581
  className: (0, _classnames.default)(showInput && 'dnb-button--input-button', opened && 'dnb-button--active'),
618
- "aria-label": formatDate,
582
+ "aria-label": ariaLabel,
619
583
  title: title,
620
584
  size: size,
621
585
  status: status,
@@ -630,18 +594,28 @@ function DatePickerInput(externalProps) {
630
594
  }, attributes)));
631
595
  }
632
596
  var _default = exports.default = DatePickerInput;
633
- function selectAll(target) {
597
+ function setCursorPosition(target) {
598
+ let position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
599
+ let options = arguments.length > 2 ? arguments[2] : undefined;
634
600
  target.focus();
635
- target.select();
601
+ const select = () => {
602
+ target.setSelectionRange(position, position);
603
+ };
604
+ if (!(options !== null && options !== void 0 && options.withoutDelay) && process.env.NODE_ENV !== 'test') {
605
+ setTimeout(select, 0);
606
+ } else {
607
+ select();
608
+ }
636
609
  }
637
- function InputElement(_ref5) {
610
+ function InputElement(_ref4) {
638
611
  let {
639
612
  className,
640
613
  value
641
- } = _ref5,
642
- props = _objectWithoutProperties(_ref5, _excluded3);
614
+ } = _ref4,
615
+ props = _objectWithoutProperties(_ref4, _excluded3);
643
616
  return _react.default.createElement(_TextMask.default, _extends({
644
617
  guide: true,
618
+ inputMode: "numeric",
645
619
  showMask: true,
646
620
  keepCharPositions: false,
647
621
  autoComplete: "off",
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_DatePickerCalc","_DatePickerContext","_shared","_usePartialDates","_span","_excluded","_excluded2","_excluded3","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDatesRef","setPartialDates","usePartialDates","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","inputRefs","startDayRef","current","undefined","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","syncDateRefs","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","partialStartDate","partialEndDate","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","target","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","wait","selectAll","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","key","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","_ref4","nextSibling","prevSibling","endPos","setDate","type","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","generateDateList","element","map","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","formatDate","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","select","_ref5","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise","setTimeout"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport addDays from 'date-fns/addDays'\nimport addMonths from 'date-fns/addMonths'\nimport addYears from 'date-fns/addYears'\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport { warn, validateDOMAttributes } from '../../shared/component-helper'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\nimport { DatePickerInputDates } from './hooks/useDates'\nimport usePartialDates from './hooks/usePartialDates'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRegExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRegExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRegExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n const [focusState, setFocusState] = useState<string>('virgin')\n\n const { partialDatesRef, setPartialDates } = usePartialDates()\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n hasHadValidDate,\n getReturnObject,\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n startDate,\n endDate,\n props: { onType, label },\n } = useContext(DatePickerContext)\n\n const translation = useTranslation().DatePicker\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputDates = useMemo(\n () => ({\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n }),\n [\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n ]\n )\n\n const inputRefs = useRef<\n Record<string, MutableRefObject<HTMLInputElement>>\n >({\n startDayRef: { current: undefined },\n startMonthRef: { current: undefined },\n startYearRef: { current: undefined },\n endDayRef: { current: undefined },\n endMonthRef: { current: undefined },\n endYearRef: { current: undefined },\n })\n\n const dateRefs = useRef<Record<string, string>>({\n startDay: '',\n startMonth: '',\n startYear: '',\n endDay: '',\n endMonth: '',\n endYear: '',\n })\n\n // Keep dateRefs in sync with inputDates on re-render\n syncDateRefs(dateRefs, inputDates)\n\n const temporaryDates = useRef<Record<string, Date>>({\n startDate: undefined,\n endDate: undefined,\n })\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRegExp)\n\n return maskOrder\n .split(separatorRegExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRegExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs.current[`${mode}Year`] ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs.current[`${mode}Month`] ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs.current[`${mode}Day`] ||\n inputDates[`__${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n setPartialDates({\n partialStartDate: startDate,\n // Only set endDate if in range mode\n ...(isRange && { partialEndDate: endDate }),\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n ...partialDatesRef.current,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [isRange, dateRefs, getReturnObject, inputDates, onType]\n )\n\n const prepareCounting = useCallback(\n async ({\n keyCode,\n target,\n event,\n }: {\n keyCode: string\n target: HTMLInputElement\n event: React.KeyboardEvent<HTMLInputElement>\n }) => {\n try {\n const isDate = target\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n\n const isInRange = target\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n let date = isInRange === 'start' ? startDate : endDate\n\n // do nothing if date is not set yet\n if (!date) {\n return\n }\n\n const count = keyCode === 'ArrowUp' ? 1 : -1\n\n if (keyCode === 'ArrowUp' || keyCode === 'ArrowDown') {\n switch (isDate) {\n case 'day':\n date = addDays(date, count)\n break\n case 'month':\n date = addMonths(date, count)\n break\n case 'year':\n date = addYears(date, count)\n break\n }\n }\n\n callOnChange({\n [isInRange === 'start' ? 'startDate' : 'endDate']: date,\n event,\n })\n\n await wait(1) // to get the correct position afterwards\n\n selectAll(target)\n } catch (e) {\n warn(e)\n }\n },\n [startDate, endDate, callOnChange]\n )\n\n const selectStart = useCallback((target: HTMLInputElement) => {\n target.focus()\n target.setSelectionRange(0, 0)\n }, [])\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n try {\n selectAll(event.target)\n } catch (e) {\n warn(e)\n }\n\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event, ...partialDatesRef.current }),\n })\n },\n [onBlur, getReturnObject, partialDatesRef]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (target.selectionStart !== target.selectionEnd) {\n selectStart(target)\n }\n\n // only to process key up and down press\n switch (keyCode) {\n case 'ArrowUp':\n case 'ArrowDown':\n event.persist()\n event.preventDefault()\n prepareCounting({ event, keyCode, target })\n return false\n case 'Tab':\n return false\n }\n\n // the rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n\n await wait(1) // to get the correct position afterwards\n\n const secondSelectionStart = target.selectionStart\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n if (\n index < refListArray.length - 1 &&\n ((secondSelectionStart === size &&\n isValid &&\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace') ||\n (firstSelectionStart === size && keyCode === 'ArrowRight'))\n ) {\n try {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return\n }\n const nextSibling = refListArray[index + 1].current\n if (nextSibling) {\n nextSibling.focus()\n nextSibling.setSelectionRange(0, 0)\n }\n } catch (e) {\n warn(e)\n }\n } else if (firstSelectionStart === 0 && index > 0) {\n switch (keyCode) {\n case 'ArrowLeft':\n case 'Backspace':\n try {\n const prevSibling = refListArray[index - 1].current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n prevSibling.focus()\n prevSibling.setSelectionRange(endPos, endPos)\n }\n } catch (e) {\n warn(e)\n }\n break\n }\n }\n },\n [prepareCounting, selectStart]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs.current[`${mode}${type}`] = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates.current[`${mode}Date`] = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates.current[`${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs.current[`${mode}Year`] ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs.current[`${mode}Month`] ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs.current[`${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\n })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MutliInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRegExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs.current[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`__${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs.current[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`__${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs.current[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`__${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n id,\n inputElement,\n isRange,\n size,\n translation,\n separatorRegExp,\n dateSetters,\n inputRefs,\n maskList,\n onBlurHandler,\n onFocusHandler,\n getPlaceholderChar,\n pasteHandler,\n onKeyDownHandler,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const formatDate = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={formatDate}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction selectAll(target: HTMLInputElement) {\n target.focus()\n target.select()\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nfunction syncDateRefs(\n dateRefs: React.MutableRefObject<Record<string, string>>,\n inputDates: DatePickerInputDates\n) {\n for (const date in dateRefs.current) {\n const dateRefValue = dateRefs.current[date]\n const inputDateValue = inputDates[`__${date}`]\n\n if (dateRefValue !== inputDateValue) {\n dateRefs.current[date] = inputDateValue\n }\n }\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_isValid","_interopRequireDefault","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_helpers","_DatePickerCalc","_DatePickerContext","_shared","_usePartialDates","_span","_excluded","_excluded2","_excluded3","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDatesRef","setPartialDates","usePartialDates","invalidDatesRef","useRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","correctInvalidDate","useContext","DatePickerContext","translation","useTranslation","DatePicker","hasHadValidDate","isValid","modeDate","useMemo","inputDates","inputRefs","startDayRef","current","undefined","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","syncDateRefs","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","shift","pasteHandler","useCallback","event","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","callOnType","_ref2","getDates","partialStartDate","partialEndDate","parsedStartDate","parseISO","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","typedDates","start_date","end_date","setDate","type","persist","target","fallback","year","getFullYear","month","getMonth","day","getDate","Date","parseFloat","isValidDate","test","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","onFocusHandler","isNaN","setCursorPosition","onBlurHandler","onKeyDownHandler","keyCode","key","selectionStart","selectionEnd","getAttribute","firstSelectionStart","firstSelectionEnd","wait","IS_IOS","secondSelectionStart","refListArray","findIndex","_ref3","isLastChar","isFirstChar","isMovingForward","isExplicitForward","hasNextField","_refListArray","nextSibling","withoutDelay","name","toCapitalized","slice","isMovingBackward","isPressingBackspace","_refListArray2","prevSibling","endPos","onInputHandler","currentTarget","IS_ANDROID","nativeEvent","inputType","getPlaceholderChar","generateDateList","element","map","placeholderChar","isRangeLabel","onInput","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","ariaLabel","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","position","options","focus","select","setSelectionRange","process","env","NODE_ENV","setTimeout","_ref4","guide","inputMode","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise"],"sources":["../../../../src/components/date-picker/DatePickerInput.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n MutableRefObject,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// date-fns\nimport isValid from 'date-fns/isValid'\nimport parseISO from 'date-fns/parseISO'\n\nimport classnames from 'classnames'\nimport TextMask, { TextMaskProps } from '../input-masked/TextMask'\nimport Button from '../button/Button'\nimport Input, { SubmitButton } from '../input/Input'\nimport type { InputInputElement, InputSize } from '../Input'\nimport {\n warn,\n validateDOMAttributes,\n toCapitalized,\n} from '../../shared/component-helper'\nimport { IS_ANDROID, IS_IOS } from '../../shared/helpers'\nimport { convertStringToDate } from './DatePickerCalc'\nimport DatePickerContext from './DatePickerContext'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport { ReturnObject } from './DatePickerProvider'\nimport { DatePickerEventAttributes } from './DatePicker'\nimport { useTranslation } from '../../shared'\nimport { DatePickerInputDates } from './hooks/useDates'\nimport usePartialDates from './hooks/usePartialDates'\n\nexport type DatePickerInputProps = Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'children'\n | 'ref'\n | 'value'\n | 'size'\n | 'onFocus'\n | 'onBlur'\n | 'onSubmit'\n | 'label'\n> & {\n selectedDateTitle?: string\n maskOrder?: string\n maskPlaceholder?: string\n separatorRegExp?: RegExp\n submitAttributes?: Record<string, unknown>\n isRange?: boolean\n /**\n * The sizes you can choose is `small` (1.5rem), `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`.\n */\n size?: InputSize\n /**\n * Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.\n */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties.\n */\n statusProps?: FormStatusProps\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `input_element=\"input\"`, a React element, or a render function `input_element={(internalProps) => (<Return />)}`. Can also be used in circumstances where the `react-text-mask` not should be used, e.g. in testing environments. Defaults to custom masked input.\n */\n inputElement?: InputInputElement\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n showInput?: boolean\n onSubmit?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onChange?: (\n event: ReturnObject<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (\n event: ReturnObject<React.FocusEvent<HTMLInputElement>>\n ) => void\n}\n\nexport type InvalidDates = {\n invalidDate?: string\n invalidStartDate?: string\n invalidEndDate?: string\n}\n\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRegExp: /[-/ ]/g,\n statusState: 'error',\n opened: false,\n}\n\nfunction DatePickerInput(externalProps: DatePickerInputProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n isRange,\n maskOrder,\n separatorRegExp,\n id,\n title,\n submitAttributes,\n maskPlaceholder, // eslint-disable-line\n onFocus,\n onBlur,\n onChange, // eslint-disable-line\n onSubmit, // eslint-disable-line\n selectedDateTitle, // eslint-disable-line\n showInput, // eslint-disable-line\n inputElement,\n lang,\n disabled,\n skeleton,\n opened,\n size,\n status,\n statusState,\n statusProps,\n\n ...attributes\n } = props\n const [focusState, setFocusState] = useState<string>('virgin')\n\n const { partialDatesRef, setPartialDates } = usePartialDates()\n\n const invalidDatesRef = useRef<InvalidDates>({\n invalidStartDate: null,\n invalidEndDate: null,\n })\n const isDateFullyFilledOutRef = useRef(false)\n\n const {\n updateDates,\n callOnChangeHandler,\n getReturnObject,\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n startDate,\n endDate,\n props: { onType, label, correctInvalidDate },\n } = useContext(DatePickerContext)\n\n const translation = useTranslation().DatePicker\n\n const hasHadValidDate = isValid(startDate) || isValid(endDate)\n\n const modeDate = useMemo(\n () => ({\n startDate,\n endDate,\n }),\n [startDate, endDate]\n )\n\n const inputDates = useMemo(\n () => ({\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n }),\n [\n __startDay,\n __startMonth,\n __startYear,\n __endDay,\n __endMonth,\n __endYear,\n ]\n )\n\n const inputRefs = useRef<\n Record<string, MutableRefObject<HTMLInputElement>>\n >({\n startDayRef: { current: undefined },\n startMonthRef: { current: undefined },\n startYearRef: { current: undefined },\n endDayRef: { current: undefined },\n endMonthRef: { current: undefined },\n endYearRef: { current: undefined },\n })\n\n const dateRefs = useRef<Record<string, string>>({\n startDay: '',\n startMonth: '',\n startYear: '',\n endDay: '',\n endMonth: '',\n endYear: '',\n })\n\n // Keep dateRefs in sync with inputDates on re-render\n syncDateRefs(dateRefs, inputDates)\n\n const temporaryDates = useRef<Record<string, Date>>({\n startDate: undefined,\n endDate: undefined,\n })\n\n const refList = useRef<Array<MutableRefObject<HTMLInputElement>>>()\n\n const focusMode = useRef<string>()\n\n const maskList = useMemo(() => {\n const separators = maskOrder.match(separatorRegExp)\n\n return maskOrder\n .split(separatorRegExp)\n .reduce<Array<string>>((acc, cur) => {\n if (!cur) {\n return acc\n }\n\n acc.push(cur)\n\n if (separators.length > 0) {\n // makes sure that separators are added at the correct places and removed from array when added\n acc.push(separators.shift())\n }\n\n return acc\n }, [])\n }, [maskOrder, separatorRegExp])\n\n const pasteHandler = useCallback(\n async (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!focusMode.current) {\n return // Stop here\n }\n\n const success = (\n event.clipboardData ||\n (typeof window !== 'undefined' && window['clipboardData'])\n ).getData('text')\n\n if (!success) {\n return // Stop here\n }\n\n event.preventDefault()\n\n try {\n const separators = ['.', '/']\n const possibleFormats = ['yyyy-MM-dd']\n\n // TODO: Merge these loops\n possibleFormats.forEach((date) => {\n separators.forEach((sep) => {\n possibleFormats.push(date.replace(/-/g, sep))\n })\n })\n\n possibleFormats.forEach((date) => {\n possibleFormats.push(date.split('').reverse().join(''))\n })\n\n let date: Date\n let index = 0\n\n for (index; index < possibleFormats.length; ++index) {\n date = convertStringToDate(success, {\n dateFormat: possibleFormats[index],\n })\n\n if (date) {\n break\n }\n }\n\n const mode =\n focusMode.current === 'start' ? 'startDate' : 'endDate'\n\n if (date) {\n updateDates({\n [mode]: date,\n })\n }\n } catch (error: unknown) {\n warn(error)\n }\n },\n [updateDates]\n )\n\n const callOnChangeAsInvalid = useCallback(\n (state: {\n endDate?: Date\n starDate?: Date\n event: React.ChangeEvent<HTMLInputElement>\n }) => {\n updateDates(\n {\n hoverDate: null,\n },\n (dates) => {\n // Should fire if user has filled out an invalid date,\n // or if the date was valid. Like if the user has pressed backspace or removed the valid date.\n if (isDateFullyFilledOutRef.current || hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({\n startDate,\n endDate,\n event,\n ...invalidDatesRef.current,\n })\n }\n }\n )\n },\n [updateDates, callOnChangeHandler, hasHadValidDate]\n )\n\n const callOnChange = useCallback(\n ({\n startDate,\n endDate,\n event,\n }: {\n startDate?: Date\n endDate?: Date\n event:\n | React.ChangeEvent<HTMLInputElement>\n | React.KeyboardEvent<HTMLInputElement>\n }) => {\n const state = {}\n if (typeof startDate !== 'undefined' && isValid(startDate)) {\n state['startDate'] = startDate\n }\n if (!isRange) {\n endDate = startDate\n }\n if (typeof endDate !== 'undefined' && isValid(endDate)) {\n state['endDate'] = endDate\n }\n\n updateDates(state, (dates) => {\n if (\n (typeof startDate !== 'undefined' && isValid(startDate)) ||\n (typeof endDate !== 'undefined' && isValid(endDate))\n ) {\n callOnChangeHandler({\n event,\n ...dates,\n ...invalidDatesRef.current,\n })\n }\n })\n },\n [updateDates, callOnChangeHandler, isRange]\n )\n\n const callOnType = useCallback(\n ({ event }: { event: React.ChangeEvent<HTMLInputElement> }) => {\n const getDates = () =>\n ['start', 'end'].reduce(\n (acc, mode) => {\n acc[`${mode}Date`] = [\n dateRefs.current[`${mode}Year`] ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs.current[`${mode}Month`] ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs.current[`${mode}Day`] ||\n inputDates[`__${mode}Day`] ||\n 'dd',\n ].join('-')\n return acc\n },\n { startDate: undefined, endDate: undefined }\n )\n\n // Get the typed dates, so we can ...\n const { startDate, endDate } = getDates()\n\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n setPartialDates({\n partialStartDate: startDate,\n // Only set endDate if in range mode\n ...(isRange && { partialEndDate: endDate }),\n })\n\n const parsedStartDate = parseISO(startDate)\n const parsedEndDate = parseISO(endDate)\n\n const isStartDateValid = isValid(parsedStartDate)\n const isEndDateValid = isValid(parsedEndDate)\n\n const {\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject\n } = getReturnObject({\n startDate: isStartDateValid ? parsedStartDate : null,\n endDate: isEndDateValid ? parsedEndDate : null,\n event,\n ...partialDatesRef.current,\n ...invalidDatesRef.current,\n })\n\n // Re-assigns dates to the typed date, instead of `null` from getReturnObject, if dates are invalid\n const typedDates = {\n ...(!isRange && is_valid === false && { date: startDate }),\n ...(isRange &&\n is_valid_start_date === false && { start_date: startDate }),\n ...(isRange &&\n is_valid_end_date === false && { end_date: endDate }),\n }\n\n onType?.({\n is_valid,\n is_valid_start_date,\n is_valid_end_date,\n ...returnObject,\n ...typedDates,\n })\n },\n [\n setPartialDates,\n isRange,\n getReturnObject,\n partialDatesRef,\n onType,\n inputDates,\n ]\n )\n\n const setDate = useCallback(\n (\n event: React.ChangeEvent<HTMLInputElement>,\n mode: 'start' | 'end',\n type: 'Day' | 'Month' | 'Year'\n ) => {\n event.persist() // since we have later a state update and afterwards the callback\n\n const value = (event.target as HTMLInputElement).value\n\n dateRefs.current[`${mode}${type}`] = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates.current[`${mode}Date`] = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates.current[`${mode}Date`]\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs.current[`${mode}Year`] ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs.current[`${mode}Month`] ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs.current[`${mode}Day`] || (fallback && fallback.getDate())\n\n // calculate new date\n const date = new Date(\n parseFloat(String(year)),\n parseFloat(String(month)) - 1,\n parseFloat(String(day))\n )\n\n const isValidDate =\n !/[^0-9]/.test(String(day)) &&\n !/[^0-9]/.test(String(month)) &&\n !/[^0-9]/.test(String(year)) &&\n isValid(date) &&\n date.getDate() == parseFloat(String(day)) &&\n date.getMonth() + 1 == parseFloat(String(month)) &&\n date.getFullYear() == parseFloat(String(year))\n\n const dateString = `${year}-${month}-${day}`\n\n isDateFullyFilledOutRef.current =\n /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString)\n\n // update the date\n if (isValidDate) {\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: null }\n : { invalidEndDate: null }),\n }\n\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\n })\n\n invalidDatesRef.current = {\n ...invalidDatesRef.current,\n ...(mode === 'start'\n ? { invalidStartDate: dateString }\n : { invalidEndDate: dateString }),\n }\n\n callOnChangeAsInvalid({\n [`${mode}Date`]: null,\n event,\n })\n }\n\n callOnType({ event })\n },\n [\n updateDates,\n callOnChange,\n callOnChangeAsInvalid,\n callOnType,\n modeDate,\n dateRefs,\n temporaryDates,\n ]\n )\n\n const dateSetters = useMemo(\n () => ({\n set_startDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Day')\n },\n\n set_startMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Month')\n },\n\n set_startYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'start', 'Year')\n },\n\n set_endDay: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Day')\n },\n\n set_endMonth: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Month')\n },\n\n set_endYear: (event: React.ChangeEvent<HTMLInputElement>) => {\n setDate(event, 'end', 'Year')\n },\n }),\n [setDate]\n )\n\n const onFocusHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setFocusState('focus')\n\n onFocus?.({\n ...event,\n ...getReturnObject({ event }),\n })\n\n if (isNaN(parseFloat(event.target.value))) {\n setCursorPosition(event.target)\n }\n },\n [getReturnObject, onFocus]\n )\n\n const onBlurHandler = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n focusMode.current = null\n setFocusState('blur')\n\n onBlur?.({\n ...event,\n ...getReturnObject({ event, ...partialDatesRef.current }),\n })\n },\n [onBlur, getReturnObject, partialDatesRef]\n )\n\n const onKeyDownHandler = useCallback(\n async (event: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode = event.key\n const target = event.target as HTMLInputElement\n\n if (\n correctInvalidDate &&\n target.selectionStart !== target.selectionEnd\n ) {\n setCursorPosition(target)\n }\n\n // The rest is for value entry\n\n const size = parseFloat(target.getAttribute('size'))\n const firstSelectionStart = target.selectionStart\n const firstSelectionEnd = target.selectionEnd\n\n // To get the correct position afterwards.\n // Use 10ms in order to make it work on iOS Safari\n await wait(IS_IOS ? 10 : 1)\n\n const secondSelectionStart = target.selectionStart\n\n // Always false (since the old keycode function set number keys to undefined) but needed to not break tests\n const isValid = /[0-9]/g.test(keyCode)\n const refListArray = refList.current\n\n const index = refListArray.findIndex(\n ({ current }) => current === target\n )\n\n const isLastChar = secondSelectionStart === size\n const isFirstChar = firstSelectionStart === size\n\n const isMovingForward =\n keyCode !== 'ArrowLeft' &&\n keyCode !== 'Backspace' &&\n isValid &&\n isLastChar\n\n const isExplicitForward =\n (keyCode === 'ArrowRight' || keyCode === 'Enter') && isFirstChar\n\n const hasNextField = index < refListArray.length - 1\n\n if (hasNextField && (isMovingForward || isExplicitForward)) {\n // stop in case there is no next input element\n if (!refListArray[index + 1].current) {\n return // stop here\n }\n const nextSibling = refListArray[index + 1]?.current\n\n if (nextSibling) {\n setCursorPosition(nextSibling, 0, { withoutDelay: true })\n }\n\n // When the cursor is at the end of the input\n // and the user types a number, we want to set the value on the next input.\n if (\n parseFloat(keyCode) <= 9 &&\n firstSelectionStart === target.size\n ) {\n const name = toCapitalized(\n nextSibling\n .getAttribute('class')\n .match(/__input--(day|month|year)($|\\s)/)[1]\n )\n const mode = nextSibling\n .getAttribute('id')\n .match(/-(start|end)-(day|month|year)/)[1]\n\n dateSetters[`set_${mode}${name}`]({\n persist: () => null,\n ...event,\n target: {\n value: keyCode + nextSibling.value.slice(1),\n },\n })\n\n setCursorPosition(nextSibling, 1)\n }\n } else if (index > 0 && firstSelectionStart === firstSelectionEnd) {\n const isMovingBackward =\n keyCode === 'ArrowLeft' && firstSelectionStart === 0\n const isPressingBackspace =\n keyCode === 'Backspace' && firstSelectionStart <= 1\n\n if (isMovingBackward || isPressingBackspace) {\n const prevSibling = refListArray[index - 1]?.current\n if (prevSibling) {\n const endPos = prevSibling.value.length\n setCursorPosition(prevSibling, endPos, {\n withoutDelay: true,\n })\n }\n }\n }\n },\n [correctInvalidDate, dateSetters]\n )\n\n const onInputHandler = useCallback(\n (event) => {\n const target = event.currentTarget\n\n // Add support for \"backspace\" on Android virtual keyboard\n if (\n IS_ANDROID &&\n event.nativeEvent.inputType === 'deleteContentBackward' &&\n target.selectionStart === 0 &&\n target.selectionEnd === 0\n ) {\n onKeyDownHandler({\n ...event,\n key: 'Backspace',\n })\n }\n },\n [onKeyDownHandler]\n )\n\n const getPlaceholderChar = useCallback(\n (value: string) => {\n const index = maskOrder.indexOf(value)\n return maskPlaceholder[index]\n },\n [maskOrder, maskPlaceholder]\n )\n\n // TODO: Replace with MultiInputMask\n const generateDateList = useCallback(\n (\n element: Omit<React.HTMLProps<HTMLInputElement>, 'size'> &\n DatePickerEventAttributes,\n mode: 'start' | 'end'\n ) => {\n return maskList.map((value, i) => {\n const state = value.slice(0, 1)\n const placeholderChar = getPlaceholderChar(value)\n const { day, month, year } = translation\n const isRangeLabel = isRange ? `${translation[mode]} ` : ''\n\n if (!separatorRegExp.test(value)) {\n if (!inputElement) {\n element = {\n ...element,\n onInput: onInputHandler,\n onKeyDown: onKeyDownHandler,\n onPaste: pasteHandler,\n onFocus: (e) => {\n focusMode.current = mode\n onFocusHandler(e)\n },\n onBlur: onBlurHandler,\n placeholderChar,\n }\n }\n\n // this makes it possible to use a vanilla <input /> like: input_element=\"input\"\n const DateField =\n inputElement && React.isValidElement(inputElement)\n ? inputElement.type\n : InputElement\n\n const inputSizeClassName =\n size && `dnb-date-picker__input--${size}`\n\n switch (state) {\n case 'd':\n refList.current.push(inputRefs.current[`${mode}DayRef`])\n\n return (\n <React.Fragment key={'dd' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-day`}\n key={'di' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--day',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}DayRef`]}\n onChange={dateSetters[`set_${mode}Day`]}\n value={inputDates[`__${mode}Day`] || ''}\n aria-labelledby={`${id}-${mode}-day-label`}\n />\n <label\n key={'dl' + i}\n hidden\n id={`${id}-${mode}-day-label`}\n htmlFor={`${id}-${mode}-day`}\n >\n {isRangeLabel + day}\n </label>\n </React.Fragment>\n )\n case 'm':\n refList.current.push(inputRefs.current[`${mode}MonthRef`])\n\n return (\n <React.Fragment key={'mm' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-month`}\n key={'mi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--month',\n inputSizeClassName\n )}\n size={2}\n mask={[/[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}MonthRef`]}\n onChange={dateSetters[`set_${mode}Month`]}\n value={inputDates[`__${mode}Month`] || ''}\n aria-labelledby={`${id}-${mode}-month-label`}\n />\n <label\n key={'ml' + i}\n hidden\n id={`${id}-${mode}-month-label`}\n htmlFor={`${id}-${mode}-month`}\n >\n {isRangeLabel + month}\n </label>\n </React.Fragment>\n )\n case 'y':\n refList.current.push(inputRefs.current[`${mode}YearRef`])\n\n return (\n <React.Fragment key={'yy' + i}>\n <DateField\n {...element}\n id={`${id}-${mode}-year`}\n key={'yi' + i}\n className={classnames(\n element.className,\n 'dnb-date-picker__input',\n 'dnb-date-picker__input--year',\n inputSizeClassName\n )}\n size={4}\n mask={[/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs.current[`${mode}YearRef`]}\n onChange={dateSetters[`set_${mode}Year`]}\n value={inputDates[`__${mode}Year`] || ''}\n aria-labelledby={`${id}-${mode}-year-label`}\n />\n <label\n key={'yl' + i}\n hidden\n id={`${id}-${mode}-year-label`}\n htmlFor={`${id}-${mode}-year`}\n >\n {isRangeLabel + year}\n </label>\n </React.Fragment>\n )\n }\n }\n return (\n <span\n key={'s' + i}\n className=\"dnb-date-picker--separator\"\n aria-hidden\n >\n {placeholderChar}\n </span>\n )\n })\n },\n [\n maskList,\n getPlaceholderChar,\n translation,\n isRange,\n separatorRegExp,\n inputElement,\n size,\n onInputHandler,\n onKeyDownHandler,\n pasteHandler,\n onBlurHandler,\n onFocusHandler,\n id,\n dateSetters,\n inputDates,\n ]\n )\n\n const renderInputElement = useCallback(\n (\n element: React.HTMLProps<HTMLInputElement> &\n DatePickerEventAttributes\n ) => {\n refList.current = []\n const startDateList = generateDateList(element, 'start')\n const endDateList = generateDateList(element, 'end')\n\n return (\n <span\n id={`${id}-input`}\n className=\"dnb-date-picker__input__wrapper\"\n >\n {startDateList}\n {isRange && (\n <span className=\"dnb-date-picker--separator\" aria-hidden>\n {' – '}\n </span>\n )}\n {isRange && endDateList}\n </span>\n )\n },\n [id, isRange, generateDateList]\n )\n\n const ariaLabel = useMemo(\n () =>\n selectedDateTitle\n ? `${selectedDateTitle}, ${translation.openPickerText}`\n : translation.openPickerText,\n [selectedDateTitle, translation]\n )\n\n validateDOMAttributes(props, attributes)\n validateDOMAttributes(null, submitAttributes)\n\n const SubmitElement: React.ElementType = useMemo(\n () => (showInput ? SubmitButton : Button),\n [showInput]\n )\n\n if (!showInput) {\n // Use Button inner ref\n submitAttributes.innerRef = submitAttributes.ref\n submitAttributes.ref = null\n }\n\n return (\n <fieldset className=\"dnb-date-picker__fieldset\" lang={lang}>\n {label && <legend className=\"dnb-sr-only\">{label}</legend>}\n <Input\n id={`${id}__input`}\n input_state={disabled ? 'disabled' : focusState}\n input_element={\n inputElement && typeof inputElement !== 'string'\n ? typeof inputElement === 'function'\n ? inputElement(props)\n : inputElement\n : renderInputElement\n }\n disabled={disabled || skeleton}\n skeleton={skeleton}\n size={size}\n status={!opened ? status : null}\n status_state={statusState}\n {...statusProps}\n submit_element={\n <SubmitElement\n id={id}\n disabled={disabled}\n skeleton={skeleton}\n className={classnames(\n showInput && 'dnb-button--input-button',\n opened ? 'dnb-button--active' : null\n )}\n aria-label={ariaLabel}\n title={title}\n size={size}\n status={status}\n status_state={statusState}\n type=\"button\"\n icon=\"calendar\"\n variant=\"secondary\"\n on_submit={onSubmit}\n on_click={onSubmit}\n {...submitAttributes}\n {...statusProps}\n />\n }\n lang={lang}\n {...attributes}\n />\n </fieldset>\n )\n}\n\nexport default DatePickerInput\n\nfunction setCursorPosition(\n target: HTMLInputElement,\n position = 0,\n options?: { withoutDelay?: boolean }\n) {\n target.focus()\n\n const select = () => {\n target.setSelectionRange(position, position)\n }\n\n // Delay for correct iOS Safari appearance\n if (!options?.withoutDelay && process.env.NODE_ENV !== 'test') {\n setTimeout(select, 0)\n } else {\n select()\n }\n}\n\nfunction InputElement({ className, value, ...props }: TextMaskProps) {\n return (\n <TextMask\n guide={true}\n inputMode=\"numeric\"\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n autoComplete=\"off\"\n autoCapitalize=\"none\"\n spellCheck={false}\n autoCorrect=\"off\"\n className={classnames(\n className,\n /\\d+/.test(String(value)) && 'dnb-date-picker__input--highlight'\n )}\n value={value}\n {...props}\n />\n )\n}\n\nfunction syncDateRefs(\n dateRefs: React.MutableRefObject<Record<string, string>>,\n inputDates: DatePickerInputDates\n) {\n for (const date in dateRefs.current) {\n const dateRefValue = dateRefs.current[date]\n const inputDateValue = inputDates[`__${date}`]\n\n if (dateRefValue !== inputDateValue) {\n dateRefs.current[date] = inputDateValue\n }\n }\n}\n\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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","ignoreList":[]}