@dnb/eufemia 10.74.0 → 10.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/country-flag/CountryFlag.js +6 -3
  3. package/cjs/components/country-flag/CountryFlag.js.map +1 -1
  4. package/cjs/components/date-picker/DatePicker.d.ts +16 -7
  5. package/cjs/components/date-picker/DatePicker.js +8 -20
  6. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  7. package/cjs/components/date-picker/DatePickerCalendar.d.ts +1 -3
  8. package/cjs/components/date-picker/DatePickerCalendar.js +34 -19
  9. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  10. package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +1 -4
  11. package/cjs/components/date-picker/DatePickerCalendarNavigator.js +1 -10
  12. package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  13. package/cjs/components/date-picker/DatePickerContext.d.ts +1 -0
  14. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  15. package/cjs/components/date-picker/DatePickerDocs.js +0 -5
  16. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  17. package/cjs/components/date-picker/DatePickerFooter.js +2 -2
  18. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  19. package/cjs/components/date-picker/DatePickerInput.d.ts +3 -2
  20. package/cjs/components/date-picker/DatePickerInput.js +9 -8
  21. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  22. package/cjs/components/date-picker/DatePickerProvider.d.ts +1 -1
  23. package/cjs/components/date-picker/DatePickerProvider.js +16 -15
  24. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  25. package/cjs/components/date-picker/DatePickerRange.d.ts +3 -7
  26. package/cjs/components/date-picker/DatePickerRange.js +10 -8
  27. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  28. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  29. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +4 -0
  30. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  31. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -0
  32. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  33. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +2 -9
  34. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  35. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
  36. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  37. package/cjs/extensions/forms/Field/Date/DateDocs.js +2 -1
  38. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  39. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  40. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  41. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  42. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  43. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +8 -4
  44. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +2 -2
  46. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  47. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +20 -13
  48. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  49. package/cjs/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  50. package/cjs/extensions/forms/Field/SelectCountry/useCountries.js +72 -0
  51. package/cjs/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  52. package/cjs/extensions/forms/Iterate/Array/Array.js +19 -6
  53. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  54. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  55. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  56. package/cjs/extensions/forms/Iterate/Array/types.d.ts +4 -1
  57. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  58. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  59. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  60. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  61. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  62. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  63. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  64. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  65. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  66. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  67. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  68. package/cjs/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  69. package/cjs/extensions/forms/constants/locales/countries/sv-SE.js +263 -0
  70. package/cjs/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  71. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  72. package/cjs/extensions/forms/constants/locales/en-GB.js +4 -0
  73. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  74. package/cjs/extensions/forms/constants/locales/en-US.d.ts +4 -0
  75. package/cjs/extensions/forms/constants/locales/index.d.ts +8 -0
  76. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  77. package/cjs/extensions/forms/constants/locales/nb-NO.js +4 -0
  78. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  79. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +4 -0
  80. package/cjs/extensions/forms/constants/locales/sv-SE.js +4 -0
  81. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  82. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  83. package/cjs/extensions/forms/hooks/useFieldProps.js +19 -6
  84. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  85. package/cjs/extensions/forms/hooks/usePath.d.ts +4 -1
  86. package/cjs/extensions/forms/hooks/usePath.js +10 -3
  87. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  88. package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
  89. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  90. package/cjs/extensions/forms/utils/ajv.js +11 -3
  91. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  92. package/cjs/extensions/payment-card/PaymentCard.d.ts +9 -3
  93. package/cjs/extensions/payment-card/PaymentCard.js +12 -143
  94. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  95. package/cjs/extensions/payment-card/PaymentCardDocs.js +13 -13
  96. package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  97. package/cjs/extensions/payment-card/components/CardFigure.d.ts +12 -0
  98. package/cjs/extensions/payment-card/components/CardFigure.js +105 -0
  99. package/cjs/extensions/payment-card/components/CardFigure.js.map +1 -0
  100. package/cjs/extensions/payment-card/components/CardNumber.d.ts +27 -0
  101. package/cjs/extensions/payment-card/components/CardNumber.js +37 -0
  102. package/cjs/extensions/payment-card/components/CardNumber.js.map +1 -0
  103. package/cjs/extensions/payment-card/components/CardType.d.ts +7 -0
  104. package/cjs/extensions/payment-card/components/CardType.js +25 -0
  105. package/cjs/extensions/payment-card/components/CardType.js.map +1 -0
  106. package/cjs/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  107. package/cjs/extensions/payment-card/components/StatusOverlay.js +68 -0
  108. package/cjs/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  109. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js +24 -0
  110. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  111. package/cjs/extensions/payment-card/icons/brandLogos/Sbanken.js +31 -0
  112. package/cjs/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  113. package/cjs/extensions/payment-card/icons/index.d.ts +3 -5
  114. package/cjs/extensions/payment-card/icons/index.js +40 -58
  115. package/cjs/extensions/payment-card/icons/index.js.map +1 -1
  116. package/cjs/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +40 -0
  117. package/cjs/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  118. package/cjs/extensions/payment-card/icons/loyaltyLogos/Business.js +43 -0
  119. package/cjs/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  120. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  121. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.js +52 -0
  122. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  123. package/cjs/extensions/payment-card/icons/loyaltyLogos/Intro.js +22 -0
  124. package/cjs/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  125. package/cjs/extensions/payment-card/icons/loyaltyLogos/PB.js +61 -0
  126. package/cjs/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  127. package/cjs/extensions/payment-card/icons/loyaltyLogos/Pluss.js +29 -0
  128. package/cjs/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  129. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +22 -0
  130. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  131. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +43 -0
  132. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  133. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  134. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +22 -0
  135. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  136. package/cjs/extensions/payment-card/icons/providers/BankAxept.js +24 -0
  137. package/cjs/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  138. package/cjs/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  139. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js +24 -0
  140. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  141. package/cjs/extensions/payment-card/icons/providers/MastercardDark.js +814 -0
  142. package/cjs/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  143. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js +37 -0
  144. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  145. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js +28 -0
  146. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  147. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js +28 -0
  148. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  149. package/cjs/extensions/payment-card/icons/status/index.d.ts +3 -0
  150. package/cjs/extensions/payment-card/icons/status/index.js +61 -0
  151. package/cjs/extensions/payment-card/icons/status/index.js.map +1 -0
  152. package/cjs/extensions/payment-card/index.d.ts +2 -0
  153. package/cjs/extensions/payment-card/index.js +10 -1
  154. package/cjs/extensions/payment-card/index.js.map +1 -1
  155. package/cjs/extensions/payment-card/style/dnb-payment-card.css +173 -163
  156. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  157. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  158. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  159. package/cjs/extensions/payment-card/utils/CardDesigns.js +44 -36
  160. package/cjs/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  161. package/cjs/extensions/payment-card/utils/Types.js +2 -0
  162. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  163. package/cjs/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  164. package/cjs/extensions/payment-card/utils/backgrounds/index.js +31 -3
  165. package/cjs/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  166. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  167. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.js +9 -0
  168. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  169. package/cjs/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  170. package/cjs/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  171. package/cjs/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  172. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  173. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.js +9 -0
  174. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  175. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  176. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.js +9 -0
  177. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  178. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  179. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +9 -0
  180. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  181. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  182. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +9 -0
  183. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  184. package/cjs/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  185. package/cjs/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  186. package/cjs/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  187. package/cjs/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  188. package/cjs/extensions/payment-card/utils/cardProducts.js +241 -209
  189. package/cjs/extensions/payment-card/utils/cardProducts.js.map +1 -1
  190. package/cjs/shared/Context.d.ts +1 -1
  191. package/cjs/shared/Context.js +5 -14
  192. package/cjs/shared/Context.js.map +1 -1
  193. package/cjs/shared/Eufemia.d.ts +1 -1
  194. package/cjs/shared/Eufemia.js +2 -2
  195. package/cjs/shared/Eufemia.js.map +1 -1
  196. package/cjs/shared/Provider.js +15 -24
  197. package/cjs/shared/Provider.js.map +1 -1
  198. package/cjs/shared/locales/en-GB.d.ts +4 -2
  199. package/cjs/shared/locales/en-GB.js +6 -4
  200. package/cjs/shared/locales/en-GB.js.map +1 -1
  201. package/cjs/shared/locales/en-US.d.ts +4 -2
  202. package/cjs/shared/locales/index.d.ts +8 -4
  203. package/cjs/shared/locales/nb-NO.d.ts +4 -2
  204. package/cjs/shared/locales/nb-NO.js +6 -4
  205. package/cjs/shared/locales/nb-NO.js.map +1 -1
  206. package/cjs/shared/locales/sv-SE.d.ts +4 -2
  207. package/cjs/shared/locales/sv-SE.js +6 -4
  208. package/cjs/shared/locales/sv-SE.js.map +1 -1
  209. package/cjs/shared/useTranslation.d.ts +3 -2
  210. package/cjs/shared/useTranslation.js.map +1 -1
  211. package/cjs/style/core/scopes.scss +1 -1
  212. package/cjs/style/dnb-ui-basis.css +1 -1
  213. package/cjs/style/dnb-ui-basis.min.css +1 -1
  214. package/cjs/style/dnb-ui-body.css +1 -1
  215. package/cjs/style/dnb-ui-body.min.css +1 -1
  216. package/cjs/style/dnb-ui-core.css +1 -1
  217. package/cjs/style/dnb-ui-core.min.css +1 -1
  218. package/cjs/style/dnb-ui-extensions.css +173 -163
  219. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  220. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  221. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  222. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  223. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  224. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  225. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  226. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  227. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  228. package/cjs/style/themes/theme-ui/ui-theme-components.css +4 -0
  229. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  230. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  231. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  232. package/components/country-flag/CountryFlag.js +5 -2
  233. package/components/country-flag/CountryFlag.js.map +1 -1
  234. package/components/date-picker/DatePicker.d.ts +16 -7
  235. package/components/date-picker/DatePicker.js +8 -20
  236. package/components/date-picker/DatePicker.js.map +1 -1
  237. package/components/date-picker/DatePickerCalendar.d.ts +1 -3
  238. package/components/date-picker/DatePickerCalendar.js +34 -19
  239. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  240. package/components/date-picker/DatePickerCalendarNavigator.d.ts +1 -4
  241. package/components/date-picker/DatePickerCalendarNavigator.js +1 -10
  242. package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  243. package/components/date-picker/DatePickerContext.d.ts +1 -0
  244. package/components/date-picker/DatePickerContext.js.map +1 -1
  245. package/components/date-picker/DatePickerDocs.js +0 -5
  246. package/components/date-picker/DatePickerDocs.js.map +1 -1
  247. package/components/date-picker/DatePickerFooter.js +2 -2
  248. package/components/date-picker/DatePickerFooter.js.map +1 -1
  249. package/components/date-picker/DatePickerInput.d.ts +3 -2
  250. package/components/date-picker/DatePickerInput.js +9 -8
  251. package/components/date-picker/DatePickerInput.js.map +1 -1
  252. package/components/date-picker/DatePickerProvider.d.ts +1 -1
  253. package/components/date-picker/DatePickerProvider.js +17 -16
  254. package/components/date-picker/DatePickerProvider.js.map +1 -1
  255. package/components/date-picker/DatePickerRange.d.ts +3 -7
  256. package/components/date-picker/DatePickerRange.js +9 -8
  257. package/components/date-picker/DatePickerRange.js.map +1 -1
  258. package/components/date-picker/hooks/useDates.js.map +1 -1
  259. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +4 -0
  260. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  261. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -0
  262. package/components/number-format/NumberUtils.d.ts +1 -1
  263. package/es/components/country-flag/CountryFlag.js +5 -2
  264. package/es/components/country-flag/CountryFlag.js.map +1 -1
  265. package/es/components/date-picker/DatePicker.d.ts +16 -7
  266. package/es/components/date-picker/DatePicker.js +8 -20
  267. package/es/components/date-picker/DatePicker.js.map +1 -1
  268. package/es/components/date-picker/DatePickerCalendar.d.ts +1 -3
  269. package/es/components/date-picker/DatePickerCalendar.js +33 -19
  270. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  271. package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +1 -4
  272. package/es/components/date-picker/DatePickerCalendarNavigator.js +1 -10
  273. package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -1
  274. package/es/components/date-picker/DatePickerContext.d.ts +1 -0
  275. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  276. package/es/components/date-picker/DatePickerDocs.js +0 -5
  277. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  278. package/es/components/date-picker/DatePickerFooter.js +2 -2
  279. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  280. package/es/components/date-picker/DatePickerInput.d.ts +3 -2
  281. package/es/components/date-picker/DatePickerInput.js +9 -8
  282. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  283. package/es/components/date-picker/DatePickerProvider.d.ts +1 -1
  284. package/es/components/date-picker/DatePickerProvider.js +16 -15
  285. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  286. package/es/components/date-picker/DatePickerRange.d.ts +3 -7
  287. package/es/components/date-picker/DatePickerRange.js +9 -8
  288. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  289. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  290. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +4 -0
  291. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  292. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -0
  293. package/es/components/number-format/NumberUtils.d.ts +1 -1
  294. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +2 -9
  295. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  296. package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
  297. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  298. package/es/extensions/forms/Field/Date/DateDocs.js +2 -1
  299. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  300. package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  301. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  302. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  303. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  304. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -3
  305. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  306. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +2 -2
  307. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  308. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -6
  309. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  310. package/es/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  311. package/es/extensions/forms/Field/SelectCountry/useCountries.js +63 -0
  312. package/es/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  313. package/es/extensions/forms/Iterate/Array/Array.js +19 -6
  314. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  315. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  316. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  317. package/es/extensions/forms/Iterate/Array/types.d.ts +4 -1
  318. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  319. package/es/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  320. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  321. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +10 -3
  322. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  323. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  324. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  325. package/es/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  326. package/es/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  327. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  329. package/es/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  330. package/es/extensions/forms/constants/locales/countries/sv-SE.js +257 -0
  331. package/es/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  332. package/es/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  333. package/es/extensions/forms/constants/locales/en-GB.js +4 -0
  334. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  335. package/es/extensions/forms/constants/locales/en-US.d.ts +4 -0
  336. package/es/extensions/forms/constants/locales/index.d.ts +8 -0
  337. package/es/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  338. package/es/extensions/forms/constants/locales/nb-NO.js +4 -0
  339. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  340. package/es/extensions/forms/constants/locales/sv-SE.d.ts +4 -0
  341. package/es/extensions/forms/constants/locales/sv-SE.js +4 -0
  342. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  343. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  344. package/es/extensions/forms/hooks/useFieldProps.js +19 -6
  345. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  346. package/es/extensions/forms/hooks/usePath.d.ts +4 -1
  347. package/es/extensions/forms/hooks/usePath.js +10 -4
  348. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  349. package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
  350. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  351. package/es/extensions/forms/utils/ajv.js +11 -3
  352. package/es/extensions/forms/utils/ajv.js.map +1 -1
  353. package/es/extensions/payment-card/PaymentCard.d.ts +9 -3
  354. package/es/extensions/payment-card/PaymentCard.js +9 -133
  355. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  356. package/es/extensions/payment-card/PaymentCardDocs.js +13 -13
  357. package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  358. package/es/extensions/payment-card/components/CardFigure.d.ts +12 -0
  359. package/es/extensions/payment-card/components/CardFigure.js +94 -0
  360. package/es/extensions/payment-card/components/CardFigure.js.map +1 -0
  361. package/es/extensions/payment-card/components/CardNumber.d.ts +27 -0
  362. package/es/extensions/payment-card/components/CardNumber.js +26 -0
  363. package/es/extensions/payment-card/components/CardNumber.js.map +1 -0
  364. package/es/extensions/payment-card/components/CardType.d.ts +7 -0
  365. package/es/extensions/payment-card/components/CardType.js +17 -0
  366. package/es/extensions/payment-card/components/CardType.js.map +1 -0
  367. package/es/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  368. package/es/extensions/payment-card/components/StatusOverlay.js +59 -0
  369. package/es/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  370. package/es/extensions/payment-card/icons/brandLogos/DNB.js +17 -0
  371. package/es/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  372. package/es/extensions/payment-card/icons/brandLogos/Sbanken.js +24 -0
  373. package/es/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  374. package/es/extensions/payment-card/icons/index.d.ts +3 -5
  375. package/es/extensions/payment-card/icons/index.js +30 -53
  376. package/es/extensions/payment-card/icons/index.js.map +1 -1
  377. package/es/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +33 -0
  378. package/es/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  379. package/es/extensions/payment-card/icons/loyaltyLogos/Business.js +36 -0
  380. package/es/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  381. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  382. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.js +45 -0
  383. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  384. package/es/extensions/payment-card/icons/loyaltyLogos/Intro.js +15 -0
  385. package/es/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  386. package/es/extensions/payment-card/icons/loyaltyLogos/PB.js +54 -0
  387. package/es/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  388. package/es/extensions/payment-card/icons/loyaltyLogos/Pluss.js +22 -0
  389. package/es/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  390. package/es/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +15 -0
  391. package/es/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  392. package/es/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +36 -0
  393. package/es/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  394. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  395. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +15 -0
  396. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  397. package/es/extensions/payment-card/icons/providers/BankAxept.js +17 -0
  398. package/es/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  399. package/es/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  400. package/es/extensions/payment-card/icons/providers/ClickToPay.js +17 -0
  401. package/es/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  402. package/es/extensions/payment-card/icons/providers/MastercardDark.js +807 -0
  403. package/es/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  404. package/es/extensions/payment-card/icons/providers/MastercardDefault.js +30 -0
  405. package/es/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  406. package/es/extensions/payment-card/icons/providers/VisaDefault.js +21 -0
  407. package/es/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  408. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js +21 -0
  409. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  410. package/es/extensions/payment-card/icons/status/index.d.ts +3 -0
  411. package/es/extensions/payment-card/icons/status/index.js +52 -0
  412. package/es/extensions/payment-card/icons/status/index.js.map +1 -0
  413. package/es/extensions/payment-card/index.d.ts +2 -0
  414. package/es/extensions/payment-card/index.js +2 -0
  415. package/es/extensions/payment-card/index.js.map +1 -1
  416. package/es/extensions/payment-card/style/dnb-payment-card.css +173 -163
  417. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  418. package/es/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  419. package/es/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  420. package/es/extensions/payment-card/utils/CardDesigns.js +45 -37
  421. package/es/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  422. package/es/extensions/payment-card/utils/Types.js +2 -0
  423. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  424. package/es/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  425. package/es/extensions/payment-card/utils/backgrounds/index.js +6 -2
  426. package/es/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  427. package/es/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  428. package/es/extensions/payment-card/utils/backgrounds/master-gold.js +3 -0
  429. package/es/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  430. package/es/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  431. package/es/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  432. package/es/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  433. package/es/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  434. package/es/extensions/payment-card/utils/backgrounds/visa-default.js +3 -0
  435. package/es/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  436. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  437. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.js +3 -0
  438. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  439. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  440. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +3 -0
  441. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  442. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  443. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +3 -0
  444. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  445. package/es/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  446. package/es/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  447. package/es/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  448. package/es/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  449. package/es/extensions/payment-card/utils/cardProducts.js +241 -209
  450. package/es/extensions/payment-card/utils/cardProducts.js.map +1 -1
  451. package/es/shared/Context.d.ts +1 -1
  452. package/es/shared/Context.js +5 -14
  453. package/es/shared/Context.js.map +1 -1
  454. package/es/shared/Eufemia.d.ts +1 -1
  455. package/es/shared/Eufemia.js +2 -2
  456. package/es/shared/Eufemia.js.map +1 -1
  457. package/es/shared/Provider.js +15 -24
  458. package/es/shared/Provider.js.map +1 -1
  459. package/es/shared/locales/en-GB.d.ts +4 -2
  460. package/es/shared/locales/en-GB.js +6 -4
  461. package/es/shared/locales/en-GB.js.map +1 -1
  462. package/es/shared/locales/en-US.d.ts +4 -2
  463. package/es/shared/locales/index.d.ts +8 -4
  464. package/es/shared/locales/nb-NO.d.ts +4 -2
  465. package/es/shared/locales/nb-NO.js +6 -4
  466. package/es/shared/locales/nb-NO.js.map +1 -1
  467. package/es/shared/locales/sv-SE.d.ts +4 -2
  468. package/es/shared/locales/sv-SE.js +6 -4
  469. package/es/shared/locales/sv-SE.js.map +1 -1
  470. package/es/shared/useTranslation.d.ts +3 -2
  471. package/es/shared/useTranslation.js.map +1 -1
  472. package/es/style/core/scopes.scss +1 -1
  473. package/es/style/dnb-ui-basis.css +1 -1
  474. package/es/style/dnb-ui-basis.min.css +1 -1
  475. package/es/style/dnb-ui-body.css +1 -1
  476. package/es/style/dnb-ui-body.min.css +1 -1
  477. package/es/style/dnb-ui-core.css +1 -1
  478. package/es/style/dnb-ui-core.min.css +1 -1
  479. package/es/style/dnb-ui-extensions.css +173 -163
  480. package/es/style/dnb-ui-extensions.min.css +1 -1
  481. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  482. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  483. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  484. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  485. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  486. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  487. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  488. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  489. package/es/style/themes/theme-ui/ui-theme-components.css +4 -0
  490. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  491. package/es/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  492. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  493. package/esm/dnb-ui-components.min.mjs +1 -1
  494. package/esm/dnb-ui-elements.min.mjs +1 -1
  495. package/esm/dnb-ui-extensions.min.mjs +3 -3
  496. package/esm/dnb-ui-lib.min.mjs +1 -1
  497. package/extensions/forms/Field/Boolean/Boolean.d.ts +2 -9
  498. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  499. package/extensions/forms/Field/Date/Date.d.ts +1 -1
  500. package/extensions/forms/Field/Date/Date.js.map +1 -1
  501. package/extensions/forms/Field/Date/DateDocs.js +2 -1
  502. package/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  503. package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  504. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  505. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  506. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  507. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -3
  508. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  509. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +2 -2
  510. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  511. package/extensions/forms/Field/SelectCountry/SelectCountry.js +17 -10
  512. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  513. package/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  514. package/extensions/forms/Field/SelectCountry/useCountries.js +64 -0
  515. package/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  516. package/extensions/forms/Iterate/Array/Array.js +19 -6
  517. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  518. package/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  519. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  520. package/extensions/forms/Iterate/Array/types.d.ts +4 -1
  521. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  522. package/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  523. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  524. package/extensions/forms/Iterate/PushContainer/PushContainer.js +10 -3
  525. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  526. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  527. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  528. package/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  529. package/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  530. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  531. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  532. package/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  533. package/extensions/forms/constants/locales/countries/sv-SE.js +257 -0
  534. package/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  535. package/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  536. package/extensions/forms/constants/locales/en-GB.js +4 -0
  537. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  538. package/extensions/forms/constants/locales/en-US.d.ts +4 -0
  539. package/extensions/forms/constants/locales/index.d.ts +8 -0
  540. package/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  541. package/extensions/forms/constants/locales/nb-NO.js +4 -0
  542. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  543. package/extensions/forms/constants/locales/sv-SE.d.ts +4 -0
  544. package/extensions/forms/constants/locales/sv-SE.js +4 -0
  545. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  546. package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  547. package/extensions/forms/hooks/useFieldProps.js +19 -6
  548. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  549. package/extensions/forms/hooks/usePath.d.ts +4 -1
  550. package/extensions/forms/hooks/usePath.js +10 -3
  551. package/extensions/forms/hooks/usePath.js.map +1 -1
  552. package/extensions/forms/hooks/useTranslation.d.ts +2 -2
  553. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  554. package/extensions/forms/utils/ajv.js +11 -3
  555. package/extensions/forms/utils/ajv.js.map +1 -1
  556. package/extensions/payment-card/PaymentCard.d.ts +9 -3
  557. package/extensions/payment-card/PaymentCard.js +9 -139
  558. package/extensions/payment-card/PaymentCard.js.map +1 -1
  559. package/extensions/payment-card/PaymentCardDocs.js +13 -13
  560. package/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  561. package/extensions/payment-card/components/CardFigure.d.ts +12 -0
  562. package/extensions/payment-card/components/CardFigure.js +95 -0
  563. package/extensions/payment-card/components/CardFigure.js.map +1 -0
  564. package/extensions/payment-card/components/CardNumber.d.ts +27 -0
  565. package/extensions/payment-card/components/CardNumber.js +29 -0
  566. package/extensions/payment-card/components/CardNumber.js.map +1 -0
  567. package/extensions/payment-card/components/CardType.d.ts +7 -0
  568. package/extensions/payment-card/components/CardType.js +18 -0
  569. package/extensions/payment-card/components/CardType.js.map +1 -0
  570. package/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  571. package/extensions/payment-card/components/StatusOverlay.js +60 -0
  572. package/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  573. package/extensions/payment-card/icons/brandLogos/DNB.js +17 -0
  574. package/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  575. package/extensions/payment-card/icons/brandLogos/Sbanken.js +24 -0
  576. package/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  577. package/extensions/payment-card/icons/index.d.ts +3 -5
  578. package/extensions/payment-card/icons/index.js +32 -56
  579. package/extensions/payment-card/icons/index.js.map +1 -1
  580. package/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +33 -0
  581. package/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  582. package/extensions/payment-card/icons/loyaltyLogos/Business.js +36 -0
  583. package/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  584. package/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  585. package/extensions/payment-card/icons/loyaltyLogos/Corporate.js +45 -0
  586. package/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  587. package/extensions/payment-card/icons/loyaltyLogos/Intro.js +15 -0
  588. package/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  589. package/extensions/payment-card/icons/loyaltyLogos/PB.js +54 -0
  590. package/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  591. package/extensions/payment-card/icons/loyaltyLogos/Pluss.js +22 -0
  592. package/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  593. package/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +15 -0
  594. package/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  595. package/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +36 -0
  596. package/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  597. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  598. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +15 -0
  599. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  600. package/extensions/payment-card/icons/providers/BankAxept.js +17 -0
  601. package/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  602. package/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  603. package/extensions/payment-card/icons/providers/ClickToPay.js +17 -0
  604. package/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  605. package/extensions/payment-card/icons/providers/MastercardDark.js +807 -0
  606. package/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  607. package/extensions/payment-card/icons/providers/MastercardDefault.js +30 -0
  608. package/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  609. package/extensions/payment-card/icons/providers/VisaDefault.js +21 -0
  610. package/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  611. package/extensions/payment-card/icons/providers/VisaPlatinum.js +21 -0
  612. package/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  613. package/extensions/payment-card/icons/status/index.d.ts +3 -0
  614. package/extensions/payment-card/icons/status/index.js +53 -0
  615. package/extensions/payment-card/icons/status/index.js.map +1 -0
  616. package/extensions/payment-card/index.d.ts +2 -0
  617. package/extensions/payment-card/index.js +2 -0
  618. package/extensions/payment-card/index.js.map +1 -1
  619. package/extensions/payment-card/style/dnb-payment-card.css +173 -163
  620. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  621. package/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  622. package/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  623. package/extensions/payment-card/utils/CardDesigns.js +45 -37
  624. package/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  625. package/extensions/payment-card/utils/Types.js +2 -0
  626. package/extensions/payment-card/utils/Types.js.map +1 -1
  627. package/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  628. package/extensions/payment-card/utils/backgrounds/index.js +6 -2
  629. package/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  630. package/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  631. package/extensions/payment-card/utils/backgrounds/master-gold.js +3 -0
  632. package/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  633. package/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  634. package/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  635. package/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  636. package/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  637. package/extensions/payment-card/utils/backgrounds/visa-default.js +3 -0
  638. package/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  639. package/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  640. package/extensions/payment-card/utils/backgrounds/visa-pluss.js +3 -0
  641. package/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  642. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  643. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +3 -0
  644. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  645. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  646. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +3 -0
  647. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  648. package/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  649. package/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  650. package/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  651. package/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  652. package/extensions/payment-card/utils/cardProducts.js +241 -209
  653. package/extensions/payment-card/utils/cardProducts.js.map +1 -1
  654. package/package.json +1 -1
  655. package/shared/Context.d.ts +1 -1
  656. package/shared/Context.js +5 -14
  657. package/shared/Context.js.map +1 -1
  658. package/shared/Eufemia.d.ts +1 -1
  659. package/shared/Eufemia.js +2 -2
  660. package/shared/Eufemia.js.map +1 -1
  661. package/shared/Provider.js +15 -24
  662. package/shared/Provider.js.map +1 -1
  663. package/shared/locales/en-GB.d.ts +4 -2
  664. package/shared/locales/en-GB.js +6 -4
  665. package/shared/locales/en-GB.js.map +1 -1
  666. package/shared/locales/en-US.d.ts +4 -2
  667. package/shared/locales/index.d.ts +8 -4
  668. package/shared/locales/nb-NO.d.ts +4 -2
  669. package/shared/locales/nb-NO.js +6 -4
  670. package/shared/locales/nb-NO.js.map +1 -1
  671. package/shared/locales/sv-SE.d.ts +4 -2
  672. package/shared/locales/sv-SE.js +6 -4
  673. package/shared/locales/sv-SE.js.map +1 -1
  674. package/shared/useTranslation.d.ts +3 -2
  675. package/shared/useTranslation.js.map +1 -1
  676. package/style/core/scopes.scss +1 -1
  677. package/style/dnb-ui-basis.css +1 -1
  678. package/style/dnb-ui-basis.min.css +1 -1
  679. package/style/dnb-ui-body.css +1 -1
  680. package/style/dnb-ui-body.min.css +1 -1
  681. package/style/dnb-ui-core.css +1 -1
  682. package/style/dnb-ui-core.min.css +1 -1
  683. package/style/dnb-ui-extensions.css +173 -163
  684. package/style/dnb-ui-extensions.min.css +1 -1
  685. package/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  686. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  687. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  688. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  689. package/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  690. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  691. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  692. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  693. package/style/themes/theme-ui/ui-theme-components.css +4 -0
  694. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  695. package/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  696. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  697. package/umd/dnb-ui-components.min.js +1 -1
  698. package/umd/dnb-ui-elements.min.js +1 -1
  699. package/umd/dnb-ui-extensions.min.js +3 -3
  700. package/umd/dnb-ui-lib.min.js +1 -1
  701. package/cjs/extensions/payment-card/icons/BankAxept.js +0 -22
  702. package/cjs/extensions/payment-card/icons/BankAxept.js.map +0 -1
  703. package/cjs/extensions/payment-card/icons/Bedrift.js +0 -22
  704. package/cjs/extensions/payment-card/icons/Bedrift.js.map +0 -1
  705. package/cjs/extensions/payment-card/icons/Business.js +0 -22
  706. package/cjs/extensions/payment-card/icons/Business.js.map +0 -1
  707. package/cjs/extensions/payment-card/icons/Clock.d.ts +0 -3
  708. package/cjs/extensions/payment-card/icons/Clock.js +0 -25
  709. package/cjs/extensions/payment-card/icons/Clock.js.map +0 -1
  710. package/cjs/extensions/payment-card/icons/Credit.d.ts +0 -3
  711. package/cjs/extensions/payment-card/icons/Credit.js +0 -22
  712. package/cjs/extensions/payment-card/icons/Credit.js.map +0 -1
  713. package/cjs/extensions/payment-card/icons/DNB.js +0 -24
  714. package/cjs/extensions/payment-card/icons/DNB.js.map +0 -1
  715. package/cjs/extensions/payment-card/icons/Intro.js +0 -22
  716. package/cjs/extensions/payment-card/icons/Intro.js.map +0 -1
  717. package/cjs/extensions/payment-card/icons/MastercardDark.js +0 -28
  718. package/cjs/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  719. package/cjs/extensions/payment-card/icons/MastercardDefault.js +0 -28
  720. package/cjs/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  721. package/cjs/extensions/payment-card/icons/PB.js +0 -22
  722. package/cjs/extensions/payment-card/icons/PB.js.map +0 -1
  723. package/cjs/extensions/payment-card/icons/Pluss.js +0 -22
  724. package/cjs/extensions/payment-card/icons/Pluss.js.map +0 -1
  725. package/cjs/extensions/payment-card/icons/SagaGold.js +0 -22
  726. package/cjs/extensions/payment-card/icons/SagaGold.js.map +0 -1
  727. package/cjs/extensions/payment-card/icons/SagaPlatinum.js +0 -22
  728. package/cjs/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  729. package/cjs/extensions/payment-card/icons/Sbanken.js +0 -22
  730. package/cjs/extensions/payment-card/icons/Sbanken.js.map +0 -1
  731. package/cjs/extensions/payment-card/icons/VisaDefault.js +0 -22
  732. package/cjs/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  733. package/cjs/extensions/payment-card/icons/VisaPlatinum.js +0 -22
  734. package/cjs/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  735. package/cjs/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  736. package/cjs/extensions/payment-card/utils/backgrounds/ung.js +0 -9
  737. package/cjs/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  738. package/es/extensions/payment-card/icons/BankAxept.js +0 -15
  739. package/es/extensions/payment-card/icons/BankAxept.js.map +0 -1
  740. package/es/extensions/payment-card/icons/Bedrift.js +0 -15
  741. package/es/extensions/payment-card/icons/Bedrift.js.map +0 -1
  742. package/es/extensions/payment-card/icons/Business.js +0 -15
  743. package/es/extensions/payment-card/icons/Business.js.map +0 -1
  744. package/es/extensions/payment-card/icons/Clock.d.ts +0 -3
  745. package/es/extensions/payment-card/icons/Clock.js +0 -18
  746. package/es/extensions/payment-card/icons/Clock.js.map +0 -1
  747. package/es/extensions/payment-card/icons/Credit.d.ts +0 -3
  748. package/es/extensions/payment-card/icons/Credit.js +0 -15
  749. package/es/extensions/payment-card/icons/Credit.js.map +0 -1
  750. package/es/extensions/payment-card/icons/DNB.js +0 -17
  751. package/es/extensions/payment-card/icons/DNB.js.map +0 -1
  752. package/es/extensions/payment-card/icons/Intro.js +0 -15
  753. package/es/extensions/payment-card/icons/Intro.js.map +0 -1
  754. package/es/extensions/payment-card/icons/MastercardDark.js +0 -21
  755. package/es/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  756. package/es/extensions/payment-card/icons/MastercardDefault.js +0 -21
  757. package/es/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  758. package/es/extensions/payment-card/icons/PB.js +0 -15
  759. package/es/extensions/payment-card/icons/PB.js.map +0 -1
  760. package/es/extensions/payment-card/icons/Pluss.js +0 -15
  761. package/es/extensions/payment-card/icons/Pluss.js.map +0 -1
  762. package/es/extensions/payment-card/icons/SagaGold.js +0 -15
  763. package/es/extensions/payment-card/icons/SagaGold.js.map +0 -1
  764. package/es/extensions/payment-card/icons/SagaPlatinum.js +0 -15
  765. package/es/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  766. package/es/extensions/payment-card/icons/Sbanken.js +0 -15
  767. package/es/extensions/payment-card/icons/Sbanken.js.map +0 -1
  768. package/es/extensions/payment-card/icons/VisaDefault.js +0 -15
  769. package/es/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  770. package/es/extensions/payment-card/icons/VisaPlatinum.js +0 -15
  771. package/es/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  772. package/es/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  773. package/es/extensions/payment-card/utils/backgrounds/ung.js +0 -3
  774. package/es/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  775. package/extensions/payment-card/icons/BankAxept.js +0 -15
  776. package/extensions/payment-card/icons/BankAxept.js.map +0 -1
  777. package/extensions/payment-card/icons/Bedrift.js +0 -15
  778. package/extensions/payment-card/icons/Bedrift.js.map +0 -1
  779. package/extensions/payment-card/icons/Business.js +0 -15
  780. package/extensions/payment-card/icons/Business.js.map +0 -1
  781. package/extensions/payment-card/icons/Clock.d.ts +0 -3
  782. package/extensions/payment-card/icons/Clock.js +0 -18
  783. package/extensions/payment-card/icons/Clock.js.map +0 -1
  784. package/extensions/payment-card/icons/Credit.d.ts +0 -3
  785. package/extensions/payment-card/icons/Credit.js +0 -15
  786. package/extensions/payment-card/icons/Credit.js.map +0 -1
  787. package/extensions/payment-card/icons/DNB.js +0 -17
  788. package/extensions/payment-card/icons/DNB.js.map +0 -1
  789. package/extensions/payment-card/icons/Intro.js +0 -15
  790. package/extensions/payment-card/icons/Intro.js.map +0 -1
  791. package/extensions/payment-card/icons/MastercardDark.js +0 -21
  792. package/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  793. package/extensions/payment-card/icons/MastercardDefault.js +0 -21
  794. package/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  795. package/extensions/payment-card/icons/PB.js +0 -15
  796. package/extensions/payment-card/icons/PB.js.map +0 -1
  797. package/extensions/payment-card/icons/Pluss.js +0 -15
  798. package/extensions/payment-card/icons/Pluss.js.map +0 -1
  799. package/extensions/payment-card/icons/SagaGold.js +0 -15
  800. package/extensions/payment-card/icons/SagaGold.js.map +0 -1
  801. package/extensions/payment-card/icons/SagaPlatinum.js +0 -15
  802. package/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  803. package/extensions/payment-card/icons/Sbanken.js +0 -15
  804. package/extensions/payment-card/icons/Sbanken.js.map +0 -1
  805. package/extensions/payment-card/icons/VisaDefault.js +0 -15
  806. package/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  807. package/extensions/payment-card/icons/VisaPlatinum.js +0 -15
  808. package/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  809. package/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  810. package/extensions/payment-card/utils/backgrounds/ung.js +0 -3
  811. package/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  812. /package/cjs/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  813. /package/cjs/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  814. /package/cjs/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  815. /package/cjs/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  816. /package/cjs/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  817. /package/cjs/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  818. /package/cjs/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  819. /package/cjs/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  820. /package/cjs/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  821. /package/cjs/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  822. /package/cjs/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  823. /package/cjs/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  824. /package/cjs/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  825. /package/cjs/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
  826. /package/es/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  827. /package/es/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  828. /package/es/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  829. /package/es/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  830. /package/es/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  831. /package/es/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  832. /package/es/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  833. /package/es/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  834. /package/es/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  835. /package/es/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  836. /package/es/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  837. /package/es/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  838. /package/es/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  839. /package/es/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
  840. /package/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  841. /package/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  842. /package/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  843. /package/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  844. /package/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  845. /package/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  846. /package/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  847. /package/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  848. /package/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  849. /package/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  850. /package/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  851. /package/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  852. /package/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  853. /package/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["React","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","classnames","warn","makeUniqueId","extendPropsWithContext","detectOutsideClick","getStatusState","combineDescribedBy","validateDOMAttributes","AlignmentHelper","createSpacingClasses","skeletonDOMAttributes","Context","Suffix","FormLabel","FormStatus","DatePickerProvider","DatePickerRange","DatePickerInput","DatePickerAddon","DatePickerFooter","pickFormElementProps","useTranslation","convertSnakeCaseProps","DatePickerPortal","formatDate","formatDateRange","defaultProps","maskOrder","maskPlaceholder","dateFormat","returnFormat","hideNavigation","hideNavigationButtons","hideDays","onlyMonth","hideLastWeek","disableAutofocus","enableKeyboardNav","showInput","submitButtonText","cancelButtonText","resetButtonText","resetDate","firstDay","range","link","sync","statusState","opened","noAnimation","direction","skipPortal","yearNavigation","DatePicker","externalProps","props","_objectSpread","preventClose","onHide","onShow","onSubmit","onCancel","onReset","alignPicker","showSubmitButton","showCancelButton","openedProp","endDate","endDateProp","setOpened","hidden","setHidden","dates","setDates","context","blurDelay","id","innerRef","triangleRef","submitButtonRef","getReturnObject","hideTimeout","outsideClick","calendarContainerRef","translation","removeOutsideClickHandler","current","remove","hidePicker","args","event","persist","setTimeout","focus","preventScroll","e","setOutsideClickHandler","_ref","focusOnHide","setTrianglePosition","triangleWidth","shellWidth","querySelector","getBoundingClientRect","width","buttonWidth","distance","style","marginRight","marginLeft","showPicker","clearTimeout","onPickerChange","_ref2","shouldHidePicker","_objectWithoutProperties","_excluded","startDate","onSubmitHandler","onCancelHandler","onResetHandler","togglePicker","extendedProps","skeleton","getTranslation","FormRow","formElement","label","title","labelDirection","labelSrOnly","inputElement","addonElement","shortcuts","disabled","stretch","size","status","statusProps","statusNoAnimation","globalStatus","suffix","showResetButton","className","tooltip","labelAlignment","restProps","_excluded2","attributes","filterOutNonAttributes","shouldHideDays","shouldHideNavigation","showStatus","pickerParams","submitParams","ref","tabIndex","selectedDateTitle","selectedDate","selectedDateRange","options","locale","formatOptions","weekday","month","day","year","replace","mainParams","lang","containerClassNames","remainingDOMProps","remainingSubmitProps","remainingPickerProps","createElement","_extends","setReturnObject","fn","forId","text","srOnly","_AlignmentHelper","show","String","text_id","width_selector","state","no_animation","isRange","submitAttributes","alignment","targetElementRef","firstDayOfWeek","isLink","isSync","hideNav","views","nextBtn","prevBtn","hideNextMonthWeek","noAutoFocus","onChange","renderElement","NonAttributes","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n HTMLProps,\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n warn,\n makeUniqueId,\n extendPropsWithContext,\n detectOutsideClick,\n getStatusState,\n combineDescribedBy,\n validateDOMAttributes,\n DetectOutsideClickClass,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { skeletonDOMAttributes } from '../skeleton/SkeletonHelper'\n\nimport Context, { Locale } from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus, {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../form-status/FormStatus'\nimport DatePickerProvider, {\n DatePickerChangeEvent,\n type ReturnObject,\n} from './DatePickerProvider'\nimport DatePickerRange from './DatePickerRange'\nimport DatePickerInput from './DatePickerInput'\nimport DatePickerAddon, { DatePickerAddonProps } from './DatePickerAddon'\nimport DatePickerFooter from './DatePickerFooter'\nimport { SpacingProps } from '../space/types'\nimport { InputInputElement, InputSize } from '../Input'\nimport { SkeletonShow } from '../Skeleton'\nimport { GlobalStatusConfigObject } from '../GlobalStatus'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { CalendarDay, DatePickerCalendarProps } from './DatePickerCalendar'\nimport { DatePickerContextValues, DateType } from './DatePickerContext'\nimport { DatePickerDates } from './hooks/useDates'\nimport { useTranslation } from '../../shared'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport DatePickerPortal from './DatePickerPortal'\nimport {\n FormatDateOptions,\n formatDate,\n formatDateRange,\n} from './DatePickerCalc'\n\nexport type DatePickerEventAttributes = {\n day?: string\n year?: string\n start?: string\n end?: string\n} & Record<string, unknown>\n\n// Takes the return object from DatePickerProvider and extends it with the event\nexport type DatePickerEvent<T> = ReturnObject<T>\n\ntype FocusOnHide = { focusOnHide?: boolean | string }\n\nexport type DisplayPickerEvent = (\n | React.MouseEvent<HTMLButtonElement | HTMLAnchorElement | HTMLElement>\n | MouseEvent\n | KeyboardEvent\n | FocusOnHide\n) &\n DatePickerDates &\n FocusOnHide & {\n event?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n }\n\nexport type DatePickerProps = {\n /**\n * Defines the pre-filled date by either a JavaScript DateInstance or (ISO 8601) like `date=\"2019-05-05\"`.\n */\n date?: DateType\n /**\n * To set the pre-filled starting date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n startDate?: DateType\n /**\n * To set the pre-filled ending date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n endDate?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n startMonth?: DateType\n /**\n * To display what month should be shown in the second calendar by default. Defaults to the `date` respective `startDate`.\n */\n endMonth?: DateType\n /**\n * To limit a date range to a minimum `startDate`. Defaults to `null`.\n */\n minDate?: DateType\n /**\n * To limit a date range to a maximum `endDate`. Defaults to `null`.\n */\n maxDate?: DateType\n /**\n * Corrects the input date value to be the same as either `minDate` or `maxDate`, when the user types in a date that is either before or after one of these. Defaults to `false`.\n */\n correctInvalidDate?: boolean\n /**\n * To define the order of the masked placeholder input fields. Defaults to `dd/mm/yyyy`\n */\n maskOrder?: string\n /**\n * To display the placeholder on input. Defaults to `dd/mm/åååå`.\n */\n maskPlaceholder?: string\n /**\n * Defines how the prop dates (`date`, `startDate` and `endDate`) should be parsed, e.g. `yyyy/MM/dd`. Defaults to `yyyy-MM-dd`.\n */\n dateFormat?: string\n /**\n * Defines how the returned date, as a string, should be formatted as. Defaults to `yyyy-MM-dd`.\n */\n returnFormat?: string\n /**\n * If set to `true`, the navigation will be hidden. Defaults to `false`.\n */\n hideNavigation?: boolean\n hideNavigationButtons?: boolean\n /**\n * If set to `true`, the week days will be hidden. Defaults to `false`.\n */\n hideDays?: boolean\n /**\n * Use `true` to only show the defined month. Disables the month navigation possibility. Defaults to `false`.\n */\n onlyMonth?: boolean\n /**\n * Use `true` to only show the last week in the current month if it needs to be shown. The result is that there will mainly be shows five (5) weeks (rows) instead of six (6). Defaults to `false`.\n */\n hideLastWeek?: boolean\n /**\n * Once the date picker gets opened, there is a focus handling to ensure good accessibility. can be disabled with property. Defaults to `false`.\n */\n disableAutofocus?: boolean\n enableKeyboardNav?: boolean\n /**\n * If the input fields with the mask should be visible. Defaults to `false`.\n */\n showInput?: boolean\n /**\n * If set to `true`, a submit button will be shown. You can change the default text by using `submitButtonText=\"Ok\"`. Defaults to `false`. If the `range` prop is `true`, then the submit button is shown.\n */\n showSubmitButton?: boolean\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancelButtonText=\"Avbryt\"` Defaults to `false`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: boolean\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `resetButtonText=\"Tilbakestill\"` Defaults to `false`.\n */\n showResetButton?: boolean\n submitButtonText?: string\n cancelButtonText?: string\n resetButtonText?: string\n resetDate?: boolean\n /**\n * To define the first day of the week. Defaults to `monday`.\n */\n firstDay?:\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday'\n | 'sunday'\n /**\n * If the date picker should support a range of two dates (starting and ending date). Defaults to `false`.\n */\n range?: boolean\n /**\n * Link both calendars, once to the user is navigating between months. Only meant to use if the range is set to `true`. Defaults to `false`.\n */\n link?: boolean\n /**\n * Sync input values with the calendars views. Once the input values get changed, the calendar changes its views in sync. Defaults to `true`.\n */\n sync?: boolean\n /**\n * A prepending label in sync with the date input field.\n */\n label?: React.ReactNode\n /**\n * Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `inputElement=\"input\"`, a React element, or a render function `inputElement={(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 * Gives you the possibility to inject a React element showing up over the footer. Use it to customize `shortcuts`.\n */\n addonElement?: React.ReactNode\n /**\n * Gives you the possibility to set predefined dates and date ranges so the user can select these by one click. Define either a JSON or an object with the defined shortcuts. More info is below.\n */\n shortcuts?: DatePickerAddonProps['shortcuts']\n disabled?: boolean\n /**\n * If set to `true`, then the date-picker input field will be 100% in `width`.\n */\n stretch?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\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 statusNoAnimation?: boolean\n /**\n * The <a href=\"/uilib/components/global-status/properties/#configuration-object\">configuration</a> used for the target <a href=\"/uilib/components/global-status\">GlobalStatus</a>.\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the DatePicker more than the label. You can also send in a React component, so it gets wrapped inside the DatePicker component.\n */\n suffix?: React.ReactNode\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n /**\n * Provide a short Tooltip content that shows up on the picker button.\n */\n tooltip?: React.ReactNode\n tabIndex?: number\n preventClose?: boolean\n noAnimation?: boolean\n direction?: 'auto' | 'top' | 'bottom'\n /**\n * Use `right` to change the calendar alignment direction. Defaults to `left`.\n */\n alignPicker?: 'auto' | 'left' | 'right'\n /**\n * Sets the alignment of the label. Defaults to `left`.\n */\n labelAlignment?: 'left' | 'right'\n /**\n * If set to `true`, the calendar will not be rendered inside a react portal. Defaults to `false`.\n */\n skipPortal?: boolean\n /**\n * Will enable year navigation in the calendar if set to `true`. Defaults to `false`.\n */\n yearNavigation?: boolean\n className?: string\n /**\n * Will be called right before every new calendar view gets rendered. See the example above.\n */\n onDaysRender?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * Will be called on a date change event. Returns an `object`. See Returned Object below.\n */\n onChange?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called on every input and date picker interaction. Returns an `object`. See Returned Object below.\n */\n onType?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once date-picker is visible.\n */\n onShow?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once date-picker is hidden.\n */\n onHide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once a user presses the submit button.\n */\n onSubmit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the cancel button.\n */\n onCancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the reset button.\n */\n onReset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n}\n// Can be removed in v11\ntype DatePickerDeprecatedProps = {\n /**\n * @deprecated use `startDate` instead.\n */\n start_date?: DateType\n /**\n * @deprecated use `endDate` instead.\n */\n end_date?: DateType\n /**\n * @deprecated use `startMonth` instead.\n */\n start_month?: DateType\n /**\n * @deprecated use `endMonth` instead.\n */\n end_month?: DateType\n /**\n * @deprecated use `minDate` instead.\n */\n min_date?: DateType\n /**\n * @deprecated use `maxDate` instead.\n */\n max_date?: DateType\n /**\n * @deprecated use `correctInvalidDate` instead.\n */\n correct_invalid_date?: boolean\n /**\n * @deprecated use `maskOrder` instead.\n */\n mask_order?: string\n /**\n * @deprecated use `maskPlaceholder` instead.\n */\n mask_placeholder?: string\n /**\n * @deprecated use `dateFormat` instead.\n */\n date_format?: string\n /**\n * @deprecated use `returnFormat` instead.\n */\n return_format?: string\n /**\n * @deprecated use `hideNavigation` instead.\n */\n hide_navigation?: boolean\n /**\n * @deprecated use `hideNavigationButtons` instead.\n */\n hide_navigation_buttons?: boolean\n /**\n * @deprecated use `hideDays` instead.\n */\n hide_days?: boolean\n /**\n * @deprecated use `onlyMonth` instead.\n */\n only_month?: boolean\n /**\n * @deprecated use `hideLastWeek` instead.\n */\n hide_last_week?: boolean\n /**\n * @deprecated use `disableAutofocus` instead.\n */\n disable_autofocus?: boolean\n /**\n * @deprecated use `enableKeyboardNav` instead.\n */\n enable_keyboard_nav?: boolean\n /**\n * @deprecated use `showInput` instead.\n */\n show_input?: boolean\n /**\n * @deprecated use `showSubmitButton` instead.\n */\n show_submit_button?: boolean\n /**\n * @deprecated use `showCancelButton` instead.\n */\n show_cancel_button?: boolean\n /**\n * @deprecated\n */\n show_reset_button?: boolean\n /**\n * @deprecated use `submitButtonText` instead.\n */\n submit_button_text?: string\n /**\n * @deprecated use `cancelButtonText` instead.\n */\n cancel_button_text?: string\n /**\n * @deprecated use `resetButtonText` instead.\n */\n reset_button_text?: string\n /**\n * @deprecated use `resetDate` instead.\n */\n reset_date?: boolean\n /**\n * @deprecated use `firstDay` instead.\n */\n first_day?: string\n /**\n * @deprecated set locale with `Provider` instead.\n */\n locale?: Locale\n /**\n * @deprecated use `labelDirection` instead.\n */\n label_direction?: 'vertical' | 'horizontal'\n /**\n * @deprecated use `labelSrOnly` instead.\n */\n label_sr_only?: boolean\n /**\n * @deprecated use `inputElement` instead.\n */\n input_element?: InputInputElement\n /**\n * @deprecated use `addonElement` instead.\n */\n addon_element?: React.ReactNode\n /**\n * @deprecated use `statusState` instead.\n */\n status_state?: FormStatusState\n /**\n * @deprecated use `statusProps` instead.\n */\n status_props?: FormStatusProps\n /**\n * @deprecated use `statusNoAnimation` instead.\n */\n status_no_animation?: boolean\n /**\n * @deprecated use `preventClose` instead.\n */\n prevent_close?: boolean\n /**\n * @deprecated use `no_animation` instead.\n */\n no_animation?: boolean\n /**\n * @deprecated use `alignPicker` instead.\n */\n align_picker?: 'auto' | 'left' | 'right'\n /**\n * @deprecated use `onDaysRender` instead.\n */\n on_days_render?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * @deprecated use `onChange` instead.\n */\n on_change?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onType` instead.\n */\n on_type?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onShow` instead.\n */\n on_show?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onHide` instead.\n */\n on_hide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onSubmit` instead.\n */\n on_submit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onCancel` instead.\n */\n on_cancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onReset` instead.\n */\n on_reset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n}\n\nexport type DatePickerAllProps = DatePickerProps &\n DatePickerDeprecatedProps &\n SpacingProps &\n Omit<\n React.HTMLProps<HTMLElement>,\n | 'ref'\n | 'children'\n | 'label'\n | 'size'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onSubmit'\n | 'onReset'\n | 'start'\n >\n\nconst defaultProps: DatePickerProps = {\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/åååå', // have to be same setup as \"mask\" - but can be like\n dateFormat: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1\n hideNavigation: false,\n hideNavigationButtons: false,\n hideDays: false,\n onlyMonth: false,\n hideLastWeek: false,\n disableAutofocus: false,\n enableKeyboardNav: false,\n showInput: false,\n submitButtonText: 'Ok',\n cancelButtonText: 'Avbryt',\n resetButtonText: 'Nullstill',\n resetDate: true,\n firstDay: 'monday',\n range: false,\n link: false,\n sync: true,\n statusState: 'error',\n opened: false,\n noAnimation: false,\n direction: 'auto',\n skipPortal: false,\n yearNavigation: false,\n}\n\nfunction DatePicker(externalProps: DatePickerAllProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n preventClose,\n onHide,\n onShow,\n onSubmit,\n onCancel,\n onReset,\n noAnimation,\n showInput,\n alignPicker,\n showSubmitButton,\n showCancelButton,\n range,\n hideDays,\n hideNavigation,\n opened: openedProp,\n endDate: endDateProp,\n } = convertSnakeCaseProps(props) // convertSnakeCaseProps - can be removed in v11\n\n const [opened, setOpened] = useState<boolean>(openedProp)\n const [hidden, setHidden] = useState(!opened)\n const [dates, setDates] = useState<\n Pick<DatePickerDates, 'startDate' | 'endDate'>\n >({})\n\n const context = useContext(Context)\n const blurDelay = 201 // some ms more than \"dropdownSlideDown 200ms\"\n const id = props.id || makeUniqueId()\n\n const innerRef = useRef<HTMLSpanElement>()\n const triangleRef = useRef<HTMLSpanElement>()\n const submitButtonRef = useRef<HTMLButtonElement>()\n const getReturnObject =\n useRef<DatePickerContextValues['getReturnObject']>()\n const hideTimeout = useRef<NodeJS.Timeout>()\n const outsideClick = useRef<DetectOutsideClickClass>()\n const calendarContainerRef = useRef<HTMLDivElement>()\n\n const translation = useTranslation().DatePicker\n\n if (endDateProp && !range) {\n warn(\n `The DatePicker got a \"endDate\". You have to set range={true} as well!.`\n )\n }\n\n const removeOutsideClickHandler = useCallback(() => {\n if (outsideClick.current) {\n outsideClick.current.remove()\n }\n }, [])\n\n const hidePicker = useCallback(\n (args?: DisplayPickerEvent) => {\n if (preventClose) {\n return // stop here\n }\n\n if (args && args.event && args.event.persist) {\n args.event.persist()\n }\n\n setOpened(false)\n\n hideTimeout.current = setTimeout(\n () => {\n setHidden(true)\n onHide?.({\n ...getReturnObject.current(args),\n })\n if (args?.['focusOnHide']) {\n try {\n submitButtonRef.current.focus({\n preventScroll: true,\n })\n } catch (e) {\n warn(e)\n }\n }\n },\n noAnimation ? 1 : blurDelay\n ) // wait until animation is over\n\n removeOutsideClickHandler()\n },\n [noAnimation, preventClose, onHide, removeOutsideClickHandler]\n )\n\n const setOutsideClickHandler = useCallback(() => {\n outsideClick.current = detectOutsideClick(\n // Sending in portalRef, instead of portalRef.current,\n // as that would lead to the ignoreElement being null/undefined,\n // since the portal has not been rendered yet,\n // causing the calendar to close when clicking on the calendar itself\n [innerRef.current, calendarContainerRef],\n ({ event }: { event: MouseEvent | KeyboardEvent }) => {\n hidePicker({ ...event, focusOnHide: event?.['code'] })\n }\n )\n }, [hidePicker])\n\n const setTrianglePosition = useCallback(() => {\n const triangleWidth = 16\n if (showInput && triangleRef.current && innerRef.current) {\n try {\n const shellWidth = innerRef.current\n .querySelector('.dnb-input__shell')\n .getBoundingClientRect().width\n\n const buttonWidth = innerRef.current\n .querySelector('.dnb-input__submit-button__button')\n .getBoundingClientRect().width\n\n if (alignPicker === 'right') {\n const distance = buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginRight = `${distance / 16}rem`\n } else {\n const distance = shellWidth - buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginLeft = `${distance / 16}rem`\n }\n } catch (e) {\n warn(e)\n }\n }\n }, [showInput, alignPicker])\n\n const showPicker = useCallback(\n (event?: DisplayPickerEvent) => {\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current)\n }\n\n setOpened(true)\n setHidden(false)\n\n onShow?.({ ...getReturnObject.current(event) })\n\n setOutsideClickHandler()\n },\n [setOutsideClickHandler, onShow]\n )\n\n // Make sure the triangle is positioned correctly after calendar is mounted\n useLayoutEffect(() => {\n if (!hidden) {\n setTrianglePosition()\n }\n }, [hidden, setTrianglePosition])\n\n // React to opened prop changes\n useEffect(() => {\n if (openedProp) {\n showPicker()\n }\n }, [openedProp, showPicker])\n\n const onPickerChange = useCallback(\n ({\n hidePicker: shouldHidePicker = true,\n ...args\n }: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n >) => {\n if (shouldHidePicker && !showSubmitButton && !showCancelButton) {\n hidePicker({ focusOnHide: true })\n }\n\n setDates({ startDate: args.startDate, endDate: args.endDate })\n },\n [hidePicker, showSubmitButton, showCancelButton]\n )\n\n const onSubmitHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n hidePicker(event)\n onSubmit?.({\n ...getReturnObject.current({ event }),\n })\n },\n [hidePicker, onSubmit]\n )\n\n const onCancelHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onCancel?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onCancel]\n )\n\n const onResetHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onReset?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onReset]\n )\n\n const togglePicker = useCallback(\n (args: React.MouseEvent<HTMLButtonElement>) => {\n !opened ? showPicker(args) : hidePicker(args)\n },\n [opened, showPicker, hidePicker]\n )\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n defaultProps,\n { skeleton: context?.skeleton },\n convertSnakeCaseProps(context.getTranslation(props).DatePicker), // convertSnakeCaseProps - can be removed in v11\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n convertSnakeCaseProps(pickFormElementProps(context?.formElement)), // Deprecated – can be removed in v11\n context.DatePicker\n )\n\n const {\n label,\n title,\n labelDirection,\n labelSrOnly,\n onlyMonth,\n hideLastWeek,\n disableAutofocus,\n hideNavigationButtons,\n firstDay,\n resetDate,\n link,\n sync,\n inputElement,\n addonElement,\n shortcuts,\n disabled,\n stretch,\n skeleton,\n size,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n maskOrder,\n maskPlaceholder,\n submitButtonText,\n cancelButtonText,\n resetButtonText,\n showResetButton,\n className,\n tooltip,\n skipPortal,\n labelAlignment,\n ...restProps\n } = extendedProps\n\n const attributes = useMemo(\n () => filterOutNonAttributes(restProps),\n [restProps]\n )\n\n const shouldHideDays = onlyMonth ? true : hideDays\n const shouldHideNavigation = onlyMonth\n ? hideNavigationButtons\n ? false\n : true\n : hideNavigation\n\n const showStatus = getStatusState(status)\n\n const pickerParams = {} as HTMLProps<HTMLSpanElement>\n\n if (showStatus || suffix) {\n pickerParams['aria-describedby'] = combineDescribedBy(\n pickerParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n\n const submitParams = {\n ['aria-expanded']: opened,\n ref: submitButtonRef,\n tabIndex: extendedProps.tabIndex,\n tooltip,\n }\n\n const selectedDateTitle = useMemo(() => {\n const { selectedDate, selectedDateRange } = translation\n const { startDate, endDate } = dates\n\n if (!startDate) {\n return ''\n }\n\n const options: FormatDateOptions = {\n locale: context.locale,\n formatOptions: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n }\n\n return range && endDate\n ? selectedDateRange.replace(\n /%s/,\n formatDateRange({ startDate, endDate }, options)\n )\n : selectedDate.replace(/%s/, formatDate(startDate, options))\n }, [range, translation, dates, context.locale])\n\n const mainParams = {\n className: classnames(\n 'dnb-date-picker',\n status && `dnb-date-picker__status--${statusState}`,\n labelDirection && `dnb-date-picker--${labelDirection}`,\n opened && 'dnb-date-picker--opened',\n hidden && 'dnb-date-picker--hidden',\n showInput && 'dnb-date-picker--show-input',\n label &&\n labelAlignment === 'right' &&\n 'dnb-date-picker__input--label-alignment-right',\n (range || showSubmitButton || showCancelButton || showResetButton) &&\n 'dnb-date-picker--show-footer',\n alignPicker && `dnb-date-picker--${alignPicker}`,\n stretch && `dnb-date-picker--stretch`,\n 'dnb-form-component',\n size && `dnb-date-picker--${size}`,\n createSpacingClasses(props),\n className\n ),\n lang: context.locale,\n } as HTMLProps<HTMLSpanElement>\n\n const containerClassNames = classnames(\n 'dnb-date-picker__container',\n opened && 'dnb-date-picker__container--opened',\n !opened && 'dnb-date-picker__container--closed',\n hidden && 'dnb-date-picker__container--hidden',\n showInput && 'dnb-date-picker__container--show-input',\n alignPicker && `dnb-date-picker__container--${alignPicker}`,\n size && `dnb-date-picker--${size}`\n )\n\n const remainingDOMProps = validateDOMAttributes(props, attributes)\n const remainingSubmitProps = validateDOMAttributes(null, submitParams)\n const remainingPickerProps = validateDOMAttributes(\n null,\n skeletonDOMAttributes(pickerParams, skeleton, context)\n )\n\n return (\n <DatePickerProvider\n {...props}\n attributes={remainingDOMProps}\n setReturnObject={(fn) => (getReturnObject.current = fn)}\n hidePicker={hidePicker}\n >\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={labelDirection}\n srOnly={labelSrOnly}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span\n className=\"dnb-date-picker__inner\"\n ref={innerRef}\n {...remainingPickerProps}\n >\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={String(label)}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + '-shell'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-date-picker__row\">\n <span className=\"dnb-date-picker__shell\" id={`${id}-shell`}>\n <DatePickerInput\n id={id}\n title={title}\n disabled={disabled}\n stretch={stretch}\n skeleton={skeleton}\n maskOrder={maskOrder}\n maskPlaceholder={maskPlaceholder}\n isRange={range}\n showInput={showInput}\n selectedDateTitle={selectedDateTitle}\n inputElement={inputElement}\n opened={opened}\n hidden={hidden}\n size={size}\n status={status ? 'error' : null}\n statusState={statusState}\n lang={context.locale}\n {...attributes}\n submitAttributes={remainingSubmitProps}\n onSubmit={togglePicker}\n {...statusProps}\n />\n\n {!hidden && (\n <DatePickerPortal\n alignment={alignPicker}\n skipPortal={skipPortal}\n targetElementRef={innerRef}\n >\n <span\n className={containerClassNames}\n ref={calendarContainerRef}\n >\n <span\n className=\"dnb-date-picker__triangle\"\n ref={triangleRef}\n />\n <DatePickerRange\n id={id}\n firstDayOfWeek={firstDay}\n resetDate={resetDate}\n isRange={range}\n isLink={link}\n isSync={sync}\n hideDays={shouldHideDays}\n hideNav={shouldHideNavigation}\n // TODO: refactor to not be views, do reduce view complexity\n views={\n hideNavigationButtons\n ? [{ nextBtn: false, prevBtn: false }]\n : null\n }\n onlyMonth={onlyMonth}\n hideNextMonthWeek={hideLastWeek}\n noAutoFocus={disableAutofocus}\n onChange={onPickerChange}\n locale={context.locale}\n />\n {(addonElement || shortcuts) && (\n <DatePickerAddon\n renderElement={addonElement}\n shortcuts={shortcuts}\n />\n )}\n <DatePickerFooter\n isRange={range}\n onSubmit={onSubmitHandler}\n onCancel={onCancelHandler}\n onReset={onResetHandler}\n submitButtonText={submitButtonText}\n cancelButtonText={cancelButtonText}\n resetButtonText={resetButtonText}\n />\n </span>\n </DatePickerPortal>\n )}\n </span>\n {suffix && (\n <Suffix\n className=\"dnb-date-picker__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n\n <p className=\"dnb-sr-only\" aria-live=\"assertive\">\n {selectedDateTitle}\n </p>\n </span>\n </DatePickerProvider>\n )\n}\n\nconst NonAttributes = [\n 'locale',\n 'id',\n 'month',\n 'date',\n 'startDate',\n 'endDate',\n 'minDate',\n 'maxDate',\n 'enableKeyboardNav',\n 'hideNavigation',\n 'returnFormat',\n 'dateFormat',\n 'hideDays',\n 'correctInvalidDate',\n 'opened',\n 'direction',\n 'range',\n 'showInput',\n 'noAnimation',\n 'onDaysRender',\n 'onShow',\n 'onType',\n 'onHide',\n 'showSubmitButton',\n 'showCancelButton',\n 'selectedDate',\n 'selectedMonth',\n 'selectedYear',\n 'nextMonth',\n 'nextYear',\n 'openPickerText',\n 'placeholderCharacters',\n 'prevMonth',\n 'prevYear',\n 'endMonth',\n 'startMonth',\n 'alignPicker',\n 'preventClose',\n 'selectedDateRange',\n 'yearNavigation',\n]\n\nfunction filterOutNonAttributes(props: DatePickerProps) {\n return Object.keys(props).reduce((attributes, key) => {\n if (!NonAttributes.includes(key)) {\n attributes[key] = props[key]\n }\n return attributes\n }, {})\n}\n\nexport default DatePicker\n\nDatePicker._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePicker.js","names":["React","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","classnames","warn","makeUniqueId","extendPropsWithContext","detectOutsideClick","getStatusState","combineDescribedBy","validateDOMAttributes","AlignmentHelper","createSpacingClasses","skeletonDOMAttributes","Context","Suffix","FormLabel","FormStatus","DatePickerProvider","DatePickerRange","DatePickerInput","DatePickerAddon","DatePickerFooter","pickFormElementProps","useTranslation","convertSnakeCaseProps","DatePickerPortal","formatDate","formatDateRange","defaultProps","hideNavigation","hideDays","onlyMonth","hideLastWeek","disableAutofocus","enableKeyboardNav","showInput","resetDate","range","link","sync","statusState","opened","noAnimation","direction","skipPortal","yearNavigation","DatePicker","externalProps","props","_objectSpread","preventClose","onHide","onShow","onSubmit","onCancel","onReset","alignPicker","showSubmitButton","showCancelButton","correctInvalidDate","openedProp","endDate","endDateProp","setOpened","hidden","setHidden","dates","setDates","context","blurDelay","id","innerRef","triangleRef","submitButtonRef","getReturnObject","hideTimeout","outsideClick","calendarContainerRef","translation","removeOutsideClickHandler","current","remove","hidePicker","args","event","persist","setTimeout","focus","preventScroll","e","setOutsideClickHandler","_ref","focusOnHide","setTrianglePosition","triangleWidth","shellWidth","querySelector","getBoundingClientRect","width","buttonWidth","distance","style","marginRight","marginLeft","showPicker","clearTimeout","onPickerChange","_ref2","shouldHidePicker","_objectWithoutProperties","_excluded","startDate","onSubmitHandler","onCancelHandler","onResetHandler","togglePicker","extendedProps","skeleton","getTranslation","FormRow","formElement","label","title","labelDirection","labelSrOnly","firstDay","inputElement","addonElement","shortcuts","disabled","stretch","size","status","statusProps","statusNoAnimation","globalStatus","suffix","maskOrder","maskPlaceholder","submitButtonText","cancelButtonText","resetButtonText","showResetButton","className","tooltip","labelAlignment","restProps","_excluded2","attributes","filterOutNonAttributes","showStatus","pickerParams","submitParams","ref","tabIndex","selectedDateTitle","selectedDate","selectedDateRange","options","locale","formatOptions","weekday","month","day","year","replace","mainParams","lang","containerClassNames","remainingDOMProps","remainingSubmitProps","remainingPickerProps","createElement","_extends","setReturnObject","fn","forId","text","srOnly","_AlignmentHelper","show","String","text_id","width_selector","state","no_animation","isRange","submitAttributes","alignment","targetElementRef","firstDayOfWeek","isLink","isSync","hideNextMonthWeek","noAutoFocus","renderElement","NonAttributes","Object","keys","reduce","key","includes","_supportsSpacingProps"],"sources":["../../../../src/components/date-picker/DatePicker.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n HTMLProps,\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport classnames from 'classnames'\nimport {\n warn,\n makeUniqueId,\n extendPropsWithContext,\n detectOutsideClick,\n getStatusState,\n combineDescribedBy,\n validateDOMAttributes,\n DetectOutsideClickClass,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { skeletonDOMAttributes } from '../skeleton/SkeletonHelper'\n\nimport Context, { Locale } from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus, {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../form-status/FormStatus'\nimport DatePickerProvider, {\n DatePickerChangeEvent,\n type ReturnObject,\n} from './DatePickerProvider'\nimport DatePickerRange from './DatePickerRange'\nimport DatePickerInput from './DatePickerInput'\nimport DatePickerAddon, { DatePickerAddonProps } from './DatePickerAddon'\nimport DatePickerFooter from './DatePickerFooter'\nimport { SpacingProps } from '../space/types'\nimport { InputInputElement, InputSize } from '../Input'\nimport { SkeletonShow } from '../Skeleton'\nimport { GlobalStatusConfigObject } from '../GlobalStatus'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { CalendarDay, DatePickerCalendarProps } from './DatePickerCalendar'\nimport { DatePickerContextValues, DateType } from './DatePickerContext'\nimport { DatePickerDates } from './hooks/useDates'\nimport { useTranslation } from '../../shared'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport DatePickerPortal from './DatePickerPortal'\nimport {\n FormatDateOptions,\n formatDate,\n formatDateRange,\n} from './DatePickerCalc'\n\nexport type DatePickerEventAttributes = {\n day?: string\n year?: string\n start?: string\n end?: string\n} & Record<string, unknown>\n\n// Takes the return object from DatePickerProvider and extends it with the event\nexport type DatePickerEvent<T> = ReturnObject<T>\n\ntype FocusOnHide = { focusOnHide?: boolean | string }\n\nexport type DisplayPickerEvent = (\n | React.MouseEvent<HTMLButtonElement | HTMLAnchorElement | HTMLElement>\n | MouseEvent\n | KeyboardEvent\n | FocusOnHide\n) &\n DatePickerDates &\n FocusOnHide & {\n event?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n }\n\nexport type DatePickerProps = {\n /**\n * Defines the pre-filled date by either a JavaScript DateInstance or (ISO 8601) like `date=\"2019-05-05\"`.\n */\n date?: DateType\n /**\n * To set the pre-filled starting date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n startDate?: DateType\n /**\n * To set the pre-filled ending date. Is used if `range={true}` is set to `true`. Defaults to `null`, showing the `maskPlaceholder`.\n */\n endDate?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: DateType\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n startMonth?: DateType\n /**\n * To display what month should be shown in the second calendar by default. Defaults to the `date` respective `startDate`.\n */\n endMonth?: DateType\n /**\n * To limit a date range to a minimum `startDate`. Defaults to `null`.\n */\n minDate?: DateType\n /**\n * To limit a date range to a maximum `endDate`. Defaults to `null`.\n */\n maxDate?: DateType\n /**\n * To define the order of the masked placeholder input fields. Defaults to `dd/mm/yyyy`\n */\n maskOrder?: string\n /**\n * To display the placeholder on input. Defaults to `dd/mm/åååå`.\n */\n maskPlaceholder?: string\n /**\n * Defines how the prop dates (`date`, `startDate` and `endDate`) should be parsed, e.g. `yyyy/MM/dd`. Defaults to `yyyy-MM-dd`.\n */\n dateFormat?: string\n /**\n * Defines how the returned date, as a string, should be formatted as. Defaults to `yyyy-MM-dd`.\n */\n returnFormat?: string\n /**\n * If set to `true`, the navigation will be hidden. Defaults to `false`.\n */\n hideNavigation?: boolean\n /**\n * If set to `true`, the week days will be hidden. Defaults to `false`.\n */\n hideDays?: boolean\n /**\n * Use `true` to only show the defined month. Disables the month navigation possibility. Defaults to `false`.\n */\n onlyMonth?: boolean\n /**\n * Use `true` to only show the last week in the current month if it needs to be shown. The result is that there will mainly be shows five (5) weeks (rows) instead of six (6). Defaults to `false`.\n */\n hideLastWeek?: boolean\n /**\n * Once the date picker gets opened, there is a focus handling to ensure good accessibility. can be disabled with property. Defaults to `false`.\n */\n disableAutofocus?: boolean\n enableKeyboardNav?: boolean\n /**\n * If the input fields with the mask should be visible. Defaults to `false`.\n */\n showInput?: boolean\n /**\n * If set to `true`, a submit button will be shown. You can change the default text by using `submitButtonText=\"Ok\"`. Defaults to `false`. If the `range` prop is `true`, then the submit button is shown.\n */\n showSubmitButton?: boolean\n /**\n * If set to `true`, a cancel button will be shown. You can change the default text by using `cancelButtonText=\"Avbryt\"` Defaults to `false`. If the `range` prop is `true`, then the cancel button is shown.\n */\n showCancelButton?: boolean\n /**\n * If set to `true`, a reset button will be shown. You can change the default text by using `resetButtonText=\"Tilbakestill\"` Defaults to `false`.\n */\n showResetButton?: boolean\n submitButtonText?: string\n cancelButtonText?: string\n resetButtonText?: string\n resetDate?: boolean\n /**\n * To define the first day of the week. Defaults to `monday`.\n */\n firstDay?:\n | 'monday'\n | 'tuesday'\n | 'wednesday'\n | 'thursday'\n | 'friday'\n | 'saturday'\n | 'sunday'\n /**\n * If the date picker should support a range of two dates (starting and ending date). Defaults to `false`.\n */\n range?: boolean\n /**\n * Link both calendars, once to the user is navigating between months. Only meant to use if the range is set to `true`. Defaults to `false`.\n */\n link?: boolean\n /**\n * Sync input values with the calendars views. Once the input values get changed, the calendar changes its views in sync. Defaults to `true`.\n */\n sync?: boolean\n /**\n * A prepending label in sync with the date input field.\n */\n label?: React.ReactNode\n /**\n * Use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.\n */\n labelDirection?: 'vertical' | 'horizontal'\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Gives you the possibility to use a plain/vanilla `<input />` HTML element by defining it as a string `inputElement=\"input\"`, a React element, or a render function `inputElement={(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 * Gives you the possibility to inject a React element showing up over the footer. Use it to customize `shortcuts`.\n */\n addonElement?: React.ReactNode\n /**\n * Gives you the possibility to set predefined dates and date ranges so the user can select these by one click. Define either a JSON or an object with the defined shortcuts. More info is below.\n */\n shortcuts?: DatePickerAddonProps['shortcuts']\n disabled?: boolean\n /**\n * If set to `true`, then the date-picker input field will be 100% in `width`.\n */\n stretch?: boolean\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\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 statusNoAnimation?: boolean\n /**\n * The <a href=\"/uilib/components/global-status/properties/#configuration-object\">configuration</a> used for the target <a href=\"/uilib/components/global-status\">GlobalStatus</a>.\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the DatePicker more than the label. You can also send in a React component, so it gets wrapped inside the DatePicker component.\n */\n suffix?: React.ReactNode\n /**\n * To open the date-picker by default. Defaults to `false`.\n */\n opened?: boolean\n /**\n * Provide a short Tooltip content that shows up on the picker button.\n */\n tooltip?: React.ReactNode\n tabIndex?: number\n preventClose?: boolean\n noAnimation?: boolean\n direction?: 'auto' | 'top' | 'bottom'\n /**\n * Use `right` to change the calendar alignment direction. Defaults to `left`.\n */\n alignPicker?: 'auto' | 'left' | 'right'\n /**\n * Sets the alignment of the label. Defaults to `left`.\n */\n labelAlignment?: 'left' | 'right'\n /**\n * If set to `true`, the calendar will not be rendered inside a react portal. Defaults to `false`.\n */\n skipPortal?: boolean\n /**\n * Will enable year navigation in the calendar if set to `true`. Defaults to `false`.\n */\n yearNavigation?: boolean\n className?: string\n /**\n * Will be called right before every new calendar view gets rendered. See the example above.\n */\n onDaysRender?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * Will be called on a date change event. Returns an `object`. See Returned Object below.\n */\n onChange?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called on every input and date picker interaction. Returns an `object`. See Returned Object below.\n */\n onType?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * Will be called once date-picker is visible.\n */\n onShow?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once date-picker is hidden.\n */\n onHide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * Will be called once a user presses the submit button.\n */\n onSubmit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the cancel button.\n */\n onCancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once a user presses the reset button.\n */\n onReset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * Will be called once the input gets focus.\n */\n onFocus?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n /**\n * Will be called once the input lose focus.\n */\n onBlur?: (event: DatePickerEvent<React.FocusEvent<HTMLElement>>) => void\n}\n// Can be removed in v11\ntype DatePickerDeprecatedProps = {\n /**\n * @deprecated use `startDate` instead.\n */\n start_date?: DateType\n /**\n * @deprecated use `endDate` instead.\n */\n end_date?: DateType\n /**\n * @deprecated use `startMonth` instead.\n */\n start_month?: DateType\n /**\n * @deprecated use `endMonth` instead.\n */\n end_month?: DateType\n /**\n * @deprecated use `minDate` instead.\n */\n min_date?: DateType\n /**\n * @deprecated use `maxDate` instead.\n */\n max_date?: DateType\n /**\n * @deprecated use `Field.Date` instead, for {@link https://eufemia.dnb.no/uilib/extensions/forms/feature-fields/Date/#date-limit-validation | built in validation}.\n * It's not good UX, or best practice to automatically change the user input. This often leads to confusion, as what they typed in, magically changes for seemingly no reason. It's better to inform them about the error and let them correct it themselves.\n *\n * Deprecated – can be removed in v11\n */\n correctInvalidDate?: boolean\n /**\n * @deprecated use `Field.Date` instead, for {@link https://eufemia.dnb.no/uilib/extensions/forms/feature-fields/Date/#date-limit-validation | built in validation}.\n * It's not good UX, or best practice to automatically change the user input. This often leads to confusion, as what they typed in, magically changes for seemingly no reason. It's better to inform them about the error and let them correct it themselves.\n *\n * Deprecated – can be removed in v11\n */\n correct_invalid_date?: boolean\n /**\n * @deprecated use `maskOrder` instead.\n */\n mask_order?: string\n /**\n * @deprecated use `maskPlaceholder` instead.\n */\n mask_placeholder?: string\n /**\n * @deprecated use `dateFormat` instead.\n */\n date_format?: string\n /**\n * @deprecated use `returnFormat` instead.\n */\n return_format?: string\n /**\n * @deprecated use `hideNavigation` instead.\n */\n hide_navigation?: boolean\n /**\n * @deprecated does not do anything.\n */\n hideNavigationButtons?: boolean\n /**\n * @deprecated does not do anything.\n */\n hide_navigation_buttons?: boolean\n /**\n * @deprecated use `hideDays` instead.\n */\n hide_days?: boolean\n /**\n * @deprecated use `onlyMonth` instead.\n */\n only_month?: boolean\n /**\n * @deprecated use `hideLastWeek` instead.\n */\n hide_last_week?: boolean\n /**\n * @deprecated use `disableAutofocus` instead.\n */\n disable_autofocus?: boolean\n /**\n * @deprecated use `enableKeyboardNav` instead.\n */\n enable_keyboard_nav?: boolean\n /**\n * @deprecated use `showInput` instead.\n */\n show_input?: boolean\n /**\n * @deprecated use `showSubmitButton` instead.\n */\n show_submit_button?: boolean\n /**\n * @deprecated use `showCancelButton` instead.\n */\n show_cancel_button?: boolean\n /**\n * @deprecated\n */\n show_reset_button?: boolean\n /**\n * @deprecated use `submitButtonText` instead.\n */\n submit_button_text?: string\n /**\n * @deprecated use `cancelButtonText` instead.\n */\n cancel_button_text?: string\n /**\n * @deprecated use `resetButtonText` instead.\n */\n reset_button_text?: string\n /**\n * @deprecated use `resetDate` instead.\n */\n reset_date?: boolean\n /**\n * @deprecated use `firstDay` instead.\n */\n first_day?: string\n /**\n * @deprecated set locale with `Provider` instead.\n */\n locale?: Locale\n /**\n * @deprecated use `labelDirection` instead.\n */\n label_direction?: 'vertical' | 'horizontal'\n /**\n * @deprecated use `labelSrOnly` instead.\n */\n label_sr_only?: boolean\n /**\n * @deprecated use `inputElement` instead.\n */\n input_element?: InputInputElement\n /**\n * @deprecated use `addonElement` instead.\n */\n addon_element?: React.ReactNode\n /**\n * @deprecated use `statusState` instead.\n */\n status_state?: FormStatusState\n /**\n * @deprecated use `statusProps` instead.\n */\n status_props?: FormStatusProps\n /**\n * @deprecated use `statusNoAnimation` instead.\n */\n status_no_animation?: boolean\n /**\n * @deprecated use `preventClose` instead.\n */\n prevent_close?: boolean\n /**\n * @deprecated use `no_animation` instead.\n */\n no_animation?: boolean\n /**\n * @deprecated use `alignPicker` instead.\n */\n align_picker?: 'auto' | 'left' | 'right'\n /**\n * @deprecated use `onDaysRender` instead.\n */\n on_days_render?: (\n days: Array<CalendarDay>,\n nr?: DatePickerCalendarProps['nr']\n ) => void\n /**\n * @deprecated use `onChange` instead.\n */\n on_change?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onType` instead.\n */\n on_type?: (\n event: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>\n ) => void\n /**\n * @deprecated use `onShow` instead.\n */\n on_show?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onHide` instead.\n */\n on_hide?: (event: DatePickerEvent<DisplayPickerEvent>) => void\n /**\n * @deprecated use `onSubmit` instead.\n */\n on_submit?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onCancel` instead.\n */\n on_cancel?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n /**\n * @deprecated use `onReset` instead.\n */\n on_reset?: (\n event: DatePickerEvent<React.MouseEvent<HTMLButtonElement>>\n ) => void\n}\n\nexport type DatePickerAllProps = DatePickerProps &\n DatePickerDeprecatedProps &\n SpacingProps &\n Omit<\n React.HTMLProps<HTMLElement>,\n | 'ref'\n | 'children'\n | 'label'\n | 'size'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onSubmit'\n | 'onReset'\n | 'start'\n >\n\nconst defaultProps: DatePickerProps = {\n hideNavigation: false,\n hideDays: false,\n onlyMonth: false,\n hideLastWeek: false,\n disableAutofocus: false,\n enableKeyboardNav: false,\n showInput: false,\n resetDate: true,\n range: false,\n link: false,\n sync: true,\n statusState: 'error',\n opened: false,\n noAnimation: false,\n direction: 'auto',\n skipPortal: false,\n yearNavigation: false,\n}\n\nfunction DatePicker(externalProps: DatePickerAllProps) {\n const props = { ...defaultProps, ...externalProps }\n\n const {\n preventClose,\n onHide,\n onShow,\n onSubmit,\n onCancel,\n onReset,\n noAnimation,\n showInput,\n alignPicker,\n showSubmitButton,\n showCancelButton,\n range,\n hideDays,\n hideNavigation,\n // Deprecated – can be removed in v11\n correctInvalidDate,\n opened: openedProp,\n endDate: endDateProp,\n } = convertSnakeCaseProps(props) // convertSnakeCaseProps - can be removed in v11\n\n const [opened, setOpened] = useState<boolean>(openedProp)\n const [hidden, setHidden] = useState(!opened)\n const [dates, setDates] = useState<\n Pick<DatePickerDates, 'startDate' | 'endDate'>\n >({})\n\n const context = useContext(Context)\n const blurDelay = 201 // some ms more than \"dropdownSlideDown 200ms\"\n const id = props.id || makeUniqueId()\n\n const innerRef = useRef<HTMLSpanElement>()\n const triangleRef = useRef<HTMLSpanElement>()\n const submitButtonRef = useRef<HTMLButtonElement>()\n const getReturnObject =\n useRef<DatePickerContextValues['getReturnObject']>()\n const hideTimeout = useRef<NodeJS.Timeout>()\n const outsideClick = useRef<DetectOutsideClickClass>()\n const calendarContainerRef = useRef<HTMLDivElement>()\n\n const translation = useTranslation().DatePicker\n\n if (correctInvalidDate) {\n warn(\n `Use 'Field.Date' instead, for built in validation (https://eufemia.dnb.no/uilib/extensions/forms/feature-fields/Date/#date-limit-validation).`\n )\n }\n\n if (endDateProp && !range) {\n warn(\n `The DatePicker got a \"endDate\". You have to set range={true} as well!.`\n )\n }\n\n const removeOutsideClickHandler = useCallback(() => {\n if (outsideClick.current) {\n outsideClick.current.remove()\n }\n }, [])\n\n const hidePicker = useCallback(\n (args?: DisplayPickerEvent) => {\n if (preventClose) {\n return // stop here\n }\n\n if (args && args.event && args.event.persist) {\n args.event.persist()\n }\n\n setOpened(false)\n\n hideTimeout.current = setTimeout(\n () => {\n setHidden(true)\n onHide?.({\n ...getReturnObject.current(args),\n })\n if (args?.['focusOnHide']) {\n try {\n submitButtonRef.current.focus({\n preventScroll: true,\n })\n } catch (e) {\n warn(e)\n }\n }\n },\n noAnimation ? 1 : blurDelay\n ) // wait until animation is over\n\n removeOutsideClickHandler()\n },\n [noAnimation, preventClose, onHide, removeOutsideClickHandler]\n )\n\n const setOutsideClickHandler = useCallback(() => {\n outsideClick.current = detectOutsideClick(\n // Sending in portalRef, instead of portalRef.current,\n // as that would lead to the ignoreElement being null/undefined,\n // since the portal has not been rendered yet,\n // causing the calendar to close when clicking on the calendar itself\n [innerRef.current, calendarContainerRef],\n ({ event }: { event: MouseEvent | KeyboardEvent }) => {\n hidePicker({ ...event, focusOnHide: event?.['code'] })\n }\n )\n }, [hidePicker])\n\n const setTrianglePosition = useCallback(() => {\n const triangleWidth = 16\n if (showInput && triangleRef.current && innerRef.current) {\n try {\n const shellWidth = innerRef.current\n .querySelector('.dnb-input__shell')\n .getBoundingClientRect().width\n\n const buttonWidth = innerRef.current\n .querySelector('.dnb-input__submit-button__button')\n .getBoundingClientRect().width\n\n if (alignPicker === 'right') {\n const distance = buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginRight = `${distance / 16}rem`\n } else {\n const distance = shellWidth - buttonWidth / 2 - triangleWidth / 2\n triangleRef.current.style.marginLeft = `${distance / 16}rem`\n }\n } catch (e) {\n warn(e)\n }\n }\n }, [showInput, alignPicker])\n\n const showPicker = useCallback(\n (event?: DisplayPickerEvent) => {\n if (hideTimeout.current) {\n clearTimeout(hideTimeout.current)\n }\n\n setOpened(true)\n setHidden(false)\n\n onShow?.({ ...getReturnObject.current(event) })\n\n setOutsideClickHandler()\n },\n [setOutsideClickHandler, onShow]\n )\n\n // Make sure the triangle is positioned correctly after calendar is mounted\n useLayoutEffect(() => {\n if (!hidden) {\n setTrianglePosition()\n }\n }, [hidden, setTrianglePosition])\n\n // React to opened prop changes\n useEffect(() => {\n if (openedProp) {\n showPicker()\n }\n }, [openedProp, showPicker])\n\n const onPickerChange = useCallback(\n ({\n hidePicker: shouldHidePicker = true,\n ...args\n }: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n >) => {\n if (shouldHidePicker && !showSubmitButton && !showCancelButton) {\n hidePicker({ focusOnHide: true })\n }\n\n setDates({ startDate: args.startDate, endDate: args.endDate })\n },\n [hidePicker, showSubmitButton, showCancelButton]\n )\n\n const onSubmitHandler = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n hidePicker(event)\n onSubmit?.({\n ...getReturnObject.current({ event }),\n })\n },\n [hidePicker, onSubmit]\n )\n\n const onCancelHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onCancel?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onCancel]\n )\n\n const onResetHandler = useCallback(\n (\n event: DatePickerChangeEvent<React.MouseEvent<HTMLButtonElement>>\n ) => {\n hidePicker()\n onReset?.({ ...getReturnObject.current(event) })\n },\n [hidePicker, onReset]\n )\n\n const togglePicker = useCallback(\n (args: React.MouseEvent<HTMLButtonElement>) => {\n !opened ? showPicker(args) : hidePicker(args)\n },\n [opened, showPicker, hidePicker]\n )\n\n // use only the props from context, who are available here anyway\n const extendedProps = extendPropsWithContext(\n props,\n defaultProps,\n { skeleton: context?.skeleton },\n convertSnakeCaseProps(context.getTranslation(props).DatePicker), // convertSnakeCaseProps - can be removed in v11\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n convertSnakeCaseProps(pickFormElementProps(context?.formElement)), // Deprecated – can be removed in v11\n context.DatePicker\n )\n\n const {\n label,\n title,\n labelDirection,\n labelSrOnly,\n onlyMonth,\n hideLastWeek,\n disableAutofocus,\n firstDay,\n resetDate,\n link,\n sync,\n inputElement,\n addonElement,\n shortcuts,\n disabled,\n stretch,\n skeleton,\n size,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n maskOrder,\n maskPlaceholder,\n submitButtonText,\n cancelButtonText,\n resetButtonText,\n showResetButton,\n className,\n tooltip,\n skipPortal,\n labelAlignment,\n ...restProps\n } = extendedProps\n\n const attributes = useMemo(\n () => filterOutNonAttributes(restProps),\n [restProps]\n )\n\n const showStatus = getStatusState(status)\n\n const pickerParams = {} as HTMLProps<HTMLSpanElement>\n\n if (showStatus || suffix) {\n pickerParams['aria-describedby'] = combineDescribedBy(\n pickerParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n\n const submitParams = {\n ['aria-expanded']: opened,\n ref: submitButtonRef,\n tabIndex: extendedProps.tabIndex,\n tooltip,\n }\n\n const selectedDateTitle = useMemo(() => {\n const { selectedDate, selectedDateRange } = translation\n const { startDate, endDate } = dates\n\n if (!startDate) {\n return ''\n }\n\n const options: FormatDateOptions = {\n locale: context.locale,\n formatOptions: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n }\n\n return range && endDate\n ? selectedDateRange.replace(\n /%s/,\n formatDateRange({ startDate, endDate }, options)\n )\n : selectedDate.replace(/%s/, formatDate(startDate, options))\n }, [range, translation, dates, context.locale])\n\n const mainParams = {\n className: classnames(\n 'dnb-date-picker',\n status && `dnb-date-picker__status--${statusState}`,\n labelDirection && `dnb-date-picker--${labelDirection}`,\n opened && 'dnb-date-picker--opened',\n hidden && 'dnb-date-picker--hidden',\n showInput && 'dnb-date-picker--show-input',\n label &&\n labelAlignment === 'right' &&\n 'dnb-date-picker__input--label-alignment-right',\n (range || showSubmitButton || showCancelButton || showResetButton) &&\n 'dnb-date-picker--show-footer',\n alignPicker && `dnb-date-picker--${alignPicker}`,\n stretch && `dnb-date-picker--stretch`,\n 'dnb-form-component',\n size && `dnb-date-picker--${size}`,\n createSpacingClasses(props),\n className\n ),\n lang: context.locale,\n } as HTMLProps<HTMLSpanElement>\n\n const containerClassNames = classnames(\n 'dnb-date-picker__container',\n opened && 'dnb-date-picker__container--opened',\n !opened && 'dnb-date-picker__container--closed',\n hidden && 'dnb-date-picker__container--hidden',\n showInput && 'dnb-date-picker__container--show-input',\n alignPicker && `dnb-date-picker__container--${alignPicker}`,\n size && `dnb-date-picker--${size}`\n )\n\n const remainingDOMProps = validateDOMAttributes(props, attributes)\n const remainingSubmitProps = validateDOMAttributes(null, submitParams)\n const remainingPickerProps = validateDOMAttributes(\n null,\n skeletonDOMAttributes(pickerParams, skeleton, context)\n )\n\n return (\n <DatePickerProvider\n {...props}\n attributes={remainingDOMProps}\n setReturnObject={(fn) => (getReturnObject.current = fn)}\n hidePicker={hidePicker}\n >\n <span {...mainParams}>\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n labelDirection={labelDirection}\n srOnly={labelSrOnly}\n disabled={disabled}\n skeleton={skeleton}\n />\n )}\n\n <span\n className=\"dnb-date-picker__inner\"\n ref={innerRef}\n {...remainingPickerProps}\n >\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={String(label)}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + '-shell'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n\n <span className=\"dnb-date-picker__row\">\n <span className=\"dnb-date-picker__shell\" id={`${id}-shell`}>\n <DatePickerInput\n id={id}\n title={title}\n disabled={disabled}\n stretch={stretch}\n skeleton={skeleton}\n maskOrder={maskOrder}\n maskPlaceholder={maskPlaceholder}\n isRange={range}\n showInput={showInput}\n selectedDateTitle={selectedDateTitle}\n inputElement={inputElement}\n opened={opened}\n hidden={hidden}\n size={size}\n status={status ? 'error' : null}\n statusState={statusState}\n lang={context.locale}\n {...attributes}\n submitAttributes={remainingSubmitProps}\n onSubmit={togglePicker}\n {...statusProps}\n />\n\n {!hidden && (\n <DatePickerPortal\n alignment={alignPicker}\n skipPortal={skipPortal}\n targetElementRef={innerRef}\n >\n <span\n className={containerClassNames}\n ref={calendarContainerRef}\n >\n <span\n className=\"dnb-date-picker__triangle\"\n ref={triangleRef}\n />\n <DatePickerRange\n id={id}\n firstDayOfWeek={firstDay}\n resetDate={resetDate}\n isRange={range}\n isLink={link}\n isSync={sync}\n hideDays={hideDays}\n hideNavigation={hideNavigation}\n onlyMonth={onlyMonth}\n hideNextMonthWeek={hideLastWeek}\n noAutoFocus={disableAutofocus}\n onPickerChange={onPickerChange}\n locale={context.locale}\n />\n {(addonElement || shortcuts) && (\n <DatePickerAddon\n renderElement={addonElement}\n shortcuts={shortcuts}\n />\n )}\n <DatePickerFooter\n isRange={range}\n onSubmit={onSubmitHandler}\n onCancel={onCancelHandler}\n onReset={onResetHandler}\n submitButtonText={submitButtonText}\n cancelButtonText={cancelButtonText}\n resetButtonText={resetButtonText}\n />\n </span>\n </DatePickerPortal>\n )}\n </span>\n {suffix && (\n <Suffix\n className=\"dnb-date-picker__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n\n <p className=\"dnb-sr-only\" aria-live=\"assertive\">\n {selectedDateTitle}\n </p>\n </span>\n </DatePickerProvider>\n )\n}\n\nconst NonAttributes = [\n 'locale',\n 'id',\n 'month',\n 'date',\n 'startDate',\n 'endDate',\n 'minDate',\n 'maxDate',\n 'enableKeyboardNav',\n 'hideNavigation',\n 'returnFormat',\n 'dateFormat',\n 'hideDays',\n 'correctInvalidDate',\n 'opened',\n 'direction',\n 'range',\n 'showInput',\n 'noAnimation',\n 'onDaysRender',\n 'onShow',\n 'onType',\n 'onHide',\n 'showSubmitButton',\n 'showCancelButton',\n 'selectedDate',\n 'selectedMonth',\n 'selectedYear',\n 'nextMonth',\n 'nextYear',\n 'openPickerText',\n 'placeholderCharacters',\n 'prevMonth',\n 'prevYear',\n 'endMonth',\n 'startMonth',\n 'alignPicker',\n 'preventClose',\n 'selectedDateRange',\n 'yearNavigation',\n]\n\nfunction filterOutNonAttributes(props: DatePickerProps) {\n return Object.keys(props).reduce((attributes, key) => {\n if (!NonAttributes.includes(key)) {\n attributes[key] = props[key]\n }\n return attributes\n }, {})\n}\n\nexport default DatePicker\n\nDatePicker._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
@@ -32,10 +32,8 @@ export type DatePickerCalendarProps = Omit<React.HTMLProps<HTMLElement>, 'onSele
32
32
  */
33
33
  month?: Date;
34
34
  hoverDate?: Date;
35
- prevBtn?: boolean;
36
- nextBtn?: boolean;
37
35
  firstDayOfWeek?: string;
38
- hideNav?: boolean;
36
+ hideNavigation?: boolean;
39
37
  hideDays?: boolean;
40
38
  onlyMonth?: boolean;
41
39
  hideNextMonthWeek?: boolean;
@@ -4,6 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import "core-js/modules/es.string.replace.js";
7
8
  import "core-js/modules/web.dom-collections.iterator.js";
8
9
  import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
9
10
  import classnames from 'classnames';
@@ -23,10 +24,7 @@ import Button from '../button/Button';
23
24
  import DatePickerContext from './DatePickerContext';
24
25
  import { DatePickerCalendarNav } from './DatePickerCalendarNavigator';
25
26
  const defaultProps = {
26
- prevBtn: true,
27
- nextBtn: true,
28
- firstDayOfWeek: 'monday',
29
- hideNav: false,
27
+ hideNavigation: false,
30
28
  hideDays: false,
31
29
  onlyMonth: false,
32
30
  hideNextMonthWeek: false,
@@ -53,6 +51,12 @@ function DatePickerCalendar(restOfProps) {
53
51
  props: {
54
52
  onDaysRender,
55
53
  yearNavigation
54
+ },
55
+ translation: {
56
+ DatePicker: {
57
+ firstDay: defaultFirstDayOfWeek,
58
+ selectedMonth
59
+ }
56
60
  }
57
61
  } = useContext(DatePickerContext);
58
62
  const {
@@ -61,15 +65,13 @@ function DatePickerCalendar(restOfProps) {
61
65
  rtl,
62
66
  month,
63
67
  isRange,
64
- firstDayOfWeek,
65
- hideNav,
68
+ firstDayOfWeek = defaultFirstDayOfWeek,
69
+ hideNavigation,
66
70
  locale,
67
71
  hideDays,
68
72
  onSelect,
69
73
  onKeyDown,
70
74
  resetDate,
71
- prevBtn,
72
- nextBtn,
73
75
  noAutoFocus,
74
76
  hideNextMonthWeek,
75
77
  onlyMonth
@@ -196,7 +198,7 @@ function DatePickerCalendar(restOfProps) {
196
198
  dates.endDate = newDate;
197
199
  }
198
200
  }
199
- if (onlyMonth || hideNav) {
201
+ if (onlyMonth || hideNavigation) {
200
202
  if (!isSameMonth(dates.startDate, startDate) || !isSameMonth(dates.endDate, startDate)) {
201
203
  return;
202
204
  }
@@ -213,7 +215,7 @@ function DatePickerCalendar(restOfProps) {
213
215
  preventScroll: true
214
216
  });
215
217
  }
216
- }, [callOnSelect, findValid, hasReachedEnd, onKeyDown, startDate, endDate, updateDates, hideNav, isRange, keyNavCalc, nr, onlyMonth, endMonth, startMonth]);
218
+ }, [callOnSelect, findValid, hasReachedEnd, onKeyDown, startDate, endDate, updateDates, hideNavigation, isRange, keyNavCalc, nr, onlyMonth, endMonth, startMonth]);
217
219
  const cacheKey = useMemo(() => {
218
220
  return [nr, month, firstDayOfWeek, onlyMonth, hideNextMonthWeek, startDate, endDate, hoverDate, maxDate, minDate].join('|');
219
221
  }, [nr, month, firstDayOfWeek, onlyMonth, hideNextMonthWeek, startDate, endDate, hoverDate, maxDate, minDate]);
