@dnb/eufemia 10.73.2 → 10.74.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 (624) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +7 -4
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/button/style/dnb-button.css +1 -0
  8. package/cjs/components/button/style/dnb-button.min.css +1 -1
  9. package/cjs/components/button/style/dnb-button.scss +1 -0
  10. package/cjs/components/checkbox/Checkbox.d.ts +9 -1
  11. package/cjs/components/checkbox/Checkbox.js +59 -34
  12. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  13. package/cjs/components/checkbox/CheckboxDocs.js +6 -1
  14. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  15. package/cjs/components/date-picker/DatePicker.d.ts +4 -0
  16. package/cjs/components/date-picker/DatePicker.js +4 -3
  17. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  18. package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
  19. package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
  20. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  21. package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  22. package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
  23. package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  24. package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
  25. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  26. package/cjs/components/date-picker/DatePickerDocs.js +6 -1
  27. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  28. package/cjs/components/date-picker/DatePickerFooter.js +20 -17
  29. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerProvider.js +7 -0
  31. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  32. package/cjs/components/date-picker/DatePickerRange.js +2 -28
  33. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  34. package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  35. package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
  36. package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  37. package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
  38. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  39. package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
  40. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  41. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  42. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  43. package/cjs/components/drawer/Drawer.js +1 -0
  44. package/cjs/components/drawer/Drawer.js.map +1 -1
  45. package/cjs/components/dropdown/Dropdown.js +6 -4
  46. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  47. package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
  48. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  49. package/cjs/components/heading/HeadingHelpers.js +9 -5
  50. package/cjs/components/heading/HeadingHelpers.js.map +1 -1
  51. package/cjs/components/icon/Icon.d.ts +2 -2
  52. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  53. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  54. package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
  55. package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
  56. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  57. package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
  58. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  59. package/cjs/components/number-format/NumberUtils.js +6 -4
  60. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  61. package/cjs/components/switch/SwitchDocs.js +2 -2
  62. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  63. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
  64. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  65. package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
  66. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  67. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  68. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  69. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  70. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
  71. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
  73. package/cjs/extensions/forms/Field/Date/Date.js +1 -1
  74. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  75. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  76. package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
  77. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  78. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  79. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
  80. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
  82. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  83. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  84. package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
  85. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  87. package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
  88. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  90. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
  91. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  93. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
  94. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  95. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  96. package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
  97. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  98. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  99. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  100. package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  101. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
  102. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  103. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  104. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
  105. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  106. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  107. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  109. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
  110. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  111. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  112. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
  113. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  114. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  115. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
  116. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  117. package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
  118. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  119. package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  120. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  121. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  122. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  123. package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  124. package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
  125. package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  126. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  127. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
  128. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  129. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  130. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  131. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  132. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
  133. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  134. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
  135. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
  136. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  137. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
  138. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  139. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  140. package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
  141. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  142. package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
  143. package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
  144. package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
  145. package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
  146. package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
  147. package/cjs/fragments/drawer-list/DrawerList.js +70 -175
  148. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  149. package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  150. package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
  151. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  152. package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
  153. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  154. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  155. package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
  156. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  157. package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  158. package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
  159. package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
  160. package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  161. package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
  162. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  163. package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  164. package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
  165. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  166. package/cjs/shared/Eufemia.d.ts +1 -1
  167. package/cjs/shared/Eufemia.js +2 -2
  168. package/cjs/shared/Eufemia.js.map +1 -1
  169. package/cjs/shared/component-helper.d.ts +45 -48
  170. package/cjs/shared/component-helper.js +72 -201
  171. package/cjs/shared/component-helper.js.map +1 -1
  172. package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
  173. package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
  174. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  175. package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
  176. package/cjs/shared/legacy/component-helper-legacy.js +202 -0
  177. package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
  178. package/cjs/shared/locales/en-GB.d.ts +1 -0
  179. package/cjs/shared/locales/en-GB.js +1 -0
  180. package/cjs/shared/locales/en-GB.js.map +1 -1
  181. package/cjs/shared/locales/en-US.js.map +1 -1
  182. package/cjs/shared/locales/index.d.ts +2 -0
  183. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  184. package/cjs/shared/locales/nb-NO.js +2 -1
  185. package/cjs/shared/locales/nb-NO.js.map +1 -1
  186. package/cjs/shared/locales/sv-SE.d.ts +1 -0
  187. package/cjs/shared/locales/sv-SE.js +1 -0
  188. package/cjs/shared/locales/sv-SE.js.map +1 -1
  189. package/cjs/style/core/scopes.scss +1 -1
  190. package/cjs/style/dnb-ui-basis.css +1 -1
  191. package/cjs/style/dnb-ui-basis.min.css +1 -1
  192. package/cjs/style/dnb-ui-body.css +1 -1
  193. package/cjs/style/dnb-ui-body.min.css +1 -1
  194. package/cjs/style/dnb-ui-components.css +2 -1
  195. package/cjs/style/dnb-ui-components.min.css +1 -1
  196. package/cjs/style/dnb-ui-core.css +1 -1
  197. package/cjs/style/dnb-ui-core.min.css +1 -1
  198. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  199. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  200. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  201. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  202. package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
  203. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  204. package/components/autocomplete/Autocomplete.js +6 -3
  205. package/components/autocomplete/Autocomplete.js.map +1 -1
  206. package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  207. package/components/autocomplete/AutocompleteDocs.js +1 -1
  208. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  209. package/components/button/style/dnb-button.css +1 -0
  210. package/components/button/style/dnb-button.min.css +1 -1
  211. package/components/button/style/dnb-button.scss +1 -0
  212. package/components/checkbox/Checkbox.d.ts +9 -1
  213. package/components/checkbox/Checkbox.js +60 -35
  214. package/components/checkbox/Checkbox.js.map +1 -1
  215. package/components/checkbox/CheckboxDocs.js +6 -1
  216. package/components/checkbox/CheckboxDocs.js.map +1 -1
  217. package/components/date-picker/DatePicker.d.ts +4 -0
  218. package/components/date-picker/DatePicker.js +4 -3
  219. package/components/date-picker/DatePicker.js.map +1 -1
  220. package/components/date-picker/DatePickerCalendar.d.ts +2 -16
  221. package/components/date-picker/DatePickerCalendar.js +27 -86
  222. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  223. package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  224. package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
  225. package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  226. package/components/date-picker/DatePickerContext.d.ts +3 -0
  227. package/components/date-picker/DatePickerContext.js.map +1 -1
  228. package/components/date-picker/DatePickerDocs.js +6 -1
  229. package/components/date-picker/DatePickerDocs.js.map +1 -1
  230. package/components/date-picker/DatePickerFooter.js +20 -17
  231. package/components/date-picker/DatePickerFooter.js.map +1 -1
  232. package/components/date-picker/DatePickerProvider.js +7 -0
  233. package/components/date-picker/DatePickerProvider.js.map +1 -1
  234. package/components/date-picker/DatePickerRange.js +2 -28
  235. package/components/date-picker/DatePickerRange.js.map +1 -1
  236. package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  237. package/components/date-picker/hooks/useSubmittedDates.js +14 -0
  238. package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  239. package/components/date-picker/style/dnb-date-picker.css +1 -1
  240. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  241. package/components/date-picker/style/dnb-date-picker.scss +1 -1
  242. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  243. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  244. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  245. package/components/drawer/Drawer.js +1 -0
  246. package/components/drawer/Drawer.js.map +1 -1
  247. package/components/dropdown/Dropdown.js +6 -4
  248. package/components/dropdown/Dropdown.js.map +1 -1
  249. package/components/dropdown/DropdownDocs.d.ts +179 -3
  250. package/components/dropdown/DropdownDocs.js.map +1 -1
  251. package/components/heading/HeadingHelpers.js +9 -5
  252. package/components/heading/HeadingHelpers.js.map +1 -1
  253. package/components/icon/Icon.d.ts +2 -2
  254. package/components/input-masked/InputMaskedDocs.js +1 -1
  255. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  256. package/components/input-masked/InputMaskedHooks.d.ts +1 -0
  257. package/components/input-masked/InputMaskedHooks.js +39 -7
  258. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  259. package/components/input-masked/InputMaskedUtils.js +6 -5
  260. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  261. package/components/number-format/NumberUtils.js +5 -4
  262. package/components/number-format/NumberUtils.js.map +1 -1
  263. package/components/switch/SwitchDocs.js +2 -2
  264. package/components/switch/SwitchDocs.js.map +1 -1
  265. package/es/components/autocomplete/Autocomplete.js +6 -3
  266. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  267. package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  268. package/es/components/autocomplete/AutocompleteDocs.js +1 -1
  269. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  270. package/es/components/button/style/dnb-button.css +1 -0
  271. package/es/components/button/style/dnb-button.min.css +1 -1
  272. package/es/components/button/style/dnb-button.scss +1 -0
  273. package/es/components/checkbox/Checkbox.d.ts +9 -1
  274. package/es/components/checkbox/Checkbox.js +60 -35
  275. package/es/components/checkbox/Checkbox.js.map +1 -1
  276. package/es/components/checkbox/CheckboxDocs.js +6 -1
  277. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  278. package/es/components/date-picker/DatePicker.d.ts +4 -0
  279. package/es/components/date-picker/DatePicker.js +4 -3
  280. package/es/components/date-picker/DatePicker.js.map +1 -1
  281. package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
  282. package/es/components/date-picker/DatePickerCalendar.js +23 -80
  283. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  284. package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  285. package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
  286. package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  287. package/es/components/date-picker/DatePickerContext.d.ts +3 -0
  288. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  289. package/es/components/date-picker/DatePickerDocs.js +6 -1
  290. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  291. package/es/components/date-picker/DatePickerFooter.js +20 -17
  292. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  293. package/es/components/date-picker/DatePickerProvider.js +7 -0
  294. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  295. package/es/components/date-picker/DatePickerRange.js +2 -27
  296. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  297. package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  298. package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
  299. package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  300. package/es/components/date-picker/style/dnb-date-picker.css +1 -1
  301. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  302. package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
  303. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  304. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  305. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  306. package/es/components/drawer/Drawer.js +1 -0
  307. package/es/components/drawer/Drawer.js.map +1 -1
  308. package/es/components/dropdown/Dropdown.js +6 -4
  309. package/es/components/dropdown/Dropdown.js.map +1 -1
  310. package/es/components/dropdown/DropdownDocs.d.ts +179 -3
  311. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  312. package/es/components/heading/HeadingHelpers.js +9 -5
  313. package/es/components/heading/HeadingHelpers.js.map +1 -1
  314. package/es/components/icon/Icon.d.ts +2 -2
  315. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  316. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  317. package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
  318. package/es/components/input-masked/InputMaskedHooks.js +39 -7
  319. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  320. package/es/components/input-masked/InputMaskedUtils.js +6 -5
  321. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  322. package/es/components/number-format/NumberUtils.js +5 -4
  323. package/es/components/number-format/NumberUtils.js.map +1 -1
  324. package/es/components/switch/SwitchDocs.js +2 -2
  325. package/es/components/switch/SwitchDocs.js.map +1 -1
  326. package/es/extensions/forms/DataContext/Context.d.ts +1 -1
  327. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  328. package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
  329. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  330. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  331. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  332. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  333. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  334. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  335. package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
  336. package/es/extensions/forms/Field/Date/Date.js +1 -1
  337. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  338. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  339. package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
  340. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  341. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  342. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  343. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  344. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  345. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  346. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  347. package/es/extensions/forms/Field/Selection/Selection.js +9 -8
  348. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  349. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  350. package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
  351. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  352. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  353. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  354. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  355. package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  356. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
  357. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  358. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  359. package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
  360. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  361. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  362. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  363. package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  364. package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  365. package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  366. package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  367. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  368. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  369. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  370. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  371. package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  372. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
  373. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  374. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  375. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
  376. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  377. package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  378. package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
  379. package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  380. package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  381. package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  382. package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  383. package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  384. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  385. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  386. package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  387. package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
  388. package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  389. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  390. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
  391. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  392. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  393. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  394. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  395. package/es/extensions/forms/constants/locales/en-GB.js +3 -3
  396. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  397. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
  398. package/es/extensions/forms/constants/locales/index.d.ts +2 -2
  399. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  400. package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
  401. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  402. package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  403. package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
  404. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  405. package/es/extensions/forms/hooks/useDataContext.js +5 -3
  406. package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
  407. package/es/extensions/forms/hooks/useSnapshot.js +18 -15
  408. package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
  409. package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
  410. package/es/fragments/drawer-list/DrawerList.js +72 -173
  411. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  412. package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  413. package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
  414. package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  415. package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
  416. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  417. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  418. package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
  419. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  420. package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  421. package/es/fragments/drawer-list/DrawerListItem.js +90 -0
  422. package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
  423. package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  424. package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
  425. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  426. package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  427. package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
  428. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  429. package/es/shared/Eufemia.d.ts +1 -1
  430. package/es/shared/Eufemia.js +2 -2
  431. package/es/shared/Eufemia.js.map +1 -1
  432. package/es/shared/component-helper.d.ts +45 -48
  433. package/es/shared/component-helper.js +20 -183
  434. package/es/shared/component-helper.js.map +1 -1
  435. package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
  436. package/es/shared/helpers/withCamelCaseProps.js +7 -2
  437. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  438. package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
  439. package/es/shared/legacy/component-helper-legacy.js +180 -0
  440. package/es/shared/legacy/component-helper-legacy.js.map +1 -0
  441. package/es/shared/locales/en-GB.d.ts +1 -0
  442. package/es/shared/locales/en-GB.js +1 -0
  443. package/es/shared/locales/en-GB.js.map +1 -1
  444. package/es/shared/locales/en-US.js.map +1 -1
  445. package/es/shared/locales/index.d.ts +2 -0
  446. package/es/shared/locales/nb-NO.d.ts +1 -0
  447. package/es/shared/locales/nb-NO.js +2 -1
  448. package/es/shared/locales/nb-NO.js.map +1 -1
  449. package/es/shared/locales/sv-SE.d.ts +1 -0
  450. package/es/shared/locales/sv-SE.js +1 -0
  451. package/es/shared/locales/sv-SE.js.map +1 -1
  452. package/es/style/core/scopes.scss +1 -1
  453. package/es/style/dnb-ui-basis.css +1 -1
  454. package/es/style/dnb-ui-basis.min.css +1 -1
  455. package/es/style/dnb-ui-body.css +1 -1
  456. package/es/style/dnb-ui-body.min.css +1 -1
  457. package/es/style/dnb-ui-components.css +2 -1
  458. package/es/style/dnb-ui-components.min.css +1 -1
  459. package/es/style/dnb-ui-core.css +1 -1
  460. package/es/style/dnb-ui-core.min.css +1 -1
  461. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  462. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  463. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  464. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  465. package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
  466. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  467. package/esm/dnb-ui-basis.min.mjs +1 -1
  468. package/esm/dnb-ui-components.min.mjs +1 -1
  469. package/esm/dnb-ui-elements.min.mjs +1 -1
  470. package/esm/dnb-ui-extensions.min.mjs +2 -2
  471. package/esm/dnb-ui-lib.min.mjs +1 -1
  472. package/extensions/forms/DataContext/Context.d.ts +1 -1
  473. package/extensions/forms/DataContext/Context.js.map +1 -1
  474. package/extensions/forms/DataContext/Provider/Provider.js +9 -0
  475. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  476. package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  477. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  478. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  479. package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  480. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  481. package/extensions/forms/Field/Date/Date.d.ts +1 -1
  482. package/extensions/forms/Field/Date/Date.js +1 -1
  483. package/extensions/forms/Field/Date/Date.js.map +1 -1
  484. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  485. package/extensions/forms/Field/Number/NumberDocs.js +1 -1
  486. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  487. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  488. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  489. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  490. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  491. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  492. package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  493. package/extensions/forms/Field/Selection/Selection.js +10 -9
  494. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  495. package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  496. package/extensions/forms/Field/Toggle/Toggle.js +26 -9
  497. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  498. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  499. package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  500. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  501. package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  502. package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
  503. package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  504. package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  505. package/extensions/forms/Form/Isolation/Isolation.js +40 -15
  506. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  507. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  508. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  509. package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  510. package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  511. package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  512. package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  513. package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  514. package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  515. package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  516. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  517. package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  518. package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
  519. package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  520. package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  521. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
  522. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  523. package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  524. package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
  525. package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  526. package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  527. package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  528. package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  529. package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  530. package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  531. package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  532. package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  533. package/extensions/forms/Iterate/EditContainer/index.js +1 -1
  534. package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  535. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  536. package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
  537. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  538. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  539. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  540. package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  541. package/extensions/forms/constants/locales/en-GB.js +3 -3
  542. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  543. package/extensions/forms/constants/locales/en-US.d.ts +1 -1
  544. package/extensions/forms/constants/locales/index.d.ts +2 -2
  545. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  546. package/extensions/forms/constants/locales/nb-NO.js +3 -3
  547. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  548. package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  549. package/extensions/forms/constants/locales/sv-SE.js +3 -3
  550. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  551. package/extensions/forms/hooks/useDataContext.js +5 -3
  552. package/extensions/forms/hooks/useDataContext.js.map +1 -1
  553. package/extensions/forms/hooks/useSnapshot.js +18 -15
  554. package/extensions/forms/hooks/useSnapshot.js.map +1 -1
  555. package/fragments/drawer-list/DrawerList.d.ts +176 -224
  556. package/fragments/drawer-list/DrawerList.js +71 -175
  557. package/fragments/drawer-list/DrawerList.js.map +1 -1
  558. package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  559. package/fragments/drawer-list/DrawerListContext.js.map +1 -1
  560. package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  561. package/fragments/drawer-list/DrawerListDocs.js +2 -2
  562. package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  563. package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  564. package/fragments/drawer-list/DrawerListHelpers.js +45 -53
  565. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  566. package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  567. package/fragments/drawer-list/DrawerListItem.js +91 -0
  568. package/fragments/drawer-list/DrawerListItem.js.map +1 -0
  569. package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  570. package/fragments/drawer-list/DrawerListPortal.js +91 -121
  571. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  572. package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  573. package/fragments/drawer-list/DrawerListProvider.js +12 -19
  574. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  575. package/package.json +1 -1
  576. package/shared/Eufemia.d.ts +1 -1
  577. package/shared/Eufemia.js +2 -2
  578. package/shared/Eufemia.js.map +1 -1
  579. package/shared/component-helper.d.ts +45 -48
  580. package/shared/component-helper.js +23 -189
  581. package/shared/component-helper.js.map +1 -1
  582. package/shared/helpers/withCamelCaseProps.d.ts +4 -5
  583. package/shared/helpers/withCamelCaseProps.js +7 -2
  584. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  585. package/shared/legacy/component-helper-legacy.d.ts +19 -0
  586. package/shared/legacy/component-helper-legacy.js +185 -0
  587. package/shared/legacy/component-helper-legacy.js.map +1 -0
  588. package/shared/locales/en-GB.d.ts +1 -0
  589. package/shared/locales/en-GB.js +1 -0
  590. package/shared/locales/en-GB.js.map +1 -1
  591. package/shared/locales/en-US.js.map +1 -1
  592. package/shared/locales/index.d.ts +2 -0
  593. package/shared/locales/nb-NO.d.ts +1 -0
  594. package/shared/locales/nb-NO.js +2 -1
  595. package/shared/locales/nb-NO.js.map +1 -1
  596. package/shared/locales/sv-SE.d.ts +1 -0
  597. package/shared/locales/sv-SE.js +1 -0
  598. package/shared/locales/sv-SE.js.map +1 -1
  599. package/style/core/scopes.scss +1 -1
  600. package/style/dnb-ui-basis.css +1 -1
  601. package/style/dnb-ui-basis.min.css +1 -1
  602. package/style/dnb-ui-body.css +1 -1
  603. package/style/dnb-ui-body.min.css +1 -1
  604. package/style/dnb-ui-components.css +2 -1
  605. package/style/dnb-ui-components.min.css +1 -1
  606. package/style/dnb-ui-core.css +1 -1
  607. package/style/dnb-ui-core.min.css +1 -1
  608. package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  609. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  610. package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  611. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  612. package/style/themes/theme-ui/ui-theme-components.css +19 -1
  613. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  614. package/umd/dnb-ui-basis.min.js +1 -1
  615. package/umd/dnb-ui-components.min.js +1 -1
  616. package/umd/dnb-ui-elements.min.js +1 -1
  617. package/umd/dnb-ui-extensions.min.js +1 -1
  618. package/umd/dnb-ui-lib.min.js +1 -1
  619. package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  620. package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  621. package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  622. /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  623. /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  624. /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
