@dnb/eufemia 10.69.1 → 10.70.1

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 (918) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/cjs/components/aria-live/AriaLiveDocs.d.ts +2 -0
  3. package/cjs/components/aria-live/AriaLiveDocs.js +54 -0
  4. package/cjs/components/aria-live/AriaLiveDocs.js.map +1 -0
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/avatar/Avatar.d.ts +10 -0
  8. package/cjs/components/avatar/Avatar.js +12 -3
  9. package/cjs/components/avatar/Avatar.js.map +1 -1
  10. package/cjs/components/avatar/AvatarDocs.d.ts +3 -0
  11. package/cjs/components/avatar/AvatarDocs.js +101 -0
  12. package/cjs/components/avatar/AvatarDocs.js.map +1 -0
  13. package/cjs/components/avatar/AvatarGroup.d.ts +10 -0
  14. package/cjs/components/avatar/AvatarGroup.js +17 -5
  15. package/cjs/components/avatar/AvatarGroup.js.map +1 -1
  16. package/cjs/components/avatar/style/dnb-avatar.css +8 -0
  17. package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
  18. package/cjs/components/avatar/style/dnb-avatar.scss +9 -0
  19. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  20. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  21. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  22. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  23. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  24. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  25. package/cjs/components/badge/BadgeDocs.d.ts +2 -0
  26. package/cjs/components/badge/BadgeDocs.js +54 -0
  27. package/cjs/components/badge/BadgeDocs.js.map +1 -0
  28. package/cjs/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  29. package/cjs/components/breadcrumb/BreadcrumbDocs.js +125 -0
  30. package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  31. package/cjs/components/button/Button.d.ts +0 -3
  32. package/cjs/components/button/ButtonDocs.d.ts +1 -0
  33. package/cjs/components/button/ButtonDocs.js +8 -1
  34. package/cjs/components/button/ButtonDocs.js.map +1 -1
  35. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  36. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  37. package/cjs/components/date-picker/DatePickerAddon.js +1 -3
  38. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerCalc.d.ts +13 -0
  40. package/cjs/components/date-picker/DatePickerCalc.js +44 -0
  41. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  42. package/cjs/components/date-picker/DatePickerCalendar.js +13 -11
  43. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  44. package/cjs/components/date-picker/DatePickerContext.d.ts +1 -1
  45. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  46. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  47. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  48. package/cjs/components/date-picker/DatePickerInput.js +120 -94
  49. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  50. package/cjs/components/date-picker/DatePickerProvider.js +2 -2
  51. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  52. package/cjs/components/date-picker/hooks/useViews.d.ts +2 -4
  53. package/cjs/components/date-picker/hooks/useViews.js +37 -23
  54. package/cjs/components/date-picker/hooks/useViews.js.map +1 -1
  55. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  56. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  57. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  58. package/cjs/components/dialog/DialogDocs.d.ts +1 -0
  59. package/cjs/components/dialog/DialogDocs.js +20 -3
  60. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  61. package/cjs/components/drawer/DrawerDocs.d.ts +2 -0
  62. package/cjs/components/drawer/DrawerDocs.js +69 -0
  63. package/cjs/components/drawer/DrawerDocs.js.map +1 -0
  64. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  65. package/cjs/components/dropdown/DropdownDocs.d.ts +3 -0
  66. package/cjs/components/dropdown/DropdownDocs.js +186 -0
  67. package/cjs/components/dropdown/DropdownDocs.js.map +1 -0
  68. package/cjs/components/flex/ContainerDocs.js +1 -1
  69. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  70. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  71. package/cjs/components/flex/ItemDocs.js +39 -0
  72. package/cjs/components/flex/ItemDocs.js.map +1 -0
  73. package/cjs/components/form-label/FormLabelDocs.d.ts +2 -0
  74. package/cjs/components/form-label/FormLabelDocs.js +59 -0
  75. package/cjs/components/form-label/FormLabelDocs.js.map +1 -0
  76. package/cjs/components/form-row/FormRow.d.ts +45 -0
  77. package/cjs/components/form-row/FormRowDocs.d.ts +2 -0
  78. package/cjs/components/form-row/FormRowDocs.js +89 -0
  79. package/cjs/components/form-row/FormRowDocs.js.map +1 -0
  80. package/cjs/components/form-set/FormSet.d.ts +18 -0
  81. package/cjs/components/form-set/FormSetDocs.d.ts +3 -0
  82. package/cjs/components/form-set/FormSetDocs.js +56 -0
  83. package/cjs/components/form-set/FormSetDocs.js.map +1 -0
  84. package/cjs/components/form-status/FormStatus.d.ts +18 -18
  85. package/cjs/components/form-status/FormStatusDocs.d.ts +2 -0
  86. package/cjs/components/form-status/FormStatusDocs.js +89 -0
  87. package/cjs/components/form-status/FormStatusDocs.js.map +1 -0
  88. package/cjs/components/global-error/GlobalError.d.ts +12 -0
  89. package/cjs/components/global-error/GlobalError.js +15 -6
  90. package/cjs/components/global-error/GlobalError.js.map +1 -1
  91. package/cjs/components/global-error/GlobalErrorDocs.js +14 -4
  92. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -1
  93. package/cjs/components/global-status/GlobalStatus.d.ts +37 -58
  94. package/cjs/components/global-status/GlobalStatusController.d.ts +0 -9
  95. package/cjs/components/global-status/GlobalStatusDocs.d.ts +6 -0
  96. package/cjs/components/global-status/GlobalStatusDocs.js +192 -0
  97. package/cjs/components/global-status/GlobalStatusDocs.js.map +1 -0
  98. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  99. package/cjs/components/grid/ItemDocs.js +19 -0
  100. package/cjs/components/grid/ItemDocs.js.map +1 -0
  101. package/cjs/components/heading/HeadingDocs.d.ts +2 -0
  102. package/cjs/components/heading/HeadingDocs.js +79 -0
  103. package/cjs/components/heading/HeadingDocs.js.map +1 -0
  104. package/cjs/components/help-button/HelpButtonDocs.d.ts +3 -0
  105. package/cjs/components/help-button/HelpButtonDocs.js +46 -0
  106. package/cjs/components/help-button/HelpButtonDocs.js.map +1 -0
  107. package/cjs/components/icon/IconDocs.d.ts +2 -0
  108. package/cjs/components/icon/IconDocs.js +59 -0
  109. package/cjs/components/icon/IconDocs.js.map +1 -0
  110. package/cjs/components/icon/IconPrimaryDocs.d.ts +2 -0
  111. package/cjs/components/icon/IconPrimaryDocs.js +24 -0
  112. package/cjs/components/icon/IconPrimaryDocs.js.map +1 -0
  113. package/cjs/components/info-card/InfoCard.d.ts +6 -1
  114. package/cjs/components/info-card/InfoCard.js +4 -3
  115. package/cjs/components/info-card/InfoCard.js.map +1 -1
  116. package/cjs/components/info-card/InfoCardDocs.js +8 -3
  117. package/cjs/components/info-card/InfoCardDocs.js.map +1 -1
  118. package/cjs/components/input/Input.d.ts +0 -21
  119. package/cjs/components/input/InputDocs.d.ts +1 -0
  120. package/cjs/components/input/InputDocs.js +36 -4
  121. package/cjs/components/input/InputDocs.js.map +1 -1
  122. package/cjs/components/input-masked/InputMasked.d.ts +0 -15
  123. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  124. package/cjs/components/input-masked/InputMaskedDocs.js +70 -1
  125. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  126. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  127. package/cjs/components/input-masked/MultiInputMaskedDocs.js +93 -0
  128. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  129. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  130. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  131. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  132. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  133. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  134. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  135. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  136. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  137. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  138. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  139. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  140. package/cjs/components/modal/ModalDocs.d.ts +3 -0
  141. package/cjs/components/modal/ModalDocs.js +191 -0
  142. package/cjs/components/modal/ModalDocs.js.map +1 -0
  143. package/cjs/components/pagination/Pagination.d.ts +35 -33
  144. package/cjs/components/pagination/Pagination.js +2 -0
  145. package/cjs/components/pagination/Pagination.js.map +1 -1
  146. package/cjs/components/pagination/PaginationDocs.d.ts +3 -0
  147. package/cjs/components/pagination/PaginationDocs.js +191 -0
  148. package/cjs/components/pagination/PaginationDocs.js.map +1 -0
  149. package/cjs/components/pagination/PaginationHelpers.d.ts +0 -3
  150. package/cjs/components/pagination/PaginationInfinity.d.ts +0 -3
  151. package/cjs/components/pagination/PaginationProvider.js +1 -1
  152. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  153. package/cjs/components/radio/Radio.d.ts +12 -15
  154. package/cjs/components/radio/RadioDocs.d.ts +5 -0
  155. package/cjs/components/radio/RadioDocs.js +145 -0
  156. package/cjs/components/radio/RadioDocs.js.map +1 -0
  157. package/cjs/components/radio/RadioGroup.d.ts +0 -30
  158. package/cjs/components/section/Section.js +2 -7
  159. package/cjs/components/section/Section.js.map +1 -1
  160. package/cjs/components/section/SectionDocs.js +1 -1
  161. package/cjs/components/section/SectionDocs.js.map +1 -1
  162. package/cjs/components/skeleton/SkeletonDocs.d.ts +2 -0
  163. package/cjs/components/skeleton/SkeletonDocs.js +44 -0
  164. package/cjs/components/skeleton/SkeletonDocs.js.map +1 -0
  165. package/cjs/components/skeleton/SkeletonHelper.d.ts +0 -6
  166. package/cjs/components/skip-content/SkipContentDocs.d.ts +2 -0
  167. package/cjs/components/skip-content/SkipContentDocs.js +29 -0
  168. package/cjs/components/skip-content/SkipContentDocs.js.map +1 -0
  169. package/cjs/components/slider/SliderDocs.js +2 -2
  170. package/cjs/components/slider/SliderDocs.js.map +1 -1
  171. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  172. package/cjs/components/space/SpaceDocs.js +61 -0
  173. package/cjs/components/space/SpaceDocs.js.map +1 -0
  174. package/cjs/components/switch/SwitchDocs.js +2 -2
  175. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  176. package/cjs/components/tag/TagDocs.d.ts +4 -0
  177. package/cjs/components/tag/TagDocs.js +93 -0
  178. package/cjs/components/tag/TagDocs.js.map +1 -0
  179. package/cjs/components/textarea/Textarea.d.ts +0 -12
  180. package/cjs/components/textarea/TextareaDocs.d.ts +1 -0
  181. package/cjs/components/textarea/TextareaDocs.js +26 -4
  182. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  183. package/cjs/components/timeline/TimelineDocs.d.ts +3 -0
  184. package/cjs/components/timeline/TimelineDocs.js +66 -0
  185. package/cjs/components/timeline/TimelineDocs.js.map +1 -0
  186. package/cjs/components/toggle-button/ToggleButton.d.ts +0 -3
  187. package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  188. package/cjs/components/toggle-button/ToggleButtonDocs.js +8 -1
  189. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  190. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  191. package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  192. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +9 -2
  193. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  194. package/cjs/components/tooltip/TooltipDocs.d.ts +2 -0
  195. package/cjs/components/tooltip/TooltipDocs.js +79 -0
  196. package/cjs/components/tooltip/TooltipDocs.js.map +1 -0
  197. package/cjs/components/upload/Upload.js +6 -4
  198. package/cjs/components/upload/Upload.js.map +1 -1
  199. package/cjs/components/upload/UploadDocs.js +5 -0
  200. package/cjs/components/upload/UploadDocs.js.map +1 -1
  201. package/cjs/components/upload/UploadFileList.js +3 -1
  202. package/cjs/components/upload/UploadFileList.js.map +1 -1
  203. package/cjs/components/upload/UploadFileListCell.d.ts +6 -1
  204. package/cjs/components/upload/UploadFileListCell.js +8 -5
  205. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  206. package/cjs/components/upload/types.d.ts +5 -0
  207. package/cjs/components/upload/types.js.map +1 -1
  208. package/cjs/components/upload/useUpload.d.ts +1 -0
  209. package/cjs/components/upload/useUpload.js +9 -2
  210. package/cjs/components/upload/useUpload.js.map +1 -1
  211. package/cjs/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  212. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js +19 -0
  213. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  214. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  215. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  216. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  217. package/cjs/extensions/forms/DataContext/Context.d.ts +6 -5
  218. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  219. package/cjs/extensions/forms/DataContext/Provider/Provider.js +29 -35
  220. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  221. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -0
  222. package/cjs/extensions/forms/Field/Date/Date.js +8 -8
  223. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  224. package/cjs/extensions/forms/Field/Password/Password.js +2 -1
  225. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  226. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  227. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  228. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  229. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  230. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  231. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  232. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  233. package/cjs/extensions/forms/Field/Upload/Upload.js +10 -2
  234. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  235. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  236. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  237. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  238. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  239. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  240. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  241. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  242. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  243. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  244. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  245. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  246. package/cjs/extensions/forms/Value/Date/Date.d.ts +0 -6
  247. package/cjs/extensions/forms/Value/Date/Date.js +14 -38
  248. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  249. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  250. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  251. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  252. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  253. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  254. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -5
  255. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  256. package/cjs/extensions/payment-card/PaymentCard.d.ts +7 -7
  257. package/cjs/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  258. package/cjs/extensions/payment-card/PaymentCardDocs.js +205 -0
  259. package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  260. package/cjs/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  261. package/cjs/fragments/scroll-view/ScrollViewDocs.js +19 -0
  262. package/cjs/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  263. package/cjs/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  264. package/cjs/fragments/text-counter/TextCounterDocs.js +29 -0
  265. package/cjs/fragments/text-counter/TextCounterDocs.js.map +1 -0
  266. package/cjs/shared/Eufemia.d.ts +1 -1
  267. package/cjs/shared/Eufemia.js +2 -2
  268. package/cjs/shared/Eufemia.js.map +1 -1
  269. package/cjs/shared/MediaQueryDocs.d.ts +2 -0
  270. package/cjs/shared/MediaQueryDocs.js +34 -0
  271. package/cjs/shared/MediaQueryDocs.js.map +1 -0
  272. package/cjs/shared/ThemeDocs.d.ts +2 -0
  273. package/cjs/shared/ThemeDocs.js +39 -0
  274. package/cjs/shared/ThemeDocs.js.map +1 -0
  275. package/cjs/shared/helpers.d.ts +1 -0
  276. package/cjs/shared/helpers.js +7 -0
  277. package/cjs/shared/helpers.js.map +1 -1
  278. package/cjs/shared/locales/en-GB.d.ts +1 -0
  279. package/cjs/shared/locales/en-GB.js +1 -0
  280. package/cjs/shared/locales/en-GB.js.map +1 -1
  281. package/cjs/shared/locales/en-US.d.ts +1 -0
  282. package/cjs/shared/locales/index.d.ts +2 -0
  283. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  284. package/cjs/shared/locales/nb-NO.js +1 -0
  285. package/cjs/shared/locales/nb-NO.js.map +1 -1
  286. package/cjs/shared/locales/sv-SE.d.ts +1 -0
  287. package/cjs/shared/locales/sv-SE.js +3 -2
  288. package/cjs/shared/locales/sv-SE.js.map +1 -1
  289. package/cjs/style/core/scopes.scss +1 -1
  290. package/cjs/style/dnb-ui-basis.css +1 -1
  291. package/cjs/style/dnb-ui-basis.min.css +1 -1
  292. package/cjs/style/dnb-ui-body.css +1 -1
  293. package/cjs/style/dnb-ui-body.min.css +1 -1
  294. package/cjs/style/dnb-ui-components.css +21 -0
  295. package/cjs/style/dnb-ui-components.min.css +1 -1
  296. package/cjs/style/dnb-ui-core.css +1 -1
  297. package/cjs/style/dnb-ui-core.min.css +1 -1
  298. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  299. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  300. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  301. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  302. package/cjs/style/themes/theme-ui/ui-theme-components.css +26 -5
  303. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  304. package/components/aria-live/AriaLiveDocs.d.ts +2 -0
  305. package/components/aria-live/AriaLiveDocs.js +48 -0
  306. package/components/aria-live/AriaLiveDocs.js.map +1 -0
  307. package/components/autocomplete/AutocompleteDocs.js +3 -3
  308. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  309. package/components/avatar/Avatar.d.ts +10 -0
  310. package/components/avatar/Avatar.js +12 -3
  311. package/components/avatar/Avatar.js.map +1 -1
  312. package/components/avatar/AvatarDocs.d.ts +3 -0
  313. package/components/avatar/AvatarDocs.js +95 -0
  314. package/components/avatar/AvatarDocs.js.map +1 -0
  315. package/components/avatar/AvatarGroup.d.ts +10 -0
  316. package/components/avatar/AvatarGroup.js +17 -5
  317. package/components/avatar/AvatarGroup.js.map +1 -1
  318. package/components/avatar/style/dnb-avatar.css +8 -0
  319. package/components/avatar/style/dnb-avatar.min.css +1 -1
  320. package/components/avatar/style/dnb-avatar.scss +9 -0
  321. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  322. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  323. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  324. package/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  325. package/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  326. package/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  327. package/components/badge/BadgeDocs.d.ts +2 -0
  328. package/components/badge/BadgeDocs.js +48 -0
  329. package/components/badge/BadgeDocs.js.map +1 -0
  330. package/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  331. package/components/breadcrumb/BreadcrumbDocs.js +119 -0
  332. package/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  333. package/components/button/Button.d.ts +0 -3
  334. package/components/button/ButtonDocs.d.ts +1 -0
  335. package/components/button/ButtonDocs.js +7 -0
  336. package/components/button/ButtonDocs.js.map +1 -1
  337. package/components/checkbox/CheckboxDocs.js +2 -2
  338. package/components/checkbox/CheckboxDocs.js.map +1 -1
  339. package/components/date-picker/DatePickerAddon.js +1 -3
  340. package/components/date-picker/DatePickerAddon.js.map +1 -1
  341. package/components/date-picker/DatePickerCalc.d.ts +13 -0
  342. package/components/date-picker/DatePickerCalc.js +41 -0
  343. package/components/date-picker/DatePickerCalc.js.map +1 -1
  344. package/components/date-picker/DatePickerCalendar.js +13 -11
  345. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  346. package/components/date-picker/DatePickerContext.d.ts +1 -1
  347. package/components/date-picker/DatePickerContext.js.map +1 -1
  348. package/components/date-picker/DatePickerDocs.js +1 -1
  349. package/components/date-picker/DatePickerDocs.js.map +1 -1
  350. package/components/date-picker/DatePickerInput.js +121 -95
  351. package/components/date-picker/DatePickerInput.js.map +1 -1
  352. package/components/date-picker/DatePickerProvider.js +2 -2
  353. package/components/date-picker/DatePickerProvider.js.map +1 -1
  354. package/components/date-picker/hooks/useViews.d.ts +2 -4
  355. package/components/date-picker/hooks/useViews.js +38 -24
  356. package/components/date-picker/hooks/useViews.js.map +1 -1
  357. package/components/date-picker/style/dnb-date-picker.css +4 -0
  358. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  359. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  360. package/components/dialog/DialogDocs.d.ts +1 -0
  361. package/components/dialog/DialogDocs.js +19 -2
  362. package/components/dialog/DialogDocs.js.map +1 -1
  363. package/components/drawer/DrawerDocs.d.ts +2 -0
  364. package/components/drawer/DrawerDocs.js +63 -0
  365. package/components/drawer/DrawerDocs.js.map +1 -0
  366. package/components/dropdown/Dropdown.d.ts +20 -20
  367. package/components/dropdown/DropdownDocs.d.ts +3 -0
  368. package/components/dropdown/DropdownDocs.js +180 -0
  369. package/components/dropdown/DropdownDocs.js.map +1 -0
  370. package/components/flex/ContainerDocs.js +1 -1
  371. package/components/flex/ContainerDocs.js.map +1 -1
  372. package/components/flex/ItemDocs.d.ts +2 -0
  373. package/components/flex/ItemDocs.js +33 -0
  374. package/components/flex/ItemDocs.js.map +1 -0
  375. package/components/form-label/FormLabelDocs.d.ts +2 -0
  376. package/components/form-label/FormLabelDocs.js +53 -0
  377. package/components/form-label/FormLabelDocs.js.map +1 -0
  378. package/components/form-row/FormRow.d.ts +45 -0
  379. package/components/form-row/FormRowDocs.d.ts +2 -0
  380. package/components/form-row/FormRowDocs.js +83 -0
  381. package/components/form-row/FormRowDocs.js.map +1 -0
  382. package/components/form-set/FormSet.d.ts +18 -0
  383. package/components/form-set/FormSetDocs.d.ts +3 -0
  384. package/components/form-set/FormSetDocs.js +50 -0
  385. package/components/form-set/FormSetDocs.js.map +1 -0
  386. package/components/form-status/FormStatus.d.ts +18 -18
  387. package/components/form-status/FormStatusDocs.d.ts +2 -0
  388. package/components/form-status/FormStatusDocs.js +83 -0
  389. package/components/form-status/FormStatusDocs.js.map +1 -0
  390. package/components/global-error/GlobalError.d.ts +12 -0
  391. package/components/global-error/GlobalError.js +15 -6
  392. package/components/global-error/GlobalError.js.map +1 -1
  393. package/components/global-error/GlobalErrorDocs.js +14 -4
  394. package/components/global-error/GlobalErrorDocs.js.map +1 -1
  395. package/components/global-status/GlobalStatus.d.ts +37 -58
  396. package/components/global-status/GlobalStatusController.d.ts +0 -9
  397. package/components/global-status/GlobalStatusDocs.d.ts +6 -0
  398. package/components/global-status/GlobalStatusDocs.js +186 -0
  399. package/components/global-status/GlobalStatusDocs.js.map +1 -0
  400. package/components/grid/ItemDocs.d.ts +2 -0
  401. package/components/grid/ItemDocs.js +13 -0
  402. package/components/grid/ItemDocs.js.map +1 -0
  403. package/components/heading/HeadingDocs.d.ts +2 -0
  404. package/components/heading/HeadingDocs.js +73 -0
  405. package/components/heading/HeadingDocs.js.map +1 -0
  406. package/components/help-button/HelpButtonDocs.d.ts +3 -0
  407. package/components/help-button/HelpButtonDocs.js +40 -0
  408. package/components/help-button/HelpButtonDocs.js.map +1 -0
  409. package/components/icon/IconDocs.d.ts +2 -0
  410. package/components/icon/IconDocs.js +53 -0
  411. package/components/icon/IconDocs.js.map +1 -0
  412. package/components/icon/IconPrimaryDocs.d.ts +2 -0
  413. package/components/icon/IconPrimaryDocs.js +18 -0
  414. package/components/icon/IconPrimaryDocs.js.map +1 -0
  415. package/components/info-card/InfoCard.d.ts +6 -1
  416. package/components/info-card/InfoCard.js +4 -3
  417. package/components/info-card/InfoCard.js.map +1 -1
  418. package/components/info-card/InfoCardDocs.js +8 -3
  419. package/components/info-card/InfoCardDocs.js.map +1 -1
  420. package/components/input/Input.d.ts +0 -21
  421. package/components/input/InputDocs.d.ts +1 -0
  422. package/components/input/InputDocs.js +35 -3
  423. package/components/input/InputDocs.js.map +1 -1
  424. package/components/input-masked/InputMasked.d.ts +0 -15
  425. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  426. package/components/input-masked/InputMaskedDocs.js +69 -0
  427. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  428. package/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  429. package/components/input-masked/MultiInputMaskedDocs.js +87 -0
  430. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  431. package/components/input-masked/style/dnb-input-masked.css +9 -0
  432. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  433. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  434. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  435. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  436. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  437. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  438. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  439. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  440. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  441. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  442. package/components/modal/ModalDocs.d.ts +3 -0
  443. package/components/modal/ModalDocs.js +185 -0
  444. package/components/modal/ModalDocs.js.map +1 -0
  445. package/components/pagination/Pagination.d.ts +35 -33
  446. package/components/pagination/Pagination.js +2 -0
  447. package/components/pagination/Pagination.js.map +1 -1
  448. package/components/pagination/PaginationDocs.d.ts +3 -0
  449. package/components/pagination/PaginationDocs.js +185 -0
  450. package/components/pagination/PaginationDocs.js.map +1 -0
  451. package/components/pagination/PaginationHelpers.d.ts +0 -3
  452. package/components/pagination/PaginationInfinity.d.ts +0 -3
  453. package/components/pagination/PaginationProvider.js +1 -1
  454. package/components/pagination/PaginationProvider.js.map +1 -1
  455. package/components/radio/Radio.d.ts +12 -15
  456. package/components/radio/RadioDocs.d.ts +5 -0
  457. package/components/radio/RadioDocs.js +139 -0
  458. package/components/radio/RadioDocs.js.map +1 -0
  459. package/components/radio/RadioGroup.d.ts +0 -30
  460. package/components/section/Section.js +1 -6
  461. package/components/section/Section.js.map +1 -1
  462. package/components/section/SectionDocs.js +1 -1
  463. package/components/section/SectionDocs.js.map +1 -1
  464. package/components/skeleton/SkeletonDocs.d.ts +2 -0
  465. package/components/skeleton/SkeletonDocs.js +38 -0
  466. package/components/skeleton/SkeletonDocs.js.map +1 -0
  467. package/components/skeleton/SkeletonHelper.d.ts +0 -6
  468. package/components/skip-content/SkipContentDocs.d.ts +2 -0
  469. package/components/skip-content/SkipContentDocs.js +23 -0
  470. package/components/skip-content/SkipContentDocs.js.map +1 -0
  471. package/components/slider/SliderDocs.js +2 -2
  472. package/components/slider/SliderDocs.js.map +1 -1
  473. package/components/space/SpaceDocs.d.ts +3 -0
  474. package/components/space/SpaceDocs.js +55 -0
  475. package/components/space/SpaceDocs.js.map +1 -0
  476. package/components/switch/SwitchDocs.js +2 -2
  477. package/components/switch/SwitchDocs.js.map +1 -1
  478. package/components/tag/TagDocs.d.ts +4 -0
  479. package/components/tag/TagDocs.js +87 -0
  480. package/components/tag/TagDocs.js.map +1 -0
  481. package/components/textarea/Textarea.d.ts +0 -12
  482. package/components/textarea/TextareaDocs.d.ts +1 -0
  483. package/components/textarea/TextareaDocs.js +25 -3
  484. package/components/textarea/TextareaDocs.js.map +1 -1
  485. package/components/timeline/TimelineDocs.d.ts +3 -0
  486. package/components/timeline/TimelineDocs.js +60 -0
  487. package/components/timeline/TimelineDocs.js.map +1 -0
  488. package/components/toggle-button/ToggleButton.d.ts +0 -3
  489. package/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  490. package/components/toggle-button/ToggleButtonDocs.js +7 -0
  491. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  492. package/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  493. package/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  494. package/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  495. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  496. package/components/tooltip/TooltipDocs.d.ts +2 -0
  497. package/components/tooltip/TooltipDocs.js +73 -0
  498. package/components/tooltip/TooltipDocs.js.map +1 -0
  499. package/components/upload/Upload.js +6 -4
  500. package/components/upload/Upload.js.map +1 -1
  501. package/components/upload/UploadDocs.js +5 -0
  502. package/components/upload/UploadDocs.js.map +1 -1
  503. package/components/upload/UploadFileList.js +3 -1
  504. package/components/upload/UploadFileList.js.map +1 -1
  505. package/components/upload/UploadFileListCell.d.ts +6 -1
  506. package/components/upload/UploadFileListCell.js +8 -5
  507. package/components/upload/UploadFileListCell.js.map +1 -1
  508. package/components/upload/types.d.ts +5 -0
  509. package/components/upload/types.js.map +1 -1
  510. package/components/upload/useUpload.d.ts +1 -0
  511. package/components/upload/useUpload.js +7 -1
  512. package/components/upload/useUpload.js.map +1 -1
  513. package/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  514. package/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  515. package/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  516. package/es/components/aria-live/AriaLiveDocs.d.ts +2 -0
  517. package/es/components/aria-live/AriaLiveDocs.js +48 -0
  518. package/es/components/aria-live/AriaLiveDocs.js.map +1 -0
  519. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  520. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  521. package/es/components/avatar/Avatar.d.ts +10 -0
  522. package/es/components/avatar/Avatar.js +12 -3
  523. package/es/components/avatar/Avatar.js.map +1 -1
  524. package/es/components/avatar/AvatarDocs.d.ts +3 -0
  525. package/es/components/avatar/AvatarDocs.js +95 -0
  526. package/es/components/avatar/AvatarDocs.js.map +1 -0
  527. package/es/components/avatar/AvatarGroup.d.ts +10 -0
  528. package/es/components/avatar/AvatarGroup.js +17 -5
  529. package/es/components/avatar/AvatarGroup.js.map +1 -1
  530. package/es/components/avatar/style/dnb-avatar.css +8 -0
  531. package/es/components/avatar/style/dnb-avatar.min.css +1 -1
  532. package/es/components/avatar/style/dnb-avatar.scss +9 -0
  533. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  534. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  535. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  536. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  537. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  538. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  539. package/es/components/badge/BadgeDocs.d.ts +2 -0
  540. package/es/components/badge/BadgeDocs.js +48 -0
  541. package/es/components/badge/BadgeDocs.js.map +1 -0
  542. package/es/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  543. package/es/components/breadcrumb/BreadcrumbDocs.js +119 -0
  544. package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  545. package/es/components/button/Button.d.ts +0 -3
  546. package/es/components/button/ButtonDocs.d.ts +1 -0
  547. package/es/components/button/ButtonDocs.js +7 -0
  548. package/es/components/button/ButtonDocs.js.map +1 -1
  549. package/es/components/checkbox/CheckboxDocs.js +2 -2
  550. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  551. package/es/components/date-picker/DatePickerAddon.js +1 -3
  552. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  553. package/es/components/date-picker/DatePickerCalc.d.ts +13 -0
  554. package/es/components/date-picker/DatePickerCalc.js +39 -0
  555. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  556. package/es/components/date-picker/DatePickerCalendar.js +13 -11
  557. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  558. package/es/components/date-picker/DatePickerContext.d.ts +1 -1
  559. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  560. package/es/components/date-picker/DatePickerDocs.js +1 -1
  561. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  562. package/es/components/date-picker/DatePickerInput.js +116 -92
  563. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  564. package/es/components/date-picker/DatePickerProvider.js +2 -2
  565. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  566. package/es/components/date-picker/hooks/useViews.d.ts +2 -4
  567. package/es/components/date-picker/hooks/useViews.js +39 -25
  568. package/es/components/date-picker/hooks/useViews.js.map +1 -1
  569. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  570. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  571. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  572. package/es/components/dialog/DialogDocs.d.ts +1 -0
  573. package/es/components/dialog/DialogDocs.js +19 -2
  574. package/es/components/dialog/DialogDocs.js.map +1 -1
  575. package/es/components/drawer/DrawerDocs.d.ts +2 -0
  576. package/es/components/drawer/DrawerDocs.js +63 -0
  577. package/es/components/drawer/DrawerDocs.js.map +1 -0
  578. package/es/components/dropdown/Dropdown.d.ts +20 -20
  579. package/es/components/dropdown/DropdownDocs.d.ts +3 -0
  580. package/es/components/dropdown/DropdownDocs.js +180 -0
  581. package/es/components/dropdown/DropdownDocs.js.map +1 -0
  582. package/es/components/flex/ContainerDocs.js +1 -1
  583. package/es/components/flex/ContainerDocs.js.map +1 -1
  584. package/es/components/flex/ItemDocs.d.ts +2 -0
  585. package/es/components/flex/ItemDocs.js +33 -0
  586. package/es/components/flex/ItemDocs.js.map +1 -0
  587. package/es/components/form-label/FormLabelDocs.d.ts +2 -0
  588. package/es/components/form-label/FormLabelDocs.js +53 -0
  589. package/es/components/form-label/FormLabelDocs.js.map +1 -0
  590. package/es/components/form-row/FormRow.d.ts +45 -0
  591. package/es/components/form-row/FormRowDocs.d.ts +2 -0
  592. package/es/components/form-row/FormRowDocs.js +83 -0
  593. package/es/components/form-row/FormRowDocs.js.map +1 -0
  594. package/es/components/form-set/FormSet.d.ts +18 -0
  595. package/es/components/form-set/FormSetDocs.d.ts +3 -0
  596. package/es/components/form-set/FormSetDocs.js +50 -0
  597. package/es/components/form-set/FormSetDocs.js.map +1 -0
  598. package/es/components/form-status/FormStatus.d.ts +18 -18
  599. package/es/components/form-status/FormStatusDocs.d.ts +2 -0
  600. package/es/components/form-status/FormStatusDocs.js +83 -0
  601. package/es/components/form-status/FormStatusDocs.js.map +1 -0
  602. package/es/components/global-error/GlobalError.d.ts +12 -0
  603. package/es/components/global-error/GlobalError.js +14 -6
  604. package/es/components/global-error/GlobalError.js.map +1 -1
  605. package/es/components/global-error/GlobalErrorDocs.js +14 -4
  606. package/es/components/global-error/GlobalErrorDocs.js.map +1 -1
  607. package/es/components/global-status/GlobalStatus.d.ts +37 -58
  608. package/es/components/global-status/GlobalStatusController.d.ts +0 -9
  609. package/es/components/global-status/GlobalStatusDocs.d.ts +6 -0
  610. package/es/components/global-status/GlobalStatusDocs.js +186 -0
  611. package/es/components/global-status/GlobalStatusDocs.js.map +1 -0
  612. package/es/components/grid/ItemDocs.d.ts +2 -0
  613. package/es/components/grid/ItemDocs.js +13 -0
  614. package/es/components/grid/ItemDocs.js.map +1 -0
  615. package/es/components/heading/HeadingDocs.d.ts +2 -0
  616. package/es/components/heading/HeadingDocs.js +73 -0
  617. package/es/components/heading/HeadingDocs.js.map +1 -0
  618. package/es/components/help-button/HelpButtonDocs.d.ts +3 -0
  619. package/es/components/help-button/HelpButtonDocs.js +40 -0
  620. package/es/components/help-button/HelpButtonDocs.js.map +1 -0
  621. package/es/components/icon/IconDocs.d.ts +2 -0
  622. package/es/components/icon/IconDocs.js +53 -0
  623. package/es/components/icon/IconDocs.js.map +1 -0
  624. package/es/components/icon/IconPrimaryDocs.d.ts +2 -0
  625. package/es/components/icon/IconPrimaryDocs.js +18 -0
  626. package/es/components/icon/IconPrimaryDocs.js.map +1 -0
  627. package/es/components/info-card/InfoCard.d.ts +6 -1
  628. package/es/components/info-card/InfoCard.js +4 -3
  629. package/es/components/info-card/InfoCard.js.map +1 -1
  630. package/es/components/info-card/InfoCardDocs.js +8 -3
  631. package/es/components/info-card/InfoCardDocs.js.map +1 -1
  632. package/es/components/input/Input.d.ts +0 -21
  633. package/es/components/input/InputDocs.d.ts +1 -0
  634. package/es/components/input/InputDocs.js +35 -3
  635. package/es/components/input/InputDocs.js.map +1 -1
  636. package/es/components/input-masked/InputMasked.d.ts +0 -15
  637. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  638. package/es/components/input-masked/InputMaskedDocs.js +69 -0
  639. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  640. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  641. package/es/components/input-masked/MultiInputMaskedDocs.js +87 -0
  642. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  643. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  644. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  645. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  646. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  647. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  648. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  649. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  650. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  651. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  652. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  653. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  654. package/es/components/modal/ModalDocs.d.ts +3 -0
  655. package/es/components/modal/ModalDocs.js +185 -0
  656. package/es/components/modal/ModalDocs.js.map +1 -0
  657. package/es/components/pagination/Pagination.d.ts +35 -33
  658. package/es/components/pagination/Pagination.js +2 -0
  659. package/es/components/pagination/Pagination.js.map +1 -1
  660. package/es/components/pagination/PaginationDocs.d.ts +3 -0
  661. package/es/components/pagination/PaginationDocs.js +185 -0
  662. package/es/components/pagination/PaginationDocs.js.map +1 -0
  663. package/es/components/pagination/PaginationHelpers.d.ts +0 -3
  664. package/es/components/pagination/PaginationInfinity.d.ts +0 -3
  665. package/es/components/pagination/PaginationProvider.js +1 -1
  666. package/es/components/pagination/PaginationProvider.js.map +1 -1
  667. package/es/components/radio/Radio.d.ts +12 -15
  668. package/es/components/radio/RadioDocs.d.ts +5 -0
  669. package/es/components/radio/RadioDocs.js +139 -0
  670. package/es/components/radio/RadioDocs.js.map +1 -0
  671. package/es/components/radio/RadioGroup.d.ts +0 -30
  672. package/es/components/section/Section.js +1 -6
  673. package/es/components/section/Section.js.map +1 -1
  674. package/es/components/section/SectionDocs.js +1 -1
  675. package/es/components/section/SectionDocs.js.map +1 -1
  676. package/es/components/skeleton/SkeletonDocs.d.ts +2 -0
  677. package/es/components/skeleton/SkeletonDocs.js +38 -0
  678. package/es/components/skeleton/SkeletonDocs.js.map +1 -0
  679. package/es/components/skeleton/SkeletonHelper.d.ts +0 -6
  680. package/es/components/skip-content/SkipContentDocs.d.ts +2 -0
  681. package/es/components/skip-content/SkipContentDocs.js +23 -0
  682. package/es/components/skip-content/SkipContentDocs.js.map +1 -0
  683. package/es/components/slider/SliderDocs.js +2 -2
  684. package/es/components/slider/SliderDocs.js.map +1 -1
  685. package/es/components/space/SpaceDocs.d.ts +3 -0
  686. package/es/components/space/SpaceDocs.js +55 -0
  687. package/es/components/space/SpaceDocs.js.map +1 -0
  688. package/es/components/switch/SwitchDocs.js +2 -2
  689. package/es/components/switch/SwitchDocs.js.map +1 -1
  690. package/es/components/tag/TagDocs.d.ts +4 -0
  691. package/es/components/tag/TagDocs.js +87 -0
  692. package/es/components/tag/TagDocs.js.map +1 -0
  693. package/es/components/textarea/Textarea.d.ts +0 -12
  694. package/es/components/textarea/TextareaDocs.d.ts +1 -0
  695. package/es/components/textarea/TextareaDocs.js +25 -3
  696. package/es/components/textarea/TextareaDocs.js.map +1 -1
  697. package/es/components/timeline/TimelineDocs.d.ts +3 -0
  698. package/es/components/timeline/TimelineDocs.js +60 -0
  699. package/es/components/timeline/TimelineDocs.js.map +1 -0
  700. package/es/components/toggle-button/ToggleButton.d.ts +0 -3
  701. package/es/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  702. package/es/components/toggle-button/ToggleButtonDocs.js +7 -0
  703. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  704. package/es/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  705. package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  706. package/es/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  707. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  708. package/es/components/tooltip/TooltipDocs.d.ts +2 -0
  709. package/es/components/tooltip/TooltipDocs.js +73 -0
  710. package/es/components/tooltip/TooltipDocs.js.map +1 -0
  711. package/es/components/upload/Upload.js +6 -4
  712. package/es/components/upload/Upload.js.map +1 -1
  713. package/es/components/upload/UploadDocs.js +5 -0
  714. package/es/components/upload/UploadDocs.js.map +1 -1
  715. package/es/components/upload/UploadFileList.js +3 -1
  716. package/es/components/upload/UploadFileList.js.map +1 -1
  717. package/es/components/upload/UploadFileListCell.d.ts +6 -1
  718. package/es/components/upload/UploadFileListCell.js +8 -5
  719. package/es/components/upload/UploadFileListCell.js.map +1 -1
  720. package/es/components/upload/types.d.ts +5 -0
  721. package/es/components/upload/types.js.map +1 -1
  722. package/es/components/upload/useUpload.d.ts +1 -0
  723. package/es/components/upload/useUpload.js +7 -1
  724. package/es/components/upload/useUpload.js.map +1 -1
  725. package/es/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  726. package/es/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  727. package/es/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  728. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  729. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  730. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  731. package/es/extensions/forms/DataContext/Context.d.ts +6 -5
  732. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  733. package/es/extensions/forms/DataContext/Provider/Provider.js +28 -34
  734. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  735. package/es/extensions/forms/Field/Date/Date.d.ts +1 -0
  736. package/es/extensions/forms/Field/Date/Date.js +2 -3
  737. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  738. package/es/extensions/forms/Field/Password/Password.js +2 -1
  739. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  740. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  741. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  742. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  743. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  744. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  745. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  746. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  747. package/es/extensions/forms/Field/Upload/Upload.js +10 -2
  748. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  749. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  750. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  751. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  752. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  753. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  754. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  755. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  756. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  757. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  758. package/es/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  759. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  760. package/es/extensions/forms/Value/Date/Date.d.ts +0 -6
  761. package/es/extensions/forms/Value/Date/Date.js +13 -34
  762. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  763. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  764. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  765. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  766. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  767. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  768. package/es/extensions/forms/hooks/useFieldProps.js +8 -5
  769. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  770. package/es/extensions/payment-card/PaymentCard.d.ts +7 -7
  771. package/es/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  772. package/es/extensions/payment-card/PaymentCardDocs.js +199 -0
  773. package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  774. package/es/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  775. package/es/fragments/scroll-view/ScrollViewDocs.js +13 -0
  776. package/es/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  777. package/es/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  778. package/es/fragments/text-counter/TextCounterDocs.js +23 -0
  779. package/es/fragments/text-counter/TextCounterDocs.js.map +1 -0
  780. package/es/shared/Eufemia.d.ts +1 -1
  781. package/es/shared/Eufemia.js +2 -2
  782. package/es/shared/Eufemia.js.map +1 -1
  783. package/es/shared/MediaQueryDocs.d.ts +2 -0
  784. package/es/shared/MediaQueryDocs.js +28 -0
  785. package/es/shared/MediaQueryDocs.js.map +1 -0
  786. package/es/shared/ThemeDocs.d.ts +2 -0
  787. package/es/shared/ThemeDocs.js +33 -0
  788. package/es/shared/ThemeDocs.js.map +1 -0
  789. package/es/shared/helpers.d.ts +1 -0
  790. package/es/shared/helpers.js +6 -0
  791. package/es/shared/helpers.js.map +1 -1
  792. package/es/shared/locales/en-GB.d.ts +1 -0
  793. package/es/shared/locales/en-GB.js +1 -0
  794. package/es/shared/locales/en-GB.js.map +1 -1
  795. package/es/shared/locales/en-US.d.ts +1 -0
  796. package/es/shared/locales/index.d.ts +2 -0
  797. package/es/shared/locales/nb-NO.d.ts +1 -0
  798. package/es/shared/locales/nb-NO.js +1 -0
  799. package/es/shared/locales/nb-NO.js.map +1 -1
  800. package/es/shared/locales/sv-SE.d.ts +1 -0
  801. package/es/shared/locales/sv-SE.js +3 -2
  802. package/es/shared/locales/sv-SE.js.map +1 -1
  803. package/es/style/core/scopes.scss +1 -1
  804. package/es/style/dnb-ui-basis.css +1 -1
  805. package/es/style/dnb-ui-basis.min.css +1 -1
  806. package/es/style/dnb-ui-body.css +1 -1
  807. package/es/style/dnb-ui-body.min.css +1 -1
  808. package/es/style/dnb-ui-components.css +21 -0
  809. package/es/style/dnb-ui-components.min.css +1 -1
  810. package/es/style/dnb-ui-core.css +1 -1
  811. package/es/style/dnb-ui-core.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  814. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  815. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  816. package/es/style/themes/theme-ui/ui-theme-components.css +26 -5
  817. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  818. package/esm/dnb-ui-basis.min.mjs +1 -1
  819. package/esm/dnb-ui-components.min.mjs +1 -1
  820. package/esm/dnb-ui-elements.min.mjs +1 -1
  821. package/esm/dnb-ui-extensions.min.mjs +1 -1
  822. package/esm/dnb-ui-lib.min.mjs +1 -1
  823. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  824. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  825. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  826. package/extensions/forms/DataContext/Context.d.ts +6 -5
  827. package/extensions/forms/DataContext/Context.js.map +1 -1
  828. package/extensions/forms/DataContext/Provider/Provider.js +29 -35
  829. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  830. package/extensions/forms/Field/Date/Date.d.ts +1 -0
  831. package/extensions/forms/Field/Date/Date.js +2 -3
  832. package/extensions/forms/Field/Date/Date.js.map +1 -1
  833. package/extensions/forms/Field/Password/Password.js +2 -1
  834. package/extensions/forms/Field/Password/Password.js.map +1 -1
  835. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  836. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  837. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  838. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  839. package/extensions/forms/Field/String/StringDocs.js +1 -1
  840. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  841. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  842. package/extensions/forms/Field/Upload/Upload.js +10 -2
  843. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  844. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  845. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  846. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  847. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  848. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  849. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  850. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  851. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  852. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  853. package/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  854. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  855. package/extensions/forms/Value/Date/Date.d.ts +0 -6
  856. package/extensions/forms/Value/Date/Date.js +14 -36
  857. package/extensions/forms/Value/Date/Date.js.map +1 -1
  858. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  859. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  860. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  861. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  862. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  863. package/extensions/forms/hooks/useFieldProps.js +8 -5
  864. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  865. package/extensions/payment-card/PaymentCard.d.ts +7 -7
  866. package/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  867. package/extensions/payment-card/PaymentCardDocs.js +199 -0
  868. package/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  869. package/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  870. package/fragments/scroll-view/ScrollViewDocs.js +13 -0
  871. package/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  872. package/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  873. package/fragments/text-counter/TextCounterDocs.js +23 -0
  874. package/fragments/text-counter/TextCounterDocs.js.map +1 -0
  875. package/package.json +1 -1
  876. package/shared/Eufemia.d.ts +1 -1
  877. package/shared/Eufemia.js +2 -2
  878. package/shared/Eufemia.js.map +1 -1
  879. package/shared/MediaQueryDocs.d.ts +2 -0
  880. package/shared/MediaQueryDocs.js +28 -0
  881. package/shared/MediaQueryDocs.js.map +1 -0
  882. package/shared/ThemeDocs.d.ts +2 -0
  883. package/shared/ThemeDocs.js +33 -0
  884. package/shared/ThemeDocs.js.map +1 -0
  885. package/shared/helpers.d.ts +1 -0
  886. package/shared/helpers.js +6 -0
  887. package/shared/helpers.js.map +1 -1
  888. package/shared/locales/en-GB.d.ts +1 -0
  889. package/shared/locales/en-GB.js +1 -0
  890. package/shared/locales/en-GB.js.map +1 -1
  891. package/shared/locales/en-US.d.ts +1 -0
  892. package/shared/locales/index.d.ts +2 -0
  893. package/shared/locales/nb-NO.d.ts +1 -0
  894. package/shared/locales/nb-NO.js +1 -0
  895. package/shared/locales/nb-NO.js.map +1 -1
  896. package/shared/locales/sv-SE.d.ts +1 -0
  897. package/shared/locales/sv-SE.js +3 -2
  898. package/shared/locales/sv-SE.js.map +1 -1
  899. package/style/core/scopes.scss +1 -1
  900. package/style/dnb-ui-basis.css +1 -1
  901. package/style/dnb-ui-basis.min.css +1 -1
  902. package/style/dnb-ui-body.css +1 -1
  903. package/style/dnb-ui-body.min.css +1 -1
  904. package/style/dnb-ui-components.css +21 -0
  905. package/style/dnb-ui-components.min.css +1 -1
  906. package/style/dnb-ui-core.css +1 -1
  907. package/style/dnb-ui-core.min.css +1 -1
  908. package/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  909. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  910. package/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  911. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  912. package/style/themes/theme-ui/ui-theme-components.css +26 -5
  913. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  914. package/umd/dnb-ui-basis.min.js +1 -1
  915. package/umd/dnb-ui-components.min.js +1 -1
  916. package/umd/dnb-ui-elements.min.js +1 -1
  917. package/umd/dnb-ui-extensions.min.js +1 -1
  918. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerInput.js","names":["React","useCallback","useContext","useMemo","useRef","useState","addDays","addMonths","addYears","isValid","parseISO","classnames","TextMask","Button","Input","SubmitButton","warn","validateDOMAttributes","convertStringToDate","DatePickerContext","useTranslation","usePartialDates","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","_objectSpread","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","_objectWithoutProperties","_excluded","focusState","setFocusState","partialDatesRef","setPartialDates","invalidDatesRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","translation","DatePicker","modeDate","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","push","length","shift","pasteHandler","event","success","clipboardData","window","getData","preventDefault","possibleFormats","forEach","date","sep","replace","reverse","join","index","dateFormat","mode","error","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","callOnType","getDates","partialStartDate","partialEndDate","parsedStartDate","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","_excluded2","typedDates","start_date","end_date","prepareCounting","keyCode","target","isDate","getAttribute","isInRange","count","wait","selectAll","e","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","key","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","nextSibling","prevSibling","endPos","value","setDate","type","fallback","year","getFullYear","month","getMonth","day","getDate","Date","String","isValidDate","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","indexOf","generateDateList","element","map","i","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","_extends","className","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","_span","formatDate","openPickerText","SubmitElement","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","select","_ref","_excluded3","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise","r","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","useCallback","useContext","useMemo","useRef","useState","addDays","addMonths","addYears","isValid","parseISO","classnames","TextMask","Button","Input","SubmitButton","warn","validateDOMAttributes","toCapitalized","IS_ANDROID","IS_IOS","convertStringToDate","DatePickerContext","useTranslation","usePartialDates","defaultProps","maskOrder","maskPlaceholder","separatorRegExp","statusState","opened","DatePickerInput","externalProps","props","_objectSpread","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","_objectWithoutProperties","_excluded","focusState","setFocusState","partialDatesRef","setPartialDates","invalidDatesRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","correctInvalidDate","translation","DatePicker","modeDate","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","push","length","shift","pasteHandler","event","success","clipboardData","window","getData","preventDefault","possibleFormats","forEach","date","sep","replace","reverse","join","index","dateFormat","mode","error","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","callOnType","getDates","partialStartDate","partialEndDate","parsedStartDate","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","_excluded2","typedDates","start_date","end_date","prepareCounting","keyCode","target","isDate","getAttribute","isInRange","count","e","setDate","type","persist","value","fallback","year","getFullYear","month","getMonth","day","getDate","Date","parseFloat","String","isValidDate","test","dateString","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","onFocusHandler","isNaN","setCursorPosition","onBlurHandler","onKeyDownHandler","key","selectionStart","selectionEnd","firstSelectionStart","firstSelectionEnd","wait","secondSelectionStart","refListArray","findIndex","isLastChar","isFirstChar","isMovingForward","isExplicitForward","hasNextField","_refListArray","nextSibling","withoutDelay","name","slice","isMovingBackward","isPressingBackspace","_refListArray2","prevSibling","endPos","onInputHandler","currentTarget","nativeEvent","inputType","getPlaceholderChar","indexOf","generateDateList","element","map","i","placeholderChar","isRangeLabel","onInput","onKeyDown","onPaste","DateField","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","_extends","className","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","_span","ariaLabel","openPickerText","SubmitElement","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","position","options","focus","select","setSelectionRange","process","env","NODE_ENV","setTimeout","_ref","_excluded3","guide","inputMode","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","dateRefValue","inputDateValue","duration","Promise","r"],"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 {\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 hasHadValidDate,\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 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 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 } catch (e) {\n warn(e)\n }\n },\n [startDate, endDate, callOnChange]\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 // 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 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, prepareCounting]\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":[]}
