@dnb/eufemia 10.75.0 → 10.75.2

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 (379) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cjs/components/dropdown/Dropdown.js +1 -1
  3. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  4. package/cjs/components/toggle-button/ToggleButton.d.ts +1 -1
  5. package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -1
  6. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  7. package/cjs/components/upload/Upload.js +5 -2
  8. package/cjs/components/upload/Upload.js.map +1 -1
  9. package/cjs/components/upload/UploadFileInput.d.ts +2 -1
  10. package/cjs/components/upload/UploadFileInput.js +7 -4
  11. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  12. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
  13. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  14. package/cjs/extensions/forms/DataContext/Provider/Provider.js +42 -16
  15. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  16. package/cjs/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
  17. package/cjs/extensions/forms/DataContext/Provider/useEventListener.js +29 -0
  18. package/cjs/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
  19. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +8 -2
  20. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
  21. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +8 -2
  22. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  23. package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
  24. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  25. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +8 -2
  26. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  27. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +8 -2
  28. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  29. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  30. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  31. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +9 -0
  32. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  33. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  34. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
  35. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/String/StringDocs.js +7 -7
  37. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  38. package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
  39. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  40. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  41. package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
  42. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
  44. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  45. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  46. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  47. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  48. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
  49. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
  50. package/cjs/extensions/forms/Form/Isolation/Isolation.js +2 -3
  51. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  52. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
  53. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +20 -4
  54. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
  55. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
  56. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
  57. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +24 -10
  58. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
  59. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
  60. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
  61. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
  62. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
  63. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -2
  64. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
  65. package/cjs/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
  66. package/cjs/extensions/forms/Form/Isolation/useReportError.js +22 -7
  67. package/cjs/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
  68. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
  69. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  70. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
  71. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  72. package/cjs/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
  73. package/cjs/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
  74. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
  75. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
  76. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  77. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  78. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  79. package/cjs/extensions/forms/Tools/Errors.d.ts +5 -0
  80. package/cjs/extensions/forms/Tools/Errors.js +46 -0
  81. package/cjs/extensions/forms/Tools/Errors.js.map +1 -0
  82. package/cjs/extensions/forms/Tools/index.d.ts +1 -0
  83. package/cjs/extensions/forms/Tools/index.js +7 -0
  84. package/cjs/extensions/forms/Tools/index.js.map +1 -1
  85. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
  86. package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
  87. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
  88. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  89. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
  90. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  91. package/cjs/extensions/forms/Wizard/Step/Step.js +1 -1
  92. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  93. package/cjs/extensions/forms/Wizard/hooks/useStep.js +13 -5
  94. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  95. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
  96. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  97. package/cjs/extensions/forms/hooks/useFieldProps.js +17 -10
  98. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  99. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
  100. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
  101. package/cjs/extensions/payment-card/icons/providers/BankAxept.js +2 -2
  102. package/cjs/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
  103. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
  104. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
  105. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
  106. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
  107. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
  108. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
  109. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
  110. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
  111. package/cjs/fragments/drawer-list/DrawerListHelpers.js +2 -1
  112. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  113. package/cjs/shared/Eufemia.d.ts +1 -1
  114. package/cjs/shared/Eufemia.js +2 -2
  115. package/cjs/shared/Eufemia.js.map +1 -1
  116. package/cjs/style/core/scopes.scss +1 -1
  117. package/cjs/style/dnb-ui-basis.css +1 -1
  118. package/cjs/style/dnb-ui-basis.min.css +1 -1
  119. package/cjs/style/dnb-ui-body.css +1 -1
  120. package/cjs/style/dnb-ui-body.min.css +1 -1
  121. package/cjs/style/dnb-ui-core.css +1 -1
  122. package/cjs/style/dnb-ui-core.min.css +1 -1
  123. package/components/dropdown/Dropdown.js +2 -2
  124. package/components/dropdown/Dropdown.js.map +1 -1
  125. package/components/toggle-button/ToggleButton.d.ts +1 -1
  126. package/components/toggle-button/ToggleButtonDocs.js +1 -1
  127. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  128. package/components/upload/Upload.js +5 -2
  129. package/components/upload/Upload.js.map +1 -1
  130. package/components/upload/UploadFileInput.d.ts +2 -1
  131. package/components/upload/UploadFileInput.js +7 -4
  132. package/components/upload/UploadFileInput.js.map +1 -1
  133. package/es/components/dropdown/Dropdown.js +2 -2
  134. package/es/components/dropdown/Dropdown.js.map +1 -1
  135. package/es/components/toggle-button/ToggleButton.d.ts +1 -1
  136. package/es/components/toggle-button/ToggleButtonDocs.js +1 -1
  137. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  138. package/es/components/upload/Upload.js +5 -2
  139. package/es/components/upload/Upload.js.map +1 -1
  140. package/es/components/upload/UploadFileInput.d.ts +2 -1
  141. package/es/components/upload/UploadFileInput.js +7 -4
  142. package/es/components/upload/UploadFileInput.js.map +1 -1
  143. package/es/extensions/forms/DataContext/Context.d.ts +5 -2
  144. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  145. package/es/extensions/forms/DataContext/Provider/Provider.js +42 -16
  146. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  147. package/es/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
  148. package/es/extensions/forms/DataContext/Provider/useEventListener.js +22 -0
  149. package/es/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
  150. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +6 -2
  151. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
  152. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +6 -2
  153. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  154. package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
  155. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  156. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +6 -2
  157. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  158. package/es/extensions/forms/Field/Password/PasswordDocs.js +6 -2
  159. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  160. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  161. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  162. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -0
  163. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  164. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  165. package/es/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
  166. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  167. package/es/extensions/forms/Field/String/StringDocs.js +7 -7
  168. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  169. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  170. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  171. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  172. package/es/extensions/forms/Field/Upload/Upload.js +3 -1
  173. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  174. package/es/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
  175. package/es/extensions/forms/FieldBlock/FieldBlock.js +1 -1
  176. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  177. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  178. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  179. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
  180. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
  181. package/es/extensions/forms/Form/Isolation/Isolation.js +2 -3
  182. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  183. package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
  184. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +18 -4
  185. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
  186. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
  187. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
  188. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +24 -11
  189. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
  190. package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
  191. package/es/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
  192. package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
  193. package/es/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
  194. package/es/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -3
  195. package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
  196. package/es/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
  197. package/es/extensions/forms/Form/Isolation/useReportError.js +22 -7
  198. package/es/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
  199. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
  200. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  201. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
  202. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  203. package/es/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
  204. package/es/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
  205. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
  206. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
  207. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  208. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  209. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  210. package/es/extensions/forms/Tools/Errors.d.ts +5 -0
  211. package/es/extensions/forms/Tools/Errors.js +37 -0
  212. package/es/extensions/forms/Tools/Errors.js.map +1 -0
  213. package/es/extensions/forms/Tools/index.d.ts +1 -0
  214. package/es/extensions/forms/Tools/index.js +1 -0
  215. package/es/extensions/forms/Tools/index.js.map +1 -1
  216. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
  217. package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
  218. package/es/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
  219. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  220. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
  221. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  222. package/es/extensions/forms/Wizard/Step/Step.js +1 -1
  223. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  224. package/es/extensions/forms/Wizard/hooks/useStep.js +13 -5
  225. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  226. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
  227. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  228. package/es/extensions/forms/hooks/useFieldProps.js +19 -12
  229. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  230. package/es/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
  231. package/es/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
  232. package/es/extensions/payment-card/icons/providers/BankAxept.js +2 -2
  233. package/es/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
  234. package/es/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
  235. package/es/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
  236. package/es/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
  237. package/es/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
  238. package/es/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
  239. package/es/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
  240. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
  241. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
  242. package/es/fragments/drawer-list/DrawerListHelpers.js +2 -1
  243. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  244. package/es/shared/Eufemia.d.ts +1 -1
  245. package/es/shared/Eufemia.js +2 -2
  246. package/es/shared/Eufemia.js.map +1 -1
  247. package/es/style/core/scopes.scss +1 -1
  248. package/es/style/dnb-ui-basis.css +1 -1
  249. package/es/style/dnb-ui-basis.min.css +1 -1
  250. package/es/style/dnb-ui-body.css +1 -1
  251. package/es/style/dnb-ui-body.min.css +1 -1
  252. package/es/style/dnb-ui-core.css +1 -1
  253. package/es/style/dnb-ui-core.min.css +1 -1
  254. package/esm/dnb-ui-components.min.mjs +1 -1
  255. package/esm/dnb-ui-elements.min.mjs +1 -1
  256. package/esm/dnb-ui-extensions.min.mjs +3 -3
  257. package/esm/dnb-ui-lib.min.mjs +1 -1
  258. package/extensions/forms/DataContext/Context.d.ts +5 -2
  259. package/extensions/forms/DataContext/Context.js.map +1 -1
  260. package/extensions/forms/DataContext/Provider/Provider.js +42 -16
  261. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  262. package/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
  263. package/extensions/forms/DataContext/Provider/useEventListener.js +23 -0
  264. package/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
  265. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +6 -2
  266. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
  267. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +6 -2
  268. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  269. package/extensions/forms/Field/Number/NumberDocs.js +1 -1
  270. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  271. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +6 -2
  272. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
  273. package/extensions/forms/Field/Password/PasswordDocs.js +6 -2
  274. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  275. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  276. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  277. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -0
  278. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  279. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  280. package/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
  281. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  282. package/extensions/forms/Field/String/StringDocs.js +7 -7
  283. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  284. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  285. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  286. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  287. package/extensions/forms/Field/Upload/Upload.js +3 -1
  288. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  289. package/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
  290. package/extensions/forms/FieldBlock/FieldBlock.js +1 -1
  291. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  292. package/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  293. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  294. package/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
  295. package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
  296. package/extensions/forms/Form/Isolation/Isolation.js +2 -3
  297. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  298. package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
  299. package/extensions/forms/Form/Isolation/IsolationDataReference.js +20 -4
  300. package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
  301. package/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
  302. package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
  303. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +25 -11
  304. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
  305. package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
  306. package/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
  307. package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
  308. package/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
  309. package/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -2
  310. package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
  311. package/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
  312. package/extensions/forms/Form/Isolation/useReportError.js +22 -7
  313. package/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
  314. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
  315. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  316. package/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
  317. package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  318. package/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
  319. package/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
  320. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
  321. package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
  322. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  323. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  324. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  325. package/extensions/forms/Tools/Errors.d.ts +5 -0
  326. package/extensions/forms/Tools/Errors.js +38 -0
  327. package/extensions/forms/Tools/Errors.js.map +1 -0
  328. package/extensions/forms/Tools/index.d.ts +1 -0
  329. package/extensions/forms/Tools/index.js +1 -0
  330. package/extensions/forms/Tools/index.js.map +1 -1
  331. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
  332. package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
  333. package/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
  334. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  335. package/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
  336. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  337. package/extensions/forms/Wizard/Step/Step.js +1 -1
  338. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  339. package/extensions/forms/Wizard/hooks/useStep.js +13 -5
  340. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  341. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
  342. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  343. package/extensions/forms/hooks/useFieldProps.js +19 -12
  344. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  345. package/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
  346. package/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
  347. package/extensions/payment-card/icons/providers/BankAxept.js +2 -2
  348. package/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
  349. package/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
  350. package/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
  351. package/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
  352. package/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
  353. package/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
  354. package/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
  355. package/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
  356. package/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
  357. package/fragments/drawer-list/DrawerListHelpers.js +2 -1
  358. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  359. package/package.json +1 -1
  360. package/shared/Eufemia.d.ts +1 -1
  361. package/shared/Eufemia.js +2 -2
  362. package/shared/Eufemia.js.map +1 -1
  363. package/style/core/scopes.scss +1 -1
  364. package/style/dnb-ui-basis.css +1 -1
  365. package/style/dnb-ui-basis.min.css +1 -1
  366. package/style/dnb-ui-body.css +1 -1
  367. package/style/dnb-ui-body.min.css +1 -1
  368. package/style/dnb-ui-core.css +1 -1
  369. package/style/dnb-ui-core.min.css +1 -1
  370. package/umd/dnb-ui-components.min.js +1 -1
  371. package/umd/dnb-ui-elements.min.js +1 -1
  372. package/umd/dnb-ui-extensions.min.js +1 -1
  373. package/umd/dnb-ui-lib.min.js +1 -1
  374. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
  375. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
  376. package/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
  377. /package/cjs/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
  378. /package/es/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
  379. /package/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n 'name'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","disabled","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","disableDragAndDrop","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","existingFiles","filter","includes","newFiles","newValidFiles","newFilesLoading","isLoading","incomingFiles","_incomingFiles$filter","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n | 'layout'\n | 'layoutOptions'\n | 'onBlurValidator'\n | 'onChangeValidator'\n | 'contentWidth'\n | 'labelSize'\n | 'labelDescriptionInline'\n | 'labelSrOnly'\n | 'labelSize'\n | 'labelSuffix'\n> &\n SpacingProps &\n Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n | 'disableDragAndDrop'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n width?: 'large' | 'stretch'\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n if (!item) {\n return\n }\n\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n disableDragAndDrop,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const existingFiles = files.filter((file) =>\n existingFileIds.includes(file.id)\n )\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n\n if (!incomingFiles) {\n setFiles(existingFiles)\n handleChange(existingFiles)\n } else {\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...(incomingFiles?.filter((file) => file != null) ?? []),\n ...filesRef.current.slice(\n indexOfFirstNewFile + incomingFiles.length\n ),\n ]\n setFiles(updatedFiles)\n handleChange(updatedFiles)\n }\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n disableDragAndDrop={disableDragAndDrop}\n disabled={disabled}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"UploadDocs.js","names":["UploadEvents","UploadProperties","UploadFieldProperties","_objectSpread","fileHandler","doc","type","status","title","undefined","text","UploadFieldEvents"],"sources":["../../../../../../src/extensions/forms/Field/Upload/UploadDocs.ts"],"sourcesContent":["import {\n UploadEvents,\n UploadProperties,\n} from '../../../../components/upload/UploadDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const UploadFieldProperties: PropertiesTableProps = {\n fileHandler: {\n doc: 'File handler function that takes newly added files (`newFiles: UploadValue`) as a parameter and returns the processed files. The function can either be synchronous or asynchronous. It returns a promise (`Promise<UploadValue>`) containing the processed files when asynchronous.',\n type: 'function',\n status: 'optional',\n },\n ...UploadProperties,\n title: undefined,\n text: undefined,\n}\n\nexport const UploadFieldEvents: PropertiesTableProps = {\n ...UploadEvents,\n}\n"],"mappings":";;;AAAA,SACEA,YAAY,EACZC,gBAAgB,QACX,0CAA0C;AAGjD,OAAO,MAAMC,qBAA2C,GAAAC,aAAA,CAAAA,aAAA;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,sRAAsR;IAC3RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB;EACnBO,KAAK,EAAEC,SAAS;EAChBC,IAAI,EAAED;AAAS,EAChB;AAED,OAAO,MAAME,iBAAuC,GAAAR,aAAA,KAC/CH,YAAY,CAChB","ignoreList":[]}
