@dnb/eufemia 10.65.0 → 10.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/cjs/components/card/Card.js +1 -1
  3. package/cjs/components/card/Card.js.map +1 -1
  4. package/cjs/components/date-picker/DatePicker.d.ts +3 -1
  5. package/cjs/components/date-picker/DatePicker.js +3 -1
  6. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  7. package/cjs/components/date-picker/DatePickerAddon.js +8 -1
  8. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  9. package/cjs/components/date-picker/DatePickerInput.d.ts +5 -0
  10. package/cjs/components/date-picker/DatePickerInput.js +54 -36
  11. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  12. package/cjs/components/date-picker/DatePickerProvider.d.ts +4 -3
  13. package/cjs/components/date-picker/DatePickerProvider.js +7 -2
  14. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  15. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  16. package/cjs/components/flex/Container.d.ts +2 -1
  17. package/cjs/components/flex/Container.js +31 -24
  18. package/cjs/components/flex/Container.js.map +1 -1
  19. package/cjs/components/flex/ContainerDocs.d.ts +2 -0
  20. package/cjs/components/flex/ContainerDocs.js +81 -0
  21. package/cjs/components/flex/ContainerDocs.js.map +1 -0
  22. package/cjs/components/flex/style/dnb-flex.css +36 -4
  23. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  24. package/cjs/components/flex/style/flex-container.scss +39 -4
  25. package/cjs/components/help-button/HelpButtonInline.d.ts +6 -0
  26. package/cjs/components/help-button/HelpButtonInline.js +51 -19
  27. package/cjs/components/help-button/HelpButtonInline.js.map +1 -1
  28. package/cjs/components/help-button/HelpButtonInstance.js +1 -1
  29. package/cjs/components/help-button/HelpButtonInstance.js.map +1 -1
  30. package/cjs/components/slider/SliderDocs.js +2 -2
  31. package/cjs/components/slider/SliderDocs.js.map +1 -1
  32. package/cjs/components/slider/SliderProvider.js +0 -2
  33. package/cjs/components/slider/SliderProvider.js.map +1 -1
  34. package/cjs/components/slider/types.d.ts +2 -2
  35. package/cjs/components/slider/types.js.map +1 -1
  36. package/cjs/components/step-indicator/StepIndicator.d.ts +6 -0
  37. package/cjs/components/step-indicator/StepIndicator.js.map +1 -1
  38. package/cjs/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  39. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  40. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  41. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  42. package/cjs/components/toggle-button/ToggleButton.d.ts +9 -1
  43. package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -0
  44. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  45. package/cjs/extensions/forms/DataContext/Context.d.ts +11 -5
  46. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  47. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  48. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  49. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  50. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  51. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  52. package/cjs/extensions/forms/DataContext/Provider/Provider.js +46 -42
  53. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  54. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  55. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  56. package/cjs/extensions/forms/Field/Slider/Slider.js +13 -4
  57. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  58. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  59. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  60. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  61. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  62. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  63. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  64. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  65. package/cjs/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  66. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  67. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  68. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  69. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  70. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  71. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  72. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +78 -0
  73. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  74. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  75. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +94 -0
  76. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  77. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  78. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +67 -0
  79. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  80. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  81. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -206
  82. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  83. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  84. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  85. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  86. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  87. package/cjs/extensions/forms/Wizard/Context/types.d.ts +35 -0
  88. package/cjs/extensions/forms/Wizard/Context/types.js +1 -0
  89. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -0
  90. package/cjs/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  91. package/cjs/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  92. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  93. package/cjs/extensions/forms/Wizard/Step/Step.js +28 -9
  94. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  95. package/cjs/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  96. package/cjs/extensions/forms/Wizard/Step/StepContext.js +12 -0
  97. package/cjs/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  98. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  99. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  100. package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  101. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  102. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  103. package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
  104. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  105. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
  106. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
  107. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  108. package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
  109. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  110. package/cjs/extensions/forms/hooks/useFieldProps.js +41 -23
  111. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  112. package/cjs/extensions/forms/style/dnb-forms.css +17 -0
  113. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  114. package/cjs/extensions/forms/types.d.ts +9 -1
  115. package/cjs/extensions/forms/types.js.map +1 -1
  116. package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
  117. package/cjs/fragments/drawer-list/DrawerList.js +1 -0
  118. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  119. package/cjs/shared/Eufemia.d.ts +1 -1
  120. package/cjs/shared/Eufemia.js +2 -2
  121. package/cjs/shared/Eufemia.js.map +1 -1
  122. package/cjs/style/core/scopes.scss +1 -1
  123. package/cjs/style/dnb-ui-basis.css +1 -1
  124. package/cjs/style/dnb-ui-basis.min.css +1 -1
  125. package/cjs/style/dnb-ui-body.css +1 -1
  126. package/cjs/style/dnb-ui-body.min.css +1 -1
  127. package/cjs/style/dnb-ui-components.css +53 -4
  128. package/cjs/style/dnb-ui-components.min.css +2 -2
  129. package/cjs/style/dnb-ui-core.css +1 -1
  130. package/cjs/style/dnb-ui-core.min.css +1 -1
  131. package/cjs/style/dnb-ui-extensions.css +17 -0
  132. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  133. package/cjs/style/dnb-ui-forms.css +17 -0
  134. package/cjs/style/dnb-ui-forms.min.css +1 -1
  135. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
  136. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  137. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
  138. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
  140. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  141. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
  142. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  143. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
  144. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  145. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
  146. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  147. package/cjs/style/themes/theme-ui/ui-theme-components.css +70 -4
  148. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  149. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +17 -0
  150. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  151. package/cjs/style/themes/theme-ui/ui-theme-forms.css +17 -0
  152. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  153. package/components/card/Card.js +1 -1
  154. package/components/card/Card.js.map +1 -1
  155. package/components/date-picker/DatePicker.d.ts +3 -1
  156. package/components/date-picker/DatePicker.js +3 -1
  157. package/components/date-picker/DatePicker.js.map +1 -1
  158. package/components/date-picker/DatePickerAddon.js +6 -1
  159. package/components/date-picker/DatePickerAddon.js.map +1 -1
  160. package/components/date-picker/DatePickerInput.d.ts +5 -0
  161. package/components/date-picker/DatePickerInput.js +54 -36
  162. package/components/date-picker/DatePickerInput.js.map +1 -1
  163. package/components/date-picker/DatePickerProvider.d.ts +4 -3
  164. package/components/date-picker/DatePickerProvider.js +7 -2
  165. package/components/date-picker/DatePickerProvider.js.map +1 -1
  166. package/components/date-picker/hooks/useDates.js.map +1 -1
  167. package/components/flex/Container.d.ts +2 -1
  168. package/components/flex/Container.js +32 -25
  169. package/components/flex/Container.js.map +1 -1
  170. package/components/flex/ContainerDocs.d.ts +2 -0
  171. package/components/flex/ContainerDocs.js +74 -0
  172. package/components/flex/ContainerDocs.js.map +1 -0
  173. package/components/flex/style/dnb-flex.css +36 -4
  174. package/components/flex/style/dnb-flex.min.css +1 -1
  175. package/components/flex/style/flex-container.scss +39 -4
  176. package/components/help-button/HelpButtonInline.d.ts +6 -0
  177. package/components/help-button/HelpButtonInline.js +51 -19
  178. package/components/help-button/HelpButtonInline.js.map +1 -1
  179. package/components/help-button/HelpButtonInstance.js +1 -1
  180. package/components/help-button/HelpButtonInstance.js.map +1 -1
  181. package/components/slider/SliderDocs.js +2 -2
  182. package/components/slider/SliderDocs.js.map +1 -1
  183. package/components/slider/SliderProvider.js +0 -2
  184. package/components/slider/SliderProvider.js.map +1 -1
  185. package/components/slider/types.d.ts +2 -2
  186. package/components/slider/types.js.map +1 -1
  187. package/components/step-indicator/StepIndicator.d.ts +6 -0
  188. package/components/step-indicator/StepIndicator.js.map +1 -1
  189. package/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  190. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  191. package/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  192. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  193. package/components/toggle-button/ToggleButton.d.ts +9 -1
  194. package/components/toggle-button/ToggleButtonDocs.js +1 -0
  195. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  196. package/es/components/card/Card.js +1 -1
  197. package/es/components/card/Card.js.map +1 -1
  198. package/es/components/date-picker/DatePicker.d.ts +3 -1
  199. package/es/components/date-picker/DatePicker.js +3 -1
  200. package/es/components/date-picker/DatePicker.js.map +1 -1
  201. package/es/components/date-picker/DatePickerAddon.js +6 -1
  202. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  203. package/es/components/date-picker/DatePickerInput.d.ts +5 -0
  204. package/es/components/date-picker/DatePickerInput.js +54 -36
  205. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  206. package/es/components/date-picker/DatePickerProvider.d.ts +4 -3
  207. package/es/components/date-picker/DatePickerProvider.js +7 -2
  208. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  209. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  210. package/es/components/flex/Container.d.ts +2 -1
  211. package/es/components/flex/Container.js +32 -25
  212. package/es/components/flex/Container.js.map +1 -1
  213. package/es/components/flex/ContainerDocs.d.ts +2 -0
  214. package/es/components/flex/ContainerDocs.js +74 -0
  215. package/es/components/flex/ContainerDocs.js.map +1 -0
  216. package/es/components/flex/style/dnb-flex.css +36 -4
  217. package/es/components/flex/style/dnb-flex.min.css +1 -1
  218. package/es/components/flex/style/flex-container.scss +39 -4
  219. package/es/components/help-button/HelpButtonInline.d.ts +6 -0
  220. package/es/components/help-button/HelpButtonInline.js +50 -18
  221. package/es/components/help-button/HelpButtonInline.js.map +1 -1
  222. package/es/components/help-button/HelpButtonInstance.js +1 -1
  223. package/es/components/help-button/HelpButtonInstance.js.map +1 -1
  224. package/es/components/slider/SliderDocs.js +2 -2
  225. package/es/components/slider/SliderDocs.js.map +1 -1
  226. package/es/components/slider/SliderProvider.js +0 -2
  227. package/es/components/slider/SliderProvider.js.map +1 -1
  228. package/es/components/slider/types.d.ts +2 -2
  229. package/es/components/slider/types.js.map +1 -1
  230. package/es/components/step-indicator/StepIndicator.d.ts +6 -0
  231. package/es/components/step-indicator/StepIndicator.js.map +1 -1
  232. package/es/components/step-indicator/StepIndicatorContext.d.ts +2 -0
  233. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  234. package/es/components/step-indicator/StepIndicatorTriggerButton.js +4 -3
  235. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  236. package/es/components/toggle-button/ToggleButton.d.ts +9 -1
  237. package/es/components/toggle-button/ToggleButtonDocs.js +1 -0
  238. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  239. package/es/extensions/forms/DataContext/Context.d.ts +11 -5
  240. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  241. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  242. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  243. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  244. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  245. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  246. package/es/extensions/forms/DataContext/Provider/Provider.js +36 -35
  247. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  248. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  249. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  250. package/es/extensions/forms/Field/Slider/Slider.js +13 -4
  251. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  252. package/es/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  253. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  254. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  255. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  256. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  257. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  258. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  259. package/es/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  260. package/es/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  261. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  262. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  263. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  264. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  265. package/es/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  266. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +66 -0
  267. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  268. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  269. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +85 -0
  270. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  271. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  272. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +54 -0
  273. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  274. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  275. package/es/extensions/forms/Wizard/Container/WizardContainer.js +97 -194
  276. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  277. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  278. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  279. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  280. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  281. package/es/extensions/forms/Wizard/Context/types.d.ts +35 -0
  282. package/es/extensions/forms/Wizard/Context/types.js +1 -0
  283. package/es/extensions/forms/Wizard/Context/types.js.map +1 -0
  284. package/es/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  285. package/es/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  286. package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  287. package/es/extensions/forms/Wizard/Step/Step.js +29 -10
  288. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  289. package/es/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  290. package/es/extensions/forms/Wizard/Step/StepContext.js +4 -0
  291. package/es/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  292. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  293. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  294. package/es/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  295. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  296. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  297. package/es/extensions/forms/constants/locales/en-GB.js +2 -1
  298. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  299. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
  300. package/es/extensions/forms/constants/locales/index.d.ts +2 -0
  301. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  302. package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
  303. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  304. package/es/extensions/forms/hooks/useFieldProps.js +42 -22
  305. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  306. package/es/extensions/forms/style/dnb-forms.css +17 -0
  307. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  308. package/es/extensions/forms/types.d.ts +9 -1
  309. package/es/extensions/forms/types.js.map +1 -1
  310. package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
  311. package/es/fragments/drawer-list/DrawerList.js +1 -0
  312. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  313. package/es/shared/Eufemia.d.ts +1 -1
  314. package/es/shared/Eufemia.js +2 -2
  315. package/es/shared/Eufemia.js.map +1 -1
  316. package/es/style/core/scopes.scss +1 -1
  317. package/es/style/dnb-ui-basis.css +1 -1
  318. package/es/style/dnb-ui-basis.min.css +1 -1
  319. package/es/style/dnb-ui-body.css +1 -1
  320. package/es/style/dnb-ui-body.min.css +1 -1
  321. package/es/style/dnb-ui-components.css +53 -4
  322. package/es/style/dnb-ui-components.min.css +2 -2
  323. package/es/style/dnb-ui-core.css +1 -1
  324. package/es/style/dnb-ui-core.min.css +1 -1
  325. package/es/style/dnb-ui-extensions.css +17 -0
  326. package/es/style/dnb-ui-extensions.min.css +1 -1
  327. package/es/style/dnb-ui-forms.css +17 -0
  328. package/es/style/dnb-ui-forms.min.css +1 -1
  329. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
  330. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  331. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
  332. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  333. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
  334. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  335. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
  336. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  337. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
  338. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  339. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
  340. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  341. package/es/style/themes/theme-ui/ui-theme-components.css +70 -4
  342. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  343. package/es/style/themes/theme-ui/ui-theme-extensions.css +17 -0
  344. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  345. package/es/style/themes/theme-ui/ui-theme-forms.css +17 -0
  346. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  347. package/esm/dnb-ui-basis.min.mjs +1 -1
  348. package/esm/dnb-ui-components.min.mjs +1 -1
  349. package/esm/dnb-ui-elements.min.mjs +1 -1
  350. package/esm/dnb-ui-extensions.min.mjs +3 -3
  351. package/esm/dnb-ui-lib.min.mjs +1 -1
  352. package/extensions/forms/DataContext/Context.d.ts +11 -5
  353. package/extensions/forms/DataContext/Context.js.map +1 -1
  354. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  355. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  356. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  357. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  358. package/extensions/forms/DataContext/Provider/Provider.d.ts +2 -2
  359. package/extensions/forms/DataContext/Provider/Provider.js +46 -42
  360. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  361. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  362. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  363. package/extensions/forms/Field/Slider/Slider.js +13 -4
  364. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  365. package/extensions/forms/FieldBlock/FieldBlock.js +17 -13
  366. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  367. package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  368. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  369. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  370. package/extensions/forms/Value/ValueDocs.js +5 -0
  371. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  372. package/extensions/forms/ValueBlock/ValueBlock.d.ts +14 -1
  373. package/extensions/forms/ValueBlock/ValueBlock.js +40 -10
  374. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  375. package/extensions/forms/ValueBlock/style/dnb-value-block.css +17 -0
  376. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  377. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +24 -0
  378. package/extensions/forms/Wizard/Container/DisplaySteps.d.ts +7 -0
  379. package/extensions/forms/Wizard/Container/DisplaySteps.js +70 -0
  380. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -0
  381. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +3 -0
  382. package/extensions/forms/Wizard/Container/IterateOverSteps.js +86 -0
  383. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -0
  384. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.d.ts +4 -0
  385. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +57 -0
  386. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -0
  387. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +9 -1
  388. package/extensions/forms/Wizard/Container/WizardContainer.js +103 -207
  389. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  390. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +10 -0
  391. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  392. package/extensions/forms/Wizard/Context/WizardContext.d.ts +7 -23
  393. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  394. package/extensions/forms/Wizard/Context/types.d.ts +35 -0
  395. package/extensions/forms/Wizard/Context/types.js +1 -0
  396. package/extensions/forms/Wizard/Context/types.js.map +1 -0
  397. package/extensions/forms/Wizard/EditButton/EditButton.d.ts +1 -1
  398. package/extensions/forms/Wizard/EditButton/EditButton.js.map +1 -1
  399. package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  400. package/extensions/forms/Wizard/Step/Step.js +29 -10
  401. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  402. package/extensions/forms/Wizard/Step/StepContext.d.ts +7 -0
  403. package/extensions/forms/Wizard/Step/StepContext.js +4 -0
  404. package/extensions/forms/Wizard/Step/StepContext.js.map +1 -0
  405. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  406. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  407. package/extensions/forms/Wizard/hooks/useStep.d.ts +2 -1
  408. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  409. package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  410. package/extensions/forms/constants/locales/en-GB.js +2 -1
  411. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  412. package/extensions/forms/constants/locales/en-US.d.ts +1 -0
  413. package/extensions/forms/constants/locales/index.d.ts +2 -0
  414. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  415. package/extensions/forms/constants/locales/nb-NO.js +2 -1
  416. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  417. package/extensions/forms/hooks/useFieldProps.js +41 -23
  418. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  419. package/extensions/forms/style/dnb-forms.css +17 -0
  420. package/extensions/forms/style/dnb-forms.min.css +1 -1
  421. package/extensions/forms/types.d.ts +9 -1
  422. package/extensions/forms/types.js.map +1 -1
  423. package/fragments/drawer-list/DrawerList.d.ts +6 -1
  424. package/fragments/drawer-list/DrawerList.js +1 -0
  425. package/fragments/drawer-list/DrawerList.js.map +1 -1
  426. package/package.json +1 -1
  427. package/shared/Eufemia.d.ts +1 -1
  428. package/shared/Eufemia.js +2 -2
  429. package/shared/Eufemia.js.map +1 -1
  430. package/style/core/scopes.scss +1 -1
  431. package/style/dnb-ui-basis.css +1 -1
  432. package/style/dnb-ui-basis.min.css +1 -1
  433. package/style/dnb-ui-body.css +1 -1
  434. package/style/dnb-ui-body.min.css +1 -1
  435. package/style/dnb-ui-components.css +53 -4
  436. package/style/dnb-ui-components.min.css +2 -2
  437. package/style/dnb-ui-core.css +1 -1
  438. package/style/dnb-ui-core.min.css +1 -1
  439. package/style/dnb-ui-extensions.css +17 -0
  440. package/style/dnb-ui-extensions.min.css +1 -1
  441. package/style/dnb-ui-forms.css +17 -0
  442. package/style/dnb-ui-forms.min.css +1 -1
  443. package/style/themes/theme-eiendom/eiendom-theme-components.css +70 -4
  444. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  445. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +17 -0
  446. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  447. package/style/themes/theme-eiendom/eiendom-theme-forms.css +17 -0
  448. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  449. package/style/themes/theme-sbanken/sbanken-theme-components.css +70 -4
  450. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  451. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +17 -0
  452. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  453. package/style/themes/theme-sbanken/sbanken-theme-forms.css +17 -0
  454. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  455. package/style/themes/theme-ui/ui-theme-components.css +70 -4
  456. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  457. package/style/themes/theme-ui/ui-theme-extensions.css +17 -0
  458. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  459. package/style/themes/theme-ui/ui-theme-forms.css +17 -0
  460. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  461. package/umd/dnb-ui-basis.min.js +1 -1
  462. package/umd/dnb-ui-components.min.js +1 -1
  463. package/umd/dnb-ui-elements.min.js +1 -1
  464. package/umd/dnb-ui-extensions.min.js +1 -1
  465. 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","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","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","partialDates","setPartialDates","partialStartDate","partialEndDate","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","translation","DatePicker","modeDate","inputDates","startDayRef","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","inputRefs","startDayDateRef","endDayDateRef","startMonthDateRef","endMonthDateRef","startYearDateRef","endYearDateRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","startDateRef","endDateRef","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","push","length","shift","pasteHandler","event","current","success","clipboardData","window","getData","preventDefault","possibleFormats","forEach","date","sep","replace","reverse","join","index","dateFormat","mode","error","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","callOnType","_ref2","getDates","undefined","returnObject","is_valid","is_valid_start_date","is_valid_end_date","typedDates","start_date","end_date","prepareCounting","_ref3","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","_ref4","nextSibling","prevSibling","endPos","value","setDate","type","_dateRefs","_dateRefs2","_dateRefs3","fallback","year","getFullYear","month","getMonth","day","getDate","Date","String","isValidDate","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","_ref5","_excluded2","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","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'\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 separatorRexExp?: 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\nconst defaultProps: DatePickerInputProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå',\n separatorRexExp: /[-/ ]/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 separatorRexExp,\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\n const [focusState, setFocusState] = useState<string>('virgin')\n const [partialDates, setPartialDates] = useState({\n partialStartDate: '',\n partialEndDate: '',\n })\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 // Used in refList, and initiated inside object to to maintain the way of accessing mimic `this`, used in this component\n // Should probably refactor at one point, or move to own hook\n const startDayRef = useRef<HTMLInputElement>()\n const startMonthRef = useRef<HTMLInputElement>()\n const startYearRef = useRef<HTMLInputElement>()\n const endDayRef = useRef<HTMLInputElement>()\n const endMonthRef = useRef<HTMLInputElement>()\n const endYearRef = useRef<HTMLInputElement>()\n\n const inputRefs = useMemo(\n () => ({\n startDayRef,\n startMonthRef,\n startYearRef,\n endDayRef,\n endMonthRef,\n endYearRef,\n }),\n []\n )\n\n const startDayDateRef = useRef<string>()\n const endDayDateRef = useRef<string>()\n const startMonthDateRef = useRef<string>()\n const endMonthDateRef = useRef<string>()\n const startYearDateRef = useRef<string>()\n const endYearDateRef = useRef<string>()\n\n const dateRefs = useMemo(\n () => ({\n startDay: startDayDateRef,\n startMonth: endDayDateRef,\n startYear: startMonthDateRef,\n endDay: endMonthDateRef,\n endMonth: startYearDateRef,\n endYear: endYearDateRef,\n }),\n []\n )\n\n const startDateRef = useRef<Date>()\n const endDateRef = useRef<Date>()\n\n const temporaryDates = useMemo(\n () => ({ startDate: startDateRef, endDate: endDateRef }),\n []\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(separatorRexExp)\n\n return maskOrder\n .split(separatorRexExp)\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, separatorRexExp])\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 if (hasHadValidDate) {\n const { startDate, endDate, event } = {\n ...state,\n ...dates,\n }\n callOnChangeHandler({ startDate, endDate, event })\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({ event, ...dates })\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[`${mode}Year`].current ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs[`${mode}Month`].current ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs[`${mode}Day`].current ||\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 let { startDate, endDate } = getDates()\n // Get the partial dates, so we can know if something was typed or not in an optional date field\n const partialStartDate = startDate\n const partialEndDate = endDate\n\n setPartialDates({\n partialStartDate,\n partialEndDate,\n })\n\n startDate = parseISO(startDate)\n endDate = parseISO(endDate)\n\n // ... check if they were valid\n if (!isValid(startDate)) {\n startDate = null\n }\n if (!isValid(endDate)) {\n endDate = null\n }\n\n let returnObject = getReturnObject({\n startDate,\n endDate,\n event,\n partialStartDate,\n partialEndDate,\n })\n\n // Now, lets correct\n if (\n returnObject.is_valid === false ||\n returnObject.is_valid_start_date === false ||\n returnObject.is_valid_end_date === false\n ) {\n const { startDate, endDate } = getDates()\n\n const typedDates = isRange\n ? {\n start_date: startDate,\n end_date: endDate,\n }\n : { date: startDate }\n\n returnObject = {\n ...returnObject,\n ...typedDates,\n }\n }\n\n onType?.({ ...returnObject })\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 }),\n ...partialDates,\n })\n },\n [onBlur, getReturnObject, partialDates]\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[`${mode}${type}`].current = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates[`${mode}Date`].current\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs[`${mode}Year`]?.current ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs[`${mode}Month`]?.current ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs[`${mode}Day`]?.current || (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 // update the date\n if (isValidDate) {\n callOnChange({\n [`${mode}Date`]: date,\n event,\n })\n } else {\n updateDates({\n [`${mode}Date`]: null,\n [`__${mode}${type}`]: value,\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 (!separatorRexExp.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[`${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-3]/, /[0-9]/]}\n inputRef={inputRefs[`${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[`${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-1]/, /[0-9]/]}\n inputRef={inputRefs[`${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[`${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={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs[`${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 separatorRexExp,\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\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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"}
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","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","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","partialDates","setPartialDates","partialStartDate","partialEndDate","invalidDatesRef","invalidStartDate","invalidEndDate","isDateFullyFilledOutRef","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","translation","DatePicker","modeDate","inputDates","startDayRef","startMonthRef","startYearRef","endDayRef","endMonthRef","endYearRef","inputRefs","startDayDateRef","endDayDateRef","startMonthDateRef","endMonthDateRef","startYearDateRef","endYearDateRef","dateRefs","startDay","startMonth","startYear","endDay","endMonth","endYear","startDateRef","endDateRef","temporaryDates","refList","focusMode","maskList","separators","match","split","reduce","acc","cur","push","length","shift","pasteHandler","event","current","success","clipboardData","window","getData","preventDefault","possibleFormats","forEach","date","sep","replace","reverse","join","index","dateFormat","mode","error","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","callOnType","_ref2","getDates","undefined","parsedStartDate","parsedEndDate","isStartDateValid","isEndDateValid","_getReturnObject","is_valid","is_valid_start_date","is_valid_end_date","returnObject","_excluded2","typedDates","start_date","end_date","prepareCounting","_ref3","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","_ref4","nextSibling","prevSibling","endPos","value","setDate","type","_dateRefs","_dateRefs2","_dateRefs3","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","_ref5","_excluded3","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","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'\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 separatorRexExp?: 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 separatorRexExp: /[-/ ]/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 separatorRexExp,\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\n const [focusState, setFocusState] = useState<string>('virgin')\n // TODO: Turn into a ref, as these values should not trigger a rerender\n const [partialDates, setPartialDates] = useState({\n partialStartDate: '',\n partialEndDate: '',\n })\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 // Used in refList, and initiated inside object to to maintain the way of accessing mimic `this`, used in this component\n // Should probably refactor at one point, or move to own hook\n const startDayRef = useRef<HTMLInputElement>()\n const startMonthRef = useRef<HTMLInputElement>()\n const startYearRef = useRef<HTMLInputElement>()\n const endDayRef = useRef<HTMLInputElement>()\n const endMonthRef = useRef<HTMLInputElement>()\n const endYearRef = useRef<HTMLInputElement>()\n\n const inputRefs = useMemo(\n () => ({\n startDayRef,\n startMonthRef,\n startYearRef,\n endDayRef,\n endMonthRef,\n endYearRef,\n }),\n []\n )\n\n const startDayDateRef = useRef<string>()\n const endDayDateRef = useRef<string>()\n const startMonthDateRef = useRef<string>()\n const endMonthDateRef = useRef<string>()\n const startYearDateRef = useRef<string>()\n const endYearDateRef = useRef<string>()\n\n const dateRefs = useMemo(\n () => ({\n startDay: startDayDateRef,\n startMonth: endDayDateRef,\n startYear: startMonthDateRef,\n endDay: endMonthDateRef,\n endMonth: startYearDateRef,\n endYear: endYearDateRef,\n }),\n []\n )\n\n const startDateRef = useRef<Date>()\n const endDateRef = useRef<Date>()\n\n const temporaryDates = useMemo(\n () => ({ startDate: startDateRef, endDate: endDateRef }),\n []\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(separatorRexExp)\n\n return maskOrder\n .split(separatorRexExp)\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, separatorRexExp])\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[`${mode}Year`].current ||\n inputDates[`__${mode}Year`] ||\n 'yyyy',\n dateRefs[`${mode}Month`].current ||\n inputDates[`__${mode}Month`] ||\n 'mm',\n dateRefs[`${mode}Day`].current ||\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 // Get the partial dates, so we can know if something was typed or not in an optional date field\n const partialStartDate = startDate\n const partialEndDate = endDate\n\n setPartialDates({\n partialStartDate,\n partialEndDate,\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 partialStartDate,\n partialEndDate,\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 }),\n ...partialDates,\n })\n },\n [onBlur, getReturnObject, partialDates]\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[`${mode}${type}`].current = value\n\n if (modeDate[`${mode}Date`]) {\n temporaryDates[`${mode}Date`].current = modeDate[`${mode}Date`]\n }\n\n const fallback = temporaryDates[`${mode}Date`].current\n\n // provide fallbacks to create a temp fallback\n const year =\n dateRefs[`${mode}Year`]?.current ||\n (fallback && fallback.getFullYear())\n const month =\n dateRefs[`${mode}Month`]?.current ||\n (fallback && fallback.getMonth() + 1)\n const day =\n dateRefs[`${mode}Day`]?.current || (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 (!separatorRexExp.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[`${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-3]/, /[0-9]/]}\n inputRef={inputRefs[`${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[`${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-1]/, /[0-9]/]}\n inputRef={inputRefs[`${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[`${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={[/[1-2]/, /[0-9]/, /[0-9]/, /[0-9]/]}\n inputRef={inputRefs[`${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 separatorRexExp,\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\nconst wait = (duration: number) =>\n new Promise((r) => setTimeout(r, duration))\n"],"mappings":"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"}
@@ -8,21 +8,22 @@ import { DatePickerContextValues } from './DatePickerContext';
8
8
  import { CalendarView } from './hooks/useViews';