@@ -2,15 +2,12 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
- var _Fragment;
6
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; }
7
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; }
8
- import "core-js/modules/es.string.replace.js";
9
7
  import "core-js/modules/web.dom-collections.iterator.js";
10
8
  import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
11
9
  import classnames from 'classnames';
12
10
  import format from 'date-fns/format';
13
- import subMonths from 'date-fns/subMonths';
14
11
  import addMonths from 'date-fns/addMonths';
15
12
  import addWeeks from 'date-fns/addWeeks';
16
13
  import addDays from 'date-fns/addDays';
@@ -24,7 +21,7 @@ import setDate from 'date-fns/setDate';
24
21
  import { isDisabled, makeDayObject, toRange, getWeek, dayOffset, getCalendar, formatDate } from './DatePickerCalc';
25
22
  import Button from '../button/Button';
26
23
  import DatePickerContext from './DatePickerContext';
27
- import { useTranslation } from '../../shared';
24
+ import { DatePickerCalendarNav } from './DatePickerCalendarNavigator';
28
25
  const defaultProps = {
29
26
  prevBtn: true,
30
27
  nextBtn: true,
@@ -39,10 +36,6 @@ const defaultProps = {
39
36
  };
40
37
  const arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
41
38
  const keysToHandle = ['Enter', 'Space', ...arrowKeys];
42
- const titleFormat = {
43
- month: 'long',
44
- year: 'numeric'
45
- };
46
39
  function DatePickerCalendar(restOfProps) {
47
40
  const props = _objectSpread(_objectSpread({}, defaultProps), restOfProps);
48
41
  const {
@@ -56,13 +49,10 @@ function DatePickerCalendar(restOfProps) {
56
49
  endMonth,
57
50
  hoverDate,
58
51
  setHoverDate,
59
- translation: {
60
- DatePicker: {
61
- selectedMonth
62
- }
63
- },
52
+ setSubmittedDates,
64
53
  props: {
65
- onDaysRender
54
+ onDaysRender,
55
+ yearNavigation
66
56
  }
67
57
  } = useContext(DatePickerContext);
68
58
  const {
@@ -75,8 +65,6 @@ function DatePickerCalendar(restOfProps) {
75
65
  hideNav,
76
66
  locale,
77
67
  hideDays,
78
- onPrev,
79
- onNext,
80
68
  onSelect,
81
69
  onKeyDown,
82
70
  resetDate,
@@ -87,7 +75,6 @@ function DatePickerCalendar(restOfProps) {
87
75
  onlyMonth
88
76
  } = props;
89
77
  const tableRef = useRef();
90
- const labelRef = useRef();
91
78
  const days = useRef({});
92
79
  const cache = useRef({});
93
80
  useEffect(() => {
@@ -99,6 +86,12 @@ function DatePickerCalendar(restOfProps) {
99
86
  }
100
87
  }
101
88
  }, [noAutoFocus, nr]);
89
+ useEffect(() => {
90
+ setSubmittedDates({
91
+ startDate,
92
+ endDate
93
+ });
94
+ }, []);
102
95
  const onMouseLeaveHandler = useCallback(() => {
103
96
  setHoverDate(undefined);
104
97
  }, [setHoverDate]);
@@ -245,39 +238,23 @@ function DatePickerCalendar(restOfProps) {
245
238
  lang: locale
246
239
  }, !hideNav && React.createElement("div", {
247
240
  className: "dnb-date-picker__header"
248
- }, React.createElement("div", {
249
- className: "dnb-date-picker__header__nav"
250
- }, React.createElement(CalendarButton, {
251
- type: "prev",
241
+ }, React.createElement(DatePickerCalendarNav, {
242
+ type: yearNavigation ? 'month' : 'both',
243
+ id: id,
252
244
  nr: nr,
253
- date: minDate,
254
- month: month,
245
+ date: month,
255
246
  locale: locale,
256
- showButton: prevBtn,
257
- onClick: onPrev
258
- })), React.createElement("label", {
259
- id: `${id}--title`,
260
- className: "dnb-date-picker__header__title dnb-no-focus",
261
- title: selectedMonth.replace(/%s/, formatDate(month, {
262
- locale,
263
- formatOptions: titleFormat
264
- })),
265
- tabIndex: -1,
266
- ref: labelRef
267
- }, formatDate(month, {
268
- locale,
269
- formatOptions: titleFormat
270
- })), React.createElement("div", {
271
- className: "dnb-date-picker__header__nav"
272
- }, React.createElement(CalendarButton, {
273
- type: "next",
247
+ showPreviousButton: prevBtn,
248
+ showNextButton: nextBtn
249
+ }), yearNavigation && React.createElement(DatePickerCalendarNav, {
250
+ type: "year",
251
+ id: id,
274
252
  nr: nr,
275
- date: maxDate,
276
- month: month,
253
+ date: month,
277
254
  locale: locale,
278
- showButton: nextBtn,
279
- onClick: onNext
280
- }))), React.createElement("table", {
255
+ showPreviousButton: prevBtn,
256
+ showNextButton: nextBtn
257
+ })), React.createElement("table", {
281
258
  role: "grid",
282
259
  className: "dnb-no-focus",
283
260
  tabIndex: 0,
@@ -384,43 +361,7 @@ function DatePickerCalendar(restOfProps) {
384
361
  }))));
385
362
  }
386
363
  export default DatePickerCalendar;
387
- function CalendarButton(_ref2) {
388
- let {
389
- type,
390
- nr,
391
- date,
392
- month,
393
- locale,
394
- showButton,
395
- onClick,
396
- onKeyDown
397
- } = _ref2;
398
- const tr = useTranslation().DatePicker;
399
- if (!showButton) {
400
- return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
401
- }
402
- const disabled = date && isSameMonth(month, date);
403
- const title = tr[`${type}Month`].replace(/%s/, formatDate(subMonths(month, 1), {
404
- locale,
405
- formatOptions: {
406
- month: 'long',
407
- year: 'numeric'
408
- }
409
- }));
410
- const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
411
- return React.createElement(Button, {
412
- className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
413
- icon: icon,
414
- size: "small",
415
- "aria-label": title,
416
- onClick: () => onClick && !disabled && onClick({
417
- nr,
418
- type
419
- }),
420
- onKeyDown: onKeyDown
421
- });
422
- }
423
- function onSelectRange(_ref3) {
364
+ function onSelectRange(_ref2) {
424
365
  let {
425
366
  day,
426
367
  isRange,
@@ -430,7 +371,7 @@ function onSelectRange(_ref3) {
430
371
  resetDate,
431
372
  event,
432
373
  setHasClickedCalendarDay
433
- } = _ref3;
374
+ } = _ref2;
434
375
  event.persist();
435
376
  if (!isRange) {
436
377
  return onSelect({
@@ -456,12 +397,12 @@ function onSelectRange(_ref3) {
456
397
  event
457
398
  });
458
399
  }
459
- function onHoverDay(_ref4) {
400
+ function onHoverDay(_ref3) {
460
401
  let {
461
402
  day,
462
403
  hoverDate,
463
404
  setHoverDate
464
- } = _ref4;
405
+ } = _ref3;
465
406
  if (!isSameDay(day.date, hoverDate)) {
466
407
  setHoverDate === null || setHoverDate === void 0 ? void 0 : setHoverDate(day.date);
467
408
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerCalendar.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","classnames","format","subMonths","addMonths","addWeeks","addDays","isSameDay","isSameMonth","startOfDay","differenceInCalendarDays","differenceInMonths","lastDayOfMonth","setDate","isDisabled","makeDayObject","toRange","getWeek","dayOffset","getCalendar","formatDate","Button","DatePickerContext","useTranslation","defaultProps","prevBtn","nextBtn","firstDayOfWeek","hideNav","hideDays","onlyMonth","hideNextMonthWeek","noAutoFocus","rtl","resetDate","arrowKeys","keysToHandle","titleFormat","month","year","DatePickerCalendar","restOfProps","props","_objectSpread","updateDates","setHasClickedCalendarDay","startDate","endDate","maxDate","minDate","startMonth","endMonth","hoverDate","setHoverDate","translation","DatePicker","selectedMonth","onDaysRender","id","nr","isRange","locale","onPrev","onNext","onSelect","onKeyDown","tableRef","labelRef","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","CalendarButton","type","showButton","onClick","title","replace","formatOptions","tabIndex","ref","role","onMouseLeave","day","key","scope","weekday","substring","week","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","tr","_Fragment","Fragment","icon","_ref3","daysToStartDate","daysToEndDate","range","_ref4","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 subMonths from 'date-fns/subMonths'\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 { useTranslation } from '../../shared'\nimport { InternalLocale } from '../../shared/Context'\nimport { DatePickerChangeEvent } from './DatePickerProvider'\nimport { DatePickerDates } from './hooks/useDates'\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?: CalendarButtonProps['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 prevBtn?: boolean\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 onPrev?: (event: CalendarNavigationEvent) => void\n onNext?: (event: CalendarNavigationEvent) => 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\nconst titleFormat: Intl.DateTimeFormatOptions = {\n month: 'long',\n year: 'numeric',\n}\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 translation: {\n DatePicker: { selectedMonth },\n },\n props: { onDaysRender },\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 onPrev,\n onNext,\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 labelRef = useRef<HTMLLabelElement>()\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 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 <div className=\"dnb-date-picker__header__nav\">\n <CalendarButton\n type=\"prev\"\n nr={nr}\n date={minDate}\n month={month}\n locale={locale}\n showButton={prevBtn}\n onClick={onPrev}\n />\n </div>\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: titleFormat,\n })\n )}\n tabIndex={-1}\n ref={labelRef}\n >\n {formatDate(month, {\n locale,\n formatOptions: titleFormat,\n })}\n </label>\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarButton\n type=\"next\"\n nr={nr}\n date={maxDate}\n month={month}\n locale={locale}\n showButton={nextBtn}\n onClick={onNext}\n />\n </div>\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\nexport type CalendarButtonProps = {\n type: 'prev' | 'next'\n nr: number\n date: Date\n month: Date\n locale?: InternalLocale\n showButton: boolean\n onClick: ({\n nr,\n type,\n }: {\n nr: number\n type: CalendarButtonProps['type']\n }) => void\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void\n}\n\nfunction CalendarButton({\n type,\n nr,\n date,\n month,\n locale,\n showButton,\n onClick,\n onKeyDown,\n}: CalendarButtonProps) {\n const tr = useTranslation().DatePicker\n\n if (!showButton) {\n return <></>\n }\n const disabled = date && isSameMonth(month, date)\n\n const title = tr[`${type}Month`].replace(\n /%s/,\n formatDate(subMonths(month, 1), {\n locale,\n formatOptions: {\n month: 'long',\n year: 'numeric',\n },\n })\n )\n\n const icon = type === 'prev' ? 'chevron_left' : 'chevron_right'\n\n return (\n <Button\n className={classnames(`dnb-date-picker__${type}`, { disabled })}\n icon={icon}\n size=\"small\"\n aria-label={title}\n onClick={() => onClick && !disabled && onClick({ nr, type })}\n onKeyDown={onKeyDown}\n />\n )\n}\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","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":[]}
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { InternalLocale } from '../../shared/Context';
3
+ type CalendarNavigationDateType = 'month' | 'year';
4
+ type CalendarNavigationType = 'both' | CalendarNavigationDateType;
5
+ export type DatePickerCalendarNavigationProps = Omit<React.HTMLProps<HTMLElement>, 'onSelect' | 'onChange'> & {
6
+ type: CalendarNavigationType;
7
+ id: string;
8
+ nr?: number;
9
+ /**
10
+ * To display what month should be shown in the first calendar by default. Defaults to the `date` respective `startDate`.
11
+ */
12
+ date?: Date;
13
+ showPreviousButton?: boolean;
14
+ showNextButton?: boolean;
15
+ /**
16
+ * 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`.
17
+ */
18
+ locale?: InternalLocale;
19
+ };
20
+ export declare function DatePickerCalendarNav({ type, id, nr, date, locale, showPreviousButton, showNextButton, }: DatePickerCalendarNavigationProps): import("react/jsx-runtime").JSX.Element;
21
+ export type CalendarNavButtonType = 'prev' | 'next';
22
+ export type CalendarNavButtonProps = {
23
+ dateType: CalendarNavigationDateType;
24
+ type: CalendarNavButtonType;
25
+ nr: number;
26
+ dateFormat: Intl.DateTimeFormatOptions;
27
+ date: Date;
28
+ dateLimit: Date;
29
+ locale: InternalLocale;
30
+ showButton: boolean;
31
+ onClick: ({ nr, type, }: {
32
+ nr: number;
33
+ type: CalendarNavButtonProps['type'];
34
+ }) => void;
35
+ onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
36
+ };
37
+ export {};
@@ -0,0 +1,162 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ var _Fragment;
5
+ import "core-js/modules/es.string.replace.js";
6
+ 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; }
7
+ 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; }
8
+ import React, { useCallback, useContext } from 'react';
9
+ import { addMonths, addYears, isSameMonth, isSameYear, subMonths, subYears } from 'date-fns';
10
+ import Button from '../Button';
11
+ import { useTranslation } from '../../shared';
12
+ import DatePickerContext from './DatePickerContext';
13
+ import { formatDate } from './DatePickerCalc';
14
+ const titleFormats = {
15
+ both: {
16
+ month: 'long',
17
+ year: 'numeric'
18
+ },
19
+ month: {
20
+ month: 'long'
21
+ },
22
+ year: {
23
+ year: 'numeric'
24
+ }
25
+ };
26
+ const dateHandlers = {
27
+ month: {
28
+ prev: subMonths,
29
+ next: addMonths
30
+ },
31
+ year: {
32
+ prev: subYears,
33
+ next: addYears
34
+ }
35
+ };
36
+ export function DatePickerCalendarNav(_ref) {
37
+ let {
38
+ type = 'both',
39
+ id,
40
+ nr,
41
+ date,
42
+ locale,
43
+ showPreviousButton,
44
+ showNextButton
45
+ } = _ref;
46
+ const {
47
+ minDate,
48
+ maxDate,
49
+ views,
50
+ setViews,
51
+ props: {
52
+ link: isLinkedCalendars
53
+ }
54
+ } = useContext(DatePickerContext);
55
+ const {
56
+ selectedMonth,
57
+ selectedYear
58
+ } = useTranslation().DatePicker;
59
+ const title = type === 'year' ? selectedYear : selectedMonth;
60
+ const titleFormat = titleFormats[type];
61
+ const buttonDateType = type === 'year' ? 'year' : 'month';
62
+ const onNav = useCallback(_ref2 => {
63
+ let {
64
+ nr,
65
+ type: navigationType
66
+ } = _ref2;
67
+ const handlerType = type === 'year' ? 'year' : 'month';
68
+ const updatedViews = views.map(view => {
69
+ if (view.nr === nr || isLinkedCalendars && view.nr === 1) {
70
+ const month = dateHandlers[handlerType][navigationType](view.month, 1);
71
+ return _objectSpread(_objectSpread({}, view), {}, {
72
+ month
73
+ });
74
+ }
75
+ return view;
76
+ });
77
+ setViews(updatedViews);
78
+ }, [type, views, setViews, isLinkedCalendars]);
79
+ return React.createElement("div", {
80
+ className: 'dnb-date-picker__header__row' + (type === 'year' ? " dnb-date-picker__header__row--year" : "")
81
+ }, React.createElement("div", {
82
+ className: "dnb-date-picker__header__nav"
83
+ }, React.createElement(CalendarNavButton, {
84
+ type: "prev",
85
+ nr: nr,
86
+ date: date,
87
+ dateLimit: minDate,
88
+ dateType: buttonDateType,
89
+ dateFormat: titleFormat,
90
+ locale: locale,
91
+ showButton: showPreviousButton,
92
+ onClick: onNav
93
+ })), React.createElement("label", {
94
+ id: `${id}--title`,
95
+ className: "dnb-date-picker__header__title dnb-no-focus",
96
+ title: title.replace(/%s/, formatDate(date, {
97
+ locale,
98
+ formatOptions: titleFormat
99
+ })),
100
+ tabIndex: -1
101
+ }, formatDate(date, {
102
+ locale,
103
+ formatOptions: titleFormat
104
+ })), React.createElement("div", {
105
+ className: "dnb-date-picker__header__nav"
106
+ }, React.createElement(CalendarNavButton, {
107
+ type: "next",
108
+ dateType: buttonDateType,
109
+ nr: nr,
110
+ date: date,
111
+ dateLimit: maxDate,
112
+ dateFormat: titleFormat,
113
+ locale: locale,
114
+ showButton: showNextButton,
115
+ onClick: onNav
116
+ })));
117
+ }
118
+ const navButtonDisabledHandlers = {
119
+ month: isSameMonth,
120
+ year: isSameYear
121
+ };
122
+ function CalendarNavButton(_ref3) {
123
+ let {
124
+ type,
125
+ dateType,
126
+ dateFormat,
127
+ nr,
128
+ date,
129
+ dateLimit,
130
+ locale,
131
+ showButton,
132
+ onClick,
133
+ onKeyDown
134
+ } = _ref3;
135
+ const translations = useTranslation().DatePicker;
136
+ if (!showButton) {
137
+ return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
138
+ }
139
+ const translationKey = `${type}${capitalizeFirstLetter(dateType)}`;
140
+ const dateHandler = dateHandlers[dateType][type];
141
+ const title = translations[translationKey].replace(/%s/, formatDate(dateHandler(date, 1), {
142
+ locale,
143
+ formatOptions: dateFormat
144
+ }));
145
+ const disabled = dateLimit && navButtonDisabledHandlers[dateType](date, dateLimit);
146
+ const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
147
+ return React.createElement(Button, {
148
+ className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
149
+ icon: icon,
150
+ size: "small",
151
+ "aria-label": title,
152
+ onClick: () => onClick && !disabled && onClick({
153
+ nr,
154
+ type
155
+ }),
156
+ onKeyDown: onKeyDown
157
+ });
158
+ }
159
+ function capitalizeFirstLetter(value) {
160
+ return `${value.charAt(0).toLocaleUpperCase()}${value.slice(1)}`;
161
+ }
162
+ //# sourceMappingURL=DatePickerCalendarNavigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePickerCalendarNavigator.js","names":["React","useCallback","useContext","addMonths","addYears","isSameMonth","isSameYear","subMonths","subYears","Button","useTranslation","DatePickerContext","formatDate","titleFormats","both","month","year","dateHandlers","prev","next","DatePickerCalendarNav","_ref","type","id","nr","date","locale","showPreviousButton","showNextButton","minDate","maxDate","views","setViews","props","link","isLinkedCalendars","selectedMonth","selectedYear","DatePicker","title","titleFormat","buttonDateType","onNav","_ref2","navigationType","handlerType","updatedViews","map","view","_objectSpread","createElement","className","CalendarNavButton","dateLimit","dateType","dateFormat","showButton","onClick","replace","formatOptions","tabIndex","navButtonDisabledHandlers","_ref3","onKeyDown","translations","_Fragment","Fragment","translationKey","capitalizeFirstLetter","dateHandler","disabled","icon","size","value","charAt","toLocaleUpperCase","slice"],"sources":["../../../../src/components/date-picker/DatePickerCalendarNavigator.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport {\n addMonths,\n addYears,\n isSameMonth,\n isSameYear,\n subMonths,\n subYears,\n} from 'date-fns'\nimport { CalendarNavigationEvent } from './DatePickerCalendar'\nimport classnames from 'classnames'\nimport Button from '../Button'\nimport { useTranslation } from '../../shared'\nimport DatePickerContext from './DatePickerContext'\nimport { InternalLocale } from '../../shared/Context'\nimport { formatDate } from './DatePickerCalc'\n\ntype CalendarNavigationDateType = 'month' | 'year'\ntype CalendarNavigationType = 'both' | CalendarNavigationDateType\n\nexport type DatePickerCalendarNavigationProps = Omit<\n React.HTMLProps<HTMLElement>,\n 'onSelect' | 'onChange'\n> & {\n type: CalendarNavigationType\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 date?: Date\n showPreviousButton?: boolean\n showNextButton?: boolean\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}\n\ntype TitleFormatMap = {\n // eslint-disable-next-line no-unused-vars\n [T in CalendarNavigationType]: Intl.DateTimeFormatOptions\n}\n\nconst titleFormats: TitleFormatMap = {\n both: {\n month: 'long',\n year: 'numeric',\n },\n month: { month: 'long' },\n year: { year: 'numeric' },\n}\n\ntype CalendarDateHandlers = {\n // eslint-disable-next-line no-unused-vars\n [D in CalendarNavigationDateType]: {\n // eslint-disable-next-line no-unused-vars\n [B in CalendarNavButtonType]: typeof subMonths\n }\n}\n\nconst dateHandlers: CalendarDateHandlers = {\n month: {\n prev: subMonths,\n next: addMonths,\n },\n year: {\n prev: subYears,\n next: addYears,\n },\n}\n\nexport function DatePickerCalendarNav({\n type = 'both',\n id,\n nr,\n date,\n locale,\n showPreviousButton,\n showNextButton,\n}: DatePickerCalendarNavigationProps) {\n const {\n minDate,\n maxDate,\n views,\n setViews,\n props: { link: isLinkedCalendars },\n } = useContext(DatePickerContext)\n const { selectedMonth, selectedYear } = useTranslation().DatePicker\n\n const title = type === 'year' ? selectedYear : selectedMonth\n const titleFormat = titleFormats[type]\n const buttonDateType = type === 'year' ? 'year' : 'month'\n\n const onNav = useCallback(\n ({ nr, type: navigationType }: CalendarNavigationEvent) => {\n const handlerType = type === 'year' ? 'year' : 'month'\n const updatedViews = views.map((view) => {\n if (view.nr === nr || (isLinkedCalendars && view.nr === 1)) {\n const month = dateHandlers[handlerType][navigationType](\n view.month,\n 1\n )\n\n return { ...view, month }\n }\n\n return view\n })\n setViews(updatedViews)\n },\n [type, views, setViews, isLinkedCalendars]\n )\n\n return (\n <div\n className={classnames(\n 'dnb-date-picker__header__row',\n type === 'year' && 'dnb-date-picker__header__row--year'\n )}\n >\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarNavButton\n type=\"prev\"\n nr={nr}\n date={date}\n dateLimit={minDate}\n dateType={buttonDateType}\n dateFormat={titleFormat}\n locale={locale}\n showButton={showPreviousButton}\n onClick={onNav}\n />\n </div>\n <label\n id={`${id}--title`}\n className=\"dnb-date-picker__header__title dnb-no-focus\"\n title={title.replace(\n /%s/,\n formatDate(date, { locale, formatOptions: titleFormat })\n )}\n tabIndex={-1}\n >\n {formatDate(date, { locale, formatOptions: titleFormat })}\n </label>\n <div className=\"dnb-date-picker__header__nav\">\n <CalendarNavButton\n type=\"next\"\n dateType={buttonDateType}\n nr={nr}\n date={date}\n dateLimit={maxDate}\n dateFormat={titleFormat}\n locale={locale}\n showButton={showNextButton}\n onClick={onNav}\n />\n </div>\n </div>\n )\n}\n\nexport type CalendarNavButtonType = 'prev' | 'next'\n\nexport type CalendarNavButtonProps = {\n dateType: CalendarNavigationDateType\n type: CalendarNavButtonType\n nr: number\n dateFormat: Intl.DateTimeFormatOptions\n date: Date\n dateLimit: Date\n locale: InternalLocale\n showButton: boolean\n onClick: ({\n nr,\n type,\n }: {\n nr: number\n type: CalendarNavButtonProps['type']\n }) => void\n onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void\n}\n\ntype NavButtonDisabledHandlerMap = {\n // eslint-disable-next-line no-unused-vars\n [T in CalendarNavigationDateType]: typeof isSameMonth\n}\n\nconst navButtonDisabledHandlers: NavButtonDisabledHandlerMap = {\n month: isSameMonth,\n year: isSameYear,\n}\n\nfunction CalendarNavButton({\n type,\n dateType,\n dateFormat,\n nr,\n date,\n dateLimit,\n locale,\n showButton,\n onClick,\n onKeyDown,\n}: CalendarNavButtonProps) {\n const translations = useTranslation().DatePicker\n\n if (!showButton) {\n return <></>\n }\n\n const translationKey = `${type}${capitalizeFirstLetter(dateType)}`\n const dateHandler = dateHandlers[dateType][type]\n\n const title = translations[translationKey].replace(\n /%s/,\n formatDate(dateHandler(date, 1), {\n locale,\n formatOptions: dateFormat,\n })\n )\n\n const disabled =\n dateLimit && navButtonDisabledHandlers[dateType](date, dateLimit)\n\n const icon = type === 'prev' ? 'chevron_left' : 'chevron_right'\n\n return (\n <Button\n className={classnames(`dnb-date-picker__${type}`, { disabled })}\n icon={icon}\n size=\"small\"\n aria-label={title}\n onClick={() => onClick && !disabled && onClick({ nr, type })}\n onKeyDown={onKeyDown}\n />\n )\n}\n\nfunction capitalizeFirstLetter(value: string) {\n return `${value.charAt(0).toLocaleUpperCase()}${value.slice(1)}`\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ import { ContextProps } from '../../shared/Context';
8
8
  import { DatePickerChangeEvent, GetReturnObjectParams, ReturnObject } from './DatePickerProvider';
9
9
  import { DatePickerDateProps, DatePickerDates } from './hooks/useDates';
10
10
  import { CalendarView } from './hooks/useViews';
11
+ import { SubmittedDates } from './hooks/useSubmittedDates';
11
12
  export type DateType = Date | string;
12
13
  export type DatePickerContextValues = ContextProps & DatePickerDates & {
13
14
  props: DatePickerAllProps;
@@ -19,6 +20,8 @@ export type DatePickerContextValues = ContextProps & DatePickerDates & {
19
20
  setHasClickedCalendarDay: (hasClicked: boolean) => void;
20
21
  hoverDate?: Date;
21
22
  setHoverDate: (date: Date) => void;
23
+ submittedDates: SubmittedDates;
24
+ setSubmittedDates: (dates: SubmittedDates) => void;
22
25
  callOnChangeHandler: <E>(event: DatePickerChangeEvent<E>) => void;
23
26
  hidePicker: (event: DisplayPickerEvent) => void;
24
27
  getReturnObject: <E>(params: GetReturnObjectParams<E>) => ReturnObject<E>;