@@ -236,25 +238,38 @@ function DatePickerCalendar(restOfProps) {
236
238
  return React.createElement("div", {
237
239
  className: 'dnb-date-picker__calendar' + (rtl ? " rtl" : ""),
238
240
  lang: locale
239
- }, !hideNav && React.createElement("div", {
241
+ }, !hideNavigation && !onlyMonth && React.createElement("div", {
240
242
  className: "dnb-date-picker__header"
241
243
  }, React.createElement(DatePickerCalendarNav, {
242
244
  type: yearNavigation ? 'month' : 'both',
243
245
  id: id,
244
246
  nr: nr,
245
247
  date: month,
246
- locale: locale,
247
- showPreviousButton: prevBtn,
248
- showNextButton: nextBtn
248
+ locale: locale
249
249
  }), yearNavigation && React.createElement(DatePickerCalendarNav, {
250
250
  type: "year",
251
251
  id: id,
252
252
  nr: nr,
253
253
  date: month,
254
- locale: locale,
255
- showPreviousButton: prevBtn,
256
- showNextButton: nextBtn
257
- })), React.createElement("table", {
254
+ locale: locale
255
+ })), onlyMonth && React.createElement("div", {
256
+ className: "dnb-date-picker__header dnb-date-picker__header--only-month-label"
257
+ }, React.createElement("label", {
258
+ id: `${id}--title`,
259
+ className: "dnb-date-picker__header__title dnb-no-focus",
260
+ title: selectedMonth.replace(/%s/, formatDate(month, {
261
+ locale,
262
+ formatOptions: {
263
+ month: 'long'
264
+ }
265
+ })),
266
+ tabIndex: -1
267
+ }, formatDate(month, {
268
+ locale,
269
+ formatOptions: {
270
+ month: 'long'
271
+ }
272
+ }))), React.createElement("table", {
258
273
  role: "grid",
259
274
  className: "dnb-no-focus",
260
275
  tabIndex: 0,
@@ -262,7 +277,7 @@ function DatePickerCalendar(restOfProps) {
262
277
  onKeyDown: onKeyDownHandler,
263
278
  onMouseLeave: onMouseLeaveHandler,
264
279
  ref: tableRef
265
- }, !hideDays && React.createElement("thead", {
280
+ }, !hideDays && !onlyMonth && React.createElement("thead", {
266
281
  "aria-hidden": true
267
282
  }, React.createElement("tr", {
268
283
  role: "row",
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerCalendar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","classnames","format","addMonths","addWeeks","addDays","isSameDay","isSameMonth","startOfDay","differenceInCalendarDays","differenceInMonths","lastDayOfMonth","setDate","isDisabled","makeDayObject","toRange","getWeek","dayOffset","getCalendar","formatDate","Button","DatePickerContext","DatePickerCalendarNav","defaultProps","prevBtn","nextBtn","firstDayOfWeek","hideNav","hideDays","onlyMonth","hideNextMonthWeek","noAutoFocus","rtl","resetDate","arrowKeys","keysToHandle","DatePickerCalendar","restOfProps","props","_objectSpread","updateDates","setHasClickedCalendarDay","startDate","endDate","maxDate","minDate","startMonth","endMonth","hoverDate","setHoverDate","setSubmittedDates","onDaysRender","yearNavigation","id","nr","month","isRange","locale","onSelect","onKeyDown","tableRef","days","cache","current","focus","preventScroll","onMouseLeaveHandler","undefined","callOnSelect","event","getDays","daysFromCalendar","Date","map","date","changedDays","Array","isArray","keyNavCalc","keyCode","includes","dateHandler","test","shiftAmount","findValid","foundDate","find","cur","isSelectable","isInactive","nextDate","hasReachedEnd","onKeyDownHandler","pressedKey","code","preventDefault","persist","currentDates","dateType","currentDate","newDate","hidePicker","dates","currentMonth","Math","abs","cacheKey","join","weekDays","count","reduce","acc","i","push","Object","values","createElement","className","lang","type","showPreviousButton","showNextButton","role","tabIndex","onMouseLeave","ref","day","key","scope","formatOptions","weekday","substring","week","title","year","handleAsDisabled","isLastMonth","isNextMonth","isStartDate","isEndDate","isSelectedDate","paramsCell","paramsButton","_extends","buildDayClassNames","size","variant","text","getDate","bounding","disabled","on_click","_ref","onSelectRange","state","onMouseOver","onHoverDay","onFocus","_ref2","daysToStartDate","daysToEndDate","range","_ref3","isPreview","isWithinSelection","isToday"],"sources":["../../../../src/components/date-picker/DatePickerCalendar.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\n\n// date-fns\nimport format from 'date-fns/format'\nimport addMonths from 'date-fns/addMonths'\nimport addWeeks from 'date-fns/addWeeks'\nimport addDays from 'date-fns/addDays'\nimport isSameDay from 'date-fns/isSameDay'\nimport isSameMonth from 'date-fns/isSameMonth'\nimport startOfDay from 'date-fns/startOfDay'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\nimport differenceInMonths from 'date-fns/differenceInMonths'\nimport lastDayOfMonth from 'date-fns/lastDayOfMonth'\nimport setDate from 'date-fns/setDate'\n\nimport {\n isDisabled,\n makeDayObject,\n toRange,\n getWeek,\n dayOffset,\n getCalendar,\n formatDate,\n} from './DatePickerCalc'\nimport Button, { ButtonProps } from '../button/Button'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport { InternalLocale } from '../../shared/Context'\nimport { DatePickerChangeEvent } from './DatePickerProvider'\nimport { DatePickerDates } from './hooks/useDates'\nimport {\n CalendarNavButtonProps,\n DatePickerCalendarNav,\n} from './DatePickerCalendarNavigator'\n\nexport type CalendarDay = {\n date: Date\n isDisabled?: boolean\n isEndDate?: boolean\n isInactive?: boolean\n isLastMonth?: boolean\n isNextMonth?: boolean\n isPreview?: boolean\n isSelectable?: boolean\n isStartDate?: boolean\n isToday?: boolean\n isWithinSelection?: boolean\n className?: string\n}\n\nexport type CalendarNavigationEvent = {\n nr: number\n type?: CalendarNavButtonProps['type']\n}\n\nexport type DatePickerCalendarProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n id?: string\n nr?: number\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: Date\n hoverDate?: Date\n // TODO: rename for clarity\n prevBtn?: boolean\n // TODO: rename for clarity\n nextBtn?: boolean\n firstDayOfWeek?: string\n hideNav?: boolean\n hideDays?: boolean\n onlyMonth?: boolean\n hideNextMonthWeek?: boolean\n noAutoFocus?: boolean\n onSelect?: (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>\n >\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>,\n tableRef: React.MutableRefObject<HTMLTableElement>,\n nr: number\n ) => void\n /**\n * To define the locale used in the calendar. Needs to be an `date-fns` \"v2\" locale object, like `import enLocale from &#39;date-fns/locale/en-GB&#39;`. Defaults to `nb-NO`.\n */\n locale?: InternalLocale\n rtl?: boolean\n isRange?: boolean\n resetDate?: boolean\n}\n\ntype DayObject = {\n date: Date\n isToday: boolean\n isLastMonth: boolean\n isNextMonth: boolean\n isStartDate: boolean\n isEndDate: boolean\n isWithinSelection: boolean\n isPreview: boolean\n isDisabled: boolean\n isSelectable: boolean\n isInactive: boolean\n className?: string\n}\n\nconst defaultProps: DatePickerCalendarProps = {\n prevBtn: true,\n nextBtn: true,\n firstDayOfWeek: 'monday',\n hideNav: false,\n hideDays: false,\n onlyMonth: false,\n hideNextMonthWeek: false,\n noAutoFocus: false,\n rtl: false,\n resetDate: true,\n}\n\nconst arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\nconst keysToHandle = ['Enter', 'Space', ...arrowKeys]\n\nfunction DatePickerCalendar(restOfProps: DatePickerCalendarProps) {\n const props = { ...defaultProps, ...restOfProps }\n\n const {\n updateDates,\n setHasClickedCalendarDay,\n startDate,\n endDate,\n maxDate,\n minDate,\n startMonth,\n endMonth,\n hoverDate,\n setHoverDate,\n setSubmittedDates,\n props: { onDaysRender, yearNavigation },\n } = useContext(DatePickerContext)\n\n const {\n id,\n nr,\n rtl,\n month,\n isRange,\n firstDayOfWeek,\n hideNav,\n locale,\n hideDays,\n onSelect,\n onKeyDown,\n resetDate,\n prevBtn,\n nextBtn,\n noAutoFocus,\n hideNextMonthWeek,\n onlyMonth,\n } = props\n\n const tableRef = useRef<React.ElementRef<'table'>>()\n const days = useRef<Record<string, Array<CalendarDay>>>({})\n const cache = useRef<Record<string, CalendarDay[][]>>({})\n\n useEffect(() => {\n if (!noAutoFocus && nr === 0) {\n if (tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n }\n }, [noAutoFocus, nr])\n\n // Store the initial selected date on calendar render, to be used for `onCancel` in DatePickerFooter\n useEffect(() => {\n setSubmittedDates({ startDate, endDate })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onMouseLeaveHandler = useCallback(() => {\n setHoverDate(undefined)\n }, [setHoverDate])\n\n const callOnSelect = useCallback(\n (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n > &\n DatePickerDates\n ) => {\n onSelect?.(event)\n },\n [onSelect]\n )\n\n const getDays = useCallback(\n (month: Date): DayObject[] => {\n let daysFromCalendar = getCalendar(\n month || new Date(),\n dayOffset(firstDayOfWeek),\n {\n onlyMonth,\n hideNextMonthWeek,\n }\n ).map((date) =>\n makeDayObject(date, {\n startDate,\n endDate,\n hoverDate,\n minDate,\n maxDate,\n month,\n })\n )\n\n if (onDaysRender) {\n const changedDays = onDaysRender(daysFromCalendar, nr)\n if (Array.isArray(changedDays)) {\n daysFromCalendar = changedDays\n }\n }\n\n // Save for later check against disabled days during key navigation\n days.current[format(month, 'yyyy-MM')] = daysFromCalendar\n\n return daysFromCalendar\n },\n [\n endDate,\n firstDayOfWeek,\n hideNextMonthWeek,\n hoverDate,\n maxDate,\n minDate,\n nr,\n onDaysRender,\n onlyMonth,\n startDate,\n ]\n )\n\n const keyNavCalc = useCallback((date: Date, keyCode: string) => {\n // Return date if arrow keys are not pressed\n if (!arrowKeys.includes(keyCode)) {\n return date\n }\n\n const dateHandler = /(ArrowLeft|ArrowRight)/g.test(keyCode)\n ? addDays\n : addWeeks\n const shiftAmount = /(ArrowLeft|ArrowUp)/g.test(keyCode) ? -1 : 1\n\n return dateHandler(date, shiftAmount)\n }, [])\n\n const findValid = useCallback(\n (date: Date, keyCode: string) => {\n if (!onDaysRender || !days.current) {\n return date\n }\n\n const month = format(date, 'yyyy-MM')\n\n // re-render with new month\n if (!days.current[month]) {\n getDays(date)\n }\n\n if (Array.isArray(days.current[month])) {\n const foundDate = days.current[month].find((cur) =>\n isSameDay(cur.date, date)\n )\n\n if (\n foundDate?.date &&\n (foundDate.isDisabled ||\n foundDate.isSelectable === false ||\n foundDate.isInactive)\n ) {\n const nextDate = keyNavCalc(foundDate.date, keyCode)\n return findValid(nextDate, keyCode)\n }\n\n if (foundDate?.date) {\n return foundDate.date\n }\n }\n\n return date\n },\n [onDaysRender, getDays, keyNavCalc]\n )\n\n const hasReachedEnd = useCallback(\n (date: Date) => isDisabled(date, minDate, maxDate),\n [minDate, maxDate]\n )\n\n const onKeyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLTableElement>) => {\n const pressedKey = event.code\n\n // call onKeyDown prop if given\n if (typeof onKeyDown === 'function') {\n return onKeyDown(event, tableRef, nr)\n }\n\n // only continue of key is one of these\n if (!keysToHandle.includes(pressedKey)) {\n return\n }\n event.preventDefault()\n event.persist() // since we use the event after updateDates\n\n const currentDates = { startDate, endDate, startMonth, endMonth }\n const dateType = !isRange || nr === 0 ? 'start' : 'end'\n const currentDate = currentDates[`${dateType}Date`]\n\n let newDate = currentDate\n ? keyNavCalc(currentDate, pressedKey)\n : currentDates[`${dateType}Month`] ||\n (isRange && nr === 1 ? addMonths(new Date(), 1) : new Date())\n\n if (\n newDate === currentDate &&\n (pressedKey === 'Enter' || pressedKey === 'Space')\n ) {\n return callOnSelect({\n event,\n nr,\n hidePicker: true,\n })\n }\n\n const dates: {\n startDate?: Date\n endDate?: Date\n startMonth?: Date\n endMonth?: Date\n } = {}\n\n const currentMonth = currentDates[`${dateType}Month`]\n\n if (\n // in case we don't have a start/end date, then we use the current month date\n (currentMonth && !currentDate) ||\n // if we have a larger gap between the new date and the current month in the calendar\n (currentMonth &&\n Math.abs(differenceInMonths(newDate, currentMonth)) > 1)\n ) {\n newDate = !isRange\n ? currentMonth\n : nr === 0\n ? setDate(currentMonth, 1)\n : lastDayOfMonth(currentMonth)\n\n // only to make sure we navigate the calendar to the new date\n } else if (currentMonth && !isSameMonth(currentDate, currentMonth)) {\n dates[`${dateType}Month`] = newDate\n }\n\n newDate = findValid(newDate, pressedKey)\n\n if (hasReachedEnd(newDate)) {\n return // Stop here\n }\n\n dates[`${dateType}Date`] = newDate\n\n // set fallbacks\n if (!isRange) {\n dates.endDate = newDate\n } else {\n if (!startDate) {\n dates.startDate = newDate\n }\n if (!endDate) {\n dates.endDate = newDate\n }\n }\n\n // make sure we stay on the same month\n if (onlyMonth || hideNav) {\n if (\n !isSameMonth(dates.startDate, startDate) ||\n !isSameMonth(dates.endDate, startDate) // Heads up, should this not be context.endDate?\n ) {\n return\n }\n }\n\n updateDates(dates, () => {\n // call after state update, so the input get's the latest state as well\n callOnSelect({\n event,\n nr,\n hidePicker: false,\n ...dates,\n })\n })\n\n // and set the focus back again\n if (tableRef && tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n },\n [\n callOnSelect,\n findValid,\n hasReachedEnd,\n onKeyDown,\n startDate,\n endDate,\n updateDates,\n hideNav,\n isRange,\n keyNavCalc,\n nr,\n onlyMonth,\n endMonth,\n startMonth,\n ]\n )\n\n const cacheKey = useMemo(() => {\n return [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ].join('|')\n }, [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ])\n\n const weekDays = useMemo(() => {\n // Cache the result, just because we then avoid at least double calc because of reconciliation,\n // but we do not avoid calculating every day during hover or select\n\n if (cache.current[cacheKey]) {\n return cache.current[cacheKey]\n }\n\n let count = 0\n\n const days = getDays(month).reduce((acc, cur, i) => {\n // Normalize the data for table consumption\n acc[count] = acc[count] || []\n acc[count].push(cur)\n if (i % 7 === 6) {\n count++\n }\n\n return acc\n }, {})\n\n cache.current[cacheKey] = Object.values(days)\n\n return cache.current[cacheKey]\n }, [cacheKey, getDays, month])\n\n return (\n <div\n className={classnames('dnb-date-picker__calendar', rtl && 'rtl')}\n lang={locale}\n >\n {!hideNav && (\n <div className=\"dnb-date-picker__header\">\n <DatePickerCalendarNav\n type={yearNavigation ? 'month' : 'both'}\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n showPreviousButton={prevBtn}\n showNextButton={nextBtn}\n />\n {yearNavigation && (\n <DatePickerCalendarNav\n type=\"year\"\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n showPreviousButton={prevBtn}\n showNextButton={nextBtn}\n />\n )}\n </div>\n )}\n <table\n role=\"grid\"\n className=\"dnb-no-focus\"\n tabIndex={0}\n aria-labelledby={`${id}--title`}\n onKeyDown={onKeyDownHandler}\n onMouseLeave={onMouseLeaveHandler}\n ref={tableRef}\n >\n {!hideDays && (\n <thead aria-hidden>\n <tr role=\"row\" className=\"dnb-date-picker__labels\">\n {getWeek(dayOffset(firstDayOfWeek)).map((day, i) => (\n <th\n key={i}\n role=\"columnheader\"\n scope=\"col\"\n className=\"dnb-date-picker__labels__day\"\n aria-label={formatDate(day, {\n locale,\n formatOptions: { weekday: 'long' },\n })}\n >\n {formatDate(day, {\n locale,\n formatOptions: { weekday: 'short' },\n }).substring(0, 2)}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weekDays.map((week, i) => {\n return (\n <tr\n key={'week' + i}\n role=\"row\"\n className=\"dnb-date-picker__days\"\n >\n {week.map((day: DayObject, i) => {\n const title = formatDate(day.date, {\n locale,\n formatOptions: {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n })\n\n const handleAsDisabled =\n day.isLastMonth ||\n day.isNextMonth ||\n day.isDisabled ||\n day.isInactive\n\n const dateType = day.isStartDate\n ? 'start'\n : day.isEndDate\n ? 'end'\n : undefined\n const isSelectedDate =\n nr === 0 ? day.isStartDate : day.isEndDate\n\n // cell params\n const paramsCell = {\n tabIndex: -1,\n ...(dateType && { id: `${id}--button-${dateType}` }),\n ...(isSelectedDate && { ['aria-selected']: true }),\n } as React.HTMLProps<HTMLTableCellElement>\n\n // cell + button params\n const paramsButton = {\n ...(isSelectedDate && { ['aria-current']: 'date' }),\n } as ButtonProps\n\n return (\n <td\n key={'day' + i}\n role=\"gridcell\"\n className={classnames(\n 'dnb-date-picker__day',\n 'dnb-no-focus',\n buildDayClassNames(day)\n )}\n {...paramsCell}\n >\n <Button\n size=\"medium\"\n variant=\"secondary\"\n text={day.date.getDate()}\n bounding={true}\n disabled={handleAsDisabled}\n tabIndex={handleAsDisabled ? 0 : -1} // fix for NVDA\n aria-disabled={handleAsDisabled}\n aria-label={title}\n {...paramsButton}\n on_click={\n handleAsDisabled\n ? undefined\n : ({ event }) =>\n onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n resetDate,\n event,\n setHasClickedCalendarDay,\n onSelect: (state) => {\n updateDates(state, (dates) =>\n callOnSelect({\n ...dates,\n event,\n nr,\n hidePicker: !isRange,\n })\n )\n },\n })\n }\n onMouseOver={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n onFocus={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n />\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n )\n}\n\nexport default DatePickerCalendar\n\ntype SelectRangeEvent = Pick<\n DatePickerContextValues,\n 'setHasClickedCalendarDay'\n> & {\n day: DayObject\n event?: React.MouseEvent<HTMLButtonElement>\n startDate?: Date\n endDate?: Date\n resetDate?: boolean\n isRange?: boolean\n onSelect?: DatePickerCalendarProps['onSelect']\n}\n\nfunction onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n onSelect,\n resetDate,\n event,\n setHasClickedCalendarDay,\n}: SelectRangeEvent) {\n event.persist()\n\n if (!isRange) {\n // set only date\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: startOfDay(day.date),\n event,\n })\n\n // for setting date new on every selection, do this here\n }\n\n // Set to true to stop calendar views from changing in range mode when clicking a day\n setHasClickedCalendarDay(true)\n\n if (!startDate || (resetDate && startDate && endDate)) {\n // set startDate\n // user is selecting startDate\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: undefined,\n event,\n })\n }\n\n // set either startDate or endDate\n const daysToStartDate = Math.abs(\n differenceInCalendarDays(startDate, day.date)\n )\n const daysToEndDate = Math.abs(\n differenceInCalendarDays(endDate, day.date)\n )\n\n const range = toRange(\n endDate && !resetDate && daysToStartDate < daysToEndDate\n ? endDate\n : startDate,\n day.date\n )\n\n return onSelect({\n startDate: startOfDay(range.startDate),\n endDate: startOfDay(range.endDate),\n event,\n })\n}\n\nfunction onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n}: {\n day: CalendarDay\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n}) {\n if (!isSameDay(day.date, hoverDate)) {\n setHoverDate?.(day.date)\n }\n}\n\nfunction buildDayClassNames(day: DayObject) {\n return classnames(\n {\n 'dnb-date-picker__day--start-date': day.isStartDate,\n 'dnb-date-picker__day--end-date': day.isEndDate,\n 'dnb-date-picker__day--preview': day.isPreview,\n 'dnb-date-picker__day--within-selection': day.isWithinSelection,\n 'dnb-date-picker__day--selectable': day.isSelectable,\n 'dnb-date-picker__day--inactive': day.isInactive,\n 'dnb-date-picker__day--disabled': day.isDisabled,\n 'dnb-date-picker__day--today': day.isToday,\n },\n day.className\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePickerCalendar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","classnames","format","addMonths","addWeeks","addDays","isSameDay","isSameMonth","startOfDay","differenceInCalendarDays","differenceInMonths","lastDayOfMonth","setDate","isDisabled","makeDayObject","toRange","getWeek","dayOffset","getCalendar","formatDate","Button","DatePickerContext","DatePickerCalendarNav","defaultProps","hideNavigation","hideDays","onlyMonth","hideNextMonthWeek","noAutoFocus","rtl","resetDate","arrowKeys","keysToHandle","DatePickerCalendar","restOfProps","props","_objectSpread","updateDates","setHasClickedCalendarDay","startDate","endDate","maxDate","minDate","startMonth","endMonth","hoverDate","setHoverDate","setSubmittedDates","onDaysRender","yearNavigation","translation","DatePicker","firstDay","defaultFirstDayOfWeek","selectedMonth","id","nr","month","isRange","firstDayOfWeek","locale","onSelect","onKeyDown","tableRef","days","cache","current","focus","preventScroll","onMouseLeaveHandler","undefined","callOnSelect","event","getDays","daysFromCalendar","Date","map","date","changedDays","Array","isArray","keyNavCalc","keyCode","includes","dateHandler","test","shiftAmount","findValid","foundDate","find","cur","isSelectable","isInactive","nextDate","hasReachedEnd","onKeyDownHandler","pressedKey","code","preventDefault","persist","currentDates","dateType","currentDate","newDate","hidePicker","dates","currentMonth","Math","abs","cacheKey","join","weekDays","count","reduce","acc","i","push","Object","values","createElement","className","lang","type","title","replace","formatOptions","tabIndex","role","onMouseLeave","ref","day","key","scope","weekday","substring","week","year","handleAsDisabled","isLastMonth","isNextMonth","isStartDate","isEndDate","isSelectedDate","paramsCell","paramsButton","_extends","buildDayClassNames","size","variant","text","getDate","bounding","disabled","on_click","_ref","onSelectRange","state","onMouseOver","onHoverDay","onFocus","_ref2","daysToStartDate","daysToEndDate","range","_ref3","isPreview","isWithinSelection","isToday"],"sources":["../../../../src/components/date-picker/DatePickerCalendar.tsx"],"sourcesContent":["/**\n * Web DatePicker Component\n *\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\n\n// date-fns\nimport format from 'date-fns/format'\nimport addMonths from 'date-fns/addMonths'\nimport addWeeks from 'date-fns/addWeeks'\nimport addDays from 'date-fns/addDays'\nimport isSameDay from 'date-fns/isSameDay'\nimport isSameMonth from 'date-fns/isSameMonth'\nimport startOfDay from 'date-fns/startOfDay'\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays'\nimport differenceInMonths from 'date-fns/differenceInMonths'\nimport lastDayOfMonth from 'date-fns/lastDayOfMonth'\nimport setDate from 'date-fns/setDate'\n\nimport {\n isDisabled,\n makeDayObject,\n toRange,\n getWeek,\n dayOffset,\n getCalendar,\n formatDate,\n} from './DatePickerCalc'\nimport Button, { ButtonProps } from '../button/Button'\nimport DatePickerContext, {\n DatePickerContextValues,\n} from './DatePickerContext'\nimport { InternalLocale } from '../../shared/Context'\nimport { DatePickerChangeEvent } from './DatePickerProvider'\nimport { DatePickerDates } from './hooks/useDates'\nimport {\n CalendarNavButtonProps,\n DatePickerCalendarNav,\n} from './DatePickerCalendarNavigator'\n\nexport type CalendarDay = {\n date: Date\n isDisabled?: boolean\n isEndDate?: boolean\n isInactive?: boolean\n isLastMonth?: boolean\n isNextMonth?: boolean\n isPreview?: boolean\n isSelectable?: boolean\n isStartDate?: boolean\n isToday?: boolean\n isWithinSelection?: boolean\n className?: string\n}\n\nexport type CalendarNavigationEvent = {\n nr: number\n type?: CalendarNavButtonProps['type']\n}\n\nexport type DatePickerCalendarProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n id?: string\n nr?: number\n /**\n * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.\n */\n month?: Date\n hoverDate?: Date\n firstDayOfWeek?: string\n hideNavigation?: boolean\n hideDays?: boolean\n onlyMonth?: boolean\n hideNextMonthWeek?: boolean\n noAutoFocus?: boolean\n onSelect?: (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>\n >\n ) => void\n onKeyDown?: (\n event: React.KeyboardEvent<HTMLTableElement | HTMLButtonElement>,\n tableRef: React.MutableRefObject<HTMLTableElement>,\n nr: number\n ) => void\n /**\n * To define the locale used in the calendar. Needs to be an `date-fns` \"v2\" locale object, like `import enLocale from &#39;date-fns/locale/en-GB&#39;`. Defaults to `nb-NO`.\n */\n locale?: InternalLocale\n rtl?: boolean\n isRange?: boolean\n resetDate?: boolean\n}\n\ntype DayObject = {\n date: Date\n isToday: boolean\n isLastMonth: boolean\n isNextMonth: boolean\n isStartDate: boolean\n isEndDate: boolean\n isWithinSelection: boolean\n isPreview: boolean\n isDisabled: boolean\n isSelectable: boolean\n isInactive: boolean\n className?: string\n}\n\nconst defaultProps: DatePickerCalendarProps = {\n hideNavigation: false,\n hideDays: false,\n onlyMonth: false,\n hideNextMonthWeek: false,\n noAutoFocus: false,\n rtl: false,\n resetDate: true,\n}\n\nconst arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\nconst keysToHandle = ['Enter', 'Space', ...arrowKeys]\n\nfunction DatePickerCalendar(restOfProps: DatePickerCalendarProps) {\n const props = { ...defaultProps, ...restOfProps }\n\n const {\n updateDates,\n setHasClickedCalendarDay,\n startDate,\n endDate,\n maxDate,\n minDate,\n startMonth,\n endMonth,\n hoverDate,\n setHoverDate,\n setSubmittedDates,\n props: { onDaysRender, yearNavigation },\n translation: {\n DatePicker: { firstDay: defaultFirstDayOfWeek, selectedMonth },\n },\n } = useContext(DatePickerContext)\n\n const {\n id,\n nr,\n rtl,\n month,\n isRange,\n firstDayOfWeek = defaultFirstDayOfWeek,\n hideNavigation,\n locale,\n hideDays,\n onSelect,\n onKeyDown,\n resetDate,\n noAutoFocus,\n hideNextMonthWeek,\n onlyMonth,\n } = props\n\n const tableRef = useRef<React.ElementRef<'table'>>()\n const days = useRef<Record<string, Array<CalendarDay>>>({})\n const cache = useRef<Record<string, CalendarDay[][]>>({})\n\n useEffect(() => {\n if (!noAutoFocus && nr === 0) {\n if (tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n }\n }, [noAutoFocus, nr])\n\n // Store the initial selected date on calendar render, to be used for `onCancel` in DatePickerFooter\n useEffect(() => {\n setSubmittedDates({ startDate, endDate })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onMouseLeaveHandler = useCallback(() => {\n setHoverDate(undefined)\n }, [setHoverDate])\n\n const callOnSelect = useCallback(\n (\n event: DatePickerChangeEvent<\n | React.MouseEvent<HTMLSpanElement>\n | React.KeyboardEvent<HTMLTableElement>\n > &\n DatePickerDates\n ) => {\n onSelect?.(event)\n },\n [onSelect]\n )\n\n const getDays = useCallback(\n (month: Date): DayObject[] => {\n let daysFromCalendar = getCalendar(\n month || new Date(),\n dayOffset(firstDayOfWeek),\n {\n onlyMonth,\n hideNextMonthWeek,\n }\n ).map((date) =>\n makeDayObject(date, {\n startDate,\n endDate,\n hoverDate,\n minDate,\n maxDate,\n month,\n })\n )\n\n if (onDaysRender) {\n const changedDays = onDaysRender(daysFromCalendar, nr)\n if (Array.isArray(changedDays)) {\n daysFromCalendar = changedDays\n }\n }\n\n // Save for later check against disabled days during key navigation\n days.current[format(month, 'yyyy-MM')] = daysFromCalendar\n\n return daysFromCalendar\n },\n [\n endDate,\n firstDayOfWeek,\n hideNextMonthWeek,\n hoverDate,\n maxDate,\n minDate,\n nr,\n onDaysRender,\n onlyMonth,\n startDate,\n ]\n )\n\n const keyNavCalc = useCallback((date: Date, keyCode: string) => {\n // Return date if arrow keys are not pressed\n if (!arrowKeys.includes(keyCode)) {\n return date\n }\n\n const dateHandler = /(ArrowLeft|ArrowRight)/g.test(keyCode)\n ? addDays\n : addWeeks\n const shiftAmount = /(ArrowLeft|ArrowUp)/g.test(keyCode) ? -1 : 1\n\n return dateHandler(date, shiftAmount)\n }, [])\n\n const findValid = useCallback(\n (date: Date, keyCode: string) => {\n if (!onDaysRender || !days.current) {\n return date\n }\n\n const month = format(date, 'yyyy-MM')\n\n // re-render with new month\n if (!days.current[month]) {\n getDays(date)\n }\n\n if (Array.isArray(days.current[month])) {\n const foundDate = days.current[month].find((cur) =>\n isSameDay(cur.date, date)\n )\n\n if (\n foundDate?.date &&\n (foundDate.isDisabled ||\n foundDate.isSelectable === false ||\n foundDate.isInactive)\n ) {\n const nextDate = keyNavCalc(foundDate.date, keyCode)\n return findValid(nextDate, keyCode)\n }\n\n if (foundDate?.date) {\n return foundDate.date\n }\n }\n\n return date\n },\n [onDaysRender, getDays, keyNavCalc]\n )\n\n const hasReachedEnd = useCallback(\n (date: Date) => isDisabled(date, minDate, maxDate),\n [minDate, maxDate]\n )\n\n const onKeyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLTableElement>) => {\n const pressedKey = event.code\n\n // call onKeyDown prop if given\n if (typeof onKeyDown === 'function') {\n return onKeyDown(event, tableRef, nr)\n }\n\n // only continue of key is one of these\n if (!keysToHandle.includes(pressedKey)) {\n return\n }\n event.preventDefault()\n event.persist() // since we use the event after updateDates\n\n const currentDates = { startDate, endDate, startMonth, endMonth }\n const dateType = !isRange || nr === 0 ? 'start' : 'end'\n const currentDate = currentDates[`${dateType}Date`]\n\n let newDate = currentDate\n ? keyNavCalc(currentDate, pressedKey)\n : currentDates[`${dateType}Month`] ||\n (isRange && nr === 1 ? addMonths(new Date(), 1) : new Date())\n\n if (\n newDate === currentDate &&\n (pressedKey === 'Enter' || pressedKey === 'Space')\n ) {\n return callOnSelect({\n event,\n nr,\n hidePicker: true,\n })\n }\n\n const dates: {\n startDate?: Date\n endDate?: Date\n startMonth?: Date\n endMonth?: Date\n } = {}\n\n const currentMonth = currentDates[`${dateType}Month`]\n\n if (\n // in case we don't have a start/end date, then we use the current month date\n (currentMonth && !currentDate) ||\n // if we have a larger gap between the new date and the current month in the calendar\n (currentMonth &&\n Math.abs(differenceInMonths(newDate, currentMonth)) > 1)\n ) {\n newDate = !isRange\n ? currentMonth\n : nr === 0\n ? setDate(currentMonth, 1)\n : lastDayOfMonth(currentMonth)\n\n // only to make sure we navigate the calendar to the new date\n } else if (currentMonth && !isSameMonth(currentDate, currentMonth)) {\n dates[`${dateType}Month`] = newDate\n }\n\n newDate = findValid(newDate, pressedKey)\n\n if (hasReachedEnd(newDate)) {\n return // Stop here\n }\n\n dates[`${dateType}Date`] = newDate\n\n // set fallbacks\n if (!isRange) {\n dates.endDate = newDate\n } else {\n if (!startDate) {\n dates.startDate = newDate\n }\n if (!endDate) {\n dates.endDate = newDate\n }\n }\n\n // make sure we stay on the same month\n if (onlyMonth || hideNavigation) {\n if (\n !isSameMonth(dates.startDate, startDate) ||\n !isSameMonth(dates.endDate, startDate) // Heads up, should this not be context.endDate?\n ) {\n return\n }\n }\n\n updateDates(dates, () => {\n // call after state update, so the input get's the latest state as well\n callOnSelect({\n event,\n nr,\n hidePicker: false,\n ...dates,\n })\n })\n\n // and set the focus back again\n if (tableRef && tableRef.current) {\n tableRef.current.focus({ preventScroll: true })\n }\n },\n [\n callOnSelect,\n findValid,\n hasReachedEnd,\n onKeyDown,\n startDate,\n endDate,\n updateDates,\n hideNavigation,\n isRange,\n keyNavCalc,\n nr,\n onlyMonth,\n endMonth,\n startMonth,\n ]\n )\n\n const cacheKey = useMemo(() => {\n return [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ].join('|')\n }, [\n nr,\n month,\n firstDayOfWeek,\n onlyMonth,\n hideNextMonthWeek,\n startDate,\n endDate,\n hoverDate,\n maxDate,\n minDate,\n ])\n\n const weekDays = useMemo(() => {\n // Cache the result, just because we then avoid at least double calc because of reconciliation,\n // but we do not avoid calculating every day during hover or select\n\n if (cache.current[cacheKey]) {\n return cache.current[cacheKey]\n }\n\n let count = 0\n\n const days = getDays(month).reduce((acc, cur, i) => {\n // Normalize the data for table consumption\n acc[count] = acc[count] || []\n acc[count].push(cur)\n if (i % 7 === 6) {\n count++\n }\n\n return acc\n }, {})\n\n cache.current[cacheKey] = Object.values(days)\n\n return cache.current[cacheKey]\n }, [cacheKey, getDays, month])\n\n return (\n <div\n className={classnames('dnb-date-picker__calendar', rtl && 'rtl')}\n lang={locale}\n >\n {!hideNavigation && !onlyMonth && (\n <div className=\"dnb-date-picker__header\">\n <DatePickerCalendarNav\n type={yearNavigation ? 'month' : 'both'}\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n />\n {yearNavigation && (\n <DatePickerCalendarNav\n type=\"year\"\n id={id}\n nr={nr}\n date={month}\n locale={locale}\n />\n )}\n </div>\n )}\n {onlyMonth && (\n <div className=\"dnb-date-picker__header dnb-date-picker__header--only-month-label\">\n <label\n id={`${id}--title`}\n className=\"dnb-date-picker__header__title dnb-no-focus\"\n title={selectedMonth.replace(\n /%s/,\n formatDate(month, {\n locale,\n formatOptions: { month: 'long' },\n })\n )}\n tabIndex={-1}\n >\n {formatDate(month, {\n locale,\n formatOptions: { month: 'long' },\n })}\n </label>\n </div>\n )}\n <table\n role=\"grid\"\n className=\"dnb-no-focus\"\n tabIndex={0}\n aria-labelledby={`${id}--title`}\n onKeyDown={onKeyDownHandler}\n onMouseLeave={onMouseLeaveHandler}\n ref={tableRef}\n >\n {!hideDays && !onlyMonth && (\n <thead aria-hidden>\n <tr role=\"row\" className=\"dnb-date-picker__labels\">\n {getWeek(dayOffset(firstDayOfWeek)).map((day, i) => (\n <th\n key={i}\n role=\"columnheader\"\n scope=\"col\"\n className=\"dnb-date-picker__labels__day\"\n aria-label={formatDate(day, {\n locale,\n formatOptions: { weekday: 'long' },\n })}\n >\n {formatDate(day, {\n locale,\n formatOptions: { weekday: 'short' },\n }).substring(0, 2)}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weekDays.map((week, i) => {\n return (\n <tr\n key={'week' + i}\n role=\"row\"\n className=\"dnb-date-picker__days\"\n >\n {week.map((day: DayObject, i) => {\n const title = formatDate(day.date, {\n locale,\n formatOptions: {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n })\n\n const handleAsDisabled =\n day.isLastMonth ||\n day.isNextMonth ||\n day.isDisabled ||\n day.isInactive\n\n const dateType = day.isStartDate\n ? 'start'\n : day.isEndDate\n ? 'end'\n : undefined\n const isSelectedDate =\n nr === 0 ? day.isStartDate : day.isEndDate\n\n // cell params\n const paramsCell = {\n tabIndex: -1,\n ...(dateType && { id: `${id}--button-${dateType}` }),\n ...(isSelectedDate && { ['aria-selected']: true }),\n } as React.HTMLProps<HTMLTableCellElement>\n\n // cell + button params\n const paramsButton = {\n ...(isSelectedDate && { ['aria-current']: 'date' }),\n } as ButtonProps\n\n return (\n <td\n key={'day' + i}\n role=\"gridcell\"\n className={classnames(\n 'dnb-date-picker__day',\n 'dnb-no-focus',\n buildDayClassNames(day)\n )}\n {...paramsCell}\n >\n <Button\n size=\"medium\"\n variant=\"secondary\"\n text={day.date.getDate()}\n bounding={true}\n disabled={handleAsDisabled}\n tabIndex={handleAsDisabled ? 0 : -1} // fix for NVDA\n aria-disabled={handleAsDisabled}\n aria-label={title}\n {...paramsButton}\n on_click={\n handleAsDisabled\n ? undefined\n : ({ event }) =>\n onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n resetDate,\n event,\n setHasClickedCalendarDay,\n onSelect: (state) => {\n updateDates(state, (dates) =>\n callOnSelect({\n ...dates,\n event,\n nr,\n hidePicker: !isRange,\n })\n )\n },\n })\n }\n onMouseOver={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n onFocus={\n handleAsDisabled\n ? undefined\n : () =>\n onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n })\n }\n />\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n )\n}\n\nexport default DatePickerCalendar\n\ntype SelectRangeEvent = Pick<\n DatePickerContextValues,\n 'setHasClickedCalendarDay'\n> & {\n day: DayObject\n event?: React.MouseEvent<HTMLButtonElement>\n startDate?: Date\n endDate?: Date\n resetDate?: boolean\n isRange?: boolean\n onSelect?: DatePickerCalendarProps['onSelect']\n}\n\nfunction onSelectRange({\n day,\n isRange,\n startDate,\n endDate,\n onSelect,\n resetDate,\n event,\n setHasClickedCalendarDay,\n}: SelectRangeEvent) {\n event.persist()\n\n if (!isRange) {\n // set only date\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: startOfDay(day.date),\n event,\n })\n\n // for setting date new on every selection, do this here\n }\n\n // Set to true to stop calendar views from changing in range mode when clicking a day\n setHasClickedCalendarDay(true)\n\n if (!startDate || (resetDate && startDate && endDate)) {\n // set startDate\n // user is selecting startDate\n return onSelect({\n startDate: startOfDay(day.date),\n endDate: undefined,\n event,\n })\n }\n\n // set either startDate or endDate\n const daysToStartDate = Math.abs(\n differenceInCalendarDays(startDate, day.date)\n )\n const daysToEndDate = Math.abs(\n differenceInCalendarDays(endDate, day.date)\n )\n\n const range = toRange(\n endDate && !resetDate && daysToStartDate < daysToEndDate\n ? endDate\n : startDate,\n day.date\n )\n\n return onSelect({\n startDate: startOfDay(range.startDate),\n endDate: startOfDay(range.endDate),\n event,\n })\n}\n\nfunction onHoverDay({\n day,\n hoverDate,\n setHoverDate,\n}: {\n day: CalendarDay\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n}) {\n if (!isSameDay(day.date, hoverDate)) {\n setHoverDate?.(day.date)\n }\n}\n\nfunction buildDayClassNames(day: DayObject) {\n return classnames(\n {\n 'dnb-date-picker__day--start-date': day.isStartDate,\n 'dnb-date-picker__day--end-date': day.isEndDate,\n 'dnb-date-picker__day--preview': day.isPreview,\n 'dnb-date-picker__day--within-selection': day.isWithinSelection,\n 'dnb-date-picker__day--selectable': day.isSelectable,\n 'dnb-date-picker__day--inactive': day.isInactive,\n 'dnb-date-picker__day--disabled': day.isDisabled,\n 'dnb-date-picker__day--today': day.isToday,\n },\n day.className\n )\n}\n"],"mappings":"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","ignoreList":[]}