@dnb/eufemia 10.52.1 → 10.54.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 (921) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/cjs/components/CountryFlag.d.ts +12 -0
  3. package/cjs/components/CountryFlag.js +24 -0
  4. package/cjs/components/CountryFlag.js.map +1 -0
  5. package/cjs/components/autocomplete/Autocomplete.js +2 -3
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  8. package/cjs/components/checkbox/Checkbox.js +1 -2
  9. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  10. package/cjs/components/country-flag/CountryFlag.d.ts +11 -0
  11. package/cjs/components/country-flag/CountryFlag.js +48 -0
  12. package/cjs/components/country-flag/CountryFlag.js.map +1 -0
  13. package/cjs/components/country-flag/CountryFlagDocs.d.ts +2 -0
  14. package/cjs/components/country-flag/CountryFlagDocs.js +25 -0
  15. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -0
  16. package/cjs/components/country-flag/index.d.ts +7 -0
  17. package/cjs/components/country-flag/index.js +24 -0
  18. package/cjs/components/country-flag/index.js.map +1 -0
  19. package/cjs/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  20. package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  21. package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  22. package/cjs/components/country-flag/style/dnb-country-flag.css +42 -0
  23. package/cjs/components/country-flag/style/dnb-country-flag.min.css +1 -0
  24. package/cjs/components/country-flag/style/dnb-country-flag.scss +53 -0
  25. package/cjs/components/country-flag/style/index.d.ts +5 -0
  26. package/cjs/components/country-flag/style/index.js +4 -0
  27. package/cjs/components/country-flag/style/index.js.map +1 -0
  28. package/cjs/components/country-flag/style.d.ts +5 -0
  29. package/cjs/components/country-flag/style.js +4 -0
  30. package/cjs/components/country-flag/style.js.map +1 -0
  31. package/cjs/components/date-picker/DatePickerCalendar.js +1 -1
  32. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerInput.js +1 -2
  34. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  35. package/cjs/components/dialog/Dialog.js +3 -1
  36. package/cjs/components/dialog/Dialog.js.map +1 -1
  37. package/cjs/components/dialog/DialogDocs.d.ts +2 -0
  38. package/cjs/components/dialog/DialogDocs.js +120 -0
  39. package/cjs/components/dialog/DialogDocs.js.map +1 -0
  40. package/cjs/components/dropdown/Dropdown.js +1 -2
  41. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  42. package/cjs/components/global-status/GlobalStatus.js +2 -3
  43. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  44. package/cjs/components/index.d.ts +2 -1
  45. package/cjs/components/index.js +7 -0
  46. package/cjs/components/index.js.map +1 -1
  47. package/cjs/components/input-masked/InputMaskedHooks.js +1 -2
  48. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedUtils.js +9 -5
  50. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  51. package/cjs/components/lib.d.ts +10 -1
  52. package/cjs/components/lib.js +8 -0
  53. package/cjs/components/lib.js.map +1 -1
  54. package/cjs/components/modal/Modal.d.ts +1 -0
  55. package/cjs/components/modal/Modal.js +4 -1
  56. package/cjs/components/modal/Modal.js.map +1 -1
  57. package/cjs/components/modal/ModalContent.js +4 -4
  58. package/cjs/components/modal/ModalContent.js.map +1 -1
  59. package/cjs/components/modal/style/dnb-modal.css +4 -0
  60. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  61. package/cjs/components/modal/style/dnb-modal.scss +5 -0
  62. package/cjs/components/modal/types.d.ts +4 -0
  63. package/cjs/components/modal/types.js.map +1 -1
  64. package/cjs/components/number-format/NumberUtils.d.ts +2 -2
  65. package/cjs/components/number-format/NumberUtils.js +1 -1
  66. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  67. package/cjs/components/pagination/Pagination.d.ts +3 -3
  68. package/cjs/components/pagination/PaginationBar.d.ts +1 -1
  69. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  70. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
  71. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  72. package/cjs/components/radio/Radio.js +1 -2
  73. package/cjs/components/radio/Radio.js.map +1 -1
  74. package/cjs/components/table/TableClickableHead.js +1 -1
  75. package/cjs/components/table/TableClickableHead.js.map +1 -1
  76. package/cjs/components/table/style/dnb-table.css +0 -9
  77. package/cjs/components/table/style/dnb-table.min.css +1 -1
  78. package/cjs/components/table/style/dnb-table.scss +3 -1
  79. package/cjs/components/table/style/table-accordion.scss +0 -10
  80. package/cjs/components/table/style/table-container.scss +3 -2
  81. package/cjs/components/table/style/table-td.scss +2 -1
  82. package/cjs/components/tabs/Tabs.js +2 -3
  83. package/cjs/components/tabs/Tabs.js.map +1 -1
  84. package/cjs/components/toggle-button/ToggleButton.js +2 -3
  85. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  86. package/cjs/components/upload/UploadDocs.js +2 -2
  87. package/cjs/components/upload/UploadDocs.js.map +1 -1
  88. package/cjs/components/upload/UploadFileListCell.js +2 -8
  89. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  90. package/cjs/components/upload/UploadInfo.js +3 -3
  91. package/cjs/components/upload/UploadInfo.js.map +1 -1
  92. package/cjs/components/upload/UploadVerify.js +2 -2
  93. package/cjs/components/upload/UploadVerify.js.map +1 -1
  94. package/cjs/extensions/forms/DataContext/Context.d.ts +13 -9
  95. package/cjs/extensions/forms/DataContext/Context.js +2 -4
  96. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  97. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  98. package/cjs/extensions/forms/DataContext/Provider/Provider.js +37 -24
  99. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  100. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  101. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  102. package/cjs/extensions/forms/DataContext/index.d.ts +3 -0
  103. package/cjs/extensions/forms/DataContext/index.js +5 -0
  104. package/cjs/extensions/forms/DataContext/index.js.map +1 -1
  105. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +11 -3
  106. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  107. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  108. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  109. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +51 -12
  110. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  111. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  112. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +25 -0
  113. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  114. package/cjs/extensions/forms/Field/Date/Date.js +21 -5
  115. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  116. package/cjs/extensions/forms/Field/Email/Email.js +13 -8
  117. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  118. package/cjs/extensions/forms/Field/Expiry/Expiry.js +42 -34
  119. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  120. package/cjs/extensions/forms/Field/Name/Name.js +20 -13
  121. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  122. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  123. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -17
  124. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  125. package/cjs/extensions/forms/Field/Number/Number.d.ts +4 -11
  126. package/cjs/extensions/forms/Field/Number/Number.js +14 -16
  127. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  128. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  129. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  130. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  131. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +43 -30
  132. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  133. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  134. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +65 -21
  135. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  136. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  137. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  138. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  139. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  140. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  141. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  142. package/cjs/extensions/forms/Field/Selection/Selection.js +39 -18
  143. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  144. package/cjs/extensions/forms/Field/Slider/Slider.js +37 -13
  145. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  146. package/cjs/extensions/forms/Field/String/String.d.ts +2 -9
  147. package/cjs/extensions/forms/Field/String/String.js +9 -12
  148. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  149. package/cjs/extensions/forms/Field/Toggle/Toggle.js +8 -1
  150. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  151. package/cjs/extensions/forms/Field/Upload/Upload.js +6 -8
  152. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  153. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  154. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +37 -14
  155. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  156. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  157. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  158. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  159. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  160. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  161. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  162. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  163. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -2
  164. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  165. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  166. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  167. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +9 -5
  168. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  169. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  170. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  171. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  172. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  173. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  174. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  175. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +7 -5
  176. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  177. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  178. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  179. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  180. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  181. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  182. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  183. package/cjs/extensions/forms/Iterate/Array/Array.js +53 -29
  184. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  185. package/cjs/extensions/forms/Tools/Log.js +2 -2
  186. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  187. package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -0
  188. package/cjs/extensions/forms/Value/Date/Date.js +27 -13
  189. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  190. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  191. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  192. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  193. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  194. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  195. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  196. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +37 -40
  197. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  198. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  199. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  200. package/cjs/extensions/forms/constants/countries.js +20 -20
  201. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  202. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  203. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  204. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  205. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  206. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  207. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  208. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  209. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  210. package/cjs/extensions/forms/hooks/index.d.ts +2 -1
  211. package/cjs/extensions/forms/hooks/index.js +1 -1
  212. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  213. package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  214. package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  215. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -5
  216. package/cjs/extensions/forms/hooks/useFieldProps.js +176 -79
  217. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  218. package/cjs/extensions/forms/hooks/usePath.d.ts +3 -0
  219. package/cjs/extensions/forms/hooks/usePath.js +2 -1
  220. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  221. package/cjs/extensions/forms/hooks/useProcessManager.js +1 -1
  222. package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -1
  223. package/cjs/extensions/forms/hooks/useTranslation.d.ts +4 -1
  224. package/cjs/extensions/forms/hooks/useTranslation.js +6 -3
  225. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  226. package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
  227. package/cjs/extensions/forms/hooks/useValueProps.js +2 -2
  228. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  229. package/cjs/extensions/forms/style/dnb-forms.css +7 -6
  230. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  231. package/cjs/extensions/forms/types.d.ts +61 -37
  232. package/cjs/extensions/forms/types.js +0 -17
  233. package/cjs/extensions/forms/types.js.map +1 -1
  234. package/cjs/extensions/forms/utils/FormError.d.ts +45 -0
  235. package/cjs/extensions/forms/utils/FormError.js +25 -0
  236. package/cjs/extensions/forms/utils/FormError.js.map +1 -0
  237. package/cjs/extensions/forms/utils/ajv.d.ts +17 -1
  238. package/cjs/extensions/forms/utils/ajv.js +82 -7
  239. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  240. package/cjs/extensions/forms/utils/errors.d.ts +1 -1
  241. package/cjs/extensions/forms/utils/errors.js.map +1 -1
  242. package/cjs/extensions/forms/utils/index.d.ts +2 -0
  243. package/cjs/extensions/forms/utils/index.js +24 -0
  244. package/cjs/extensions/forms/utils/index.js.map +1 -1
  245. package/cjs/fragments/drawer-list/DrawerList.js +1 -2
  246. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  247. package/cjs/fragments/drawer-list/DrawerListProvider.js +2 -3
  248. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  249. package/cjs/index.d.ts +2 -1
  250. package/cjs/index.js +7 -0
  251. package/cjs/index.js.map +1 -1
  252. package/cjs/shared/Context.d.ts +4 -4
  253. package/cjs/shared/Context.js.map +1 -1
  254. package/cjs/shared/Eufemia.d.ts +1 -1
  255. package/cjs/shared/Eufemia.js +2 -2
  256. package/cjs/shared/Eufemia.js.map +1 -1
  257. package/cjs/shared/component-helper.d.ts +2 -1
  258. package/cjs/shared/component-helper.js +9 -2
  259. package/cjs/shared/component-helper.js.map +1 -1
  260. package/cjs/shared/defaults.d.ts +1 -0
  261. package/cjs/shared/defaults.js +3 -1
  262. package/cjs/shared/defaults.js.map +1 -1
  263. package/cjs/shared/keycode.d.ts +75 -0
  264. package/cjs/shared/keycode.js +138 -0
  265. package/cjs/shared/keycode.js.map +1 -0
  266. package/cjs/shared/libs/Shortcuts.js +1 -3
  267. package/cjs/shared/libs/Shortcuts.js.map +1 -1
  268. package/cjs/shared/locales/nb-NO.js +2 -2
  269. package/cjs/shared/locales/nb-NO.js.map +1 -1
  270. package/cjs/shared/useTranslation.d.ts +11 -4
  271. package/cjs/shared/useTranslation.js +68 -22
  272. package/cjs/shared/useTranslation.js.map +1 -1
  273. package/cjs/style/core/scopes.scss +1 -1
  274. package/cjs/style/dnb-ui-basis.css +1 -1
  275. package/cjs/style/dnb-ui-basis.min.css +1 -1
  276. package/cjs/style/dnb-ui-body.css +1 -1
  277. package/cjs/style/dnb-ui-body.min.css +1 -1
  278. package/cjs/style/dnb-ui-components.css +1313 -186
  279. package/cjs/style/dnb-ui-components.min.css +3 -3
  280. package/cjs/style/dnb-ui-components.scss +2 -0
  281. package/cjs/style/dnb-ui-core.css +1 -1
  282. package/cjs/style/dnb-ui-core.min.css +1 -1
  283. package/cjs/style/dnb-ui-extensions.css +7 -6
  284. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  285. package/cjs/style/dnb-ui-forms.css +7 -6
  286. package/cjs/style/dnb-ui-forms.min.css +1 -1
  287. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +1308 -180
  288. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  289. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -6
  290. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  291. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -6
  292. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  293. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +1308 -180
  294. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  295. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -6
  296. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  297. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +7 -6
  298. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  299. package/cjs/style/themes/theme-ui/ui-theme-components.css +1308 -180
  300. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  301. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +7 -6
  302. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  303. package/cjs/style/themes/theme-ui/ui-theme-forms.css +7 -6
  304. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  305. package/components/CountryFlag.d.ts +12 -0
  306. package/components/CountryFlag.js +4 -0
  307. package/components/CountryFlag.js.map +1 -0
  308. package/components/autocomplete/Autocomplete.js +1 -2
  309. package/components/autocomplete/Autocomplete.js.map +1 -1
  310. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  311. package/components/checkbox/Checkbox.js +1 -2
  312. package/components/checkbox/Checkbox.js.map +1 -1
  313. package/components/country-flag/CountryFlag.d.ts +11 -0
  314. package/components/country-flag/CountryFlag.js +38 -0
  315. package/components/country-flag/CountryFlag.js.map +1 -0
  316. package/components/country-flag/CountryFlagDocs.d.ts +2 -0
  317. package/components/country-flag/CountryFlagDocs.js +18 -0
  318. package/components/country-flag/CountryFlagDocs.js.map +1 -0
  319. package/components/country-flag/index.d.ts +7 -0
  320. package/components/country-flag/index.js +4 -0
  321. package/components/country-flag/index.js.map +1 -0
  322. package/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  323. package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  324. package/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  325. package/components/country-flag/style/dnb-country-flag.css +42 -0
  326. package/components/country-flag/style/dnb-country-flag.min.css +1 -0
  327. package/components/country-flag/style/dnb-country-flag.scss +53 -0
  328. package/components/country-flag/style/index.d.ts +5 -0
  329. package/components/country-flag/style/index.js +1 -0
  330. package/components/country-flag/style/index.js.map +1 -0
  331. package/components/country-flag/style.d.ts +5 -0
  332. package/components/country-flag/style.js +1 -0
  333. package/components/country-flag/style.js.map +1 -0
  334. package/components/date-picker/DatePickerCalendar.js +1 -1
  335. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  336. package/components/date-picker/DatePickerInput.js +1 -2
  337. package/components/date-picker/DatePickerInput.js.map +1 -1
  338. package/components/dialog/Dialog.js +3 -1
  339. package/components/dialog/Dialog.js.map +1 -1
  340. package/components/dialog/DialogDocs.d.ts +2 -0
  341. package/components/dialog/DialogDocs.js +113 -0
  342. package/components/dialog/DialogDocs.js.map +1 -0
  343. package/components/dropdown/Dropdown.js +1 -2
  344. package/components/dropdown/Dropdown.js.map +1 -1
  345. package/components/global-status/GlobalStatus.js +1 -2
  346. package/components/global-status/GlobalStatus.js.map +1 -1
  347. package/components/index.d.ts +2 -1
  348. package/components/index.js +2 -1
  349. package/components/index.js.map +1 -1
  350. package/components/input-masked/InputMaskedHooks.js +1 -2
  351. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  352. package/components/input-masked/InputMaskedUtils.js +9 -5
  353. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  354. package/components/lib.d.ts +10 -1
  355. package/components/lib.js +3 -1
  356. package/components/lib.js.map +1 -1
  357. package/components/modal/Modal.d.ts +1 -0
  358. package/components/modal/Modal.js +4 -1
  359. package/components/modal/Modal.js.map +1 -1
  360. package/components/modal/ModalContent.js +4 -4
  361. package/components/modal/ModalContent.js.map +1 -1
  362. package/components/modal/style/dnb-modal.css +4 -0
  363. package/components/modal/style/dnb-modal.min.css +1 -1
  364. package/components/modal/style/dnb-modal.scss +5 -0
  365. package/components/modal/types.d.ts +4 -0
  366. package/components/modal/types.js.map +1 -1
  367. package/components/number-format/NumberUtils.d.ts +2 -2
  368. package/components/number-format/NumberUtils.js +1 -1
  369. package/components/number-format/NumberUtils.js.map +1 -1
  370. package/components/pagination/Pagination.d.ts +3 -3
  371. package/components/pagination/PaginationBar.d.ts +1 -1
  372. package/components/pagination/PaginationBar.js.map +1 -1
  373. package/components/progress-indicator/ProgressIndicator.js +2 -2
  374. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  375. package/components/radio/Radio.js +1 -2
  376. package/components/radio/Radio.js.map +1 -1
  377. package/components/table/TableClickableHead.js +1 -1
  378. package/components/table/TableClickableHead.js.map +1 -1
  379. package/components/table/style/dnb-table.css +0 -9
  380. package/components/table/style/dnb-table.min.css +1 -1
  381. package/components/table/style/dnb-table.scss +3 -1
  382. package/components/table/style/table-accordion.scss +0 -10
  383. package/components/table/style/table-container.scss +3 -2
  384. package/components/table/style/table-td.scss +2 -1
  385. package/components/tabs/Tabs.js +1 -2
  386. package/components/tabs/Tabs.js.map +1 -1
  387. package/components/toggle-button/ToggleButton.js +1 -2
  388. package/components/toggle-button/ToggleButton.js.map +1 -1
  389. package/components/upload/UploadDocs.js +2 -2
  390. package/components/upload/UploadDocs.js.map +1 -1
  391. package/components/upload/UploadFileListCell.js +2 -8
  392. package/components/upload/UploadFileListCell.js.map +1 -1
  393. package/components/upload/UploadInfo.js +3 -3
  394. package/components/upload/UploadInfo.js.map +1 -1
  395. package/components/upload/UploadVerify.js +2 -2
  396. package/components/upload/UploadVerify.js.map +1 -1
  397. package/es/components/CountryFlag.d.ts +12 -0
  398. package/es/components/CountryFlag.js +4 -0
  399. package/es/components/CountryFlag.js.map +1 -0
  400. package/es/components/autocomplete/Autocomplete.js +1 -2
  401. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  402. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  403. package/es/components/checkbox/Checkbox.js +1 -2
  404. package/es/components/checkbox/Checkbox.js.map +1 -1
  405. package/es/components/country-flag/CountryFlag.d.ts +11 -0
  406. package/es/components/country-flag/CountryFlag.js +38 -0
  407. package/es/components/country-flag/CountryFlag.js.map +1 -0
  408. package/es/components/country-flag/CountryFlagDocs.d.ts +2 -0
  409. package/es/components/country-flag/CountryFlagDocs.js +18 -0
  410. package/es/components/country-flag/CountryFlagDocs.js.map +1 -0
  411. package/es/components/country-flag/index.d.ts +7 -0
  412. package/es/components/country-flag/index.js +4 -0
  413. package/es/components/country-flag/index.js.map +1 -0
  414. package/es/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  415. package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  416. package/es/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  417. package/es/components/country-flag/style/dnb-country-flag.css +42 -0
  418. package/es/components/country-flag/style/dnb-country-flag.min.css +1 -0
  419. package/es/components/country-flag/style/dnb-country-flag.scss +53 -0
  420. package/es/components/country-flag/style/index.d.ts +5 -0
  421. package/es/components/country-flag/style/index.js +1 -0
  422. package/es/components/country-flag/style/index.js.map +1 -0
  423. package/es/components/country-flag/style.d.ts +5 -0
  424. package/es/components/country-flag/style.js +1 -0
  425. package/es/components/country-flag/style.js.map +1 -0
  426. package/es/components/date-picker/DatePickerCalendar.js +1 -1
  427. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  428. package/es/components/date-picker/DatePickerInput.js +1 -2
  429. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  430. package/es/components/dialog/Dialog.js +3 -1
  431. package/es/components/dialog/Dialog.js.map +1 -1
  432. package/es/components/dialog/DialogDocs.d.ts +2 -0
  433. package/es/components/dialog/DialogDocs.js +113 -0
  434. package/es/components/dialog/DialogDocs.js.map +1 -0
  435. package/es/components/dropdown/Dropdown.js +1 -2
  436. package/es/components/dropdown/Dropdown.js.map +1 -1
  437. package/es/components/global-status/GlobalStatus.js +1 -2
  438. package/es/components/global-status/GlobalStatus.js.map +1 -1
  439. package/es/components/index.d.ts +2 -1
  440. package/es/components/index.js +2 -1
  441. package/es/components/index.js.map +1 -1
  442. package/es/components/input-masked/InputMaskedHooks.js +1 -2
  443. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  444. package/es/components/input-masked/InputMaskedUtils.js +9 -5
  445. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  446. package/es/components/lib.d.ts +10 -1
  447. package/es/components/lib.js +3 -1
  448. package/es/components/lib.js.map +1 -1
  449. package/es/components/modal/Modal.d.ts +1 -0
  450. package/es/components/modal/Modal.js +4 -1
  451. package/es/components/modal/Modal.js.map +1 -1
  452. package/es/components/modal/ModalContent.js +4 -4
  453. package/es/components/modal/ModalContent.js.map +1 -1
  454. package/es/components/modal/style/dnb-modal.css +4 -0
  455. package/es/components/modal/style/dnb-modal.min.css +1 -1
  456. package/es/components/modal/style/dnb-modal.scss +5 -0
  457. package/es/components/modal/types.d.ts +4 -0
  458. package/es/components/modal/types.js.map +1 -1
  459. package/es/components/number-format/NumberUtils.d.ts +2 -2
  460. package/es/components/number-format/NumberUtils.js +1 -1
  461. package/es/components/number-format/NumberUtils.js.map +1 -1
  462. package/es/components/pagination/Pagination.d.ts +3 -3
  463. package/es/components/pagination/PaginationBar.d.ts +1 -1
  464. package/es/components/pagination/PaginationBar.js.map +1 -1
  465. package/es/components/progress-indicator/ProgressIndicator.js +2 -2
  466. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  467. package/es/components/radio/Radio.js +1 -2
  468. package/es/components/radio/Radio.js.map +1 -1
  469. package/es/components/table/TableClickableHead.js +1 -1
  470. package/es/components/table/TableClickableHead.js.map +1 -1
  471. package/es/components/table/style/dnb-table.css +0 -9
  472. package/es/components/table/style/dnb-table.min.css +1 -1
  473. package/es/components/table/style/dnb-table.scss +3 -1
  474. package/es/components/table/style/table-accordion.scss +0 -10
  475. package/es/components/table/style/table-container.scss +3 -2
  476. package/es/components/table/style/table-td.scss +2 -1
  477. package/es/components/tabs/Tabs.js +1 -2
  478. package/es/components/tabs/Tabs.js.map +1 -1
  479. package/es/components/toggle-button/ToggleButton.js +1 -2
  480. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  481. package/es/components/upload/UploadDocs.js +2 -2
  482. package/es/components/upload/UploadDocs.js.map +1 -1
  483. package/es/components/upload/UploadFileListCell.js +2 -8
  484. package/es/components/upload/UploadFileListCell.js.map +1 -1
  485. package/es/components/upload/UploadInfo.js +3 -3
  486. package/es/components/upload/UploadInfo.js.map +1 -1
  487. package/es/components/upload/UploadVerify.js +2 -2
  488. package/es/components/upload/UploadVerify.js.map +1 -1
  489. package/es/extensions/forms/DataContext/Context.d.ts +13 -9
  490. package/es/extensions/forms/DataContext/Context.js +1 -3
  491. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  492. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  493. package/es/extensions/forms/DataContext/Provider/Provider.js +35 -22
  494. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  495. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  496. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  497. package/es/extensions/forms/DataContext/index.d.ts +3 -0
  498. package/es/extensions/forms/DataContext/index.js +5 -0
  499. package/es/extensions/forms/DataContext/index.js.map +1 -1
  500. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +11 -3
  501. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +24 -9
  502. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  503. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  504. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -13
  505. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  506. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  507. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  508. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  509. package/es/extensions/forms/Field/Date/Date.js +23 -6
  510. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  511. package/es/extensions/forms/Field/Email/Email.js +11 -8
  512. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  513. package/es/extensions/forms/Field/Expiry/Expiry.js +42 -34
  514. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  515. package/es/extensions/forms/Field/Name/Name.js +18 -13
  516. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  517. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  518. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  519. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  520. package/es/extensions/forms/Field/Number/Number.d.ts +4 -11
  521. package/es/extensions/forms/Field/Number/Number.js +15 -17
  522. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  523. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  524. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  525. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  526. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  527. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  528. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  529. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +63 -21
  530. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  531. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  532. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  533. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  534. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  535. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  536. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  537. package/es/extensions/forms/Field/Selection/Selection.js +37 -15
  538. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  539. package/es/extensions/forms/Field/Slider/Slider.js +38 -14
  540. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  541. package/es/extensions/forms/Field/String/String.d.ts +2 -9
  542. package/es/extensions/forms/Field/String/String.js +10 -13
  543. package/es/extensions/forms/Field/String/String.js.map +1 -1
  544. package/es/extensions/forms/Field/Toggle/Toggle.js +9 -2
  545. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  546. package/es/extensions/forms/Field/Upload/Upload.js +7 -9
  547. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  548. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  549. package/es/extensions/forms/FieldBlock/FieldBlock.js +36 -13
  550. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  551. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  552. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  553. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  554. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  555. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  556. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  557. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  558. package/es/extensions/forms/Form/Handler/Handler.js +1 -2
  559. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  560. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  561. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  562. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  563. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  564. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  565. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  566. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  567. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  568. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  569. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  570. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  571. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  572. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  573. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  574. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  575. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  576. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  577. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  578. package/es/extensions/forms/Iterate/Array/Array.js +55 -31
  579. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  580. package/es/extensions/forms/Tools/Log.js +2 -2
  581. package/es/extensions/forms/Tools/Log.js.map +1 -1
  582. package/es/extensions/forms/Value/Date/Date.d.ts +5 -0
  583. package/es/extensions/forms/Value/Date/Date.js +25 -14
  584. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  585. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  586. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  587. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  588. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  589. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  590. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  591. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +37 -37
  592. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  593. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  594. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  595. package/es/extensions/forms/constants/countries.js +20 -20
  596. package/es/extensions/forms/constants/countries.js.map +1 -1
  597. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  598. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  599. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  600. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  601. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  602. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  603. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  604. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  605. package/es/extensions/forms/hooks/index.d.ts +2 -1
  606. package/es/extensions/forms/hooks/index.js +1 -1
  607. package/es/extensions/forms/hooks/index.js.map +1 -1
  608. package/es/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  609. package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  610. package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -5
  611. package/es/extensions/forms/hooks/useFieldProps.js +174 -78
  612. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  613. package/es/extensions/forms/hooks/usePath.d.ts +3 -0
  614. package/es/extensions/forms/hooks/usePath.js +2 -1
  615. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  616. package/es/extensions/forms/hooks/useProcessManager.js +1 -1
  617. package/es/extensions/forms/hooks/useProcessManager.js.map +1 -1
  618. package/es/extensions/forms/hooks/useTranslation.d.ts +4 -1
  619. package/es/extensions/forms/hooks/useTranslation.js +7 -4
  620. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  621. package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
  622. package/es/extensions/forms/hooks/useValueProps.js +2 -2
  623. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  624. package/es/extensions/forms/style/dnb-forms.css +7 -6
  625. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  626. package/es/extensions/forms/types.d.ts +61 -37
  627. package/es/extensions/forms/types.js +0 -13
  628. package/es/extensions/forms/types.js.map +1 -1
  629. package/es/extensions/forms/utils/FormError.d.ts +45 -0
  630. package/es/extensions/forms/utils/FormError.js +16 -0
  631. package/es/extensions/forms/utils/FormError.js.map +1 -0
  632. package/es/extensions/forms/utils/ajv.d.ts +17 -1
  633. package/es/extensions/forms/utils/ajv.js +72 -7
  634. package/es/extensions/forms/utils/ajv.js.map +1 -1
  635. package/es/extensions/forms/utils/errors.d.ts +1 -1
  636. package/es/extensions/forms/utils/errors.js.map +1 -1
  637. package/es/extensions/forms/utils/index.d.ts +2 -0
  638. package/es/extensions/forms/utils/index.js +2 -0
  639. package/es/extensions/forms/utils/index.js.map +1 -1
  640. package/es/fragments/drawer-list/DrawerList.js +1 -2
  641. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  642. package/es/fragments/drawer-list/DrawerListProvider.js +1 -2
  643. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  644. package/es/index.d.ts +2 -1
  645. package/es/index.js +2 -1
  646. package/es/index.js.map +1 -1
  647. package/es/shared/Context.d.ts +4 -4
  648. package/es/shared/Context.js.map +1 -1
  649. package/es/shared/Eufemia.d.ts +1 -1
  650. package/es/shared/Eufemia.js +2 -2
  651. package/es/shared/Eufemia.js.map +1 -1
  652. package/es/shared/component-helper.d.ts +2 -1
  653. package/es/shared/component-helper.js +2 -2
  654. package/es/shared/component-helper.js.map +1 -1
  655. package/es/shared/defaults.d.ts +1 -0
  656. package/es/shared/defaults.js +1 -0
  657. package/es/shared/defaults.js.map +1 -1
  658. package/es/shared/keycode.d.ts +75 -0
  659. package/es/shared/keycode.js +127 -0
  660. package/es/shared/keycode.js.map +1 -0
  661. package/es/shared/libs/Shortcuts.js +1 -2
  662. package/es/shared/libs/Shortcuts.js.map +1 -1
  663. package/es/shared/locales/nb-NO.js +2 -2
  664. package/es/shared/locales/nb-NO.js.map +1 -1
  665. package/es/shared/useTranslation.d.ts +11 -4
  666. package/es/shared/useTranslation.js +64 -22
  667. package/es/shared/useTranslation.js.map +1 -1
  668. package/es/style/core/scopes.scss +1 -1
  669. package/es/style/dnb-ui-basis.css +1 -1
  670. package/es/style/dnb-ui-basis.min.css +1 -1
  671. package/es/style/dnb-ui-body.css +1 -1
  672. package/es/style/dnb-ui-body.min.css +1 -1
  673. package/es/style/dnb-ui-components.css +1313 -186
  674. package/es/style/dnb-ui-components.min.css +3 -3
  675. package/es/style/dnb-ui-components.scss +2 -0
  676. package/es/style/dnb-ui-core.css +1 -1
  677. package/es/style/dnb-ui-core.min.css +1 -1
  678. package/es/style/dnb-ui-extensions.css +7 -6
  679. package/es/style/dnb-ui-extensions.min.css +1 -1
  680. package/es/style/dnb-ui-forms.css +7 -6
  681. package/es/style/dnb-ui-forms.min.css +1 -1
  682. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +1308 -180
  683. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  684. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -6
  685. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  686. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -6
  687. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  688. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +1308 -180
  689. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  690. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -6
  691. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  692. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +7 -6
  693. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  694. package/es/style/themes/theme-ui/ui-theme-components.css +1308 -180
  695. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  696. package/es/style/themes/theme-ui/ui-theme-extensions.css +7 -6
  697. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  698. package/es/style/themes/theme-ui/ui-theme-forms.css +7 -6
  699. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  700. package/esm/dnb-ui-basis.min.mjs +1 -1
  701. package/esm/dnb-ui-components.min.mjs +1 -1
  702. package/esm/dnb-ui-elements.min.mjs +1 -1
  703. package/esm/dnb-ui-extensions.min.mjs +5 -5
  704. package/esm/dnb-ui-lib.min.mjs +1 -1
  705. package/extensions/forms/DataContext/Context.d.ts +13 -9
  706. package/extensions/forms/DataContext/Context.js +1 -3
  707. package/extensions/forms/DataContext/Context.js.map +1 -1
  708. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  709. package/extensions/forms/DataContext/Provider/Provider.js +35 -22
  710. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  711. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  712. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  713. package/extensions/forms/DataContext/index.d.ts +3 -0
  714. package/extensions/forms/DataContext/index.js +5 -0
  715. package/extensions/forms/DataContext/index.js.map +1 -1
  716. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +11 -3
  717. package/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  718. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  719. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  720. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -13
  721. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  722. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  723. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  724. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  725. package/extensions/forms/Field/Date/Date.js +23 -6
  726. package/extensions/forms/Field/Date/Date.js.map +1 -1
  727. package/extensions/forms/Field/Email/Email.js +11 -8
  728. package/extensions/forms/Field/Email/Email.js.map +1 -1
  729. package/extensions/forms/Field/Expiry/Expiry.js +42 -34
  730. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  731. package/extensions/forms/Field/Name/Name.js +18 -13
  732. package/extensions/forms/Field/Name/Name.js.map +1 -1
  733. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  734. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  735. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  736. package/extensions/forms/Field/Number/Number.d.ts +4 -11
  737. package/extensions/forms/Field/Number/Number.js +15 -17
  738. package/extensions/forms/Field/Number/Number.js.map +1 -1
  739. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  740. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  741. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  742. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  743. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  744. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  745. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +63 -21
  746. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  747. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  748. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  749. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  750. package/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  751. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  752. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  753. package/extensions/forms/Field/Selection/Selection.js +38 -17
  754. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  755. package/extensions/forms/Field/Slider/Slider.js +38 -14
  756. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  757. package/extensions/forms/Field/String/String.d.ts +2 -9
  758. package/extensions/forms/Field/String/String.js +10 -13
  759. package/extensions/forms/Field/String/String.js.map +1 -1
  760. package/extensions/forms/Field/Toggle/Toggle.js +9 -2
  761. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  762. package/extensions/forms/Field/Upload/Upload.js +7 -9
  763. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  764. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  765. package/extensions/forms/FieldBlock/FieldBlock.js +36 -13
  766. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  767. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  768. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  769. package/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  770. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  771. package/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  772. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  773. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  774. package/extensions/forms/Form/Handler/Handler.js +1 -2
  775. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  776. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  777. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  778. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  779. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  780. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  781. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  782. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  783. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  784. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  785. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  786. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  787. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  788. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  789. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  790. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  791. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  792. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  793. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  794. package/extensions/forms/Iterate/Array/Array.js +55 -31
  795. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  796. package/extensions/forms/Tools/Log.js +2 -2
  797. package/extensions/forms/Tools/Log.js.map +1 -1
  798. package/extensions/forms/Value/Date/Date.d.ts +5 -0
  799. package/extensions/forms/Value/Date/Date.js +26 -14
  800. package/extensions/forms/Value/Date/Date.js.map +1 -1
  801. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  802. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  803. package/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  804. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  805. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  806. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  807. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +37 -40
  808. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  809. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  810. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  811. package/extensions/forms/constants/countries.js +20 -20
  812. package/extensions/forms/constants/countries.js.map +1 -1
  813. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  814. package/extensions/forms/constants/locales/en-GB.js +3 -2
  815. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  816. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  817. package/extensions/forms/constants/locales/index.d.ts +4 -2
  818. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  819. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  820. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  821. package/extensions/forms/hooks/index.d.ts +2 -1
  822. package/extensions/forms/hooks/index.js +1 -1
  823. package/extensions/forms/hooks/index.js.map +1 -1
  824. package/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  825. package/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  826. package/extensions/forms/hooks/useFieldProps.d.ts +8 -5
  827. package/extensions/forms/hooks/useFieldProps.js +177 -80
  828. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  829. package/extensions/forms/hooks/usePath.d.ts +3 -0
  830. package/extensions/forms/hooks/usePath.js +2 -1
  831. package/extensions/forms/hooks/usePath.js.map +1 -1
  832. package/extensions/forms/hooks/useProcessManager.js +1 -1
  833. package/extensions/forms/hooks/useProcessManager.js.map +1 -1
  834. package/extensions/forms/hooks/useTranslation.d.ts +4 -1
  835. package/extensions/forms/hooks/useTranslation.js +7 -4
  836. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  837. package/extensions/forms/hooks/useValueProps.d.ts +1 -1
  838. package/extensions/forms/hooks/useValueProps.js +2 -2
  839. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  840. package/extensions/forms/style/dnb-forms.css +7 -6
  841. package/extensions/forms/style/dnb-forms.min.css +1 -1
  842. package/extensions/forms/types.d.ts +61 -37
  843. package/extensions/forms/types.js +0 -13
  844. package/extensions/forms/types.js.map +1 -1
  845. package/extensions/forms/utils/FormError.d.ts +45 -0
  846. package/extensions/forms/utils/FormError.js +16 -0
  847. package/extensions/forms/utils/FormError.js.map +1 -0
  848. package/extensions/forms/utils/ajv.d.ts +17 -1
  849. package/extensions/forms/utils/ajv.js +77 -7
  850. package/extensions/forms/utils/ajv.js.map +1 -1
  851. package/extensions/forms/utils/errors.d.ts +1 -1
  852. package/extensions/forms/utils/errors.js.map +1 -1
  853. package/extensions/forms/utils/index.d.ts +2 -0
  854. package/extensions/forms/utils/index.js +2 -0
  855. package/extensions/forms/utils/index.js.map +1 -1
  856. package/fragments/drawer-list/DrawerList.js +1 -2
  857. package/fragments/drawer-list/DrawerList.js.map +1 -1
  858. package/fragments/drawer-list/DrawerListProvider.js +1 -2
  859. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  860. package/index.d.ts +2 -1
  861. package/index.js +2 -1
  862. package/index.js.map +1 -1
  863. package/package.json +2 -2
  864. package/shared/Context.d.ts +4 -4
  865. package/shared/Context.js.map +1 -1
  866. package/shared/Eufemia.d.ts +1 -1
  867. package/shared/Eufemia.js +2 -2
  868. package/shared/Eufemia.js.map +1 -1
  869. package/shared/component-helper.d.ts +2 -1
  870. package/shared/component-helper.js +2 -2
  871. package/shared/component-helper.js.map +1 -1
  872. package/shared/defaults.d.ts +1 -0
  873. package/shared/defaults.js +1 -0
  874. package/shared/defaults.js.map +1 -1
  875. package/shared/keycode.d.ts +75 -0
  876. package/shared/keycode.js +127 -0
  877. package/shared/keycode.js.map +1 -0
  878. package/shared/libs/Shortcuts.js +1 -2
  879. package/shared/libs/Shortcuts.js.map +1 -1
  880. package/shared/locales/nb-NO.js +2 -2
  881. package/shared/locales/nb-NO.js.map +1 -1
  882. package/shared/useTranslation.d.ts +11 -4
  883. package/shared/useTranslation.js +64 -22
  884. package/shared/useTranslation.js.map +1 -1
  885. package/style/core/scopes.scss +1 -1
  886. package/style/dnb-ui-basis.css +1 -1
  887. package/style/dnb-ui-basis.min.css +1 -1
  888. package/style/dnb-ui-body.css +1 -1
  889. package/style/dnb-ui-body.min.css +1 -1
  890. package/style/dnb-ui-components.css +1313 -186
  891. package/style/dnb-ui-components.min.css +3 -3
  892. package/style/dnb-ui-components.scss +2 -0
  893. package/style/dnb-ui-core.css +1 -1
  894. package/style/dnb-ui-core.min.css +1 -1
  895. package/style/dnb-ui-extensions.css +7 -6
  896. package/style/dnb-ui-extensions.min.css +1 -1
  897. package/style/dnb-ui-forms.css +7 -6
  898. package/style/dnb-ui-forms.min.css +1 -1
  899. package/style/themes/theme-eiendom/eiendom-theme-components.css +1308 -180
  900. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  901. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +7 -6
  902. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  903. package/style/themes/theme-eiendom/eiendom-theme-forms.css +7 -6
  904. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  905. package/style/themes/theme-sbanken/sbanken-theme-components.css +1308 -180
  906. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  907. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +7 -6
  908. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  909. package/style/themes/theme-sbanken/sbanken-theme-forms.css +7 -6
  910. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  911. package/style/themes/theme-ui/ui-theme-components.css +1308 -180
  912. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  913. package/style/themes/theme-ui/ui-theme-extensions.css +7 -6
  914. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  915. package/style/themes/theme-ui/ui-theme-forms.css +7 -6
  916. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  917. package/umd/dnb-ui-basis.min.js +1 -1
  918. package/umd/dnb-ui-components.min.js +1 -1
  919. package/umd/dnb-ui-elements.min.js +1 -1
  920. package/umd/dnb-ui-extensions.min.js +5 -5
  921. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Button","Icon","FormStatus","ProgressIndicator","P","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","images","UploadFileListCell","id","uploadFile","onDelete","loadingText","deleteButtonText","_div","_P","_FormStatus","errorMessage","isLoading","hasWarning","fileType","humanFileType","toUpperCase","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","rel","name","size","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","f","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\nimport P from '../../elements/P'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\nconst images = {\n pdf,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n const humanFileType = fileType.toUpperCase()\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType = images[mimeParts[0]] || images[mimeParts[1]]\n }\n\n if (!Object.prototype.hasOwnProperty.call(images, iconFileType)) {\n iconFileType = 'file'\n }\n\n return <Icon icon={images[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <a\n target=\"_blank\"\n href={imageUrl}\n className={classnames(\n 'dnb-anchor',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </a>\n <P\n className=\"dnb-upload__file-cell__subtitle\"\n size=\"x-small\"\n top=\"xx-small\"\n >\n {humanFileType}\n </P>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Button","Icon","FormStatus","ProgressIndicator","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","images","UploadFileListCell","id","uploadFile","onDelete","loadingText","deleteButtonText","_div","_FormStatus","errorMessage","isLoading","hasWarning","fileType","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","rel","name","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\nconst images = {\n pdf,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType = images[mimeParts[0]] || images[mimeParts[1]]\n }\n\n if (!Object.prototype.hasOwnProperty.call(images, iconFileType)) {\n iconFileType = 'file'\n }\n\n return <Icon icon={images[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <a\n target=\"_blank\"\n href={imageUrl}\n className={classnames(\n 'dnb-anchor',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </a>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
@@ -32,11 +32,11 @@ const UploadInfo = () => {
32
32
  const displayAcceptedFileFormatsListItem = isAcceptedFileTypeListOfStrings && prettifiedAcceptedFileFormats;
33
33
  const displayFileMaxSizeItem = isAcceptedFileTypeListOfStrings && fileMaxSize;
34
34
  const displayFilesAmountLimitItem = filesAmountLimit < defaultProps.filesAmountLimit;
35
- const displayAcceptedFileFormatsTable = isArrayOfObjects(acceptedFileTypes);
35
+ const displayAcceptedFileFormatsTable = !displayAcceptedFileFormatsListItem && isArrayOfObjects(acceptedFileTypes);
36
36
  const displayDl = displayAcceptedFileFormatsListItem || displayFileMaxSizeItem || displayFilesAmountLimitItem;
37
- return React.createElement(React.Fragment, null, React.createElement(Lead, {
37
+ return React.createElement(React.Fragment, null, title && React.createElement(Lead, {
38
38
  space: "0"
39
- }, title), React.createElement(P, {
39
+ }, title), text && React.createElement(P, {
40
40
  top: "xx-small",
41
41
  className: "dnb-upload__text"
42
42
  }, text), children, displayDl && React.createElement(Dl, {
@@ -1 +1 @@
1
- {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","isArrayOfObjects","isArrayOfStrings","Table","Tr","Th","Td","prettifyAcceptedFileFormats","acceptedFileTypes","sort","join","toUpperCase","UploadInfo","context","useContext","title","text","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","isAcceptedFileTypeListOfStrings","displayAcceptedFileFormatsListItem","displayFileMaxSizeItem","displayFilesAmountLimitItem","displayAcceptedFileFormatsTable","displayDl","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString","_UploadInfoAcceptedFi","UploadInfoAcceptedFileTypesTable","fileTypeTableCaption","groupByFileMaxSize","fallBackFileMaxSize","fileMaxSizeIsFalseOrZero","group","forEach","item","itemFileMaxSize","groupName","push","acceptedFileTypesGroupedByFileMaxSize","border","size","variant","cellSpacing","Object","keys","a","b","Number","map","key","acceptedFileTypesObj","fileType"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\nimport { isArrayOfObjects, isArrayOfStrings } from './UploadVerify'\nimport Table from '../Table'\nimport Tr from '../table/TableTr'\nimport Th from '../table/TableTh'\nimport Td from '../table/TableTd'\nimport { UploadAcceptedFileTypeObject, UploadProps } from './types'\n\nconst prettifyAcceptedFileFormats = (acceptedFileTypes) =>\n acceptedFileTypes.sort().join(', ').toUpperCase()\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats =\n prettifyAcceptedFileFormats(acceptedFileTypes)\n\n const isAcceptedFileTypeListOfStrings =\n isArrayOfStrings(acceptedFileTypes)\n\n const displayAcceptedFileFormatsListItem =\n isAcceptedFileTypeListOfStrings && prettifiedAcceptedFileFormats\n\n const displayFileMaxSizeItem =\n isAcceptedFileTypeListOfStrings && fileMaxSize\n\n const displayFilesAmountLimitItem =\n filesAmountLimit < defaultProps.filesAmountLimit\n\n const displayAcceptedFileFormatsTable =\n isArrayOfObjects(acceptedFileTypes)\n\n const displayDl =\n displayAcceptedFileFormatsListItem ||\n displayFileMaxSizeItem ||\n displayFilesAmountLimitItem\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n {children}\n\n {displayDl && (\n <Dl top=\"small\" bottom={0} layout=\"horizontal\">\n {displayAcceptedFileFormatsListItem && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n {displayFileMaxSizeItem && (\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n )}\n\n {displayFilesAmountLimitItem && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n )}\n {displayAcceptedFileFormatsTable && (\n <UploadInfoAcceptedFileTypesTable />\n )}\n </>\n )\n}\n\nfunction UploadInfoAcceptedFileTypesTable() {\n const context = React.useContext(UploadContext)\n\n const {\n acceptedFileTypes,\n fileTypeTableCaption,\n fileTypeDescription,\n fileSizeDescription,\n fileSizeContent,\n fileMaxSize,\n } = context\n\n const groupByFileMaxSize = (\n acceptedFileTypes: UploadProps['acceptedFileTypes'],\n fallBackFileMaxSize: UploadProps['fileMaxSize']\n ) => {\n const fileMaxSizeIsFalseOrZero = (\n fileMaxSize: UploadProps['fileMaxSize']\n ) => {\n return fileMaxSize === false || fileMaxSize === 0\n }\n\n const group = {}\n acceptedFileTypes.forEach((item) => {\n const itemFileMaxSize = item.fileMaxSize\n const groupName = itemFileMaxSize\n ? itemFileMaxSize\n : fileMaxSizeIsFalseOrZero(itemFileMaxSize)\n ? 0\n : fileMaxSizeIsFalseOrZero(fallBackFileMaxSize)\n ? 0\n : fallBackFileMaxSize\n\n group[groupName] = group[groupName] || []\n group[groupName].push(item)\n })\n\n return group\n }\n\n const acceptedFileTypesGroupedByFileMaxSize = groupByFileMaxSize(\n acceptedFileTypes,\n fileMaxSize\n )\n\n return (\n <Table\n border\n className=\"dnb-upload__accepted-file-types-table\"\n size=\"small\"\n >\n <caption className=\"dnb-sr-only\">{fileTypeTableCaption}</caption>\n <thead>\n <Tr variant=\"odd\" cellSpacing={0}>\n <Th>{fileTypeDescription}</Th>\n <Th>{fileSizeDescription}</Th>\n </Tr>\n </thead>\n <tbody>\n {Object.keys(acceptedFileTypesGroupedByFileMaxSize)\n .sort((a, b) => Number(b) - Number(a))\n .map((key) => {\n return (\n <Tr variant=\"odd\" key={key}>\n <Td>\n {prettifyAcceptedFileFormats(\n acceptedFileTypesGroupedByFileMaxSize[key].map(\n (\n acceptedFileTypesObj: UploadAcceptedFileTypeObject\n ) => acceptedFileTypesObj.fileType\n )\n )}\n </Td>\n <Td>\n {key !== '0' &&\n String(fileSizeContent).replace(\n '%size',\n format(key).toString()\n )}\n </Td>\n </Tr>\n )\n })}\n </tbody>\n </Table>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","isArrayOfObjects","isArrayOfStrings","Table","Tr","Th","Td","prettifyAcceptedFileFormats","acceptedFileTypes","sort","join","toUpperCase","UploadInfo","context","useContext","title","text","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","isAcceptedFileTypeListOfStrings","displayAcceptedFileFormatsListItem","displayFileMaxSizeItem","displayFilesAmountLimitItem","displayAcceptedFileFormatsTable","displayDl","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString","_UploadInfoAcceptedFi","UploadInfoAcceptedFileTypesTable","fileTypeTableCaption","groupByFileMaxSize","fallBackFileMaxSize","fileMaxSizeIsFalseOrZero","group","forEach","item","itemFileMaxSize","groupName","push","acceptedFileTypesGroupedByFileMaxSize","border","size","variant","cellSpacing","Object","keys","a","b","Number","map","key","acceptedFileTypesObj","fileType"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\nimport { isArrayOfObjects, isArrayOfStrings } from './UploadVerify'\nimport Table from '../Table'\nimport Tr from '../table/TableTr'\nimport Th from '../table/TableTh'\nimport Td from '../table/TableTd'\nimport { UploadAcceptedFileTypeObject, UploadProps } from './types'\n\nconst prettifyAcceptedFileFormats = (acceptedFileTypes) =>\n acceptedFileTypes.sort().join(', ').toUpperCase()\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats =\n prettifyAcceptedFileFormats(acceptedFileTypes)\n\n const isAcceptedFileTypeListOfStrings =\n isArrayOfStrings(acceptedFileTypes)\n\n const displayAcceptedFileFormatsListItem =\n isAcceptedFileTypeListOfStrings && prettifiedAcceptedFileFormats\n\n const displayFileMaxSizeItem =\n isAcceptedFileTypeListOfStrings && fileMaxSize\n\n const displayFilesAmountLimitItem =\n filesAmountLimit < defaultProps.filesAmountLimit\n\n const displayAcceptedFileFormatsTable =\n !displayAcceptedFileFormatsListItem &&\n isArrayOfObjects(acceptedFileTypes)\n\n const displayDl =\n displayAcceptedFileFormatsListItem ||\n displayFileMaxSizeItem ||\n displayFilesAmountLimitItem\n\n return (\n <>\n {title && <Lead space=\"0\">{title}</Lead>}\n\n {text && (\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n )}\n\n {children}\n\n {displayDl && (\n <Dl top=\"small\" bottom={0} layout=\"horizontal\">\n {displayAcceptedFileFormatsListItem && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n {displayFileMaxSizeItem && (\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n )}\n\n {displayFilesAmountLimitItem && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n )}\n {displayAcceptedFileFormatsTable && (\n <UploadInfoAcceptedFileTypesTable />\n )}\n </>\n )\n}\n\nfunction UploadInfoAcceptedFileTypesTable() {\n const context = React.useContext(UploadContext)\n\n const {\n acceptedFileTypes,\n fileTypeTableCaption,\n fileTypeDescription,\n fileSizeDescription,\n fileSizeContent,\n fileMaxSize,\n } = context\n\n const groupByFileMaxSize = (\n acceptedFileTypes: UploadProps['acceptedFileTypes'],\n fallBackFileMaxSize: UploadProps['fileMaxSize']\n ) => {\n const fileMaxSizeIsFalseOrZero = (\n fileMaxSize: UploadProps['fileMaxSize']\n ) => {\n return fileMaxSize === false || fileMaxSize === 0\n }\n\n const group = {}\n acceptedFileTypes.forEach((item) => {\n const itemFileMaxSize = item.fileMaxSize\n const groupName = itemFileMaxSize\n ? itemFileMaxSize\n : fileMaxSizeIsFalseOrZero(itemFileMaxSize)\n ? 0\n : fileMaxSizeIsFalseOrZero(fallBackFileMaxSize)\n ? 0\n : fallBackFileMaxSize\n\n group[groupName] = group[groupName] || []\n group[groupName].push(item)\n })\n\n return group\n }\n\n const acceptedFileTypesGroupedByFileMaxSize = groupByFileMaxSize(\n acceptedFileTypes,\n fileMaxSize\n )\n\n return (\n <Table\n border\n className=\"dnb-upload__accepted-file-types-table\"\n size=\"small\"\n >\n <caption className=\"dnb-sr-only\">{fileTypeTableCaption}</caption>\n <thead>\n <Tr variant=\"odd\" cellSpacing={0}>\n <Th>{fileTypeDescription}</Th>\n <Th>{fileSizeDescription}</Th>\n </Tr>\n </thead>\n <tbody>\n {Object.keys(acceptedFileTypesGroupedByFileMaxSize)\n .sort((a, b) => Number(b) - Number(a))\n .map((key) => {\n return (\n <Tr variant=\"odd\" key={key}>\n <Td>\n {prettifyAcceptedFileFormats(\n acceptedFileTypesGroupedByFileMaxSize[key].map(\n (\n acceptedFileTypesObj: UploadAcceptedFileTypeObject\n ) => acceptedFileTypesObj.fileType\n )\n )}\n </Td>\n <Td>\n {key !== '0' &&\n String(fileSizeContent).replace(\n '%size',\n format(key).toString()\n )}\n </Td>\n </Tr>\n )\n })}\n </tbody>\n </Table>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"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"}
@@ -22,7 +22,7 @@ export function verifyFiles(files, context) {
22
22
  } else if (isArrayOfObjects(acceptedFileTypes)) {
23
23
  const fileType = getFileType(file, getAcceptedFileTypesAsListOfStrings(acceptedFileTypes));
24
24
  const acceptedFileTypeObj = acceptedFileTypes.find(item => {
25
- return item.fileType === fileType;
25
+ return item.fileType.toLowerCase() === fileType.toLowerCase();
26
26
  });
27
27
  return validateFileSize(file.size, acceptedFileTypeObj.fileMaxSize !== undefined ? acceptedFileTypeObj.fileMaxSize : fileMaxSize);
28
28
  }
@@ -35,7 +35,7 @@ export function verifyFiles(files, context) {
35
35
  const listOfAcceptedFilesTypes = getAcceptedFileTypesAsListOfStrings(acceptedFileTypes);
36
36
  const fileType = getFileType(file, listOfAcceptedFilesTypes);
37
37
  const foundType = extendWithAbbreviation(listOfAcceptedFilesTypes).some(type => {
38
- return fileType.includes(type);
38
+ return fileType.toLowerCase().includes(type.toLowerCase());
39
39
  });
40
40
  return !foundType ? errorUnsupportedFile : null;
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","getFileType","file","listOfAcceptedFilesTypes","hasPreferredMimeType","type","getFileTypeFromExtension","handleSize","validateFileSize","fileSize","maxFileSize","String","replace","toString","isArrayOfStrings","length","size","isArrayOfObjects","fileType","getAcceptedFileTypesAsListOfStrings","acceptedFileTypeObj","find","item","undefined","handleType","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","obj","arr","Array","isArray","every","i","abbreviations","jpg","list","Object","entries","forEach","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n UploadAcceptedFileTypesWithFileMaxSize,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const getFileType = (\n file: File,\n listOfAcceptedFilesTypes: UploadAcceptedFileTypes\n ) => {\n return hasPreferredMimeType(listOfAcceptedFilesTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n }\n\n const handleSize = (file: File) => {\n const validateFileSize = (\n fileSize: number,\n maxFileSize: number | false\n ) => {\n if (\n maxFileSize &&\n // Converts from b (binary) to MB (decimal)\n fileSize / BYTES_IN_A_MEGA_BYTE > maxFileSize\n ) {\n return String(errorLargeFile).replace(\n '%size',\n format(maxFileSize).toString()\n )\n }\n return null\n }\n\n if (\n isArrayOfStrings(acceptedFileTypes) ||\n acceptedFileTypes.length === 0 ||\n !acceptedFileTypes\n ) {\n return validateFileSize(file.size, fileMaxSize)\n } else if (isArrayOfObjects(acceptedFileTypes)) {\n const fileType = getFileType(\n file,\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n\n const acceptedFileTypeObj = (\n acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize\n ).find((item) => {\n return item.fileType === fileType\n })\n\n return validateFileSize(\n file.size,\n acceptedFileTypeObj.fileMaxSize !== undefined\n ? acceptedFileTypeObj.fileMaxSize\n : fileMaxSize\n )\n }\n return null\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n\n const listOfAcceptedFilesTypes =\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n const fileType = getFileType(file, listOfAcceptedFilesTypes)\n const foundType = extendWithAbbreviation(\n listOfAcceptedFilesTypes\n ).some((type) => {\n /**\n * \"file.type\" can be e.g. \"image/png\"\n */\n return fileType.includes(type)\n })\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return extendWithAbbreviation(\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nfunction getAcceptedFileTypesAsListOfStrings(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return isArrayOfStrings(acceptedFileTypes)\n ? (acceptedFileTypes as UploadAcceptedFileTypes)\n : (acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize).map(\n (obj) => obj.fileType\n )\n}\n\nexport function isArrayOfStrings(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'string')\n )\n}\n\nexport function isArrayOfObjects(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'object')\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","getFileType","file","listOfAcceptedFilesTypes","hasPreferredMimeType","type","getFileTypeFromExtension","handleSize","validateFileSize","fileSize","maxFileSize","String","replace","toString","isArrayOfStrings","length","size","isArrayOfObjects","fileType","getAcceptedFileTypesAsListOfStrings","acceptedFileTypeObj","find","item","toLowerCase","undefined","handleType","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","errorMessage","name","getAcceptedFileTypes","join","split","obj","arr","Array","isArray","every","i","abbreviations","jpg","list","Object","entries","forEach","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n UploadAcceptedFileTypesWithFileMaxSize,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const getFileType = (\n file: File,\n listOfAcceptedFilesTypes: UploadAcceptedFileTypes\n ) => {\n return hasPreferredMimeType(listOfAcceptedFilesTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n }\n\n const handleSize = (file: File) => {\n const validateFileSize = (\n fileSize: number,\n maxFileSize: number | false\n ) => {\n if (\n maxFileSize &&\n // Converts from b (binary) to MB (decimal)\n fileSize / BYTES_IN_A_MEGA_BYTE > maxFileSize\n ) {\n return String(errorLargeFile).replace(\n '%size',\n format(maxFileSize).toString()\n )\n }\n return null\n }\n\n if (\n isArrayOfStrings(acceptedFileTypes) ||\n acceptedFileTypes.length === 0 ||\n !acceptedFileTypes\n ) {\n return validateFileSize(file.size, fileMaxSize)\n } else if (isArrayOfObjects(acceptedFileTypes)) {\n const fileType = getFileType(\n file,\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n\n const acceptedFileTypeObj = (\n acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize\n ).find((item) => {\n return item.fileType.toLowerCase() === fileType.toLowerCase()\n })\n\n return validateFileSize(\n file.size,\n acceptedFileTypeObj.fileMaxSize !== undefined\n ? acceptedFileTypeObj.fileMaxSize\n : fileMaxSize\n )\n }\n return null\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n\n const listOfAcceptedFilesTypes =\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n const fileType = getFileType(file, listOfAcceptedFilesTypes)\n const foundType = extendWithAbbreviation(\n listOfAcceptedFilesTypes\n ).some((type) => {\n /**\n * \"file.type\" can be e.g. \"image/png\"\n */\n return fileType.toLowerCase().includes(type.toLowerCase())\n })\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return extendWithAbbreviation(\n getAcceptedFileTypesAsListOfStrings(acceptedFileTypes)\n )\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nfunction getAcceptedFileTypesAsListOfStrings(\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n) {\n return isArrayOfStrings(acceptedFileTypes)\n ? (acceptedFileTypes as UploadAcceptedFileTypes)\n : (acceptedFileTypes as UploadAcceptedFileTypesWithFileMaxSize).map(\n (obj) => obj.fileType\n )\n}\n\nexport function isArrayOfStrings(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'string')\n )\n}\n\nexport function isArrayOfObjects(arr) {\n return (\n Array.isArray(arr) &&\n arr.length > 0 &&\n arr.every((i) => typeof i === 'object')\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { Ajv } from '../utils/ajv';
3
- import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps, OnChange, OnSubmitParams } from '../types';
2
+ import { Ajv, FormError } from '../utils';
3
+ import { AllJSONSchemaVersions, GlobalErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, ValueProps, OnChange, OnSubmitParams } from '../types';
4
4
  import { Props as ProviderProps } from './Provider';
5
5
  import { SnapshotName } from '../Form/Snapshot';
6
6
  export type MountState = {
@@ -31,6 +31,8 @@ export type FilterDataHandlerParameters = FilterDataPathConditionParameters & {
31
31
  export type FilterDataPathCondition<Data = unknown> = (parameters: FilterDataPathConditionParameters<Data>) => boolean | undefined;
32
32
  export type FilterDataPathConditionParameters<Data = unknown> = {
33
33
  value: unknown;
34
+ displayValue: undefined | React.ReactNode | Array<React.ReactNode>;
35
+ label: React.ReactNode;
34
36
  props: FieldProps;
35
37
  data: Data;
36
38
  internal: {
@@ -54,7 +56,7 @@ export interface ContextState {
54
56
  data: any;
55
57
  internalDataRef?: React.MutableRefObject<any>;
56
58
  /** Should the form validate data before submitting? */
57
- errors?: Record<string, Error>;
59
+ errors?: Record<Path, Error>;
58
60
  /** Will set autoComplete="on" on each nested Field.String and Field.Number */
59
61
  autoComplete?: boolean;
60
62
  handlePathChange: (path: Path, value?: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
@@ -74,8 +76,8 @@ export interface ContextState {
74
76
  hasErrors: () => boolean;
75
77
  hasFieldState: (state: SubmitState) => boolean;
76
78
  hasFieldError: (path: Path) => boolean;
77
- setFieldState: (path: Path, fieldState: SubmitState) => void;
78
- setFieldError: (path: Path, error: Error | FormError) => void;
79
+ setFieldState?: (path: Path, fieldState: SubmitState) => void;
80
+ setFieldError?: (path: Path, error: Error | FormError) => void;
79
81
  setMountedFieldState: (path: Path, options: MountState) => void;
80
82
  setFormState?: (state: SubmitState, options?: {
81
83
  keepPending?: boolean;
@@ -89,7 +91,7 @@ export interface ContextState {
89
91
  skipErrorCheck?: boolean;
90
92
  }) => Promise<EventStateObject | undefined>;
91
93
  getSubmitData?: () => unknown;
92
- getSubmitOptions?: () => OnSubmitParams;
94
+ getSubmitParams?: () => OnSubmitParams;
93
95
  setFieldEventListener?: (path: EventListenerCall['path'], type: EventListenerCall['type'], callback: EventListenerCall['callback']) => void;
94
96
  setVisibleError?: (path: Path, hasError: boolean) => void;
95
97
  setFieldProps?: (path: Path, props: unknown) => void;
@@ -99,18 +101,20 @@ export interface ContextState {
99
101
  }) => void;
100
102
  setFieldConnection?: (path: Path, connections: FieldConnections) => void;
101
103
  isEmptyDataRef?: React.MutableRefObject<boolean>;
102
- fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>;
103
- valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>;
104
+ fieldDisplayValueRef?: React.MutableRefObject<Record<Path, React.ReactNode>>;
105
+ fieldPropsRef?: React.MutableRefObject<Record<Path, FieldProps>>;
106
+ valuePropsRef?: React.MutableRefObject<Record<Path, ValueProps>>;
104
107
  fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>;
105
108
  mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>;
106
109
  snapshotsRef?: React.MutableRefObject<Map<SnapshotName, Map<Path, unknown>>>;
110
+ existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>;
107
111
  formElementRef?: React.MutableRefObject<HTMLFormElement>;
108
112
  fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>;
109
113
  showAllErrors: boolean;
110
114
  hasVisibleError: boolean;
111
115
  formState: SubmitState;
112
116
  ajvInstance: Ajv;
113
- contextErrorMessages: CustomErrorMessagesWithPaths;
117
+ contextErrorMessages: GlobalErrorMessagesWithPaths;
114
118
  schema: AllJSONSchemaVersions;
115
119
  path?: Path;
116
120
  disabled?: boolean;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { makeAjvInstance } from '../utils/ajv';
2
+ import { makeAjvInstance } from '../utils';
3
3
  export const defaultContextState = {
4
4
  hasContext: false,
5
5
  data: undefined,
@@ -23,8 +23,6 @@ export const defaultContextState = {
23
23
  hasErrors: () => false,
24
24
  hasFieldState: () => false,
25
25
  hasFieldError: () => false,
26
- setFieldState: () => null,
27
- setFieldError: () => null,
28
26
  ajvInstance: makeAjvInstance(),
29
27
  contextErrorMessages: undefined,
30
28
  isInsideFormElement: false,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitOptions?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: unknown) => void\n setValueProps?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAsLnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE3B,eAAe,CAAC,CAAC;EAC9B4B,oBAAoB,EAAExB,SAAS;EAC/ByB,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGhC,KAAK,CAACiC,aAAa,CAAe/B,mBAAmB,CAAC;AAEtE,eAAe8B,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: unknown) => void\n setValueProps?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, React.ReactNode>\n >\n fieldPropsRef?: React.MutableRefObject<Record<Path, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<Path, ValueProps>>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyBC,eAAe,QAAQ,UAAU;AA2L1D,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG9B,KAAK,CAAC+B,aAAa,CAAe7B,mBAAmB,CAAC;AAEtE,eAAe4B,OAAO"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { JsonObject } from '../../utils/json-pointer';
3
- import { Ajv } from '../../utils/ajv';
4
- import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject } from '../../types';
3
+ import { Ajv } from '../../utils';
4
+ import { GlobalErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject } from '../../types';
5
5
  import type { IsolationProviderProps } from '../../Form/Isolation/Isolation';
6
6
  import { ContextProps } from '../../../../shared/Context';
7
7
  import { ContextState, FilterData, FilterDataHandler, TransformData, VisibleDataHandler } from '../Context';
@@ -48,7 +48,7 @@ export interface Props<Data extends JsonObject> extends IsolationProviderProps<D
48
48
  /**
49
49
  * Custom error messages for the whole data set
50
50
  */
51
- errorMessages?: CustomErrorMessagesWithPaths;
51
+ errorMessages?: GlobalErrorMessagesWithPaths;
52
52
  /**
53
53
  * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.
54
54
  */
@@ -7,14 +7,15 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
9
9
  import pointer from '../../utils/json-pointer';
10
- import { makeAjvInstance, ajvErrorsToFormErrors } from '../../utils/ajv';
10
+ import { makeAjvInstance, ajvErrorsToFormErrors } from '../../utils';
11
11
  import { debounce } from '../../../../shared/helpers';
12
12
  import FieldPropsProvider from '../../Field/Provider';
13
13
  import useUpdateEffect from '../../../../shared/helpers/useUpdateEffect';
14
14
  import { isAsync } from '../../../../shared/helpers/isAsync';
15
15
  import { useSharedState } from '../../../../shared/helpers/useSharedState';
16
+ import SharedContext from '../../../../shared/Context';
16
17
  import useTranslation from '../../hooks/useTranslation';
17
- import Context from '../Context';
18
+ import DataContext from '../Context';
18
19
  import structuredClone from '@ungap/structured-clone';
19
20
  const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
20
21
  const isArrayJsonPointer = /^\/\d+(\/|$)/;
@@ -46,7 +47,7 @@ export default function Provider(props) {
46
47
  locale,
47
48
  translations,
48
49
  required,
49
- errorMessages: contextErrorMessages,
50
+ errorMessages,
50
51
  isolate,
51
52
  children
52
53
  } = props,
@@ -56,18 +57,19 @@ export default function Provider(props) {
56
57
  }
57
58
  const {
58
59
  hasContext
59
- } = useContext(Context) || {};
60
+ } = useContext(DataContext) || {};
60
61
  if (hasContext && !isolate) {
61
62
  throw new Error('DataContext (Form.Handler) can not be nested');
62
63
  }
63
64
  const formElementRef = useRef(null);
65
+ const {
66
+ locale: sharedLocale
67
+ } = useContext(SharedContext) || {};
64
68
  const translation = useTranslation().Field;
65
69
  const ajvRef = useRef(makeAjvInstance(ajvInstance));
66
70
  const mountedFieldsRef = useRef({});
67
- const snapshotsRef = useRef();
68
- if (!snapshotsRef.current) {
69
- snapshotsRef.current = new Map();
70
- }
71
+ const snapshotsRef = useRef(new Map());
72
+ const existingFieldsRef = useRef(new Map());
71
73
  const hasVisibleErrorRef = useRef({});
72
74
  const errorsRef = useRef();
73
75
  const showAllErrorsRef = useRef(false);
@@ -164,7 +166,7 @@ export default function Provider(props) {
164
166
  forceUpdate();
165
167
  }
166
168
  }, []);
167
- const mutateDataHandler = useCallback((data, filter, remove = false) => {
169
+ const mutateDataHandler = useCallback((data, handler, remove = false) => {
168
170
  const mutate = (path, result) => {
169
171
  if (remove) {
170
172
  if (result === false) {
@@ -178,18 +180,21 @@ export default function Provider(props) {
178
180
  }
179
181
  }
180
182
  };
181
- if (typeof filter === 'function') {
183
+ if (typeof handler === 'function') {
182
184
  Object.entries(fieldPropsRef.current).forEach(([path, props]) => {
183
185
  const exists = pointer.has(data, path);
184
186
  if (exists) {
185
187
  var _fieldErrorRef$curren;
186
188
  const value = pointer.get(data, path);
189
+ const displayValue = fieldDisplayValueRef.current[path];
187
190
  const internal = {
188
191
  error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
189
192
  };
190
- const result = filter({
193
+ const result = handler({
191
194
  path,
192
195
  value,
196
+ displayValue,
197
+ label: props.label,
193
198
  data: internalDataRef.current,
194
199
  props,
195
200
  internal
@@ -198,16 +203,16 @@ export default function Provider(props) {
198
203
  }
199
204
  });
200
205
  return data;
201
- } else if (filter) {
206
+ } else if (handler) {
202
207
  const runFilter = ({
203
208
  path,
204
209
  condition
205
210
  }) => {
206
211
  const exists = pointer.has(data, path);
207
212
  if (exists) {
208
- var _fieldPropsRef$curren, _fieldErrorRef$curren2;
213
+ var _fieldErrorRef$curren2;
209
214
  const value = pointer.get(data, path);
210
- const props = (_fieldPropsRef$curren = fieldPropsRef.current) === null || _fieldPropsRef$curren === void 0 ? void 0 : _fieldPropsRef$curren[path];
215
+ const props = fieldPropsRef.current[path];
211
216
  const internal = {
212
217
  error: (_fieldErrorRef$curren2 = fieldErrorRef.current) === null || _fieldErrorRef$curren2 === void 0 ? void 0 : _fieldErrorRef$curren2[path]
213
218
  };
@@ -221,7 +226,7 @@ export default function Provider(props) {
221
226
  }
222
227
  };
223
228
  const wildcardPaths = [];
224
- Object.entries(filter).forEach(([path, condition]) => {
229
+ Object.entries(handler).forEach(([path, condition]) => {
225
230
  if (path.includes('*')) {
226
231
  const parts = path.split(/\/\*/g);
227
232
  const exists = pointer.has(data, parts[0]);
@@ -284,6 +289,7 @@ export default function Provider(props) {
284
289
  const filterData = useCallback((filter, data = internalDataRef.current) => {
285
290
  return filterDataHandler(data, filter);
286
291
  }, [filterDataHandler]);
292
+ const fieldDisplayValueRef = useRef({});
287
293
  const fieldConnectionsRef = useRef({});
288
294
  const setFieldConnection = useCallback((path, connections) => {
289
295
  fieldConnectionsRef.current[path] = connections;
@@ -627,14 +633,18 @@ export default function Provider(props) {
627
633
  const filteredData = filterSubmitData ? filterDataHandler(mutatedData, filterSubmitData) : mutatedData;
628
634
  return filteredData;
629
635
  }, [filterDataHandler, filterSubmitData, mutateDataHandler, transformOut]);
630
- const getSubmitOptions = useCallback(() => {
636
+ const getSubmitParams = useCallback(() => {
631
637
  const reduceToVisibleFields = (data, options) => {
632
638
  return visibleDataHandler(transformOut ? mutateDataHandler(data, transformOut) : data, options);
633
639
  };
640
+ const transformData = (data, handler) => {
641
+ return mutateDataHandler(data, handler);
642
+ };
634
643
  const formElement = formElementRef.current;
635
- const options = {
644
+ const params = {
636
645
  filterData,
637
646
  reduceToVisibleFields,
647
+ transformData,
638
648
  resetForm: () => {
639
649
  var _formElement$reset;
640
650
  formElement === null || formElement === void 0 ? void 0 : (_formElement$reset = formElement.reset) === null || _formElement$reset === void 0 ? void 0 : _formElement$reset.call(formElement);
@@ -647,7 +657,7 @@ export default function Provider(props) {
647
657
  },
648
658
  clearData
649
659
  };
650
- return options;
660
+ return params;
651
661
  }, [clearData, filterData, mutateDataHandler, sessionStorageId, transformOut, visibleDataHandler]);
652
662
  const handleSubmit = useCallback(async () => {
653
663
  return await handleSubmitCall({
@@ -657,7 +667,7 @@ export default function Provider(props) {
657
667
  return;
658
668
  }
659
669
  const data = getSubmitData();
660
- const options = getSubmitOptions();
670
+ const options = getSubmitParams();
661
671
  let result = undefined;
662
672
  if (isAsync(onSubmit)) {
663
673
  result = await onSubmit(data, options);
@@ -674,7 +684,7 @@ export default function Provider(props) {
674
684
  return result;
675
685
  }
676
686
  });
677
- }, [getSubmitData, getSubmitOptions, handleSubmitCall, handleSubmitListeners, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit]);
687
+ }, [getSubmitData, getSubmitParams, handleSubmitCall, handleSubmitListeners, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit]);
678
688
  const fieldEventListenersRef = useRef([]);
679
689
  const setFieldEventListener = useCallback((path, type, callback) => {
680
690
  fieldEventListenersRef.current = fieldEventListenersRef.current.filter(({
@@ -732,6 +742,7 @@ export default function Provider(props) {
732
742
  });
733
743
  const submitState = submitStateRef.current;
734
744
  const disabled = typeof (rest === null || rest === void 0 ? void 0 : rest['disabled']) === 'boolean' ? rest === null || rest === void 0 ? void 0 : rest['disabled'] : formState === 'pending' === true ? true : undefined;
745
+ const contextErrorMessages = (errorMessages === null || errorMessages === void 0 ? void 0 : errorMessages[locale !== null && locale !== void 0 ? locale : sharedLocale]) || errorMessages;
735
746
  const contextValue = _objectSpread({
736
747
  handlePathChange,
737
748
  handlePathChangeUnvalidated,
@@ -758,7 +769,7 @@ export default function Provider(props) {
758
769
  visibleDataHandler,
759
770
  filterDataHandler,
760
771
  getSubmitData,
761
- getSubmitOptions,
772
+ getSubmitParams,
762
773
  addOnChangeHandler,
763
774
  setHandleSubmit,
764
775
  scrollToTop,
@@ -773,10 +784,12 @@ export default function Provider(props) {
773
784
  showAllErrors: showAllErrorsRef.current,
774
785
  hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,
775
786
  fieldConnectionsRef,
787
+ fieldDisplayValueRef,
776
788
  fieldPropsRef,
777
789
  valuePropsRef,
778
790
  mountedFieldsRef,
779
791
  snapshotsRef,
792
+ existingFieldsRef,
780
793
  formElementRef,
781
794
  isEmptyDataRef,
782
795
  fieldErrorRef,
@@ -789,7 +802,7 @@ export default function Provider(props) {
789
802
  if (id) {
790
803
  sharedDataContext.set(contextValue);
791
804
  }
792
- return React.createElement(Context.Provider, {
805
+ return React.createElement(DataContext.Provider, {
793
806
  value: contextValue
794
807
  }, React.createElement(FieldPropsProvider, {
795
808
  FormStatus: globalStatusId ? {