@dnb/eufemia 10.64.1 → 10.65.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cjs/components/date-picker/DatePicker.d.ts +3 -1
  3. package/cjs/components/date-picker/DatePicker.js +4 -6
  4. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  5. package/cjs/components/date-picker/DatePickerAddon.js +8 -1
  6. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  7. package/cjs/components/date-picker/DatePickerInput.js +2 -2
  8. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  9. package/cjs/components/input-masked/MultiInputMask.d.ts +2 -1
  10. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  11. package/cjs/components/radio/RadioGroup.d.ts +1 -1
  12. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  13. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  14. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  15. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  16. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  17. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  18. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  19. package/cjs/components/toggle-button/ToggleButtonGroup.js +5 -1
  20. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  21. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
  22. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  24. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  25. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  26. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js +2 -2
  28. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  29. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  30. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  31. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  32. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  33. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  35. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  36. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  37. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  38. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  39. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  40. package/cjs/extensions/forms/Field/Date/Date.d.ts +5 -4
  41. package/cjs/extensions/forms/Field/Date/Date.js +123 -11
  42. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Date/DateDocs.js +13 -4
  44. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  46. package/cjs/extensions/forms/Field/Expiry/Expiry.js +2 -0
  47. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  48. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  49. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js +19 -0
  50. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  51. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  52. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  53. package/cjs/extensions/forms/Field/Number/NumberDocs.js +8 -1
  54. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  55. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  56. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  58. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  59. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  60. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  61. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  62. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  63. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  64. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  65. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  66. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  67. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  68. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  69. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  72. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +10 -1
  73. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  74. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  75. package/cjs/extensions/forms/Field/Selection/Selection.js +14 -6
  76. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  77. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  78. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  79. package/cjs/extensions/forms/Field/String/StringDocs.js +8 -1
  80. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  82. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -1
  83. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  84. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  85. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  86. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  87. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  89. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  91. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  92. package/cjs/extensions/forms/Value/Date/Date.d.ts +3 -2
  93. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  94. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  95. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  96. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  97. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  98. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  99. package/cjs/extensions/forms/Wizard/Step/Step.js +32 -10
  100. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  101. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  102. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  103. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  104. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -1
  105. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  106. package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -0
  107. package/cjs/extensions/forms/constants/locales/index.d.ts +12 -0
  108. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  109. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -1
  110. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  111. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -8
  112. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  113. package/cjs/extensions/forms/types.d.ts +1 -0
  114. package/cjs/extensions/forms/types.js.map +1 -1
  115. package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
  116. package/cjs/shared/Eufemia.d.ts +1 -1
  117. package/cjs/shared/Eufemia.js +2 -2
  118. package/cjs/shared/Eufemia.js.map +1 -1
  119. package/cjs/style/core/scopes.scss +1 -1
  120. package/cjs/style/dnb-ui-basis.css +1 -1
  121. package/cjs/style/dnb-ui-basis.min.css +1 -1
  122. package/cjs/style/dnb-ui-body.css +1 -1
  123. package/cjs/style/dnb-ui-body.min.css +1 -1
  124. package/cjs/style/dnb-ui-core.css +1 -1
  125. package/cjs/style/dnb-ui-core.min.css +1 -1
  126. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  127. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  128. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  129. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  130. package/cjs/style/themes/theme-sbanken/globals.scss +0 -4
  131. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  132. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  133. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  134. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  135. package/cjs/style/themes/theme-ui/globals.scss +0 -4
  136. package/cjs/style/themes/theme-ui/ui-theme-basis.css +0 -2
  137. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  138. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -7
  139. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  140. package/components/date-picker/DatePicker.d.ts +3 -1
  141. package/components/date-picker/DatePicker.js +4 -6
  142. package/components/date-picker/DatePicker.js.map +1 -1
  143. package/components/date-picker/DatePickerAddon.js +6 -1
  144. package/components/date-picker/DatePickerAddon.js.map +1 -1
  145. package/components/date-picker/DatePickerInput.js +2 -2
  146. package/components/date-picker/DatePickerInput.js.map +1 -1
  147. package/components/input-masked/MultiInputMask.d.ts +2 -1
  148. package/components/input-masked/MultiInputMask.js.map +1 -1
  149. package/components/radio/RadioGroup.d.ts +1 -1
  150. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  151. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  152. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  153. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  154. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  155. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  156. package/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  157. package/components/toggle-button/ToggleButtonGroup.js +5 -1
  158. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  159. package/es/components/date-picker/DatePicker.d.ts +3 -1
  160. package/es/components/date-picker/DatePicker.js +4 -6
  161. package/es/components/date-picker/DatePicker.js.map +1 -1
  162. package/es/components/date-picker/DatePickerAddon.js +6 -1
  163. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  164. package/es/components/date-picker/DatePickerInput.js +2 -2
  165. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  166. package/es/components/input-masked/MultiInputMask.d.ts +2 -1
  167. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  168. package/es/components/radio/RadioGroup.d.ts +1 -1
  169. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  170. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  171. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  172. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  173. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  174. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  175. package/es/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  176. package/es/components/toggle-button/ToggleButtonGroup.js +5 -1
  177. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  178. package/es/extensions/forms/DataContext/Context.d.ts +1 -1
  179. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  180. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  181. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  182. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  183. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  184. package/es/extensions/forms/DataContext/Provider/Provider.js +2 -2
  185. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  186. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  187. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  188. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  189. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  190. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  191. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  192. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  193. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  194. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  195. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  196. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  197. package/es/extensions/forms/Field/Date/Date.d.ts +5 -4
  198. package/es/extensions/forms/Field/Date/Date.js +124 -12
  199. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  200. package/es/extensions/forms/Field/Date/DateDocs.js +13 -4
  201. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  202. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  203. package/es/extensions/forms/Field/Expiry/Expiry.js +2 -0
  204. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  205. package/es/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  206. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  207. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  208. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  209. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  210. package/es/extensions/forms/Field/Number/NumberDocs.js +6 -1
  211. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  212. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  213. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  214. package/es/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  215. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  216. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  217. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  218. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  219. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  220. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  221. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  222. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  223. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  224. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  225. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  226. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  227. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  228. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  229. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  230. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  231. package/es/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  232. package/es/extensions/forms/Field/Selection/Selection.js +14 -6
  233. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  234. package/es/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  235. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  236. package/es/extensions/forms/Field/String/StringDocs.js +6 -1
  237. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  238. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  239. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -1
  240. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  241. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  242. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  243. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  244. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  245. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  246. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  247. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  248. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  249. package/es/extensions/forms/Value/Date/Date.d.ts +3 -2
  250. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  251. package/es/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  252. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  253. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  254. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  255. package/es/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  256. package/es/extensions/forms/Wizard/Step/Step.js +29 -10
  257. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  258. package/es/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  259. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  260. package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  261. package/es/extensions/forms/constants/locales/en-GB.js +7 -1
  262. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  263. package/es/extensions/forms/constants/locales/en-US.d.ts +6 -0
  264. package/es/extensions/forms/constants/locales/index.d.ts +12 -0
  265. package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  266. package/es/extensions/forms/constants/locales/nb-NO.js +7 -1
  267. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  268. package/es/extensions/forms/hooks/useFieldProps.js +8 -8
  269. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  270. package/es/extensions/forms/types.d.ts +1 -0
  271. package/es/extensions/forms/types.js.map +1 -1
  272. package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
  273. package/es/shared/Eufemia.d.ts +1 -1
  274. package/es/shared/Eufemia.js +2 -2
  275. package/es/shared/Eufemia.js.map +1 -1
  276. package/es/style/core/scopes.scss +1 -1
  277. package/es/style/dnb-ui-basis.css +1 -1
  278. package/es/style/dnb-ui-basis.min.css +1 -1
  279. package/es/style/dnb-ui-body.css +1 -1
  280. package/es/style/dnb-ui-body.min.css +1 -1
  281. package/es/style/dnb-ui-core.css +1 -1
  282. package/es/style/dnb-ui-core.min.css +1 -1
  283. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  284. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  285. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  286. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  287. package/es/style/themes/theme-sbanken/globals.scss +0 -4
  288. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  289. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  290. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  291. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  292. package/es/style/themes/theme-ui/globals.scss +0 -4
  293. package/es/style/themes/theme-ui/ui-theme-basis.css +0 -2
  294. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  295. package/es/style/themes/theme-ui/ui-theme-components.css +5 -7
  296. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  297. package/esm/dnb-ui-basis.min.mjs +1 -1
  298. package/esm/dnb-ui-components.min.mjs +1 -1
  299. package/esm/dnb-ui-elements.min.mjs +1 -1
  300. package/esm/dnb-ui-extensions.min.mjs +3 -3
  301. package/esm/dnb-ui-lib.min.mjs +1 -1
  302. package/extensions/forms/DataContext/Context.d.ts +1 -1
  303. package/extensions/forms/DataContext/Context.js.map +1 -1
  304. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  305. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  306. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  307. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  308. package/extensions/forms/DataContext/Provider/Provider.js +2 -2
  309. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  310. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  311. package/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  312. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  313. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  314. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  315. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  316. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  317. package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  318. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  319. package/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  320. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  321. package/extensions/forms/Field/Date/Date.d.ts +5 -4
  322. package/extensions/forms/Field/Date/Date.js +124 -12
  323. package/extensions/forms/Field/Date/Date.js.map +1 -1
  324. package/extensions/forms/Field/Date/DateDocs.js +13 -4
  325. package/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  326. package/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  327. package/extensions/forms/Field/Expiry/Expiry.js +2 -0
  328. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  329. package/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  330. package/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  331. package/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  332. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  333. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  334. package/extensions/forms/Field/Number/NumberDocs.js +6 -1
  335. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  336. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  337. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  338. package/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  339. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  340. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  341. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  342. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  343. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  344. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  345. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  346. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  347. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  348. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  349. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  350. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  351. package/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  352. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  353. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  354. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  355. package/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  356. package/extensions/forms/Field/Selection/Selection.js +14 -6
  357. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  358. package/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  359. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  360. package/extensions/forms/Field/String/StringDocs.js +6 -1
  361. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  362. package/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  363. package/extensions/forms/Field/Toggle/Toggle.js +6 -1
  364. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  365. package/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  366. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  367. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  368. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  369. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  370. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  371. package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  372. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  373. package/extensions/forms/Value/Date/Date.d.ts +3 -2
  374. package/extensions/forms/Value/Date/Date.js.map +1 -1
  375. package/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  376. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  377. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  378. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  379. package/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  380. package/extensions/forms/Wizard/Step/Step.js +29 -10
  381. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  382. package/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  383. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  384. package/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  385. package/extensions/forms/constants/locales/en-GB.js +7 -1
  386. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  387. package/extensions/forms/constants/locales/en-US.d.ts +6 -0
  388. package/extensions/forms/constants/locales/index.d.ts +12 -0
  389. package/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  390. package/extensions/forms/constants/locales/nb-NO.js +7 -1
  391. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  392. package/extensions/forms/hooks/useFieldProps.js +8 -8
  393. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  394. package/extensions/forms/types.d.ts +1 -0
  395. package/extensions/forms/types.js.map +1 -1
  396. package/fragments/drawer-list/DrawerList.d.ts +6 -1
  397. package/package.json +1 -1
  398. package/shared/Eufemia.d.ts +1 -1
  399. package/shared/Eufemia.js +2 -2
  400. package/shared/Eufemia.js.map +1 -1
  401. package/style/core/scopes.scss +1 -1
  402. package/style/dnb-ui-basis.css +1 -1
  403. package/style/dnb-ui-basis.min.css +1 -1
  404. package/style/dnb-ui-body.css +1 -1
  405. package/style/dnb-ui-body.min.css +1 -1
  406. package/style/dnb-ui-core.css +1 -1
  407. package/style/dnb-ui-core.min.css +1 -1
  408. package/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  409. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  410. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  411. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  412. package/style/themes/theme-sbanken/globals.scss +0 -4
  413. package/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  414. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  415. package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  416. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  417. package/style/themes/theme-ui/globals.scss +0 -4
  418. package/style/themes/theme-ui/ui-theme-basis.css +0 -2
  419. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  420. package/style/themes/theme-ui/ui-theme-components.css +5 -7
  421. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  422. package/umd/dnb-ui-basis.min.js +1 -1
  423. package/umd/dnb-ui-components.min.js +1 -1
  424. package/umd/dnb-ui-elements.min.js +1 -1
  425. package/umd/dnb-ui-extensions.min.js +3 -3
  426. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerInput.js","names":["_react","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_DatePickerCalc","_DatePickerContext","_shared","_span","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDates","setPartialDates","partialStartDate","partialEndDate","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","startDayRef","useRef","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","shift","pasteHandler","useCallback","event","current","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","parseISO","returnObject","is_valid","is_valid_start_date","is_valid_end_date","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","wait","selectAll","e","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","_ref4","nextSibling","prevSibling","endPos","setDate","type","_dateRefs","_dateRefs2","_dateRefs3","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","generateDateList","element","map","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","formatDate","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","select","_ref5","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","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]+)-/)[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","_interopRequireWildcard","require","_addDays","_interopRequireDefault","_addMonths","_addYears","_isValid","_parseISO","_classnames","_TextMask","_Button","_Input","_componentHelper","_DatePickerCalc","_DatePickerContext","_shared","_span","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","defaultProps","maskOrder","maskPlaceholder","separatorRexExp","statusState","opened","DatePickerInput","externalProps","props","isRange","id","title","submitAttributes","onFocus","onBlur","onChange","onSubmit","selectedDateTitle","showInput","inputElement","lang","disabled","skeleton","size","status","statusProps","attributes","focusState","setFocusState","useState","partialDates","setPartialDates","partialStartDate","partialEndDate","updateDates","callOnChangeHandler","hasHadValidDate","getReturnObject","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","startDate","endDate","onType","label","useContext","DatePickerContext","translation","useTranslation","DatePicker","modeDate","useMemo","inputDates","startDayRef","useRef","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","shift","pasteHandler","useCallback","event","current","success","clipboardData","window","getData","preventDefault","possibleFormats","date","sep","replace","reverse","join","index","convertStringToDate","dateFormat","mode","error","warn","callOnChangeAsInvalid","state","hoverDate","dates","callOnChange","_ref","isValid","callOnType","_ref2","getDates","parseISO","returnObject","is_valid","is_valid_start_date","is_valid_end_date","typedDates","start_date","end_date","prepareCounting","_ref3","keyCode","isDate","getAttribute","isInRange","count","addDays","addMonths","addYears","wait","selectAll","e","selectStart","focus","setSelectionRange","onFocusHandler","onBlurHandler","onKeyDownHandler","selectionStart","selectionEnd","persist","parseFloat","firstSelectionStart","secondSelectionStart","test","refListArray","findIndex","_ref4","nextSibling","prevSibling","endPos","setDate","type","_dateRefs","_dateRefs2","_dateRefs3","fallback","year","getFullYear","month","getMonth","day","getDate","Date","isValidDate","dateSetters","set_startDay","set_startMonth","set_startYear","set_endDay","set_endMonth","set_endYear","getPlaceholderChar","generateDateList","element","map","slice","placeholderChar","isRangeLabel","onKeyDown","onPaste","DateField","React","isValidElement","InputElement","inputSizeClassName","createElement","Fragment","className","classnames","mask","inputRef","hidden","htmlFor","renderInputElement","startDateList","endDateList","formatDate","openPickerText","validateDOMAttributes","SubmitElement","SubmitButton","Button","innerRef","ref","input_state","input_element","status_state","submit_element","icon","variant","on_submit","on_click","_default","exports","select","_ref5","guide","showMask","keepCharPositions","autoComplete","autoCapitalize","spellCheck","autoCorrect","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,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { InputProps } from '../Input';
2
3
  import { SpacingProps } from '../space/types';
3
4
  import { FormStatusState, FormStatusText } from '../FormStatus';
4
5
  export type MultiInputMaskInput<T extends string> = {
@@ -71,7 +72,7 @@ export type MultiInputMaskProps<T extends string> = {
71
72
  * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.
72
73
  */
73
74
  suffix?: React.ReactNode;
74
- } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'ref' | 'value' | 'label' | 'placeholder'> & SpacingProps;
75
+ } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'ref' | 'value' | 'label' | 'placeholder' | 'size'> & SpacingProps & Pick<InputProps, 'size'>;
75
76
  declare function MultiInputMask<T extends string>({ id, label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, inputMode, suffix, onBlur, onFocus, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
76
77
  declare namespace MultiInputMask {
77
78
  var _formElement: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiInputMask.js","names":["_react","_interopRequireWildcard","require","_Input","_interopRequireDefault","_TextMask","_useHandleCursorPosition","_classnames","_FormLabel","_SpacingHelper","_useMultiInputValues","_useId","_excluded","_excluded2","_excluded3","_excluded4","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","MultiInputMask","_ref","_inputs$","id","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","inputMode","suffix","onBlur","onFocus","props","useId","useMultiInputValue","callback","inputRefs","useRef","areInputsInFocus","onKeyDown","useHandleCursorPosition","current","getKeysToHandle","WrapperElement","createElement","classnames","createSpacingClasses","element","forId","onClick","onLegendClick","label_direction","status_state","input_element","map","_ref2","index","inputId","rest","MultiInputMaskInput","e","_e$relatedTarget","_e$relatedTarget$id","relatedTarget","includes","getInputRef","firstInput","focus","setSelectionRange","ref","inputRef","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","_ref3","mask","masks","Set","add","_ref4","placeholderCharacter","attributes","shouldHighlight","test","Fragment","placeholderChar","guide","showMask","keepCharPositions","_ref5","event","select","removePlaceholder","placeholder","_default","exports","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport useId from '../../shared/helpers/useId'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input gains focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onFocus?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input loses focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onBlur?: (values: MultiInputMaskValue<T>) => void\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 * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'ref'\n | 'value'\n | 'label'\n | 'placeholder'\n> &\n SpacingProps\n\nfunction MultiInputMask<T extends string>({\n id,\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n inputMode,\n suffix,\n onBlur,\n onFocus,\n ...props\n}: MultiInputMaskProps<T>) {\n id = useId(id)\n\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n const areInputsInFocus = useRef<boolean>(false)\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n <Input\n {...props}\n id={id}\n label={\n label && (\n <FormLabel\n element=\"legend\"\n forId={`${id}-${inputs[0]?.id}`}\n disabled={disabled}\n labelDirection={labelDirection}\n onClick={onLegendClick}\n >\n {label}\n </FormLabel>\n )\n }\n className={classnames('dnb-multi-input-mask', className)}\n label_direction={labelDirection}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map(({ id: inputId, ...rest }, index) => {\n return (\n <MultiInputMaskInput\n key={inputId}\n id={id}\n inputId={inputId}\n delimiter={\n index !== inputs.length - 1 ? delimiter : undefined\n }\n disabled={disabled}\n inputMode={inputMode}\n onKeyDown={onKeyDown}\n onChange={onChange}\n onFocus={() => {\n if (!areInputsInFocus.current) {\n onFocus?.(values)\n }\n\n areInputsInFocus.current = true\n }}\n onBlur={(e) => {\n if (!e.relatedTarget?.id?.includes(id)) {\n onBlur?.(values)\n areInputsInFocus.current = false\n }\n }}\n getInputRef={getInputRef}\n {...rest}\n value={values[inputId]}\n />\n )\n })}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref?: {\n inputRef?: MutableRefObject<HTMLInputElement>\n }) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n\n return inputRef\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n inputId: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n getInputRef: () => MutableRefObject<HTMLInputElement>\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n inputId,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n getInputRef,\n onKeyDown,\n onChange,\n onBlur,\n onFocus,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const shouldHighlight = !disabled && /\\w+/.test(value)\n\n return (\n <>\n <TextMask\n id={`${id}-${inputId}`}\n data-mask-id={inputId}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n shouldHighlight && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-label={label}\n ref={getInputRef}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n onFocus={({ target, ...event }) => {\n target.focus()\n target.select()\n\n if (onFocus) {\n onFocus({ target, ...event })\n }\n }}\n onChange={(event) => {\n onChange(\n inputId,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n shouldHighlight && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"MultiInputMask.js","names":["_react","_interopRequireWildcard","require","_Input","_interopRequireDefault","_TextMask","_useHandleCursorPosition","_classnames","_FormLabel","_SpacingHelper","_useMultiInputValues","_useId","_excluded","_excluded2","_excluded3","_excluded4","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","MultiInputMask","_ref","_inputs$","id","label","labelDirection","inputs","delimiter","onChange","onChangeExternal","disabled","status","statusState","values","defaultValues","className","stretch","inputMode","suffix","onBlur","onFocus","props","useId","useMultiInputValue","callback","inputRefs","useRef","areInputsInFocus","onKeyDown","useHandleCursorPosition","current","getKeysToHandle","WrapperElement","createElement","classnames","createSpacingClasses","element","forId","onClick","onLegendClick","label_direction","status_state","input_element","map","_ref2","index","inputId","rest","MultiInputMaskInput","e","_e$relatedTarget","_e$relatedTarget$id","relatedTarget","includes","getInputRef","firstInput","focus","setSelectionRange","ref","inputRef","uniqueMasks","getUniqueMasks","size","pattern","next","replace","RegExp","reduce","_ref3","mask","masks","Set","add","_ref4","placeholderCharacter","attributes","shouldHighlight","test","Fragment","placeholderChar","guide","showMask","keepCharPositions","_ref5","event","select","removePlaceholder","placeholder","_default","exports","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/input-masked/MultiInputMask.tsx"],"sourcesContent":["import React, { MutableRefObject, useRef } from 'react'\nimport Input from '../Input'\nimport type { InputProps } from '../Input'\nimport TextMask from './TextMask'\nimport useHandleCursorPosition from './hooks/useHandleCursorPosition'\nimport classnames from 'classnames'\nimport FormLabel from '../FormLabel'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { FormStatusState, FormStatusText } from '../FormStatus'\nimport { useMultiInputValue } from './hooks/useMultiInputValues'\nimport useId from '../../shared/helpers/useId'\n\nexport type MultiInputMaskInput<T extends string> = {\n /**\n * Defines the id for the input. This id is also used to map the input value to the correct property on the objects used for `values` and `onChange` parameters.\n */\n id: T\n /**\n * Label used by the input. The label itself is hidden, but required to uphold accessibility standards for screen readers.\n */\n label: React.ReactNode\n /**\n * Each RegExp item in the array defines what the mask should be for each subsequent character in the input. The length sets the size of the input, so an array of two items would produce an input of two characters\n */\n mask: RegExp[]\n /**\n * Sets the placeholder character used for the input.\n */\n placeholderCharacter: string\n} & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref'>\n\nexport type MultiInputMaskValue<T extends string> = {\n // eslint-disable-next-line no-unused-vars\n [K in T]: string\n}\n\nexport type MultiInputMaskProps<T extends string> = {\n /**\n * The label describing the group of inputs inside the components.\n */\n label?: React.ReactNode\n /**\n * Use to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Used to define the different inputs representing the inputs in the component. The id's defined here is used to map input value to correct property in `values` parameters used in `onChange`\n */\n inputs: MultiInputMaskInput<T>[]\n /**\n * Values used for the inputs inside the component. Expects an object with keys matching the id's defined in `inputs`\n */\n values?: MultiInputMaskValue<T>\n /**\n * Defines the delimiter used to separate the inputs inside the component.\n */\n delimiter?: string\n /**\n * Runs when the input value changes. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onChange?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input gains focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onFocus?: (values: MultiInputMaskValue<T>) => void\n /**\n * Runs when the input loses focus. Has an object parameter with keys matching the id's defined in `inputs`. i.e. `{month: string, year: string}`\n */\n onBlur?: (values: MultiInputMaskValue<T>) => void\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 * Set it to `true` in order to stretch the input to the available space. Defaults to false.\n */\n stretch?: boolean\n /**\n * Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.\n */\n suffix?: React.ReactNode\n} & Omit<\n React.HTMLProps<HTMLInputElement>,\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'ref'\n | 'value'\n | 'label'\n | 'placeholder'\n | 'size'\n> &\n SpacingProps &\n Pick<InputProps, 'size'>\n\nfunction MultiInputMask<T extends string>({\n id,\n label,\n labelDirection = 'horizontal',\n inputs,\n delimiter,\n onChange: onChangeExternal,\n disabled,\n status,\n statusState,\n values: defaultValues,\n className,\n stretch,\n inputMode,\n suffix,\n onBlur,\n onFocus,\n ...props\n}: MultiInputMaskProps<T>) {\n id = useId(id)\n\n const [values, onChange] = useMultiInputValue({\n inputs,\n defaultValues,\n callback: onChangeExternal,\n })\n\n const inputRefs = useRef<Array<MutableRefObject<HTMLInputElement>>>([])\n const areInputsInFocus = useRef<boolean>(false)\n\n const { onKeyDown } = useHandleCursorPosition(\n inputRefs.current,\n getKeysToHandle()\n )\n\n const WrapperElement = label ? 'fieldset' : 'div'\n\n return (\n <WrapperElement\n className={classnames(\n 'dnb-multi-input-mask__fieldset',\n labelDirection === 'horizontal' &&\n 'dnb-multi-input-mask__fieldset--horizontal',\n createSpacingClasses(props)\n )}\n >\n <Input\n {...props}\n id={id}\n label={\n label && (\n <FormLabel\n element=\"legend\"\n forId={`${id}-${inputs[0]?.id}`}\n disabled={disabled}\n labelDirection={labelDirection}\n onClick={onLegendClick}\n >\n {label}\n </FormLabel>\n )\n }\n className={classnames('dnb-multi-input-mask', className)}\n label_direction={labelDirection}\n disabled={disabled}\n status={status}\n status_state={statusState}\n suffix={suffix}\n stretch={stretch}\n input_element={inputs.map(({ id: inputId, ...rest }, index) => {\n return (\n <MultiInputMaskInput\n key={inputId}\n id={id}\n inputId={inputId}\n delimiter={\n index !== inputs.length - 1 ? delimiter : undefined\n }\n disabled={disabled}\n inputMode={inputMode}\n onKeyDown={onKeyDown}\n onChange={onChange}\n onFocus={() => {\n if (!areInputsInFocus.current) {\n onFocus?.(values)\n }\n\n areInputsInFocus.current = true\n }}\n onBlur={(e) => {\n if (!e.relatedTarget?.id?.includes(id)) {\n onBlur?.(values)\n areInputsInFocus.current = false\n }\n }}\n getInputRef={getInputRef}\n {...rest}\n value={values[inputId]}\n />\n )\n })}\n />\n </WrapperElement>\n )\n\n // Event handlers\n function onLegendClick() {\n if (disabled) {\n return\n }\n\n const firstInput = inputRefs.current[0].current\n\n firstInput.focus()\n firstInput.setSelectionRange(0, 0)\n }\n\n // Utilities\n function getInputRef(ref?: {\n inputRef?: MutableRefObject<HTMLInputElement>\n }) {\n const inputRef = ref?.inputRef\n\n if (inputRef && !inputRefs.current.includes(inputRef)) {\n inputRefs.current.push(inputRef)\n }\n\n return inputRef\n }\n\n function getKeysToHandle() {\n const uniqueMasks = getUniqueMasks()\n\n // Return the only one RegExp since all the inputs are using the same mask\n if (uniqueMasks.size === 1) {\n const pattern = uniqueMasks.values().next().value.replace(/\\//g, '')\n return new RegExp(pattern)\n }\n\n // If there are multiple types of masks used, then map the maps to an object based on input ids\n // So that useHandleCursorPosition can do a per character test to see if the pressed key should be handled or not\n return inputs.reduce(\n (keys, { id, mask }) => {\n keys[id] = mask\n\n return keys\n },\n {} as Record<T, RegExp[]>\n )\n }\n\n function getUniqueMasks() {\n const masks = new Set()\n\n inputs.forEach((input) => {\n input.mask.forEach((pattern) => masks.add(String(pattern)))\n })\n\n return masks\n }\n}\n\ntype MultiInputMaskInputProps<T extends string> =\n MultiInputMaskInput<T> & {\n id: MultiInputMaskInput<T>['id']\n inputId: MultiInputMaskInput<T>['id']\n label: MultiInputMaskInput<T>['label']\n value: string\n mask: MultiInputMaskInput<T>['mask']\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n delimiter?: MultiInputMaskProps<T>['delimiter']\n disabled: boolean\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void\n onChange: (\n id: string,\n placeholderCharacter: MultiInputMaskInput<T>['placeholderCharacter']\n ) => void\n getInputRef: () => MutableRefObject<HTMLInputElement>\n }\n\nfunction MultiInputMaskInput<T extends string>({\n id,\n inputId,\n label,\n value,\n mask,\n placeholderCharacter,\n delimiter,\n disabled,\n getInputRef,\n onKeyDown,\n onChange,\n onBlur,\n onFocus,\n ...attributes\n}: MultiInputMaskInputProps<T>) {\n const shouldHighlight = !disabled && /\\w+/.test(value)\n\n return (\n <>\n <TextMask\n id={`${id}-${inputId}`}\n data-mask-id={inputId}\n className={classnames(\n 'dnb-input__input',\n 'dnb-multi-input-mask__input',\n shouldHighlight && 'dnb-multi-input-mask__input--highlight'\n )}\n disabled={disabled}\n size={mask.length}\n mask={mask}\n value={value ?? ''}\n placeholderChar={placeholderCharacter}\n guide={true}\n showMask={true}\n keepCharPositions={false} // so we can overwrite next value, if it already exists\n aria-label={label}\n ref={getInputRef}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n onFocus={({ target, ...event }) => {\n target.focus()\n target.select()\n\n if (onFocus) {\n onFocus({ target, ...event })\n }\n }}\n onChange={(event) => {\n onChange(\n inputId,\n removePlaceholder(event.target.value, placeholderCharacter)\n )\n }}\n {...attributes}\n />\n {delimiter && (\n <span\n aria-hidden\n className={classnames(\n 'dnb-multi-input-mask__delimiter',\n shouldHighlight && 'dnb-multi-input-mask__delimiter--highlight'\n )}\n >\n {delimiter}\n </span>\n )}\n </>\n )\n\n function removePlaceholder(value: string, placeholder: string) {\n return value.replace(RegExp(placeholder, 'gm'), '')\n }\n}\n\nexport default MultiInputMask\n\nMultiInputMask._formElement = true\nMultiInputMask._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ import type { SkeletonShow } from '../Skeleton';
9
9
  import type { SpacingProps } from '../space/types';
10
10
  import type { GlobalStatusConfigObject } from '../GlobalStatus';
11
11
  export type RadioGroupLabelPosition = 'left' | 'right';
12
- export type RadioGroupSize = 'default' | 'medium' | 'large';
12
+ export type RadioGroupSize = 'default' | 'medium' | 'large' | number;
13
13
  export type RadioGroupSuffix =
14
14
  | string
15
15
  | ((...args: any[]) => any)
@@ -1,7 +1,4 @@
1
- /*
2
- * No theme is provided
3
- *
4
- * Theming variables for the Skeleton component is required globally
5
- * and is thus defined in src/style/themes/theme-sbanken/customisations.scss
6
- *
7
- */
1
+ .dnb-skeleton {
2
+ --skeleton-color: var(--sb-color-gray-light-2);
3
+ --skeleton-color--contrast: var(--sb-color-white);
4
+ }
@@ -0,0 +1 @@
1
+ .dnb-skeleton{--skeleton-color:var(--sb-color-gray-light-2);--skeleton-color--contrast:var(--sb-color-white)}
@@ -1,7 +1,5 @@
1
- /*
2
- * No theme is provided
3
- *
4
- * Theming variables for the Skeleton component is required globally
5
- * and is thus defined in src/style/themes/theme-sbanken/customisations.scss
6
- *
7
- */
1
+ .dnb-skeleton {
2
+ // Skeleton
3
+ --skeleton-color: var(--sb-color-gray-light-2);
4
+ --skeleton-color--contrast: var(--sb-color-white);
5
+ }
@@ -1,7 +1,4 @@
1
- /*
2
- * No theme is provided
3
- *
4
- * Theming variables for the Skeleton component is required globally
5
- * and is thus defined in src/style/themes/theme-ui/ui-theme-basis.scss
6
- *
7
- */
1
+ .dnb-skeleton {
2
+ --skeleton-color: var(--color-black-8);
3
+ --skeleton-color--contrast: var(--color-white);
4
+ }
@@ -0,0 +1 @@
1
+ .dnb-skeleton{--skeleton-color:var(--color-black-8);--skeleton-color--contrast:var(--color-white)}
@@ -1,7 +1,5 @@
1
- /*
2
- * No theme is provided
3
- *
4
- * Theming variables for the Skeleton component is required globally
5
- * and is thus defined in src/style/themes/theme-ui/ui-theme-basis.scss
6
- *
7
- */
1
+ .dnb-skeleton {
2
+ // Skeleton
3
+ --skeleton-color: var(--color-black-8);
4
+ --skeleton-color--contrast: var(--color-white);
5
+ }
@@ -4,6 +4,7 @@ import type {
4
4
  FormStatusState,
5
5
  FormStatusText
6
6
  } from '../FormStatus';
7
+ import type { ButtonSize } from '../Button';
7
8
  import type { SkeletonShow } from '../Skeleton';
8
9
  import type { SpacingProps } from '../space/types';
9
10
  import type { FormLabelLabelDirection } from '../FormLabel';
@@ -97,6 +98,7 @@ export interface ToggleButtonGroupProps
97
98
  values?: ToggleButtonGroupValues;
98
99
  attributes?: ToggleButtonGroupAttributes;
99
100
  className?: string;
101
+ size?: ButtonSize | number;
100
102
  children?: ToggleButtonGroupChildren;
101
103
  /**
102
104
  * Will be called on state changes made by the user. Returns a boolean and string `{ checked, value, event }`.
@@ -20,7 +20,7 @@ var _Suffix = _interopRequireDefault(require("../../shared/helpers/Suffix"));
20
20
  var _ToggleButtonGroupContext = _interopRequireDefault(require("./ToggleButtonGroupContext"));
21
21
  var _filterValidProps = require("../../shared/helpers/filterValidProps");
22
22
  var _AlignmentHelper;
23
- const _excluded = ["status", "status_state", "status_props", "status_no_animation", "globalStatus", "suffix", "label_direction", "label_sr_only", "vertical", "layout_direction", "label", "variant", "left_component", "disabled", "skeleton", "className", "multiselect", "id", "name", "value", "values", "children", "on_change"];
23
+ const _excluded = ["status", "status_state", "status_props", "status_no_animation", "globalStatus", "suffix", "label_direction", "label_sr_only", "vertical", "layout_direction", "label", "variant", "left_component", "size", "disabled", "skeleton", "className", "multiselect", "id", "name", "value", "values", "children", "on_change"];
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
26
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -102,6 +102,7 @@ class ToggleButtonGroup extends _react.default.PureComponent {
102
102
  label,
103
103
  variant,
104
104
  left_component,
105
+ size,
105
106
  disabled,
106
107
  skeleton,
107
108
  className,
@@ -133,6 +134,7 @@ class ToggleButtonGroup extends _react.default.PureComponent {
133
134
  name: this._name,
134
135
  value,
135
136
  values,
137
+ size,
136
138
  multiselect: (0, _componentHelper.isTrue)(multiselect),
137
139
  variant,
138
140
  left_component,
@@ -201,6 +203,7 @@ _defineProperty(ToggleButtonGroup, "defaultProps", {
201
203
  skeleton: null,
202
204
  id: null,
203
205
  name: null,
206
+ size: null,
204
207
  status: null,
205
208
  status_state: 'error',
206
209
  status_props: null,
@@ -228,6 +231,7 @@ process.env.NODE_ENV !== "production" ? ToggleButtonGroup.propTypes = _objectSpr
228
231
  skeleton: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
229
232
  id: _propTypes.default.string,
230
233
  name: _propTypes.default.string,
234
+ size: _propTypes.default.oneOf(['default', 'medium', 'large']),
231
235
  status: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.func, _propTypes.default.node]),
232
236
  status_state: _propTypes.default.string,
233
237
  status_props: _propTypes.default.object,