9
9
  import { DatePickerDates } from './hooks/useDates';
10
10
  import { LastEventCallCache } from './hooks/useLastEventCallCache';
11
+ import { InvalidDates } from './DatePickerInput';
11
12
  type DatePickerProviderProps = DatePickerAllProps & {
12
13
  setReturnObject: (func: DatePickerContextValues['getReturnObject']) => DatePickerContextValues['getReturnObject'];
13
14
  hidePicker?: DatePickerContextValues['hidePicker'];
14
15
  attributes?: DatePickerEventAttributes;
15
16
  children: React.ReactNode;
16
17
  };
17
- export type DatePickerChangeEvent<E> = DatePickerDates & {
18
+ export type DatePickerChangeEvent<E> = DatePickerDates & InvalidDates & {
18
19
  nr?: number;
19
20
  hidePicker?: boolean;
20
21
  event?: E;
21
22
  };
22
- export type GetReturnObjectParams<E> = DatePickerDates & {
23
+ export type GetReturnObjectParams<E> = DatePickerDates & InvalidDates & {
23
24
  event?: E;
24
25
  };
25
- export type ReturnObject<E> = {
26
+ export type ReturnObject<E> = InvalidDates & {
26
27
  event?: E;
27
28
  attributes?: Record<string, unknown>;
28
29
  days_between?: number;
@@ -80,7 +80,9 @@ function DatePickerProvider(externalProps) {
80
80
  startDate,
81
81
  endDate,
82
82
  partialStartDate,
83
- partialEndDate
83
+ partialEndDate,
84
+ invalidStartDate,
85
+ invalidEndDate
84
86
  } = _objectSpread(_objectSpread(_objectSpread({}, views), dates), rest);
85
87
  const returnFormat = correctV1Format(returnFormatProp);
86
88
  const startDateIsValid = Boolean(startDate && isValid(startDate));
@@ -98,11 +100,14 @@ function DatePickerProvider(externalProps) {
98
100
  end_date: endDateIsValid ? format(endDate, returnFormat) : null,
99
101
  is_valid_start_date: hasMinOrMaxDates && startDateIsValid && isDisabled(startDate, dates.minDate, dates.maxDate) ? false : startDateIsValid,
100
102
  is_valid_end_date: hasMinOrMaxDates && endDateIsValid && isDisabled(endDate, dates.minDate, dates.maxDate) ? false : endDateIsValid,
101
- partialEndDate
103
+ partialEndDate,
104
+ invalidStartDate,
105
+ invalidEndDate
102
106
  });
103
107
  }
104
108
  return _objectSpread(_objectSpread({}, returnObject), {}, {
105
109
  date: startDateIsValid ? format(startDate, returnFormat) : null,
110
+ invalidDate: invalidStartDate,
106
111
  is_valid: hasMinOrMaxDates && startDateIsValid && isDisabled(startDate, dates.minDate, dates.maxDate) ? false : startDateIsValid
107
112
  });
108
113
  }, [dates, views, attributes, maxDate, minDate, range, returnFormatProp]);
