@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,13 +2,11 @@
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
7
  import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
9
8
  import classnames from 'classnames';
10
9
  import format from 'date-fns/format';
11
- import subMonths from 'date-fns/subMonths';
12
10
  import addMonths from 'date-fns/addMonths';
13
11
  import addWeeks from 'date-fns/addWeeks';
14
12
  import addDays from 'date-fns/addDays';
@@ -22,7 +20,7 @@ import setDate from 'date-fns/setDate';
22
20
  import { isDisabled, makeDayObject, toRange, getWeek, dayOffset, getCalendar, formatDate } from './DatePickerCalc';
23
21
  import Button from '../button/Button';
24
22
  import DatePickerContext from './DatePickerContext';
25
- import { useTranslation } from '../../shared';
23
+ import { DatePickerCalendarNav } from './DatePickerCalendarNavigator';
26
24
  const defaultProps = {
27
25
  prevBtn: true,
28
26
  nextBtn: true,
@@ -37,10 +35,6 @@ const defaultProps = {
37
35
  };
38
36
  const arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
39
37
  const keysToHandle = ['Enter', 'Space', ...arrowKeys];
40
- const titleFormat = {
41
- month: 'long',
42
- year: 'numeric'
43
- };
44
38
  function DatePickerCalendar(restOfProps) {
45
39
  const props = _objectSpread(_objectSpread({}, defaultProps), restOfProps);
46
40
  const {
@@ -54,13 +48,10 @@ function DatePickerCalendar(restOfProps) {
54
48
  endMonth,
55
49
  hoverDate,
56
50
  setHoverDate,
57
- translation: {
58
- DatePicker: {
59
- selectedMonth
60
- }
61
- },
51
+ setSubmittedDates,
62
52
  props: {
63
- onDaysRender
53
+ onDaysRender,
54
+ yearNavigation
64
55
  }
65
56
  } = useContext(DatePickerContext);
66
57
  const {
@@ -73,8 +64,6 @@ function DatePickerCalendar(restOfProps) {
73
64
  hideNav,
74
65
  locale,
75
66
  hideDays,
76
- onPrev,
77
- onNext,
78
67
  onSelect,
79
68
  onKeyDown,
80
69
  resetDate,
@@ -85,7 +74,6 @@ function DatePickerCalendar(restOfProps) {
85
74
  onlyMonth
86
75
  } = props;
87
76
  const tableRef = useRef();
88
- const labelRef = useRef();
89
77
  const days = useRef({});
90
78
  const cache = useRef({});
91
79
  useEffect(() => {
@@ -97,6 +85,12 @@ function DatePickerCalendar(restOfProps) {
97
85
  }
98
86
  }
99
87
  }, [noAutoFocus, nr]);
88
+ useEffect(() => {
89
+ setSubmittedDates({
90
+ startDate,
91
+ endDate
92
+ });
93
+ }, []);
100
94
  const onMouseLeaveHandler = useCallback(() => {
101
95
  setHoverDate(undefined);
102
96
  }, [setHoverDate]);
@@ -243,39 +237,23 @@ function DatePickerCalendar(restOfProps) {
243
237
  lang: locale
244
238
  }, !hideNav && React.createElement("div", {
245
239
  className: "dnb-date-picker__header"
246
- }, React.createElement("div", {
247
- className: "dnb-date-picker__header__nav"
248
- }, React.createElement(CalendarButton, {
249
- type: "prev",
240
+ }, React.createElement(DatePickerCalendarNav, {
241
+ type: yearNavigation ? 'month' : 'both',
242
+ id: id,
250
243
  nr: nr,
251
- date: minDate,
252
- month: month,
244
+ date: month,
253
245
  locale: locale,
254
- showButton: prevBtn,
255
- onClick: onPrev
256
- })), React.createElement("label", {
257
- id: `${id}--title`,
258
- className: "dnb-date-picker__header__title dnb-no-focus",
259
- title: selectedMonth.replace(/%s/, formatDate(month, {
260
- locale,
261
- formatOptions: titleFormat
262
- })),
263
- tabIndex: -1,
264
- ref: labelRef
265
- }, formatDate(month, {
266
- locale,
267
- formatOptions: titleFormat
268
- })), React.createElement("div", {
269
- className: "dnb-date-picker__header__nav"
270
- }, React.createElement(CalendarButton, {
271
- type: "next",
246
+ showPreviousButton: prevBtn,
247
+ showNextButton: nextBtn
248
+ }), yearNavigation && React.createElement(DatePickerCalendarNav, {
249
+ type: "year",
250
+ id: id,
272
251
  nr: nr,
273
- date: maxDate,
274
- month: month,
252
+ date: month,
275
253
  locale: locale,
276
- showButton: nextBtn,
277
- onClick: onNext
278
- }))), React.createElement("table", {
254
+ showPreviousButton: prevBtn,
255
+ showNextButton: nextBtn
256
+ })), React.createElement("table", {
279
257
  role: "grid",
280
258
  className: "dnb-no-focus",
281
259
  tabIndex: 0,
@@ -379,41 +357,6 @@ function DatePickerCalendar(restOfProps) {
379
357
  }))));
380
358
  }
381
359
  export default DatePickerCalendar;
382
- function CalendarButton({
383
- type,
384
- nr,
385
- date,
386
- month,
387
- locale,
388
- showButton,
389
- onClick,
390
- onKeyDown
391
- }) {
392
- const tr = useTranslation().DatePicker;
393
- if (!showButton) {
394
- return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
395
- }
396
- const disabled = date && isSameMonth(month, date);
397
- const title = tr[`${type}Month`].replace(/%s/, formatDate(subMonths(month, 1), {
398
- locale,
399
- formatOptions: {
400
- month: 'long',
401
- year: 'numeric'
402
- }
403
- }));
404
- const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
405
- return React.createElement(Button, {
406
- className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
407
- icon: icon,
408
- size: "small",
409
- "aria-label": title,
410
- onClick: () => onClick && !disabled && onClick({
411
- nr,
412
- type
413
- }),
414
- onKeyDown: onKeyDown
415
- });
416
- }
417
360
  function onSelectRange({
418
361
  day,
419
362
  isRange,
@@ -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","onSelectRange","state","onMouseOver","onHoverDay","onFocus","tr","_Fragment","Fragment","icon","daysToStartDate","daysToEndDate","range","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","onSelectRange","state","onMouseOver","onHoverDay","onFocus","daysToStartDate","daysToEndDate","range","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,158 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ var _Fragment;
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import React, { useCallback, useContext } from 'react';
8
+ import { addMonths, addYears, isSameMonth, isSameYear, subMonths, subYears } from 'date-fns';
9
+ import Button from '../Button';
10
+ import { useTranslation } from '../../shared';
11
+ import DatePickerContext from './DatePickerContext';
12
+ import { formatDate } from './DatePickerCalc';
13
+ const titleFormats = {
14
+ both: {
15
+ month: 'long',
16
+ year: 'numeric'
17
+ },
18
+ month: {
19
+ month: 'long'
20
+ },
21
+ year: {
22
+ year: 'numeric'
23
+ }
24
+ };
25
+ const dateHandlers = {
26
+ month: {
27
+ prev: subMonths,
28
+ next: addMonths
29
+ },
30
+ year: {
31
+ prev: subYears,
32
+ next: addYears
33
+ }
34
+ };
35
+ export function DatePickerCalendarNav({
36
+ type = 'both',
37
+ id,
38
+ nr,
39
+ date,
40
+ locale,
41
+ showPreviousButton,
42
+ showNextButton
43
+ }) {
44
+ const {
45
+ minDate,
46
+ maxDate,
47
+ views,
48
+ setViews,
49
+ props: {
50
+ link: isLinkedCalendars
51
+ }
52
+ } = useContext(DatePickerContext);
53
+ const {
54
+ selectedMonth,
55
+ selectedYear
56
+ } = useTranslation().DatePicker;
57
+ const title = type === 'year' ? selectedYear : selectedMonth;
58
+ const titleFormat = titleFormats[type];
59
+ const buttonDateType = type === 'year' ? 'year' : 'month';
60
+ const onNav = useCallback(({
61
+ nr,
62
+ type: navigationType
63
+ }) => {
64
+ const handlerType = type === 'year' ? 'year' : 'month';
65
+ const updatedViews = views.map(view => {
66
+ if (view.nr === nr || isLinkedCalendars && view.nr === 1) {
67
+ const month = dateHandlers[handlerType][navigationType](view.month, 1);
68
+ return _objectSpread(_objectSpread({}, view), {}, {
69
+ month
70
+ });
71
+ }
72
+ return view;
73
+ });
74
+ setViews(updatedViews);
75
+ }, [type, views, setViews, isLinkedCalendars]);
76
+ return React.createElement("div", {
77
+ className: 'dnb-date-picker__header__row' + (type === 'year' ? " dnb-date-picker__header__row--year" : "")
78
+ }, React.createElement("div", {
79
+ className: "dnb-date-picker__header__nav"
80
+ }, React.createElement(CalendarNavButton, {
81
+ type: "prev",
82
+ nr: nr,
83
+ date: date,
84
+ dateLimit: minDate,
85
+ dateType: buttonDateType,
86
+ dateFormat: titleFormat,
87
+ locale: locale,
88
+ showButton: showPreviousButton,
89
+ onClick: onNav
90
+ })), React.createElement("label", {
91
+ id: `${id}--title`,
92
+ className: "dnb-date-picker__header__title dnb-no-focus",
93
+ title: title.replace(/%s/, formatDate(date, {
94
+ locale,
95
+ formatOptions: titleFormat
96
+ })),
97
+ tabIndex: -1
98
+ }, formatDate(date, {
99
+ locale,
100
+ formatOptions: titleFormat
101
+ })), React.createElement("div", {
102
+ className: "dnb-date-picker__header__nav"
103
+ }, React.createElement(CalendarNavButton, {
104
+ type: "next",
105
+ dateType: buttonDateType,
106
+ nr: nr,
107
+ date: date,
108
+ dateLimit: maxDate,
109
+ dateFormat: titleFormat,
110
+ locale: locale,
111
+ showButton: showNextButton,
112
+ onClick: onNav
113
+ })));
114
+ }
115
+ const navButtonDisabledHandlers = {
116
+ month: isSameMonth,
117
+ year: isSameYear
118
+ };
119
+ function CalendarNavButton({
120
+ type,
121
+ dateType,
122
+ dateFormat,
123
+ nr,
124
+ date,
125
+ dateLimit,
126
+ locale,
127
+ showButton,
128
+ onClick,
129
+ onKeyDown
130
+ }) {
131
+ const translations = useTranslation().DatePicker;
132
+ if (!showButton) {
133
+ return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
134
+ }
135
+ const translationKey = `${type}${capitalizeFirstLetter(dateType)}`;
136
+ const dateHandler = dateHandlers[dateType][type];
137
+ const title = translations[translationKey].replace(/%s/, formatDate(dateHandler(date, 1), {
138
+ locale,
139
+ formatOptions: dateFormat
140
+ }));
141
+ const disabled = dateLimit && navButtonDisabledHandlers[dateType](date, dateLimit);
142
+ const icon = type === 'prev' ? 'chevron_left' : 'chevron_right';
143
+ return React.createElement(Button, {
144
+ className: `dnb-date-picker__${type}` + (disabled ? " disabled" : ""),
145
+ icon: icon,
146
+ size: "small",
147
+ "aria-label": title,
148
+ onClick: () => onClick && !disabled && onClick({
149
+ nr,
150
+ type
151
+ }),
152
+ onKeyDown: onKeyDown
153
+ });
154
+ }
155
+ function capitalizeFirstLetter(value) {
156
+ return `${value.charAt(0).toLocaleUpperCase()}${value.slice(1)}`;
157
+ }
158
+ //# 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","type","id","nr","date","locale","showPreviousButton","showNextButton","minDate","maxDate","views","setViews","props","link","isLinkedCalendars","selectedMonth","selectedYear","DatePicker","title","titleFormat","buttonDateType","onNav","navigationType","handlerType","updatedViews","map","view","_objectSpread","createElement","className","CalendarNavButton","dateLimit","dateType","dateFormat","showButton","onClick","replace","formatOptions","tabIndex","navButtonDisabledHandlers","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":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SACEC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,UAAU;AAGjB,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,cAAc,QAAQ,cAAc;AAC7C,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,UAAU,QAAQ,kBAAkB;AA6B7C,MAAMC,YAA4B,GAAG;EACnCC,IAAI,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE;EACR,CAAC;EACDD,KAAK,EAAE;IAAEA,KAAK,EAAE;EAAO,CAAC;EACxBC,IAAI,EAAE;IAAEA,IAAI,EAAE;EAAU;AAC1B,CAAC;AAUD,MAAMC,YAAkC,GAAG;EACzCF,KAAK,EAAE;IACLG,IAAI,EAAEX,SAAS;IACfY,IAAI,EAAEhB;EACR,CAAC;EACDa,IAAI,EAAE;IACJE,IAAI,EAAEV,QAAQ;IACdW,IAAI,EAAEf;EACR;AACF,CAAC;AAED,OAAO,SAASgB,qBAAqBA,CAAC;EACpCC,IAAI,GAAG,MAAM;EACbC,EAAE;EACFC,EAAE;EACFC,IAAI;EACJC,MAAM;EACNC,kBAAkB;EAClBC;AACiC,CAAC,EAAE;EACpC,MAAM;IACJC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,KAAK,EAAE;MAAEC,IAAI,EAAEC;IAAkB;EACnC,CAAC,GAAGhC,UAAU,CAACS,iBAAiB,CAAC;EACjC,MAAM;IAAEwB,aAAa;IAAEC;EAAa,CAAC,GAAG1B,cAAc,CAAC,CAAC,CAAC2B,UAAU;EAEnE,MAAMC,KAAK,GAAGjB,IAAI,KAAK,MAAM,GAAGe,YAAY,GAAGD,aAAa;EAC5D,MAAMI,WAAW,GAAG1B,YAAY,CAACQ,IAAI,CAAC;EACtC,MAAMmB,cAAc,GAAGnB,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO;EAEzD,MAAMoB,KAAK,GAAGxC,WAAW,CACvB,CAAC;IAAEsB,EAAE;IAAEF,IAAI,EAAEqB;EAAwC,CAAC,KAAK;IACzD,MAAMC,WAAW,GAAGtB,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO;IACtD,MAAMuB,YAAY,GAAGd,KAAK,CAACe,GAAG,CAAEC,IAAI,IAAK;MACvC,IAAIA,IAAI,CAACvB,EAAE,KAAKA,EAAE,IAAKW,iBAAiB,IAAIY,IAAI,CAACvB,EAAE,KAAK,CAAE,EAAE;QAC1D,MAAMR,KAAK,GAAGE,YAAY,CAAC0B,WAAW,CAAC,CAACD,cAAc,CAAC,CACrDI,IAAI,CAAC/B,KAAK,EACV,CACF,CAAC;QAED,OAAAgC,aAAA,CAAAA,aAAA,KAAYD,IAAI;UAAE/B;QAAK;MACzB;MAEA,OAAO+B,IAAI;IACb,CAAC,CAAC;IACFf,QAAQ,CAACa,YAAY,CAAC;EACxB,CAAC,EACD,CAACvB,IAAI,EAAES,KAAK,EAAEC,QAAQ,EAAEG,iBAAiB,CAC3C,CAAC;EAED,OACElC,KAAA,CAAAgD,aAAA;IACEC,SAAS,EACP,8BAA8B,IAC9B5B,IAAI,KAAK,MAAM;EACf,GAEFrB,KAAA,CAAAgD,aAAA;IAAKC,SAAS,EAAC;EAA8B,GAC3CjD,KAAA,CAAAgD,aAAA,CAACE,iBAAiB;IAChB7B,IAAI,EAAC,MAAM;IACXE,EAAE,EAAEA,EAAG;IACPC,IAAI,EAAEA,IAAK;IACX2B,SAAS,EAAEvB,OAAQ;IACnBwB,QAAQ,EAAEZ,cAAe;IACzBa,UAAU,EAAEd,WAAY;IACxBd,MAAM,EAAEA,MAAO;IACf6B,UAAU,EAAE5B,kBAAmB;IAC/B6B,OAAO,EAAEd;EAAM,CAChB,CACE,CAAC,EACNzC,KAAA,CAAAgD,aAAA;IACE1B,EAAE,EAAE,GAAGA,EAAE,SAAU;IACnB2B,SAAS,EAAC,6CAA6C;IACvDX,KAAK,EAAEA,KAAK,CAACkB,OAAO,CAClB,IAAI,EACJ5C,UAAU,CAACY,IAAI,EAAE;MAAEC,MAAM;MAAEgC,aAAa,EAAElB;IAAY,CAAC,CACzD,CAAE;IACFmB,QAAQ,EAAE,CAAC;EAAE,GAEZ9C,UAAU,CAACY,IAAI,EAAE;IAAEC,MAAM;IAAEgC,aAAa,EAAElB;EAAY,CAAC,CACnD,CAAC,EACRvC,KAAA,CAAAgD,aAAA;IAAKC,SAAS,EAAC;EAA8B,GAC3CjD,KAAA,CAAAgD,aAAA,CAACE,iBAAiB;IAChB7B,IAAI,EAAC,MAAM;IACX+B,QAAQ,EAAEZ,cAAe;IACzBjB,EAAE,EAAEA,EAAG;IACPC,IAAI,EAAEA,IAAK;IACX2B,SAAS,EAAEtB,OAAQ;IACnBwB,UAAU,EAAEd,WAAY;IACxBd,MAAM,EAAEA,MAAO;IACf6B,UAAU,EAAE3B,cAAe;IAC3B4B,OAAO,EAAEd;EAAM,CAChB,CACE,CACF,CAAC;AAEV;AA4BA,MAAMkB,yBAAsD,GAAG;EAC7D5C,KAAK,EAAEV,WAAW;EAClBW,IAAI,EAAEV;AACR,CAAC;AAED,SAAS4C,iBAAiBA,CAAC;EACzB7B,IAAI;EACJ+B,QAAQ;EACRC,UAAU;EACV9B,EAAE;EACFC,IAAI;EACJ2B,SAAS;EACT1B,MAAM;EACN6B,UAAU;EACVC,OAAO;EACPK;AACsB,CAAC,EAAE;EACzB,MAAMC,YAAY,GAAGnD,cAAc,CAAC,CAAC,CAAC2B,UAAU;EAEhD,IAAI,CAACiB,UAAU,EAAE;IACf,OAAAQ,SAAA,KAAAA,SAAA,GAAO9D,KAAA,CAAAgD,aAAA,CAAAhD,KAAA,CAAA+D,QAAA,MAAI,CAAC;EACd;EAEA,MAAMC,cAAc,GAAG,GAAG3C,IAAI,GAAG4C,qBAAqB,CAACb,QAAQ,CAAC,EAAE;EAClE,MAAMc,WAAW,GAAGjD,YAAY,CAACmC,QAAQ,CAAC,CAAC/B,IAAI,CAAC;EAEhD,MAAMiB,KAAK,GAAGuB,YAAY,CAACG,cAAc,CAAC,CAACR,OAAO,CAChD,IAAI,EACJ5C,UAAU,CAACsD,WAAW,CAAC1C,IAAI,EAAE,CAAC,CAAC,EAAE;IAC/BC,MAAM;IACNgC,aAAa,EAAEJ;EACjB,CAAC,CACH,CAAC;EAED,MAAMc,QAAQ,GACZhB,SAAS,IAAIQ,yBAAyB,CAACP,QAAQ,CAAC,CAAC5B,IAAI,EAAE2B,SAAS,CAAC;EAEnE,MAAMiB,IAAI,GAAG/C,IAAI,KAAK,MAAM,GAAG,cAAc,GAAG,eAAe;EAE/D,OACErB,KAAA,CAAAgD,aAAA,CAACvC,MAAM;IACLwC,SAAS,EAAa,oBAAoB5B,IAAI,EAAE,IAAI8C,QAAQ,oBAAI;IAChEC,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAC,OAAO;IACZ,cAAY/B,KAAM;IAClBiB,OAAO,EAAEA,CAAA,KAAMA,OAAO,IAAI,CAACY,QAAQ,IAAIZ,OAAO,CAAC;MAAEhC,EAAE;MAAEF;IAAK,CAAC,CAAE;IAC7DuC,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN;AAEA,SAASK,qBAAqBA,CAACK,KAAa,EAAE;EAC5C,OAAO,GAAGA,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,CAAC,EAAE;AAClE","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>;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerContext.js","names":["React","DatePickerContext","createContext"],"sources":["../../../../src/components/date-picker/DatePickerContext.ts"],"sourcesContent":["/**\n * Web DatePicker Context\n *\n */\n\nimport React from 'react'\nimport { DatePickerAllProps, DisplayPickerEvent } from './DatePicker'\nimport { ContextProps } from '../../shared/Context'\nimport {\n DatePickerChangeEvent,\n GetReturnObjectParams,\n ReturnObject,\n} from './DatePickerProvider'\nimport { DatePickerDateProps, DatePickerDates } from './hooks/useDates'\nimport { CalendarView } from './hooks/useViews'\n\nexport type DateType = Date | string\n\nexport type DatePickerContextValues = ContextProps &\n DatePickerDates & {\n props: DatePickerAllProps\n translation: ContextProps['translation']\n views: Array<CalendarView>\n previousDateProps: DatePickerDateProps\n updateDates: (\n dates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => void\n setViews: (views: Array<CalendarView>, callback?: () => void) => void\n setHasClickedCalendarDay: (hasClicked: boolean) => void\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n callOnChangeHandler: <E>(event: DatePickerChangeEvent<E>) => void\n hidePicker: (event: DisplayPickerEvent) => void\n getReturnObject: <E>(\n params: GetReturnObjectParams<E>\n ) => ReturnObject<E>\n }\n\nconst DatePickerContext = React.createContext<DatePickerContextValues>(\n {} as DatePickerContextValues\n)\n\nexport default DatePickerContext\n"],"mappings":"AAKA,OAAOA,KAAK,MAAM,OAAO;AAkCzB,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,aAAa,CAC3C,CAAC,CACH,CAAC;AAED,eAAeD,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"DatePickerContext.js","names":["React","DatePickerContext","createContext"],"sources":["../../../../src/components/date-picker/DatePickerContext.ts"],"sourcesContent":["/**\n * Web DatePicker Context\n *\n */\n\nimport React from 'react'\nimport { DatePickerAllProps, DisplayPickerEvent } from './DatePicker'\nimport { ContextProps } from '../../shared/Context'\nimport {\n DatePickerChangeEvent,\n GetReturnObjectParams,\n ReturnObject,\n} from './DatePickerProvider'\nimport { DatePickerDateProps, DatePickerDates } from './hooks/useDates'\nimport { CalendarView } from './hooks/useViews'\nimport { SubmittedDates } from './hooks/useSubmittedDates'\n\nexport type DateType = Date | string\n\nexport type DatePickerContextValues = ContextProps &\n DatePickerDates & {\n props: DatePickerAllProps\n translation: ContextProps['translation']\n views: Array<CalendarView>\n previousDateProps: DatePickerDateProps\n updateDates: (\n dates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => void\n setViews: (views: Array<CalendarView>, callback?: () => void) => void\n setHasClickedCalendarDay: (hasClicked: boolean) => void\n hoverDate?: Date\n setHoverDate: (date: Date) => void\n submittedDates: SubmittedDates\n setSubmittedDates: (dates: SubmittedDates) => void\n callOnChangeHandler: <E>(event: DatePickerChangeEvent<E>) => void\n hidePicker: (event: DisplayPickerEvent) => void\n getReturnObject: <E>(\n params: GetReturnObjectParams<E>\n ) => ReturnObject<E>\n }\n\nconst DatePickerContext = React.createContext<DatePickerContextValues>(\n {} as DatePickerContextValues\n)\n\nexport default DatePickerContext\n"],"mappings":"AAKA,OAAOA,KAAK,MAAM,OAAO;AAqCzB,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,aAAa,CAC3C,CAAC,CACH,CAAC;AAED,eAAeD,iBAAiB","ignoreList":[]}
@@ -121,7 +121,12 @@ export const DatePickerProperties = {
121
121
  status: 'optional'
122
122
  },
123
123
  skipPortal: {
124
- doc: ' If set to `true`, the calendar will not be rendered inside a react portal. Defaults to `false`.',
124
+ doc: 'If set to `true`, the calendar will not be rendered inside a react portal. Defaults to `false`.',
125
+ type: 'boolean',
126
+ status: 'optional'
127
+ },
128
+ yearNavigation: {
129
+ doc: 'Will enable year navigation in the calendar if set to `true`. Defaults to `false`.',
125
130
  type: 'boolean',
126
131
  status: 'optional'
127
132
  },