1
+ {"version":3,"file":"UploadDocs.js","names":["UploadEvents","UploadProperties","UploadFieldProperties","_objectSpread","fileHandler","doc","type","status","title","undefined","text","UploadFieldEvents"],"sources":["../../../../../../src/extensions/forms/Field/Upload/UploadDocs.ts"],"sourcesContent":["import {\n UploadEvents,\n UploadProperties,\n} from '../../../../components/upload/UploadDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const UploadFieldProperties: PropertiesTableProps = {\n fileHandler: {\n doc: 'File handler function that takes newly added files (`newFiles: UploadValue`) as a parameter and returns the processed files. The function can either be synchronous or asynchronous. It returns a promise (`Promise<UploadValue>`) containing the processed files when asynchronous.',\n type: 'function',\n status: 'optional',\n },\n ...UploadProperties,\n title: undefined, // hiding from docs as we rather want user to use the `label` prop,\n text: undefined, // hiding from docs as we rather want user to use the `labelDescription` prop,\n}\n\nexport const UploadFieldEvents: PropertiesTableProps = {\n ...UploadEvents,\n}\n"],"mappings":";;;AAAA,SACEA,YAAY,EACZC,gBAAgB,QACX,0CAA0C;AAGjD,OAAO,MAAMC,qBAA2C,GAAAC,aAAA,CAAAA,aAAA;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,sRAAsR;IAC3RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB;EACnBO,KAAK,EAAEC,SAAS;EAChBC,IAAI,EAAED;AAAS,EAChB;AAED,OAAO,MAAME,iBAAuC,GAAAR,aAAA,KAC/CH,YAAY,CAChB","ignoreList":[]}
@@ -21,7 +21,7 @@ import SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator';
21
21
  import { createSharedState } from '../../../shared/helpers/useSharedState';