@@ -60,7 +60,7 @@ function DatePickerProvider(externalProps) {
60
60
  const {
61
61
  views,
62
62
  setViews,
63
- forceViewMonthChange
63
+ setHasClickedCalendarDay
64
64
  } = useViews({
65
65
  startMonth: dates.startMonth,
66
66
  endMonth: dates.endMonth,
@@ -138,7 +138,7 @@ function DatePickerProvider(externalProps) {
138
138
  hasHadValidDate,
139
139
  views,
140
140
  setViews,
141
- forceViewMonthChange
141
+ setHasClickedCalendarDay
142
142
  })
143
143
  }, children);
144
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","forceViewMonthChange","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","invalidStartDate","invalidEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","partialDate","invalidDate","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\nimport { InvalidDates } from './DatePickerInput'\nimport { PartialDates } from './hooks/usePartialDates'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates &\n InvalidDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n }\n\nexport type GetReturnObjectParams<E> = DatePickerDates &\n PartialDates &\n InvalidDates & {\n event?: E\n }\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = InvalidDates &\n PartialDates & {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string | null\n end_date?: string | null\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n }\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, forceViewMonthChange } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const {\n startDate,\n endDate,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n partialDate: partialStartDate,\n // Can be removed in v11, in favor to partialDate,\n // to keep the naming logic the same as with date and invalidDate when not in range mode\n partialStartDate,\n invalidDate: invalidStartDate,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n forceViewMonthChange,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePickerProvider.js","names":["React","useCallback","useContext","isValid","format","differenceInCalendarDays","SharedContext","correctV1Format","isDisabled","DatePickerContext","useViews","useDates","useLastEventCallCache","defaultProps","returnFormat","DatePickerProvider","externalProps","props","_objectSpread","date","startDate","endDate","startMonth","endMonth","minDate","maxDate","dateFormat","range","correctInvalidDate","attributes","returnFormatProp","children","onChange","setReturnObject","hidePicker","sharedContext","dates","updateDates","hasHadValidDate","previousDateProps","isRange","shouldCorrectDate","views","setViews","setHasClickedCalendarDay","lastEventCallCache","setLastEventCallCache","getReturnObject","_ref","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","invalidStartDate","invalidEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","partialDate","invalidDate","is_valid","callOnChangeHandler","createElement","Provider","value","translation"],"sources":["../../../../src/components/date-picker/DatePickerProvider.tsx"],"sourcesContent":["/**\n * Web DatePicker Provider\n *\n */\n\nimport React, { useCallback, useContext } from 'react'\nimport type {\n DatePickerEventAttributes,\n DatePickerAllProps,\n DatePickerProps,\n} from './DatePicker'\n\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\n\nimport SharedContext from '../../shared/Context'\nimport { correctV1Format, isDisabled } from './DatePickerCalc'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport useViews, { CalendarView } from './hooks/useViews'\nimport useDates, { DatePickerDates } from './hooks/useDates'\nimport useLastEventCallCache, {\n LastEventCallCache,\n} from './hooks/useLastEventCallCache'\nimport { InvalidDates } from './DatePickerInput'\nimport { PartialDates } from './hooks/usePartialDates'\n\ntype DatePickerProviderProps = DatePickerAllProps & {\n setReturnObject: (\n func: DatePickerContextValues['getReturnObject']\n ) => DatePickerContextValues['getReturnObject']\n hidePicker?: DatePickerContextValues['hidePicker']\n attributes?: DatePickerEventAttributes\n children: React.ReactNode\n}\n\nexport type DatePickerChangeEvent<E> = DatePickerDates &\n InvalidDates & {\n nr?: number\n hidePicker?: boolean\n event?: E\n }\n\nexport type GetReturnObjectParams<E> = DatePickerDates &\n PartialDates &\n InvalidDates & {\n event?: E\n }\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = InvalidDates &\n PartialDates & {\n event?: E\n attributes?: Record<string, unknown>\n days_between?: number\n date?: string | null\n start_date?: string | null\n end_date?: string | null\n is_valid?: boolean\n is_valid_start_date?: boolean\n is_valid_end_date?: boolean\n }\n\nexport type DatePickerProviderState = DatePickerDates &\n Array<CalendarView> &\n LastEventCallCache\n\nconst defaultProps: Partial<DatePickerProps> = {\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n}\n\nfunction DatePickerProvider(externalProps: DatePickerProviderProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n dateFormat,\n range,\n correctInvalidDate,\n attributes,\n returnFormat: returnFormatProp,\n children,\n onChange,\n setReturnObject,\n hidePicker,\n } = props\n\n const sharedContext = useContext(SharedContext)\n\n const { dates, updateDates, hasHadValidDate, previousDateProps } =\n useDates(\n {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n },\n {\n dateFormat: dateFormat,\n isRange: range,\n shouldCorrectDate: correctInvalidDate,\n }\n )\n\n const { views, setViews, setHasClickedCalendarDay } = useViews({\n startMonth: dates.startMonth,\n endMonth: dates.endMonth,\n isRange: range,\n })\n\n const [lastEventCallCache, setLastEventCallCache] =\n useLastEventCallCache({\n startDate: dates.startDate,\n endDate: dates.endDate,\n })\n\n const getReturnObject = useCallback(\n <E,>({ event = null, ...rest }: GetReturnObjectParams<E> = {}) => {\n const {\n startDate,\n endDate,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n } = {\n ...views,\n ...dates,\n ...rest,\n }\n\n const returnFormat = correctV1Format(returnFormatProp)\n const startDateIsValid = Boolean(startDate && isValid(startDate))\n const endDateIsValid = Boolean(endDate && isValid(endDate))\n const hasMinOrMaxDates = minDate || maxDate\n\n const returnObject: ReturnObject<E> = {\n event,\n attributes: attributes || {},\n }\n\n // Handle range props\n if (range) {\n return {\n ...returnObject,\n days_between:\n startDateIsValid && endDateIsValid\n ? differenceInCalendarDays(endDate, startDate)\n : null,\n start_date: startDateIsValid\n ? format(startDate, returnFormat)\n : null,\n end_date: endDateIsValid ? format(endDate, returnFormat) : null,\n is_valid_start_date:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n is_valid_end_date:\n hasMinOrMaxDates &&\n endDateIsValid &&\n isDisabled(endDate, dates.minDate, dates.maxDate)\n ? false\n : endDateIsValid,\n partialStartDate,\n partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\n partialDate: partialStartDate,\n // Can be removed in v11, in favor to partialDate,\n // to keep the naming logic the same as with date and invalidDate when not in range mode\n partialStartDate,\n invalidDate: invalidStartDate,\n is_valid:\n hasMinOrMaxDates &&\n startDateIsValid &&\n isDisabled(startDate, dates.minDate, dates.maxDate)\n ? false\n : startDateIsValid,\n }\n },\n [dates, views, attributes, maxDate, minDate, range, returnFormatProp]\n )\n\n const callOnChangeHandler = useCallback(\n <E,>(event: E & DatePickerDates) => {\n /**\n * Prevent on_change to be fired twice if date not has actually changed\n */\n if (\n lastEventCallCache &&\n lastEventCallCache.startDate === event.startDate &&\n lastEventCallCache.endDate === event.endDate\n ) {\n return // stop here\n }\n\n onChange?.(getReturnObject({ ...dates, ...event }))\n\n setLastEventCallCache({\n startDate: event.startDate,\n endDate: event.endDate,\n })\n },\n [\n getReturnObject,\n dates,\n onChange,\n lastEventCallCache,\n setLastEventCallCache,\n ]\n )\n\n // Is this at any point something other than a function?\n if (typeof setReturnObject === 'function') {\n setReturnObject(getReturnObject)\n }\n\n return (\n <DatePickerContext.Provider\n value={{\n translation: sharedContext.translation,\n updateDates,\n getReturnObject,\n callOnChangeHandler,\n hidePicker: hidePicker,\n props,\n ...dates,\n previousDateProps,\n hasHadValidDate,\n views,\n setViews,\n setHasClickedCalendarDay,\n }}\n >\n {children}\n </DatePickerContext.Provider>\n )\n}\n\nexport default DatePickerProvider\n"],"mappings":"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","ignoreList":[]}
@@ -13,8 +13,6 @@ export type UseViewsParams = ViewDates & {
13
13
  export default function useViews({ isRange, ...dates }: UseViewsParams): {
14
14
  readonly views: CalendarView[];
15
15
  readonly setViews: (views: Array<CalendarView>, cb?: (...args: unknown[]) => void) => void;
16
- readonly forceViewMonthChange: () => void;
16
+ readonly setHasClickedCalendarDay: (hasClicked: boolean) => boolean;
17
17
  };
18
- export declare function getViews({ views, isRange, ...dates }: ViewDates & UseViewsParams & {
19
- views?: CalendarView | Array<CalendarView>;
20
- }): Array<CalendarView>;
18
+ export declare function getViews({ isRange, ...dates }: ViewDates & UseViewsParams): Array<CalendarView>;
@@ -3,63 +3,77 @@
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  const _excluded = ["isRange"],
6
- _excluded2 = ["views", "isRange"];
6
+ _excluded2 = ["isRange"];
7
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
9
  import addMonths from 'date-fns/addMonths';
10
- import { useMemo, useRef, useState } from 'react';
10
+ import { useCallback, useMemo, useRef, useState } from 'react';
11
11
  export default function useViews(_ref) {
12
12
  let {
13
13
  isRange
14
14
  } = _ref,
15
15
  dates = _objectWithoutProperties(_ref, _excluded);
16
16
  const [previousDates, setPreviousDates] = useState(dates);
17
- const [views, setViews] = useState(getViews(_objectSpread(_objectSpread({
18
- views: undefined
19
- }, dates), {}, {
17
+ const [views, setViews] = useState(getViews(_objectSpread(_objectSpread({}, dates), {}, {
20
18
  isRange
21
19
  })));
22
- const forceViewChange = useRef(false);
20
+ const hasClickedCalendarDay = useRef(false);
23
21
  const hasDateChanges = useMemo(() => Object.keys(dates).some(date => previousDates[date] !== dates[date]), [dates, previousDates]);
22
+ const setHasClickedCalendarDay = useCallback(hasClicked => hasClickedCalendarDay.current = hasClicked, []);
24
23
  if (hasDateChanges) {
25
- const currentViews = Array.isArray(views) ? views.length > 1 ? views : views[0] : views;
26
- if (forceViewChange.current || !isRange) {
27
- setViews(getViews(_objectSpread(_objectSpread({}, dates), {}, {
28
- views: currentViews,
24
+ setPreviousDates(dates);
25
+ if (hasClickedCalendarDay.current) {
26
+ setHasClickedCalendarDay(false);
27
+ } else {
28
+ const updatedViews = getViews(_objectSpread(_objectSpread({}, dates), {}, {
29
29
  isRange
30
- })));
31
- forceViewChange.current = false;
30
+ }));
31
+ setViews(updatedViews);
32
32
  }
33
- setPreviousDates(dates);
34
33
  }
35
34
  function updateViews(views, cb = null) {
36
35
  setViews(views);
37
36
  cb === null || cb === void 0 ? void 0 : cb();
38
37
  }
39
- function forceViewMonthChange() {
40
- forceViewChange.current = true;
41
- }
42
38
  return {
43
39
  views,
44
40
  setViews: updateViews,
45
- forceViewMonthChange
41
+ setHasClickedCalendarDay
46
42
  };
47
43
  }
48
44
  export function getViews(_ref2) {
49
45
  let {
50
- views,
51
46
  isRange
52
47
  } = _ref2,
53
48
  dates = _objectWithoutProperties(_ref2, _excluded2);
54
- return (Array.isArray(views) ? views : Array(isRange ? 2 : views).fill(1)).map((view, nr) => ({
55
- month: getMonthView(_objectSpread({}, dates), nr),
56
- nr
57
- }));
49
+ return isRange ? [{
50
+ nr: 0,
51
+ month: getMonthView({
52
+ months: dates,
53
+ nr: 0
54
+ })
55
+ }, {
56
+ nr: 1,
57
+ month: getMonthView({
58
+ months: dates,
59
+ nr: 1
60
+ })
61
+ }] : [{
62
+ nr: 0,
63
+ month: getMonthView({
64
+ months: dates,
65
+ nr: 0
66
+ })
67
+ }];
58
68
  }
59
69
  function getMonthView({
60
- startMonth,
61
- endMonth
62
- }, nr) {
70
+ months,
71
+ nr
72
+ }) {
73
+ const {
74
+ startMonth,
75
+ endMonth
76
+ } = months;
63
77
  if (startMonth && nr === 0) {
64
78
  return startMonth;
65
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useViews.js","names":["addMonths","useMemo","useRef","useState","useViews","_ref","isRange","dates","_objectWithoutProperties","_excluded","previousDates","setPreviousDates","views","setViews","getViews","_objectSpread","undefined","forceViewChange","hasDateChanges","Object","keys","some","date","currentViews","Array","isArray","length","current","updateViews","cb","forceViewMonthChange","_ref2","_excluded2","fill","map","view","nr","month","getMonthView","startMonth","endMonth","fallbackMonth","Date"],"sources":["../../../../../src/components/date-picker/hooks/useViews.ts"],"sourcesContent":["import addMonths from 'date-fns/addMonths'\nimport { useMemo, useRef, useState } from 'react'\nimport { DatePickerDates } from './useDates'\n\nexport type CalendarView = { nr: number; month?: Date }\n\nexport type ViewDates = {\n startMonth?: DatePickerDates['startMonth']\n endMonth?: DatePickerDates['endMonth']\n}\n\nexport type UseViewsParams = ViewDates & {\n isRange?: boolean\n}\n\nexport default function useViews({ isRange, ...dates }: UseViewsParams) {\n const [previousDates, setPreviousDates] = useState(dates)\n const [views, setViews] = useState<Array<CalendarView>>(\n getViews({ views: undefined, ...dates, isRange })\n )\n\n const forceViewChange = useRef(false)\n\n const hasDateChanges = useMemo(\n () =>\n Object.keys(dates).some(\n (date) => previousDates[date] !== dates[date]\n ),\n [dates, previousDates]\n )\n\n if (hasDateChanges) {\n const currentViews = Array.isArray(views)\n ? views.length > 1\n ? views\n : views[0]\n : views\n\n // Maintain range views unless forced to change by shortcut or keyboard navigation\n if (forceViewChange.current || !isRange) {\n setViews(getViews({ ...dates, views: currentViews, isRange }))\n forceViewChange.current = false\n }\n\n setPreviousDates(dates)\n }\n\n function updateViews(\n views: Array<CalendarView>,\n cb: (...args: unknown[]) => void = null\n ) {\n setViews(views)\n cb?.()\n }\n\n function forceViewMonthChange() {\n forceViewChange.current = true\n }\n\n return {\n views,\n setViews: updateViews,\n forceViewMonthChange,\n } as const\n}\n\nexport function getViews({\n views,\n isRange,\n ...dates\n}: ViewDates &\n UseViewsParams & {\n views?: CalendarView | Array<CalendarView>\n }): Array<CalendarView> {\n // fill the views with the calendar data getMonth()\n return (\n Array.isArray(views)\n ? views\n : Array(\n isRange\n ? 2 // set default range calendars\n : views\n ).fill(1)\n ).map((view, nr) => ({\n month: getMonthView({ ...dates }, nr),\n nr,\n }))\n}\n\nfunction getMonthView(\n { startMonth, endMonth }: ViewDates,\n nr: CalendarView['nr']\n) {\n if (startMonth && nr === 0) {\n return startMonth\n }\n\n if (endMonth && nr === 1) {\n return endMonth\n }\n\n // Here we add that default offset to every new calendar added,\n // the first will get 0, the next one 1, and so forth\n const fallbackMonth = startMonth || new Date()\n return addMonths(fallbackMonth, nr)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useViews.js","names":["addMonths","useCallback","useMemo","useRef","useState","useViews","_ref","isRange","dates","_objectWithoutProperties","_excluded","previousDates","setPreviousDates","views","setViews","getViews","_objectSpread","hasClickedCalendarDay","hasDateChanges","Object","keys","some","date","setHasClickedCalendarDay","hasClicked","current","updatedViews","updateViews","cb","_ref2","_excluded2","nr","month","getMonthView","months","startMonth","endMonth","fallbackMonth","Date"],"sources":["../../../../../src/components/date-picker/hooks/useViews.ts"],"sourcesContent":["import addMonths from 'date-fns/addMonths'\nimport { useCallback, useMemo, useRef, useState } from 'react'\nimport { DatePickerDates } from './useDates'\n\nexport type CalendarView = { nr: number; month?: Date }\n\nexport type ViewDates = {\n startMonth?: DatePickerDates['startMonth']\n endMonth?: DatePickerDates['endMonth']\n}\n\nexport type UseViewsParams = ViewDates & {\n isRange?: boolean\n}\n\nexport default function useViews({ isRange, ...dates }: UseViewsParams) {\n const [previousDates, setPreviousDates] = useState(dates)\n const [views, setViews] = useState<Array<CalendarView>>(\n getViews({ ...dates, isRange })\n )\n\n const hasClickedCalendarDay = useRef<boolean>(false)\n\n const hasDateChanges = useMemo(\n () =>\n Object.keys(dates).some(\n (date) => previousDates[date] !== dates[date]\n ),\n [dates, previousDates]\n )\n\n const setHasClickedCalendarDay = useCallback(\n (hasClicked: boolean) => (hasClickedCalendarDay.current = hasClicked),\n []\n )\n\n if (hasDateChanges) {\n setPreviousDates(dates)\n\n // Stop here if the user has clicked a day in the calendar, as we don't want update the views then\n if (hasClickedCalendarDay.current) {\n setHasClickedCalendarDay(false)\n } else {\n const updatedViews = getViews({\n ...dates,\n isRange,\n })\n\n setViews(updatedViews)\n }\n }\n\n function updateViews(\n views: Array<CalendarView>,\n cb: (...args: unknown[]) => void = null\n ) {\n setViews(views)\n cb?.()\n }\n\n return {\n views,\n setViews: updateViews,\n setHasClickedCalendarDay,\n } as const\n}\n\nexport function getViews({\n isRange,\n ...dates\n}: ViewDates & UseViewsParams): Array<CalendarView> {\n return isRange\n ? [\n { nr: 0, month: getMonthView({ months: dates, nr: 0 }) },\n { nr: 1, month: getMonthView({ months: dates, nr: 1 }) },\n ]\n : [{ nr: 0, month: getMonthView({ months: dates, nr: 0 }) }]\n}\n\nfunction getMonthView({ months, nr }: { months: ViewDates; nr: number }) {\n const { startMonth, endMonth } = months\n\n if (startMonth && nr === 0) {\n return startMonth\n }\n\n if (endMonth && nr === 1) {\n return endMonth\n }\n\n // Here we add that default offset to every new calendar added,\n // the first will get 0, the next one 1, and so forth\n const fallbackMonth = startMonth || new Date()\n return addMonths(fallbackMonth, nr)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -146,6 +146,10 @@ html[data-whatinput=keyboard] .dnb-date-picker__container table.dnb-no-focus:foc
146
146
  }
147
147
  }
148
148
  @supports (-webkit-touch-callout: none) {
149
+ .dnb-date-picker__input,
150
+ .dnb-date-picker .dnb-input__input.dnb-date-picker__input, .dnb-core-style .dnb-date-picker__input {
151
+ text-indent: -2px;
152
+ }
149
153
  .dnb-date-picker__input:not(*:root),
150
154
  .dnb-date-picker .dnb-input__input.dnb-date-picker__input:not(*:root), .dnb-core-style .dnb-date-picker__input:not(*:root) {
151
155
  margin: 0;