@@ -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","arguments","length","undefined","event","rest","_objectWithoutProperties","_excluded","partialStartDate","partialEndDate","startDateIsValid","Boolean","endDateIsValid","hasMinOrMaxDates","returnObject","days_between","start_date","end_date","is_valid_start_date","is_valid_end_date","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'\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 nr?: number\n hidePicker?: boolean\n event?: E\n}\n\nexport type GetReturnObjectParams<E> = DatePickerDates & {\n event?: E\n}\n\n// TODO: convert properties on event handler return objects to camelCase, constitutes a breaking change\nexport type ReturnObject<E> = {\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 partialStartDate?: string\n partialEndDate?: string\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 { startDate, endDate, partialStartDate, partialEndDate } = {\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 partialStartDate,\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 partialEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\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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"}
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","arguments","length","undefined","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","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'\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 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 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 partialStartDate?: string\n partialEndDate?: string\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 partialStartDate,\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 partialEndDate,\n invalidStartDate,\n invalidEndDate,\n }\n }\n\n return {\n ...returnObject,\n date: startDateIsValid ? format(startDate, returnFormat) : null,\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useDates.js","names":["useCallback","useEffect","useMemo","useRef","useState","convertStringToDate","isDisabled","isValid","format","addMonths","isSameDay","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","dates","setDates","_objectSpread","mapDates","hasDatePropChanges","Object","keys","some","date","dateProp","previousDate","convertedDateProp","convertedPreviousDate","Date","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","updateDates","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","current","type","updatedDates","pad","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring","length"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n // TODO: Move partial dates to own types, as they are not really only used on `getReturnObject`, and not in this hook\n partialStartDate?: string\n partialEndDate?: string\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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"}
@@ -6,7 +6,8 @@ type Gap = false | 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-la
6
6
  export type BasicProps = {
7
7
  direction?: 'horizontal' | 'vertical';
8
8
  wrap?: boolean;
9
- rowGap?: 'small' | 'medium' | 'large' | boolean;
9
+ /** value `true` is deprecated, use `undefined` instead */
10
+ rowGap?: Gap | true;
10
11
  sizeCount?: number;
11
12
  justify?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
12
13
  align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';