22
22
  import useTranslation from '../hooks/useTranslation';
23
23
  import { FormError } from '../utils';
24
- import { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo';
24
+ import { useIterateItemNo } from '../Iterate/ItemNo/useIterateItemNo';
25
25
  export const states = ['error', 'info', 'warning'];
26
26
  function FieldBlock(props) {
27
27
  var _props$id;
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","labelSize","labelHeight","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","align","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","Map","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","hasOnlyLabelDescription","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","getMessage","_error$formattedMessa","formattedMessage","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Define the font-size of the label based on the [heading sizes](/uilib/elements/heading/) table.\n */\n labelSize?: 'medium' | 'large'\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n labelSize,\n labelHeight,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>(new Map())\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = new Map()\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n const hasOnlyLabelDescription = !label && hasLabelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && !hasOnlyLabelDescription && (\n <span className=\"dnb-help-button__word-joiner\">\n <HelpButtonInline\n contentId={`${id}-help`}\n help={help}\n />\n </span>\n )}\n\n {label &&\n hasLabelDescription &&\n !labelDescriptionInline && <br />}\n\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n\n {hasHelp && hasOnlyLabelDescription && (\n <span className=\"dnb-help-button__word-joiner\">\n <HelpButtonInline\n contentId={`${id}-help`}\n help={help}\n />\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction getMessage(error: FormError | Error) {\n if (error instanceof FormError) {\n return error.formattedMessage ?? error.message\n }\n\n return error.message\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((content) => {\n return getMessage(content)\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? getMessage(content)\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [getMessage(content)]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","labelSize","labelHeight","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","align","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","Map","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","hasOnlyLabelDescription","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","getMessage","_error$formattedMessa","formattedMessage","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIterateItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Define the font-size of the label based on the [heading sizes](/uilib/elements/heading/) table.\n */\n labelSize?: 'medium' | 'large'\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n labelSize,\n labelHeight,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>(new Map())\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = new Map()\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n const hasOnlyLabelDescription = !label && hasLabelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && !hasOnlyLabelDescription && (\n <span className=\"dnb-help-button__word-joiner\">\n <HelpButtonInline\n contentId={`${id}-help`}\n help={help}\n />\n </span>\n )}\n\n {label &&\n hasLabelDescription &&\n !labelDescriptionInline && <br />}\n\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n\n {hasHelp && hasOnlyLabelDescription && (\n <span className=\"dnb-help-button__word-joiner\">\n <HelpButtonInline\n contentId={`${id}-help`}\n help={help}\n />\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction getMessage(error: FormError | Error) {\n if (error instanceof FormError) {\n return error.formattedMessage ?? error.message\n }\n\n return error.message\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((content) => {\n return getMessage(content)\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? getMessage(content)\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [getMessage(content)]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ export const FieldBlockSharedProperties = {
13
13
  status: 'optional'
14
14
  },
15
15
  labelDescriptionInline: {
16
- doc: 'If true, the labelDescription will be displayed on the same line as the label.',
16
+ doc: 'If true, the `labelDescription` will be displayed on the same line as the label.',
17
17
  type: 'boolean',
18
18
  status: 'optional'
19
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlockDocs.js","names":["FieldBlockSharedProperties","label","doc","type","status","labelDescription","labelDescriptionInline","labelSrOnly","labelSize","help","layout","layoutOptions","width","contentWidth","FieldBlockProperties","_objectSpread","labelHeight","asFieldset","align","disableStatusSummary","composition","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const FieldBlockSharedProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelDescriptionInline: {\n doc: 'If true, the labelDescription will be displayed on the same line as the label.',\n type: 'boolean',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n labelSize: {\n doc: 'Define the font-size of the label based on the [font-size](/uilib/typography/font-size/) table.',\n type: ['medium', 'large'],\n status: 'optional',\n },\n help: {\n doc: 'Provide help content for the field using `title` and `content` as a string or React.Node. Additionally, you can set `open` to `true` to display the inline help, set the `breakout` property to `false` to disable the breakout of the inline help content, or use `renderAs` set to `dialog` to render the content in a [Dialog](/uilib/components/dialog/) (recommended for larger amounts of content).',\n type: 'object',\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n layoutOptions: {\n doc: 'Use this to set additional options for the `horizontal` layout. E.g. `{ width: \"medium\" }`. You can also use a custom width `{number}rem`. Instead of a width, you can use a min/max width. E.g. `{ minWidth: \"6rem\", maxWidth: \"12rem\" }`.',\n type: 'object',\n status: 'optional',\n },\n width: {\n doc: 'Will set the width for the whole block. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: 'Will set the width for its contents. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\n/** For internal use only */\nexport const FieldBlockProperties: PropertiesTableProps = {\n ...FieldBlockSharedProperties,\n labelSize: {\n doc: 'Define one of the following [heading sizes](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n labelHeight: {\n doc: 'Defines the height of an component (size prop), so the label can be aligned correctly. Can be `default`, `small`, `medium`, `large`.',\n type: 'string',\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n align: {\n doc: '`center` or `bottom` for aligning the contents vertically. Defaults to `bottom`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n disableStatusSummary: {\n doc: 'Use `true` to disable the error summary.',\n type: 'boolean',\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'true',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAEA,OAAO,MAAMA,0BAAgD,GAAG;EAC9DC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,sBAAsB,EAAE;IACtBJ,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACTN,GAAG,EAAE,iGAAiG;IACtGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,2YAA2Y;IAChZC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,MAAM,EAAE;IACNR,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,aAAa,EAAE;IACbT,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,KAAK,EAAE;IACLV,GAAG,EAAE,mLAAmL;IACxLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDS,YAAY,EAAE;IACZX,GAAG,EAAE,gLAAgL;IACrLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAGD,OAAO,MAAMU,oBAA0C,GAAAC,aAAA,CAAAA,aAAA,KAClDf,0BAA0B;EAC7BQ,SAAS,EAAE;IACTN,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDY,WAAW,EAAE;IACXd,GAAG,EAAE,sIAAsI;IAC3IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,KAAK,EAAE;IACLhB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDe,oBAAoB,EAAE;IACpBjB,GAAG,EAAE,0CAA0C;IAC/CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDgB,WAAW,EAAE;IACXlB,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV,CAAC;EACDiB,QAAQ,EAAE;IACRnB,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,EACF","ignoreList":[]}
1
+ {"version":3,"file":"FieldBlockDocs.js","names":["FieldBlockSharedProperties","label","doc","type","status","labelDescription","labelDescriptionInline","labelSrOnly","labelSize","help","layout","layoutOptions","width","contentWidth","FieldBlockProperties","_objectSpread","labelHeight","asFieldset","align","disableStatusSummary","composition","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const FieldBlockSharedProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelDescriptionInline: {\n doc: 'If true, the `labelDescription` will be displayed on the same line as the label.',\n type: 'boolean',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n labelSize: {\n doc: 'Define the font-size of the label based on the [font-size](/uilib/typography/font-size/) table.',\n type: ['medium', 'large'],\n status: 'optional',\n },\n help: {\n doc: 'Provide help content for the field using `title` and `content` as a string or React.Node. Additionally, you can set `open` to `true` to display the inline help, set the `breakout` property to `false` to disable the breakout of the inline help content, or use `renderAs` set to `dialog` to render the content in a [Dialog](/uilib/components/dialog/) (recommended for larger amounts of content).',\n type: 'object',\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n layoutOptions: {\n doc: 'Use this to set additional options for the `horizontal` layout. E.g. `{ width: \"medium\" }`. You can also use a custom width `{number}rem`. Instead of a width, you can use a min/max width. E.g. `{ minWidth: \"6rem\", maxWidth: \"12rem\" }`.',\n type: 'object',\n status: 'optional',\n },\n width: {\n doc: 'Will set the width for the whole block. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: 'Will set the width for its contents. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\n/** For internal use only */\nexport const FieldBlockProperties: PropertiesTableProps = {\n ...FieldBlockSharedProperties,\n labelSize: {\n doc: 'Define one of the following [heading sizes](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n labelHeight: {\n doc: 'Defines the height of an component (size prop), so the label can be aligned correctly. Can be `default`, `small`, `medium`, `large`.',\n type: 'string',\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n align: {\n doc: '`center` or `bottom` for aligning the contents vertically. Defaults to `bottom`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n disableStatusSummary: {\n doc: 'Use `true` to disable the error summary.',\n type: 'boolean',\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'true',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAEA,OAAO,MAAMA,0BAAgD,GAAG;EAC9DC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,sBAAsB,EAAE;IACtBJ,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,WAAW,EAAE;IACXL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACTN,GAAG,EAAE,iGAAiG;IACtGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,2YAA2Y;IAChZC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,MAAM,EAAE;IACNR,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,aAAa,EAAE;IACbT,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,KAAK,EAAE;IACLV,GAAG,EAAE,mLAAmL;IACxLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDS,YAAY,EAAE;IACZX,GAAG,EAAE,gLAAgL;IACrLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAGD,OAAO,MAAMU,oBAA0C,GAAAC,aAAA,CAAAA,aAAA,KAClDf,0BAA0B;EAC7BQ,SAAS,EAAE;IACTN,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDY,WAAW,EAAE;IACXd,GAAG,EAAE,sIAAsI;IAC3IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,KAAK,EAAE;IACLhB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDe,oBAAoB,EAAE;IACpBjB,GAAG,EAAE,0CAA0C;IAC/CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDgB,WAAW,EAAE;IACXlB,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV,CAAC;EACDiB,QAAQ,EAAE;IACRnB,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,EACF","ignoreList":[]}
@@ -5,8 +5,8 @@ import { FormStatus } from '../../../../components';
5
5
  import { useTranslation } from '../../hooks';
6
6
  import useHandleStatus from './useHandleStatus';
7
7
  import IsolationContext from './IsolationContext';
8
- import DataContext from '../../DataContext/Context';
9
8
  import useDataContextSnapshot from './useDataContextSnapshot';
9
+ import useEventListener from '../../DataContext/Provider/useEventListener';
10
10
  export default function IsolatedContainer(_ref) {
11
11
  let {
12
12
  children
@@ -23,11 +23,9 @@ export default function IsolatedContainer(_ref) {
23
23
  } = useHandleStatus({
24
24
  outerContext,
25
25
  preventUncommittedChanges,
26
- error: isolationError
26
+ error: isolationError,
27
+ name: 'isolation-container'
27
28
  });
28
- const {
29
- setFieldEventListener
30
- } = useContext(DataContext);
31
29
  const {
32
30
  resetDataAfterCommit
33
31
  } = useContext(IsolationContext);
@@ -41,7 +39,7 @@ export default function IsolatedContainer(_ref) {
41
39
  handleReset();
42
40
  }
43
41
  }, [handleReset, resetDataAfterCommit]);
44
- setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(undefined, 'onBeforeCommit', handleSubmit);
42
+ useEventListener('onBeforeCommit', handleSubmit);
45
43
  return React.createElement(React.Fragment, null, children, preventUncommittedChanges && React.createElement(FormStatus, {
46
44
  no_animation: false,
47
45
  shellSpace: {
@@ -1 +1 @@
1
- {"version":3,"file":"IsolatedContainer.js","names":["React","useCallback","useContext","FormStatus","useTranslation","useHandleStatus","IsolationContext","DataContext","useDataContextSnapshot","IsolatedContainer","_ref","children","outerContext","preventUncommittedChanges","preventUncommittedChangesText","Isolation","showStatus","showCommitStatus","error","isolationError","setFieldEventListener","resetDataAfterCommit","handleReset","enabled","handleSubmit","undefined","createElement","Fragment","no_animation","shellSpace","top","show","Boolean","Error"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolatedContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { FormStatus } from '../../../../components'\nimport { useTranslation } from '../../hooks'\nimport useHandleStatus from './useHandleStatus'\nimport IsolationContext from './IsolationContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataContextSnapshot from './useDataContextSnapshot'\n\nexport default function IsolatedContainer({ children }) {\n const { outerContext, preventUncommittedChanges } =\n useContext(IsolationContext)\n const { preventUncommittedChangesText } = useTranslation().Isolation\n const { showStatus: showCommitStatus } = useHandleStatus({\n outerContext,\n preventUncommittedChanges,\n error: isolationError,\n })\n\n const { setFieldEventListener } = useContext(DataContext)\n const { resetDataAfterCommit } = useContext(IsolationContext)\n const { handleReset } = useDataContextSnapshot({\n enabled: resetDataAfterCommit,\n })\n\n const handleSubmit = useCallback(() => {\n if (resetDataAfterCommit) {\n handleReset()\n }\n }, [handleReset, resetDataAfterCommit])\n setFieldEventListener?.(undefined, 'onBeforeCommit', handleSubmit)\n\n return (\n <>\n {children}\n\n {preventUncommittedChanges && (\n <FormStatus\n no_animation={false}\n shellSpace={{ top: true }}\n show={Boolean(showCommitStatus)}\n >\n {preventUncommittedChangesText}\n </FormStatus>\n )}\n </>\n )\n}\n\nexport const isolationError = new Error('Form.Isolation')\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,sBAAsB,MAAM,0BAA0B;AAE7D,eAAe,SAASC,iBAAiBA,CAAAC,IAAA,EAAe;EAAA,IAAd;IAAEC;EAAS,CAAC,GAAAD,IAAA;EACpD,MAAM;IAAEE,YAAY;IAAEC;EAA0B,CAAC,GAC/CX,UAAU,CAACI,gBAAgB,CAAC;EAC9B,MAAM;IAAEQ;EAA8B,CAAC,GAAGV,cAAc,CAAC,CAAC,CAACW,SAAS;EACpE,MAAM;IAAEC,UAAU,EAAEC;EAAiB,CAAC,GAAGZ,eAAe,CAAC;IACvDO,YAAY;IACZC,yBAAyB;IACzBK,KAAK,EAAEC;EACT,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAsB,CAAC,GAAGlB,UAAU,CAACK,WAAW,CAAC;EACzD,MAAM;IAAEc;EAAqB,CAAC,GAAGnB,UAAU,CAACI,gBAAgB,CAAC;EAC7D,MAAM;IAAEgB;EAAY,CAAC,GAAGd,sBAAsB,CAAC;IAC7Ce,OAAO,EAAEF;EACX,CAAC,CAAC;EAEF,MAAMG,YAAY,GAAGvB,WAAW,CAAC,MAAM;IACrC,IAAIoB,oBAAoB,EAAE;MACxBC,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACA,WAAW,EAAED,oBAAoB,CAAC,CAAC;EACvCD,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAGK,SAAS,EAAE,gBAAgB,EAAED,YAAY,CAAC;EAElE,OACExB,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA2B,QAAA,QACGhB,QAAQ,EAERE,yBAAyB,IACxBb,KAAA,CAAA0B,aAAA,CAACvB,UAAU;IACTyB,YAAY,EAAE,KAAM;IACpBC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAK,CAAE;IAC1BC,IAAI,EAAEC,OAAO,CAACf,gBAAgB;EAAE,GAE/BH,6BACS,CAEd,CAAC;AAEP;AAEA,OAAO,MAAMK,cAAc,GAAG,IAAIc,KAAK,CAAC,gBAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"IsolatedContainer.js","names":["React","useCallback","useContext","FormStatus","useTranslation","useHandleStatus","IsolationContext","useDataContextSnapshot","useEventListener","IsolatedContainer","_ref","children","outerContext","preventUncommittedChanges","preventUncommittedChangesText","Isolation","showStatus","showCommitStatus","error","isolationError","name","resetDataAfterCommit","handleReset","enabled","handleSubmit","createElement","Fragment","no_animation","shellSpace","top","show","Boolean","Error"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolatedContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { FormStatus } from '../../../../components'\nimport { useTranslation } from '../../hooks'\nimport useHandleStatus from './useHandleStatus'\nimport IsolationContext from './IsolationContext'\nimport useDataContextSnapshot from './useDataContextSnapshot'\nimport useEventListener from '../../DataContext/Provider/useEventListener'\n\nexport default function IsolatedContainer({ children }) {\n const { outerContext, preventUncommittedChanges } =\n useContext(IsolationContext)\n const { preventUncommittedChangesText } = useTranslation().Isolation\n const { showStatus: showCommitStatus } = useHandleStatus({\n outerContext,\n preventUncommittedChanges,\n error: isolationError,\n name: 'isolation-container',\n })\n\n const { resetDataAfterCommit } = useContext(IsolationContext)\n const { handleReset } = useDataContextSnapshot({\n enabled: resetDataAfterCommit,\n })\n\n const handleSubmit = useCallback(() => {\n if (resetDataAfterCommit) {\n handleReset()\n }\n }, [handleReset, resetDataAfterCommit])\n useEventListener('onBeforeCommit', handleSubmit)\n\n return (\n <>\n {children}\n\n {preventUncommittedChanges && (\n <FormStatus\n no_animation={false}\n shellSpace={{ top: true }}\n show={Boolean(showCommitStatus)}\n >\n {preventUncommittedChangesText}\n </FormStatus>\n )}\n </>\n )\n}\n\nexport const isolationError = new Error('Form.Isolation')\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,gBAAgB,MAAM,6CAA6C;AAE1E,eAAe,SAASC,iBAAiBA,CAAAC,IAAA,EAAe;EAAA,IAAd;IAAEC;EAAS,CAAC,GAAAD,IAAA;EACpD,MAAM;IAAEE,YAAY;IAAEC;EAA0B,CAAC,GAC/CX,UAAU,CAACI,gBAAgB,CAAC;EAC9B,MAAM;IAAEQ;EAA8B,CAAC,GAAGV,cAAc,CAAC,CAAC,CAACW,SAAS;EACpE,MAAM;IAAEC,UAAU,EAAEC;EAAiB,CAAC,GAAGZ,eAAe,CAAC;IACvDO,YAAY;IACZC,yBAAyB;IACzBK,KAAK,EAAEC,cAAc;IACrBC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAqB,CAAC,GAAGnB,UAAU,CAACI,gBAAgB,CAAC;EAC7D,MAAM;IAAEgB;EAAY,CAAC,GAAGf,sBAAsB,CAAC;IAC7CgB,OAAO,EAAEF;EACX,CAAC,CAAC;EAEF,MAAMG,YAAY,GAAGvB,WAAW,CAAC,MAAM;IACrC,IAAIoB,oBAAoB,EAAE;MACxBC,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACA,WAAW,EAAED,oBAAoB,CAAC,CAAC;EACvCb,gBAAgB,CAAC,gBAAgB,EAAEgB,YAAY,CAAC;EAEhD,OACExB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACGf,QAAQ,EAERE,yBAAyB,IACxBb,KAAA,CAAAyB,aAAA,CAACtB,UAAU;IACTwB,YAAY,EAAE,KAAM;IACpBC,UAAU,EAAE;MAAEC,GAAG,EAAE;IAAK,CAAE;IAC1BC,IAAI,EAAEC,OAAO,CAACd,gBAAgB;EAAE,GAE/BH,6BACS,CAEd,CAAC;AAEP;AAEA,OAAO,MAAMK,cAAc,GAAG,IAAIa,KAAK,CAAC,gBAAgB,CAAC","ignoreList":[]}
@@ -19,7 +19,7 @@ import IsolationCommitButton from './IsolationCommitButton';
19
19
  import IsolationResetButton from './IsolationResetButton';
20
20
  import { clearedData } from '../../DataContext/Provider';
21
21
  import { createDataReference } from './IsolationDataReference';
22
- import IsolatedContainer from './IsolatedContainer';
22
+ import IsolatedContainer, { isolationError } from './IsolatedContainer';
23
23
  import IsolationContext from './IsolationContext';
24
24
  import structuredClone from '@ungap/structured-clone';
25
25
  function IsolationProvider(props) {
@@ -177,10 +177,9 @@ function BubbleValidation() {
177
177
  if (!(addSetShowAllErrorsRef !== null && addSetShowAllErrorsRef !== void 0 && (_addSetShowAllErrorsR = addSetShowAllErrorsRef.current) !== null && _addSetShowAllErrorsR !== void 0 && _addSetShowAllErrorsR.includes(setShowAllErrorsNested))) {
178
178
  addSetShowAllErrorsRef === null || addSetShowAllErrorsRef === void 0 ? void 0 : addSetShowAllErrorsRef.current.push(setShowAllErrorsNested);
179
179
  }
180
- useReportError(innerContext.hasErrors() ? isolationError : undefined, outerContext);
180
+ useReportError(innerContext.hasErrors() ? isolationError : undefined, outerContext, 'isolation');
181
181
  return null;
182
182
  }
183
- const isolationError = new Error('Form.Isolation');
184
183
  IsolationProvider.CommitButton = IsolationCommitButton;
185
184
  IsolationProvider.ResetButton = IsolationResetButton;
186
185
  IsolationProvider.createDataReference = createDataReference;
@@ -1 +1 @@
1
- {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","useState","useMountEffect","pointer","extendDeep","isAsync","useDataValue","Context","DataContext","Provider","SectionContext","useReportError","IsolationCommitButton","IsolationResetButton","clearedData","createDataReference","IsolatedContainer","IsolationContext","structuredClone","IsolationProvider","props","_IsolatedContainer","dataReferenceFallback","dataReference","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","preventUncommittedChanges","data","defaultData","resetDataAfterCommit","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","onUpdateDataValueHandler","preventUpdate","undefined","arguments","length","removeSectionPath","has","get","getMountedData","_dataContextRef$curre","mounterData","mountedFieldsRef","forEach","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","setIsolatedData","providerProps","_objectSpread","onUpdateDataValue","isolate","createElement","Consumer","dataContext","handleSubmit","_BubbleValidation","BubbleValidation","_addSetShowAllErrorsR","innerContext","setShowAllErrors","setShowAllErrorsNested","showAllErrors","addSetShowAllErrorsRef","includes","push","hasErrors","isolationError","Error","CommitButton","ResetButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport useReportError from './useReportError'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport IsolationResetButton from './IsolationResetButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport {\n IsolationDataReference,\n createDataReference,\n} from './IsolationDataReference'\nimport IsolatedContainer from './IsolatedContainer'\nimport IsolationContext from './IsolationContext'\nimport type { OnCommit, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type IsolationProviderProps<Data extends JsonObject> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => JsonObject\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Prevents uncommitted changes before the form is submitted. Will display an error message if user tries to submit without committing their changes.\n */\n preventUncommittedChanges?: boolean\n /**\n * If set to `true`, the Form.Isolation will reset its data context after committing the data to the outer context.\n */\n resetDataAfterCommit?: boolean\n /**\n * Provide a reference by using Form.Isolation.createDataReference.\n */\n dataReference?: IsolationDataReference\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data extends JsonObject> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const [dataReferenceFallback] = useState<IsolationDataReference>(() => {\n if (!props?.dataReference) {\n return createDataReference()\n }\n })\n\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n preventUncommittedChanges,\n data,\n defaultData,\n dataReference = dataReferenceFallback,\n resetDataAfterCommit,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n // Depending on the usage, we can get a path like so: \"/pushContainerItems/0/somePath\"\n // where \"somePath\" is a frozen object. In order to still be able to modify it,\n // pointer.set will unfreeze the object and then modify it. (Object.isFrozen(obj[tok]))\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const onUpdateDataValueHandler = useCallback(\n async (\n path: Path,\n value: unknown,\n { preventUpdate = undefined } = {}\n ) => {\n if (internalDataRef.current === clearedData) {\n internalDataRef.current = {} as Data\n }\n\n pointer.set(internalDataRef.current, path, value)\n\n if (!preventUpdate) {\n forceUpdate()\n }\n },\n []\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n dataContextRef.current?.mountedFieldsRef.current.forEach(\n (field, path) => {\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n )\n return mounterData\n }, [])\n\n useMountEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n })\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || structuredClone(dataOuter) || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const setIsolatedData = useCallback((data: Data) => {\n localDataRef.current = data\n internalDataRef.current = data\n }, [])\n\n const onClear = useCallback(() => {\n setIsolatedData(clearedData as Data)\n forceUpdate()\n onClearProp?.()\n }, [onClearProp, setIsolatedData])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onUpdateDataValue: onUpdateDataValueHandler,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <IsolationContext.Provider\n value={{\n preventUncommittedChanges,\n dataReference,\n resetDataAfterCommit,\n outerContext,\n setIsolatedData,\n }}\n >\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return <IsolatedContainer>{children} </IsolatedContainer>\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && <BubbleValidation />}\n </IsolationContext.Provider>\n </Provider>\n )\n}\n\nfunction BubbleValidation() {\n const innerContext = useContext(DataContext)\n const { outerContext } = useContext(IsolationContext)\n const { setShowAllErrors } = innerContext\n\n const setShowAllErrorsNested = useCallback(\n (showAllErrors: boolean) => {\n setShowAllErrors?.(showAllErrors)\n },\n [setShowAllErrors]\n )\n\n const { addSetShowAllErrorsRef } = outerContext || {}\n if (!addSetShowAllErrorsRef?.current?.includes(setShowAllErrorsNested)) {\n addSetShowAllErrorsRef?.current.push(setShowAllErrorsNested)\n }\n\n useReportError(\n innerContext.hasErrors() ? isolationError : undefined,\n outerContext\n )\n\n return null\n}\n\nconst isolationError = new Error('Form.Isolation')\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider.ResetButton = IsolationResetButton\nIsolationProvider.createDataReference = createDataReference\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","useState","useMountEffect","pointer","extendDeep","isAsync","useDataValue","Context","DataContext","Provider","SectionContext","useReportError","IsolationCommitButton","IsolationResetButton","clearedData","createDataReference","IsolatedContainer","isolationError","IsolationContext","structuredClone","IsolationProvider","props","_IsolatedContainer","dataReferenceFallback","dataReference","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","preventUncommittedChanges","data","defaultData","resetDataAfterCommit","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","onUpdateDataValueHandler","preventUpdate","undefined","arguments","length","removeSectionPath","has","get","getMountedData","_dataContextRef$curre","mounterData","mountedFieldsRef","forEach","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","setIsolatedData","providerProps","_objectSpread","onUpdateDataValue","isolate","createElement","Consumer","dataContext","handleSubmit","_BubbleValidation","BubbleValidation","_addSetShowAllErrorsR","innerContext","setShowAllErrors","setShowAllErrorsNested","showAllErrors","addSetShowAllErrorsRef","includes","push","hasErrors","CommitButton","ResetButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport useReportError from './useReportError'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport IsolationResetButton from './IsolationResetButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport {\n IsolationDataReference,\n createDataReference,\n} from './IsolationDataReference'\nimport IsolatedContainer, { isolationError } from './IsolatedContainer'\nimport IsolationContext from './IsolationContext'\nimport type { OnCommit, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type IsolationProviderProps<Data extends JsonObject> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => JsonObject\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Prevents uncommitted changes before the form is submitted. Will display an error message if user tries to submit without committing their changes.\n */\n preventUncommittedChanges?: boolean\n /**\n * If set to `true`, the Form.Isolation will reset its data context after committing the data to the outer context.\n */\n resetDataAfterCommit?: boolean\n /**\n * Provide a reference by using Form.Isolation.createDataReference.\n */\n dataReference?: IsolationDataReference\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data extends JsonObject> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const [dataReferenceFallback] = useState<IsolationDataReference>(() => {\n if (!props?.dataReference) {\n return createDataReference()\n }\n })\n\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n preventUncommittedChanges,\n data,\n defaultData,\n dataReference = dataReferenceFallback,\n resetDataAfterCommit,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n // Depending on the usage, we can get a path like so: \"/pushContainerItems/0/somePath\"\n // where \"somePath\" is a frozen object. In order to still be able to modify it,\n // pointer.set will unfreeze the object and then modify it. (Object.isFrozen(obj[tok]))\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const onUpdateDataValueHandler = useCallback(\n async (\n path: Path,\n value: unknown,\n { preventUpdate = undefined } = {}\n ) => {\n if (internalDataRef.current === clearedData) {\n internalDataRef.current = {} as Data\n }\n\n pointer.set(internalDataRef.current, path, value)\n\n if (!preventUpdate) {\n forceUpdate()\n }\n },\n []\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n dataContextRef.current?.mountedFieldsRef.current.forEach(\n (field, path) => {\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n )\n return mounterData\n }, [])\n\n useMountEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n })\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || structuredClone(dataOuter) || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const setIsolatedData = useCallback((data: Data) => {\n localDataRef.current = data\n internalDataRef.current = data\n }, [])\n\n const onClear = useCallback(() => {\n setIsolatedData(clearedData as Data)\n forceUpdate()\n onClearProp?.()\n }, [onClearProp, setIsolatedData])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onUpdateDataValue: onUpdateDataValueHandler,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <IsolationContext.Provider\n value={{\n preventUncommittedChanges,\n dataReference,\n resetDataAfterCommit,\n outerContext,\n setIsolatedData,\n }}\n >\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return <IsolatedContainer>{children} </IsolatedContainer>\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && <BubbleValidation />}\n </IsolationContext.Provider>\n </Provider>\n )\n}\n\nfunction BubbleValidation() {\n const innerContext = useContext(DataContext)\n const { outerContext } = useContext(IsolationContext)\n const { setShowAllErrors } = innerContext\n\n const setShowAllErrorsNested = useCallback(\n (showAllErrors: boolean) => {\n setShowAllErrors?.(showAllErrors)\n },\n [setShowAllErrors]\n )\n\n const { addSetShowAllErrorsRef } = outerContext || {}\n if (!addSetShowAllErrorsRef?.current?.includes(setShowAllErrorsNested)) {\n addSetShowAllErrorsRef?.current.push(setShowAllErrorsNested)\n }\n\n useReportError(\n innerContext.hasErrors() ? isolationError : undefined,\n outerContext,\n 'isolation'\n )\n\n return null\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider.ResetButton = IsolationResetButton\nIsolationProvider.createDataReference = createDataReference\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  export type IsolationDataReference = {
3
- refresh: () => void;
3
+ refresh: (options?: {
4
+ deferred?: boolean;
5
+ }) => void;
4
6
  update: (data: unknown) => void;
5
- cleanup: () => void;
7
+ cleanup: (fn?: () => void) => void;
6
8
  snapshotRef: React.MutableRefObject<unknown>;
7
9
  eventsRef: React.MutableRefObject<Array<() => void>>;
8
10
  };
@@ -5,14 +5,30 @@ export function createDataReference() {
5
5
  const eventsRef = {
6
6
  current: []
7
7
  };
8
- const refresh = () => {
9
- eventsRef.current.forEach(fn => fn());
8
+ const refresh = function () {
9
+ let {
10
+ deferred = false
11
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ const update = () => eventsRef.current.forEach(fn => fn());
13
+ if (deferred && typeof window !== 'undefined') {
14
+ requestAnimationFrame(update);
15
+ } else {
16
+ update();
17
+ }
10
18
  };
11
19
  const update = data => {
12
20
  snapshotRef.current = data;
13
21
  };
14
- const cleanup = () => {
15
- eventsRef.current = [];
22
+ const cleanup = function () {
23
+ let fn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
24
+ if (fn) {
25
+ const index = eventsRef.current.indexOf(fn);
26
+ if (index !== -1) {
27
+ eventsRef.current.splice(index, 1);
28
+ }
29
+ } else {
30
+ eventsRef.current = [];
31
+ }
16
32
  };
17
33
  return {
18
34
  refresh,