@dnb/eufemia 10.12.0 → 10.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/accordion/Accordion.js +1 -0
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionGroup.js +1 -0
  5. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  6. package/cjs/components/accordion/AccordionHeader.js +5 -15
  7. package/cjs/components/accordion/AccordionHeader.js.map +1 -1
  8. package/cjs/components/accordion/style/dnb-accordion.css +2 -2
  9. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  10. package/cjs/components/accordion/style/dnb-accordion.scss +3 -8
  11. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  12. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  13. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  14. package/cjs/components/anchor/Anchor.js.map +1 -1
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  18. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  19. package/cjs/components/autocomplete/Autocomplete.js +41 -16
  20. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  21. package/cjs/components/breadcrumb/Breadcrumb.js +1 -0
  22. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  24. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  25. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  26. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  27. package/cjs/components/card/Card.js +2 -2
  28. package/cjs/components/card/Card.js.map +1 -1
  29. package/cjs/components/dialog/Dialog.js +1 -0
  30. package/cjs/components/dialog/Dialog.js.map +1 -1
  31. package/cjs/components/dialog/DialogContent.js +1 -0
  32. package/cjs/components/dialog/DialogContent.js.map +1 -1
  33. package/cjs/components/dialog/parts/DialogAction.js +1 -0
  34. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  35. package/cjs/components/drawer/Drawer.js +1 -0
  36. package/cjs/components/drawer/Drawer.js.map +1 -1
  37. package/cjs/components/drawer/DrawerContent.js +1 -0
  38. package/cjs/components/drawer/DrawerContent.js.map +1 -1
  39. package/cjs/components/drawer/parts/DrawerContentContext.js +1 -0
  40. package/cjs/components/drawer/parts/DrawerContentContext.js.map +1 -1
  41. package/cjs/components/flex/Container.js +6 -4
  42. package/cjs/components/flex/Container.js.map +1 -1
  43. package/cjs/components/flex/utils.js +2 -2
  44. package/cjs/components/flex/utils.js.map +1 -1
  45. package/cjs/components/form-row/style/dnb-form-row.scss +1 -1
  46. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  47. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  48. package/cjs/components/input-masked/MultiInputMask.d.ts +3 -3
  49. package/cjs/components/input-masked/MultiInputMask.js +2 -1
  50. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  51. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +1 -0
  52. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  53. package/cjs/components/input-masked/hooks/useMultiInputValues.js +1 -0
  54. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  55. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  56. package/cjs/components/number-format/useNumberFormat.js +1 -0
  57. package/cjs/components/number-format/useNumberFormat.js.map +1 -1
  58. package/cjs/components/pagination/PaginationBar.js +1 -0
  59. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  60. package/cjs/components/step-indicator/StepIndicatorContext.js +1 -0
  61. package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
  62. package/cjs/components/step-indicator/StepIndicatorItem.js +3 -2
  63. package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
  64. package/cjs/components/step-indicator/StepIndicatorList.js +1 -0
  65. package/cjs/components/step-indicator/StepIndicatorList.js.map +1 -1
  66. package/cjs/components/step-indicator/StepIndicatorModal.js +1 -0
  67. package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
  68. package/cjs/components/step-indicator/StepIndicatorSidebar.js +1 -0
  69. package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  70. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -0
  71. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  72. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  73. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  74. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  75. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  76. package/cjs/components/tooltip/TooltipWithEvents.js.map +1 -1
  77. package/cjs/components/upload/UploadContext.js +1 -0
  78. package/cjs/components/upload/UploadContext.js.map +1 -1
  79. package/cjs/components/upload/UploadFileInput.js +1 -0
  80. package/cjs/components/upload/UploadFileInput.js.map +1 -1
  81. package/cjs/components/upload/UploadFileListCell.js +1 -0
  82. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  83. package/cjs/elements/lists/Dl.d.ts +1 -1
  84. package/cjs/elements/lists/Dl.js.map +1 -1
  85. package/cjs/elements/typography/style/dnb-typography.scss +1 -1
  86. package/cjs/elements/typography/style/typography-mixins.scss +2 -2
  87. package/cjs/extensions/forms/DataContext/At/At.js +1 -0
  88. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  89. package/cjs/extensions/forms/DataContext/Provider/Provider.js +5 -3
  90. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  91. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  92. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  93. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -3
  94. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  95. package/cjs/extensions/forms/Field/Boolean/Boolean.js +3 -2
  96. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Currency/Currency.js +3 -2
  98. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Date/Date.js +2 -1
  100. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  101. package/cjs/extensions/forms/Field/Email/Email.js +5 -3
  102. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  103. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -3
  104. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/Number/Number.js +3 -2
  106. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  107. package/cjs/extensions/forms/Field/Option/Option.js +1 -1
  108. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  109. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -3
  110. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  111. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  112. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +58 -18
  113. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  114. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -4
  115. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  116. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -8
  117. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  118. package/cjs/extensions/forms/Field/Selection/Selection.js +29 -20
  119. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  120. package/cjs/extensions/forms/Field/String/String.js +10 -9
  121. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  122. package/cjs/extensions/forms/Field/Toggle/Toggle.js +5 -4
  123. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  124. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +1 -0
  125. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  126. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +1 -0
  127. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  128. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  129. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  130. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +3 -2
  131. package/cjs/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  132. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +2 -1
  133. package/cjs/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  134. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +1 -0
  135. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  136. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +1 -0
  137. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  138. package/cjs/extensions/forms/StepsLayout/Step/Step.js +1 -0
  139. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  140. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +3 -1
  141. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  142. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +3 -1
  143. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  144. package/cjs/extensions/forms/Value/Boolean/Boolean.js +1 -0
  145. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  146. package/cjs/extensions/forms/Value/Currency/Currency.js +3 -2
  147. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  148. package/cjs/extensions/forms/Value/Date/Date.js +3 -1
  149. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  150. package/cjs/extensions/forms/Value/Email/Email.js +3 -1
  151. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  152. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +3 -1
  153. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  154. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +3 -1
  155. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  156. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  157. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  158. package/cjs/extensions/forms/Visibility/Visibility.js +1 -0
  159. package/cjs/extensions/forms/Visibility/Visibility.js.map +1 -1
  160. package/cjs/extensions/forms/hooks/useDataValue.js +21 -17
  161. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  162. package/cjs/extensions/forms/types.js +6 -6
  163. package/cjs/extensions/forms/types.js.map +1 -1
  164. package/cjs/extensions/forms/utils/ajv.js +3 -2
  165. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  166. package/cjs/extensions/forms/utils/numbers.js +2 -2
  167. package/cjs/extensions/forms/utils/numbers.js.map +1 -1
  168. package/cjs/extensions/forms/utils/useWasChanged.js +8 -6
  169. package/cjs/extensions/forms/utils/useWasChanged.js.map +1 -1
  170. package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -1
  171. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  172. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  173. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  174. package/cjs/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  175. package/cjs/shared/Eufemia.d.ts +1 -1
  176. package/cjs/shared/Eufemia.js +2 -2
  177. package/cjs/shared/Eufemia.js.map +1 -1
  178. package/cjs/style/dnb-ui-components.css +2 -2
  179. package/cjs/style/dnb-ui-components.min.css +1 -1
  180. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  181. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  182. package/cjs/style/themes/theme-sbanken/fonts.scss +5 -4
  183. package/cjs/style/themes/theme-sbanken/properties.js +2 -2
  184. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  185. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  186. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  187. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  188. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  189. package/cjs/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  190. package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
  191. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  192. package/components/accordion/Accordion.js +2 -0
  193. package/components/accordion/Accordion.js.map +1 -1
  194. package/components/accordion/AccordionGroup.js +2 -0
  195. package/components/accordion/AccordionGroup.js.map +1 -1
  196. package/components/accordion/AccordionHeader.js +6 -15
  197. package/components/accordion/AccordionHeader.js.map +1 -1
  198. package/components/accordion/style/dnb-accordion.css +2 -2
  199. package/components/accordion/style/dnb-accordion.min.css +1 -1
  200. package/components/accordion/style/dnb-accordion.scss +3 -8
  201. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  202. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  203. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  204. package/components/anchor/Anchor.js.map +1 -1
  205. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  206. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  207. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  208. package/components/autocomplete/Autocomplete.d.ts +2 -2
  209. package/components/autocomplete/Autocomplete.js +42 -17
  210. package/components/autocomplete/Autocomplete.js.map +1 -1
  211. package/components/breadcrumb/Breadcrumb.js +2 -0
  212. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  213. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  214. package/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  215. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  216. package/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  217. package/components/card/Card.js +2 -2
  218. package/components/card/Card.js.map +1 -1
  219. package/components/dialog/Dialog.js +2 -0
  220. package/components/dialog/Dialog.js.map +1 -1
  221. package/components/dialog/DialogContent.js +2 -0
  222. package/components/dialog/DialogContent.js.map +1 -1
  223. package/components/dialog/parts/DialogAction.js +2 -0
  224. package/components/dialog/parts/DialogAction.js.map +1 -1
  225. package/components/drawer/Drawer.js +2 -0
  226. package/components/drawer/Drawer.js.map +1 -1
  227. package/components/drawer/DrawerContent.js +2 -0
  228. package/components/drawer/DrawerContent.js.map +1 -1
  229. package/components/drawer/parts/DrawerContentContext.js +2 -0
  230. package/components/drawer/parts/DrawerContentContext.js.map +1 -1
  231. package/components/flex/Container.js +6 -4
  232. package/components/flex/Container.js.map +1 -1
  233. package/components/flex/utils.js +2 -2
  234. package/components/flex/utils.js.map +1 -1
  235. package/components/form-row/style/dnb-form-row.scss +1 -1
  236. package/components/icon/style/dnb-icon.scss +1 -1
  237. package/components/input-masked/InputMasked.d.ts +1 -1
  238. package/components/input-masked/MultiInputMask.d.ts +3 -3
  239. package/components/input-masked/MultiInputMask.js +3 -1
  240. package/components/input-masked/MultiInputMask.js.map +1 -1
  241. package/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
  242. package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  243. package/components/input-masked/hooks/useMultiInputValues.js +2 -0
  244. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  245. package/components/number-format/NumberUtils.js.map +1 -1
  246. package/components/number-format/useNumberFormat.js +2 -0
  247. package/components/number-format/useNumberFormat.js.map +1 -1
  248. package/components/pagination/PaginationBar.js +2 -0
  249. package/components/pagination/PaginationBar.js.map +1 -1
  250. package/components/step-indicator/StepIndicatorContext.js +2 -0
  251. package/components/step-indicator/StepIndicatorContext.js.map +1 -1
  252. package/components/step-indicator/StepIndicatorItem.js +4 -2
  253. package/components/step-indicator/StepIndicatorItem.js.map +1 -1
  254. package/components/step-indicator/StepIndicatorList.js +2 -0
  255. package/components/step-indicator/StepIndicatorList.js.map +1 -1
  256. package/components/step-indicator/StepIndicatorModal.js +2 -0
  257. package/components/step-indicator/StepIndicatorModal.js.map +1 -1
  258. package/components/step-indicator/StepIndicatorSidebar.js +2 -0
  259. package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  260. package/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  261. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  262. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  263. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  264. package/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  265. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  266. package/components/tooltip/TooltipWithEvents.js.map +1 -1
  267. package/components/upload/UploadContext.js +2 -0
  268. package/components/upload/UploadContext.js.map +1 -1
  269. package/components/upload/UploadFileInput.js +2 -0
  270. package/components/upload/UploadFileInput.js.map +1 -1
  271. package/components/upload/UploadFileListCell.js +2 -0
  272. package/components/upload/UploadFileListCell.js.map +1 -1
  273. package/elements/lists/Dl.d.ts +1 -1
  274. package/elements/lists/Dl.js.map +1 -1
  275. package/elements/typography/style/dnb-typography.scss +1 -1
  276. package/elements/typography/style/typography-mixins.scss +2 -2
  277. package/es/components/accordion/Accordion.js +2 -0
  278. package/es/components/accordion/Accordion.js.map +1 -1
  279. package/es/components/accordion/AccordionGroup.js +2 -0
  280. package/es/components/accordion/AccordionGroup.js.map +1 -1
  281. package/es/components/accordion/AccordionHeader.js +6 -15
  282. package/es/components/accordion/AccordionHeader.js.map +1 -1
  283. package/es/components/accordion/style/dnb-accordion.css +2 -2
  284. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  285. package/es/components/accordion/style/dnb-accordion.scss +3 -8
  286. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +1 -1
  287. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  288. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +1 -1
  289. package/es/components/anchor/Anchor.js.map +1 -1
  290. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -2
  291. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  292. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -2
  293. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  294. package/es/components/autocomplete/Autocomplete.js +42 -17
  295. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  296. package/es/components/breadcrumb/Breadcrumb.js +2 -0
  297. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  298. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  299. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +2 -2
  300. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +1 -1
  301. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +2 -2
  302. package/es/components/card/Card.js +2 -2
  303. package/es/components/card/Card.js.map +1 -1
  304. package/es/components/dialog/Dialog.js +2 -0
  305. package/es/components/dialog/Dialog.js.map +1 -1
  306. package/es/components/dialog/DialogContent.js +2 -0
  307. package/es/components/dialog/DialogContent.js.map +1 -1
  308. package/es/components/dialog/parts/DialogAction.js +2 -0
  309. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  310. package/es/components/drawer/Drawer.js +2 -0
  311. package/es/components/drawer/Drawer.js.map +1 -1
  312. package/es/components/drawer/DrawerContent.js +2 -0
  313. package/es/components/drawer/DrawerContent.js.map +1 -1
  314. package/es/components/drawer/parts/DrawerContentContext.js +2 -0
  315. package/es/components/drawer/parts/DrawerContentContext.js.map +1 -1
  316. package/es/components/flex/Container.js +6 -4
  317. package/es/components/flex/Container.js.map +1 -1
  318. package/es/components/flex/utils.js +2 -2
  319. package/es/components/flex/utils.js.map +1 -1
  320. package/es/components/form-row/style/dnb-form-row.scss +1 -1
  321. package/es/components/icon/style/dnb-icon.scss +1 -1
  322. package/es/components/input-masked/InputMasked.d.ts +1 -1
  323. package/es/components/input-masked/MultiInputMask.d.ts +3 -3
  324. package/es/components/input-masked/MultiInputMask.js +3 -1
  325. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  326. package/es/components/input-masked/hooks/useHandleCursorPosition.js +2 -0
  327. package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  328. package/es/components/input-masked/hooks/useMultiInputValues.js +2 -0
  329. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  330. package/es/components/number-format/NumberUtils.js.map +1 -1
  331. package/es/components/number-format/useNumberFormat.js +2 -0
  332. package/es/components/number-format/useNumberFormat.js.map +1 -1
  333. package/es/components/pagination/PaginationBar.js +2 -0
  334. package/es/components/pagination/PaginationBar.js.map +1 -1
  335. package/es/components/step-indicator/StepIndicatorContext.js +2 -0
  336. package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
  337. package/es/components/step-indicator/StepIndicatorItem.js +4 -2
  338. package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
  339. package/es/components/step-indicator/StepIndicatorList.js +2 -0
  340. package/es/components/step-indicator/StepIndicatorList.js.map +1 -1
  341. package/es/components/step-indicator/StepIndicatorModal.js +2 -0
  342. package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
  343. package/es/components/step-indicator/StepIndicatorSidebar.js +2 -0
  344. package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
  345. package/es/components/step-indicator/StepIndicatorTriggerButton.js +2 -0
  346. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  347. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -0
  348. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  349. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +1 -0
  350. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -1
  351. package/es/components/tooltip/TooltipWithEvents.js.map +1 -1
  352. package/es/components/upload/UploadContext.js +2 -0
  353. package/es/components/upload/UploadContext.js.map +1 -1
  354. package/es/components/upload/UploadFileInput.js +2 -0
  355. package/es/components/upload/UploadFileInput.js.map +1 -1
  356. package/es/components/upload/UploadFileListCell.js +2 -0
  357. package/es/components/upload/UploadFileListCell.js.map +1 -1
  358. package/es/elements/lists/Dl.d.ts +1 -1
  359. package/es/elements/lists/Dl.js.map +1 -1
  360. package/es/elements/typography/style/dnb-typography.scss +1 -1
  361. package/es/elements/typography/style/typography-mixins.scss +2 -2
  362. package/es/extensions/forms/DataContext/At/At.js +2 -0
  363. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  364. package/es/extensions/forms/DataContext/Provider/Provider.js +6 -3
  365. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  366. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  367. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  368. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  369. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  370. package/es/extensions/forms/Field/Boolean/Boolean.js +4 -2
  371. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  372. package/es/extensions/forms/Field/Currency/Currency.js +3 -2
  373. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  374. package/es/extensions/forms/Field/Date/Date.js +3 -1
  375. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  376. package/es/extensions/forms/Field/Email/Email.js +6 -3
  377. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  378. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  379. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  380. package/es/extensions/forms/Field/Number/Number.js +3 -2
  381. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  382. package/es/extensions/forms/Field/Option/Option.js +1 -1
  383. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  384. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  385. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  386. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  387. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +48 -16
  388. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  389. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  390. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  391. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  392. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  393. package/es/extensions/forms/Field/Selection/Selection.js +30 -20
  394. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  395. package/es/extensions/forms/Field/String/String.js +11 -9
  396. package/es/extensions/forms/Field/String/String.js.map +1 -1
  397. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -4
  398. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  399. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  400. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  401. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  402. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  403. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  404. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  405. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  406. package/es/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  407. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  408. package/es/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  409. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  410. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  411. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  412. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  413. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -0
  414. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  415. package/es/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  416. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  417. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  418. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  419. package/es/extensions/forms/Value/Boolean/Boolean.js +2 -0
  420. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  421. package/es/extensions/forms/Value/Currency/Currency.js +3 -2
  422. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  423. package/es/extensions/forms/Value/Date/Date.js +4 -1
  424. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  425. package/es/extensions/forms/Value/Email/Email.js +4 -1
  426. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  427. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  428. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  429. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  430. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  431. package/es/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  432. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  433. package/es/extensions/forms/Visibility/Visibility.js +2 -0
  434. package/es/extensions/forms/Visibility/Visibility.js.map +1 -1
  435. package/es/extensions/forms/hooks/useDataValue.js +22 -17
  436. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  437. package/es/extensions/forms/types.js +6 -6
  438. package/es/extensions/forms/types.js.map +1 -1
  439. package/es/extensions/forms/utils/ajv.js +3 -2
  440. package/es/extensions/forms/utils/ajv.js.map +1 -1
  441. package/es/extensions/forms/utils/numbers.js +2 -2
  442. package/es/extensions/forms/utils/numbers.js.map +1 -1
  443. package/es/extensions/forms/utils/useWasChanged.js +9 -6
  444. package/es/extensions/forms/utils/useWasChanged.js.map +1 -1
  445. package/es/fragments/drawer-list/DrawerListHelpers.js +1 -1
  446. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  447. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  448. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  449. package/es/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  450. package/es/shared/Eufemia.d.ts +1 -1
  451. package/es/shared/Eufemia.js +2 -2
  452. package/es/shared/Eufemia.js.map +1 -1
  453. package/es/style/dnb-ui-components.css +2 -2
  454. package/es/style/dnb-ui-components.min.css +1 -1
  455. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  456. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  457. package/es/style/themes/theme-sbanken/fonts.scss +5 -4
  458. package/es/style/themes/theme-sbanken/properties.js +2 -2
  459. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  460. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  461. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  462. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  463. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  464. package/es/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  465. package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
  466. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  467. package/esm/dnb-ui-basis.min.mjs +1 -1
  468. package/esm/dnb-ui-components.min.mjs +1 -1
  469. package/esm/dnb-ui-elements.min.mjs +1 -1
  470. package/esm/dnb-ui-extensions.min.mjs +2 -2
  471. package/esm/dnb-ui-lib.min.mjs +1 -1
  472. package/extensions/forms/DataContext/At/At.js +2 -0
  473. package/extensions/forms/DataContext/At/At.js.map +1 -1
  474. package/extensions/forms/DataContext/Provider/Provider.js +6 -3
  475. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  476. package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -9
  477. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  478. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -3
  479. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  480. package/extensions/forms/Field/Boolean/Boolean.js +4 -2
  481. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  482. package/extensions/forms/Field/Currency/Currency.js +3 -2
  483. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  484. package/extensions/forms/Field/Date/Date.js +3 -1
  485. package/extensions/forms/Field/Date/Date.js.map +1 -1
  486. package/extensions/forms/Field/Email/Email.js +6 -3
  487. package/extensions/forms/Field/Email/Email.js.map +1 -1
  488. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -3
  489. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  490. package/extensions/forms/Field/Number/Number.js +3 -2
  491. package/extensions/forms/Field/Number/Number.js.map +1 -1
  492. package/extensions/forms/Field/Option/Option.js +1 -1
  493. package/extensions/forms/Field/Option/Option.js.map +1 -1
  494. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -3
  495. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  496. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -0
  497. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -18
  498. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  499. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +7 -4
  500. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  501. package/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -8
  502. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  503. package/extensions/forms/Field/Selection/Selection.js +30 -20
  504. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  505. package/extensions/forms/Field/String/String.js +11 -9
  506. package/extensions/forms/Field/String/String.js.map +1 -1
  507. package/extensions/forms/Field/Toggle/Toggle.js +6 -4
  508. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  509. package/extensions/forms/FieldBlock/FieldBlock.js +2 -0
  510. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  511. package/extensions/forms/Form/SubmitButton/SubmitButton.js +2 -0
  512. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  513. package/extensions/forms/Iterate/Array/Array.js +2 -2
  514. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  515. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js +4 -2
  516. package/extensions/forms/Iterate/ArrayPushButton/ArrayPushButton.js.map +1 -1
  517. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js +3 -1
  518. package/extensions/forms/Iterate/ArrayRemoveElementButton/ArrayRemoveElementButton.js.map +1 -1
  519. package/extensions/forms/StepsLayout/NextButton/NextButton.js +2 -0
  520. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  521. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +2 -0
  522. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  523. package/extensions/forms/StepsLayout/Step/Step.js +2 -0
  524. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  525. package/extensions/forms/StepsLayout/StepsLayout.js +4 -1
  526. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  527. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -1
  528. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  529. package/extensions/forms/Value/Boolean/Boolean.js +2 -0
  530. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  531. package/extensions/forms/Value/Currency/Currency.js +3 -2
  532. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  533. package/extensions/forms/Value/Date/Date.js +4 -1
  534. package/extensions/forms/Value/Date/Date.js.map +1 -1
  535. package/extensions/forms/Value/Email/Email.js +4 -1
  536. package/extensions/forms/Value/Email/Email.js.map +1 -1
  537. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -1
  538. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  539. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -1
  540. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  541. package/extensions/forms/ValueBlock/ValueBlock.js +1 -1
  542. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  543. package/extensions/forms/Visibility/Visibility.js +2 -0
  544. package/extensions/forms/Visibility/Visibility.js.map +1 -1
  545. package/extensions/forms/hooks/useDataValue.js +22 -17
  546. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  547. package/extensions/forms/types.js +6 -6
  548. package/extensions/forms/types.js.map +1 -1
  549. package/extensions/forms/utils/ajv.js +3 -2
  550. package/extensions/forms/utils/ajv.js.map +1 -1
  551. package/extensions/forms/utils/numbers.js +2 -2
  552. package/extensions/forms/utils/numbers.js.map +1 -1
  553. package/extensions/forms/utils/useWasChanged.js +9 -6
  554. package/extensions/forms/utils/useWasChanged.js.map +1 -1
  555. package/fragments/drawer-list/DrawerListHelpers.js +1 -1
  556. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  557. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  558. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-sbanken.scss +1 -1
  559. package/fragments/drawer-list/style/themes/dnb-drawer-list-theme-ui.scss +2 -2
  560. package/package.json +11 -1
  561. package/shared/Eufemia.d.ts +1 -1
  562. package/shared/Eufemia.js +2 -2
  563. package/shared/Eufemia.js.map +1 -1
  564. package/style/dnb-ui-components.css +2 -2
  565. package/style/dnb-ui-components.min.css +1 -1
  566. package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  567. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  568. package/style/themes/theme-sbanken/fonts.scss +5 -4
  569. package/style/themes/theme-sbanken/properties.js +2 -2
  570. package/style/themes/theme-sbanken/properties.js.map +1 -1
  571. package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -2
  572. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  573. package/style/themes/theme-sbanken/sbanken-theme-components.css +8 -7
  574. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  575. package/style/themes/theme-sbanken/theme-mapping.scss +2 -1
  576. package/style/themes/theme-ui/ui-theme-components.css +2 -2
  577. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  578. package/umd/dnb-ui-basis.min.js +1 -1
  579. package/umd/dnb-ui-components.min.js +1 -1
  580. package/umd/dnb-ui-elements.min.js +1 -1
  581. package/umd/dnb-ui-extensions.min.js +2 -2
  582. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -21,7 +22,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
21
22
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
22
23
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
23
24
  function useDataValue(props) {
24
- var _props$path;
25
+ var _props$path, _props$autoComplete;
25
26
  const {
26
27
  path,
27
28
  elementPath,
@@ -41,7 +42,10 @@ function useDataValue(props) {
41
42
  toInput = value => value,
42
43
  fromInput = value => value
43
44
  } = props;
44
- const id = (0, _react.useMemo)(() => props.id ?? (0, _componentHelper.makeUniqueId)(), [props.id]);
45
+ const id = (0, _react.useMemo)(() => {
46
+ var _props$id;
47
+ return (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : (0, _componentHelper.makeUniqueId)();
48
+ }, [props.id]);
45
49
  const dataContext = (0, _react.useContext)(_DataContext.Context);
46
50
  const fieldBlockContext = (0, _react.useContext)(_FieldBlockContext.default);
47
51
  const iterateElementContext = (0, _react.useContext)(_IterateElementContext.default);
@@ -49,18 +53,18 @@ function useDataValue(props) {
49
53
  handlePathChange: dataContextHandlePathChange,
50
54
  setPathWithError: dataContextSetPathWithError,
51
55
  errors: dataContextErrors
52
- } = dataContext ?? {};
56
+ } = dataContext !== null && dataContext !== void 0 ? dataContext : {};
53
57
  const inFieldBlock = Boolean(fieldBlockContext);
54
58
  const {
55
59
  setError: setFieldBlockError,
56
60
  setShowError: setShowFieldBlockError
57
- } = fieldBlockContext ?? {};
61
+ } = fieldBlockContext !== null && fieldBlockContext !== void 0 ? fieldBlockContext : {};
58
62
  const inIterate = Boolean(iterateElementContext);
59
63
  const {
60
64
  index: iterateElementIndex,
61
65
  value: iterateElementValue,
62
66
  handleChange: handleIterateElementChange
63
- } = iterateElementContext ?? {};
67
+ } = iterateElementContext !== null && iterateElementContext !== void 0 ? iterateElementContext : {};
64
68
  if (path && path.substring(0, 1) !== '/') {
65
69
  throw new Error('Invalid path. Data value path JSON Pointers must be from root (starting with a /).');
66
70
  }
@@ -103,7 +107,7 @@ function useDataValue(props) {
103
107
  if (path) {
104
108
  dataContextSetPathWithError === null || dataContextSetPathWithError === void 0 ? void 0 : dataContextSetPathWithError(path, Boolean(error));
105
109
  }
106
- setFieldBlockError === null || setFieldBlockError === void 0 ? void 0 : setFieldBlockError(path ?? id, errorWithCorrectMessage);
110
+ setFieldBlockError === null || setFieldBlockError === void 0 ? void 0 : setFieldBlockError(path !== null && path !== void 0 ? path : id, errorWithCorrectMessage);
107
111
  }, [path, id, errorMessages, dataContextSetPathWithError, setFieldBlockError]);
108
112
  const validateValue = (0, _react.useCallback)(valueToValidate => {
109
113
  if (typeof validator === 'function') {
@@ -137,24 +141,24 @@ function useDataValue(props) {
137
141
  (0, _react.useEffect)(() => {
138
142
  if (dataContext.showAllErrors) {
139
143
  setShowError(true);
140
- setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path ?? id, true);
144
+ setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path !== null && path !== void 0 ? path : id, true);
141
145
  }
142
146
  }, [id, path, dataContext.showAllErrors, setShowFieldBlockError]);
143
147
  const setHasFocus = (0, _react.useCallback)((hasFocus, valueOverride) => {
144
148
  if (hasFocus) {
145
149
  hasFocusRef.current = true;
146
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(valueOverride ?? value);
150
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(valueOverride !== null && valueOverride !== void 0 ? valueOverride : value);
147
151
  } else {
148
152
  hasFocusRef.current = false;
149
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(valueOverride ?? value);
153
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur(valueOverride !== null && valueOverride !== void 0 ? valueOverride : value);
150
154
  if (!changedRef.current && !validateUnchanged) {
151
155
  return;
152
156
  }
153
157
  if (typeof onBlurValidator === 'function') {
154
- Promise.resolve(onBlurValidator(valueOverride ?? value)).then(setErrorAndUpdateDataContext);
158
+ Promise.resolve(onBlurValidator(valueOverride !== null && valueOverride !== void 0 ? valueOverride : value)).then(setErrorAndUpdateDataContext);
155
159
  }
156
160
  setShowError(true);
157
- setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path ?? id, true);
161
+ setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path !== null && path !== void 0 ? path : id, true);
158
162
  }
159
163
  }, [id, path, value, validateUnchanged, onFocus, onBlur, onBlurValidator, setErrorAndUpdateDataContext, setShowFieldBlockError]);
160
164
  const handleFocus = (0, _react.useCallback)(() => setHasFocus(true), [setHasFocus]);
@@ -168,10 +172,10 @@ function useDataValue(props) {
168
172
  changedRef.current = true;
169
173
  if (continuousValidation || continuousValidation !== false && !hasFocusRef.current) {
170
174
  setShowError(true);
171
- setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path ?? id, true);
175
+ setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path !== null && path !== void 0 ? path : id, true);
172
176
  } else {
173
177
  setShowError(false);
174
- setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path ?? id, false);
178
+ setShowFieldBlockError === null || setShowFieldBlockError === void 0 ? void 0 : setShowFieldBlockError(path !== null && path !== void 0 ? path : id, false);
175
179
  }
176
180
  validateValue(newValue);
177
181
  onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
@@ -179,11 +183,11 @@ function useDataValue(props) {
179
183
  dataContextHandlePathChange === null || dataContextHandlePathChange === void 0 ? void 0 : dataContextHandlePathChange(path, newValue);
180
184
  }
181
185
  if (elementPath) {
182
- const iteratValuePath = `/${iterateElementIndex}${elementPath && elementPath !== '/' ? elementPath : ''}`;
183
- handleIterateElementChange === null || handleIterateElementChange === void 0 ? void 0 : handleIterateElementChange(iteratValuePath, newValue);
186
+ const iterateValuePath = `/${iterateElementIndex}${elementPath && elementPath !== '/' ? elementPath : ''}`;
187
+ handleIterateElementChange === null || handleIterateElementChange === void 0 ? void 0 : handleIterateElementChange(iterateValuePath, newValue);
184
188
  }
185
189
  }, [id, path, elementPath, iterateElementIndex, value, continuousValidation, onChange, validateValue, dataContextHandlePathChange, setShowFieldBlockError, handleIterateElementChange, fromInput]);
186
- const exportError = (0, _react.useMemo)(() => errorProp ?? error, [errorProp, error]);
190
+ const exportError = (0, _react.useMemo)(() => errorProp !== null && errorProp !== void 0 ? errorProp : error, [errorProp, error]);
187
191
  (0, _react.useEffect)(() => {
188
192
  if (path) {
189
193
  dataContext === null || dataContext === void 0 ? void 0 : dataContext.handleMountField(path);
@@ -200,7 +204,7 @@ function useDataValue(props) {
200
204
  name: props.name || ((_props$path = props.path) === null || _props$path === void 0 ? void 0 : _props$path.replace('/', '')) || id,
201
205
  value: toInput(value),
202
206
  error: inFieldBlock ? undefined : showError ? exportError : undefined,
203
- autoComplete: props.autoComplete ?? (dataContext.autoComplete === true ? 'on' : 'off'),
207
+ autoComplete: (_props$autoComplete = props.autoComplete) !== null && _props$autoComplete !== void 0 ? _props$autoComplete : dataContext.autoComplete === true ? 'on' : 'off',
204
208
  setHasFocus,
205
209
  handleFocus,
206
210
  handleBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"useDataValue.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_types","_ajv","_interopRequireWildcard","_DataContext","_FieldBlockContext","_IterateElementContext","_componentHelper","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useDataValue","props","_props$path","path","elementPath","emptyValue","required","error","errorProp","onFocus","onBlur","onChange","validator","onBlurValidator","schema","errorMessages","validateInitially","validateUnchanged","continuousValidation","toInput","fromInput","id","useMemo","makeUniqueId","dataContext","useContext","Context","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","handlePathChange","dataContextHandlePathChange","setPathWithError","dataContextSetPathWithError","errors","dataContextErrors","inFieldBlock","Boolean","setError","setFieldBlockError","setShowError","setShowFieldBlockError","inIterate","index","iterateElementIndex","iterateElementValue","handleChange","handleIterateElementChange","substring","Error","externalValue","pointer","data","setValue","useState","changedRef","useRef","hasFocusRef","useEffect","showError","schemaValidator","ajv","compile","setErrorAndUpdateDataContext","useCallback","errorWithCorrectMessage","FormError","validationRule","validateValue","valueToValidate","Promise","resolve","then","ajvErrorsToOneFormError","showAllErrors","setHasFocus","hasFocus","valueOverride","current","handleFocus","handleBlur","argFromInput","newValue","iteratValuePath","exportError","handleMountField","handleUnMountField","name","replace","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useDataValue.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useState,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { FormError, FieldProps } from '../types'\nimport ajv, { ajvErrorsToOneFormError } from '../utils/ajv'\nimport { Context } from '../DataContext'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport { makeUniqueId } from '../../../shared/component-helper'\n\ninterface ReturnAdditional<Value> {\n id: string\n value: Value\n error: Error | FormError | undefined\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: FieldProps<unknown>['onChange']\n}\n\nexport default function useDataValue<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & ReturnAdditional<Value> {\n const {\n path,\n elementPath,\n emptyValue,\n required,\n error: errorProp,\n onFocus,\n onBlur,\n onChange,\n validator,\n onBlurValidator,\n schema,\n errorMessages,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n toInput = (value) => value,\n fromInput = (value) => value,\n } = props\n const id = useMemo(() => props.id ?? makeUniqueId(), [props.id])\n const dataContext = useContext(Context)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n\n const {\n handlePathChange: dataContextHandlePathChange,\n setPathWithError: dataContextSetPathWithError,\n errors: dataContextErrors,\n } = dataContext ?? {}\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setError: setFieldBlockError,\n setShowError: setShowFieldBlockError,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n value: iterateElementValue,\n handleChange: handleIterateElementChange,\n } = iterateElementContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (elementPath && elementPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid elementPath. Element pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (elementPath && !iterateElementContext) {\n throw new Error(\n 'elementPath cannot be used when not inside an iterate element context. Wrap the component in an Iterate.Loop.'\n )\n }\n\n const externalValue = useMemo(() => {\n if (props.value !== undefined) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return props.value\n }\n\n if (inIterate && elementPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (elementPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, elementPath)\n ? pointer.get(iterateElementValue, elementPath)\n : undefined\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : undefined\n }\n return undefined\n }, [\n path,\n elementPath,\n inIterate,\n iterateElementValue,\n props.value,\n dataContext.data,\n ])\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const [value, setValue] = useState(externalValue)\n const changedRef = useRef(false)\n const hasFocusRef = useRef(false)\n\n useEffect(() => {\n // When receiving the initial value, or receiving an updated value by props, update the internal value\n // so the component can be used \"controlled\".\n setValue(externalValue)\n }, [externalValue])\n\n // Error handling\n const [error, setError] = useState<Error | FormError | undefined>()\n const [showError, setShowError] = useState<boolean>(\n Boolean(validateInitially || errorProp)\n )\n const schemaValidator = useMemo(\n () =>\n schema && Object.keys(schema).length > 0\n ? ajv.compile(schema)\n : undefined,\n [schema]\n )\n\n const setErrorAndUpdateDataContext = useCallback(\n (error: FormError | undefined) => {\n const errorWithCorrectMessage =\n error instanceof FormError &&\n typeof error.validationRule === 'string' &&\n errorMessages?.[error.validationRule] !== undefined\n ? new FormError(errorMessages[error.validationRule])\n : error\n\n setError(errorWithCorrectMessage)\n\n if (path) {\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n dataContextSetPathWithError?.(path, Boolean(error))\n }\n\n setFieldBlockError?.(path ?? id, errorWithCorrectMessage)\n },\n [\n path,\n id,\n errorMessages,\n dataContextSetPathWithError,\n setFieldBlockError,\n ]\n )\n\n const validateValue = useCallback(\n (valueToValidate): FormError | undefined => {\n // Prioritize received validator functions first\n // Possible future change: Merge errors if multiple, like one message with each message concatinated.\n if (typeof validator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n Promise.resolve(validator(valueToValidate))\n // This is a validator, so it is expected to resolve with an error when the value is invalid. If it\n // throws an error, it is not caught here as that will cause programmatic errors to show inside the form\n // as if they were operational errors.\n .then(setErrorAndUpdateDataContext)\n }\n\n if (valueToValidate === emptyValue && required) {\n const error = new FormError('The value is required', {\n validationRule: 'required',\n })\n setErrorAndUpdateDataContext(error)\n return error\n } else if (schemaValidator) {\n // This input has a direct schema (through props)\n if (valueToValidate === undefined && emptyValue === undefined) {\n // Avoid validating undefined-values if they are expected (set with emptyValue) as they will\n // usually fail against json-schema type\n setErrorAndUpdateDataContext(undefined)\n return undefined\n }\n schemaValidator(valueToValidate)\n const error = ajvErrorsToOneFormError(schemaValidator.errors)\n setErrorAndUpdateDataContext(error)\n return error\n } else {\n // Removing any previous error from required\n setErrorAndUpdateDataContext(undefined)\n return undefined\n }\n },\n [\n schemaValidator,\n emptyValue,\n required,\n setErrorAndUpdateDataContext,\n validator,\n ]\n )\n\n useEffect(() => {\n // If a surrounding data context has an error for this field (by path) and no error has been set by local component validation, use the data context error\n if (!error && path && dataContextErrors?.[path]) {\n setErrorAndUpdateDataContext(dataContextErrors[path])\n }\n }, [path, dataContextErrors, error, setErrorAndUpdateDataContext])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n }\n }, [id, path, dataContext.showAllErrors, setShowFieldBlockError])\n\n const setHasFocus = useCallback(\n (hasFocus: boolean, valueOverride?: unknown) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.(valueOverride ?? value)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.(valueOverride ?? value)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without havinc hanged the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n if (typeof onBlurValidator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n Promise.resolve(onBlurValidator(valueOverride ?? value))\n // This is a validator, so it is expected to resolve with an error when the value is invalid. If it\n // throws an error, it is not caught here as that will cause programmatic errors to show inside the form\n // as if they were operational errors.\n .then(setErrorAndUpdateDataContext)\n }\n\n // Since the user left the field, show error (if any)\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n }\n },\n [\n id,\n path,\n value,\n validateUnchanged,\n onFocus,\n onBlur,\n onBlurValidator,\n setErrorAndUpdateDataContext,\n setShowFieldBlockError,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n const handleChange = useCallback(\n (argFromInput) => {\n const newValue = fromInput(argFromInput)\n\n if (newValue === value) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n setValue(newValue)\n changedRef.current = true\n\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n setShowError(false)\n setShowFieldBlockError?.(path ?? id, false)\n }\n // Always validate the value immediately when it is changed\n validateValue(newValue)\n\n onChange?.(newValue)\n if (path) {\n dataContextHandlePathChange?.(path, newValue)\n }\n if (elementPath) {\n const iteratValuePath = `/${iterateElementIndex}${\n elementPath && elementPath !== '/' ? elementPath : ''\n }`\n handleIterateElementChange?.(iteratValuePath, newValue)\n }\n },\n [\n id,\n path,\n elementPath,\n iterateElementIndex,\n value,\n continuousValidation,\n onChange,\n validateValue,\n dataContextHandlePathChange,\n setShowFieldBlockError,\n handleIterateElementChange,\n fromInput,\n ]\n )\n\n const exportError = useMemo(() => errorProp ?? error, [errorProp, error])\n\n useEffect(() => {\n // Mount procedure\n if (path) {\n dataContext?.handleMountField(path)\n }\n validateValue(externalValue)\n\n return () => {\n // Unmount procedure\n if (path) {\n dataContext?.handleUnMountField(path)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return {\n ...props,\n id,\n name: props.name || props.path?.replace('/', '') || id,\n value: toInput(value),\n error: inFieldBlock ? undefined : showError ? exportError : undefined,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : 'off'),\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useDataValue.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_types","_ajv","_interopRequireWildcard","_DataContext","_FieldBlockContext","_IterateElementContext","_componentHelper","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useDataValue","props","_props$path","_props$autoComplete","path","elementPath","emptyValue","required","error","errorProp","onFocus","onBlur","onChange","validator","onBlurValidator","schema","errorMessages","validateInitially","validateUnchanged","continuousValidation","toInput","fromInput","id","useMemo","_props$id","makeUniqueId","dataContext","useContext","Context","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","handlePathChange","dataContextHandlePathChange","setPathWithError","dataContextSetPathWithError","errors","dataContextErrors","inFieldBlock","Boolean","setError","setFieldBlockError","setShowError","setShowFieldBlockError","inIterate","index","iterateElementIndex","iterateElementValue","handleChange","handleIterateElementChange","substring","Error","externalValue","pointer","data","setValue","useState","changedRef","useRef","hasFocusRef","useEffect","showError","schemaValidator","ajv","compile","setErrorAndUpdateDataContext","useCallback","errorWithCorrectMessage","FormError","validationRule","validateValue","valueToValidate","Promise","resolve","then","ajvErrorsToOneFormError","showAllErrors","setHasFocus","hasFocus","valueOverride","current","handleFocus","handleBlur","argFromInput","newValue","iterateValuePath","exportError","handleMountField","handleUnMountField","name","replace","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useDataValue.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useState,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { FormError, FieldProps } from '../types'\nimport ajv, { ajvErrorsToOneFormError } from '../utils/ajv'\nimport { Context } from '../DataContext'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport { makeUniqueId } from '../../../shared/component-helper'\n\ninterface ReturnAdditional<Value> {\n id: string\n value: Value\n error: Error | FormError | undefined\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: FieldProps<unknown>['onChange']\n}\n\nexport default function useDataValue<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & ReturnAdditional<Value> {\n const {\n path,\n elementPath,\n emptyValue,\n required,\n error: errorProp,\n onFocus,\n onBlur,\n onChange,\n validator,\n onBlurValidator,\n schema,\n errorMessages,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n toInput = (value) => value,\n fromInput = (value) => value,\n } = props\n const id = useMemo(() => props.id ?? makeUniqueId(), [props.id])\n const dataContext = useContext(Context)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n\n const {\n handlePathChange: dataContextHandlePathChange,\n setPathWithError: dataContextSetPathWithError,\n errors: dataContextErrors,\n } = dataContext ?? {}\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setError: setFieldBlockError,\n setShowError: setShowFieldBlockError,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n value: iterateElementValue,\n handleChange: handleIterateElementChange,\n } = iterateElementContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (elementPath && elementPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid elementPath. Element pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (elementPath && !iterateElementContext) {\n throw new Error(\n 'elementPath cannot be used when not inside an iterate element context. Wrap the component in an Iterate.Loop.'\n )\n }\n\n const externalValue = useMemo(() => {\n if (props.value !== undefined) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return props.value\n }\n\n if (inIterate && elementPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (elementPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, elementPath)\n ? pointer.get(iterateElementValue, elementPath)\n : undefined\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : undefined\n }\n return undefined\n }, [\n path,\n elementPath,\n inIterate,\n iterateElementValue,\n props.value,\n dataContext.data,\n ])\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const [value, setValue] = useState(externalValue)\n const changedRef = useRef(false)\n const hasFocusRef = useRef(false)\n\n useEffect(() => {\n // When receiving the initial value, or receiving an updated value by props, update the internal value\n // so the component can be used \"controlled\".\n setValue(externalValue)\n }, [externalValue])\n\n // Error handling\n const [error, setError] = useState<Error | FormError | undefined>()\n const [showError, setShowError] = useState<boolean>(\n Boolean(validateInitially || errorProp)\n )\n const schemaValidator = useMemo(\n () =>\n schema && Object.keys(schema).length > 0\n ? ajv.compile(schema)\n : undefined,\n [schema]\n )\n\n const setErrorAndUpdateDataContext = useCallback(\n (error: FormError | undefined) => {\n const errorWithCorrectMessage =\n error instanceof FormError &&\n typeof error.validationRule === 'string' &&\n errorMessages?.[error.validationRule] !== undefined\n ? new FormError(errorMessages[error.validationRule])\n : error\n\n setError(errorWithCorrectMessage)\n\n if (path) {\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n dataContextSetPathWithError?.(path, Boolean(error))\n }\n\n setFieldBlockError?.(path ?? id, errorWithCorrectMessage)\n },\n [\n path,\n id,\n errorMessages,\n dataContextSetPathWithError,\n setFieldBlockError,\n ]\n )\n\n const validateValue = useCallback(\n (valueToValidate): FormError | undefined => {\n // Prioritize received validator functions first\n // Possible future change: Merge errors if multiple, like one message with each message concatenated.\n if (typeof validator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n Promise.resolve(validator(valueToValidate))\n // This is a validator, so it is expected to resolve with an error when the value is invalid. If it\n // throws an error, it is not caught here as that will cause programmatic errors to show inside the form\n // as if they were operational errors.\n .then(setErrorAndUpdateDataContext)\n }\n\n if (valueToValidate === emptyValue && required) {\n const error = new FormError('The value is required', {\n validationRule: 'required',\n })\n setErrorAndUpdateDataContext(error)\n return error\n } else if (schemaValidator) {\n // This input has a direct schema (through props)\n if (valueToValidate === undefined && emptyValue === undefined) {\n // Avoid validating undefined-values if they are expected (set with emptyValue) as they will\n // usually fail against json-schema type\n setErrorAndUpdateDataContext(undefined)\n return undefined\n }\n schemaValidator(valueToValidate)\n const error = ajvErrorsToOneFormError(schemaValidator.errors)\n setErrorAndUpdateDataContext(error)\n return error\n } else {\n // Removing any previous error from required\n setErrorAndUpdateDataContext(undefined)\n return undefined\n }\n },\n [\n schemaValidator,\n emptyValue,\n required,\n setErrorAndUpdateDataContext,\n validator,\n ]\n )\n\n useEffect(() => {\n // If a surrounding data context has an error for this field (by path) and no error has been set by local component validation, use the data context error\n if (!error && path && dataContextErrors?.[path]) {\n setErrorAndUpdateDataContext(dataContextErrors[path])\n }\n }, [path, dataContextErrors, error, setErrorAndUpdateDataContext])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n }\n }, [id, path, dataContext.showAllErrors, setShowFieldBlockError])\n\n const setHasFocus = useCallback(\n (hasFocus: boolean, valueOverride?: unknown) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.(valueOverride ?? value)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.(valueOverride ?? value)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n if (typeof onBlurValidator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n Promise.resolve(onBlurValidator(valueOverride ?? value))\n // This is a validator, so it is expected to resolve with an error when the value is invalid. If it\n // throws an error, it is not caught here as that will cause programmatic errors to show inside the form\n // as if they were operational errors.\n .then(setErrorAndUpdateDataContext)\n }\n\n // Since the user left the field, show error (if any)\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n }\n },\n [\n id,\n path,\n value,\n validateUnchanged,\n onFocus,\n onBlur,\n onBlurValidator,\n setErrorAndUpdateDataContext,\n setShowFieldBlockError,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n const handleChange = useCallback(\n (argFromInput) => {\n const newValue = fromInput(argFromInput)\n\n if (newValue === value) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n setValue(newValue)\n changedRef.current = true\n\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n setShowError(true)\n setShowFieldBlockError?.(path ?? id, true)\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n setShowError(false)\n setShowFieldBlockError?.(path ?? id, false)\n }\n // Always validate the value immediately when it is changed\n validateValue(newValue)\n\n onChange?.(newValue)\n if (path) {\n dataContextHandlePathChange?.(path, newValue)\n }\n if (elementPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n elementPath && elementPath !== '/' ? elementPath : ''\n }`\n handleIterateElementChange?.(iterateValuePath, newValue)\n }\n },\n [\n id,\n path,\n elementPath,\n iterateElementIndex,\n value,\n continuousValidation,\n onChange,\n validateValue,\n dataContextHandlePathChange,\n setShowFieldBlockError,\n handleIterateElementChange,\n fromInput,\n ]\n )\n\n const exportError = useMemo(() => errorProp ?? error, [errorProp, error])\n\n useEffect(() => {\n // Mount procedure\n if (path) {\n dataContext?.handleMountField(path)\n }\n validateValue(externalValue)\n\n return () => {\n // Unmount procedure\n if (path) {\n dataContext?.handleUnMountField(path)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return {\n ...props,\n id,\n name: props.name || props.path?.replace('/', '') || id,\n value: toInput(value),\n error: inFieldBlock ? undefined : showError ? exportError : undefined,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : 'off'),\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n }\n}\n"],"mappings":"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"}
@@ -25,38 +25,38 @@ class FormError extends Error {
25
25
  exports.FormError = FormError;
26
26
  const dataValueReadProps = ['path', 'elementPath', 'value'];
27
27
  function pickDataValueReadProps(props) {
28
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref => {
28
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref => {
29
29
  let [key] = _ref;
30
30
  return dataValueReadProps.includes(key);
31
31
  }));
32
32
  }
33
33
  function omitDataValueReadProps(props) {
34
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref2 => {
34
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref2 => {
35
35
  let [key] = _ref2;
36
36
  return !dataValueReadProps.includes(key);
37
37
  }));
38
38
  }
39
39
  const dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange'];
40
40
  function pickDataValueWriteProps(props) {
41
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref3 => {
41
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref3 => {
42
42
  let [key] = _ref3;
43
43
  return dataValueWriteProps.includes(key);
44
44
  }));
45
45
  }
46
46
  function omitDataValueWriteProps(props) {
47
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref4 => {
47
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref4 => {
48
48
  let [key] = _ref4;
49
49
  return !dataValueWriteProps.includes(key);
50
50
  }));
51
51
  }
52
52
  function pickDataValueReadWriteProps(props) {
53
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref5 => {
53
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref5 => {
54
54
  let [key] = _ref5;
55
55
  return dataValueReadProps.includes(key) || dataValueWriteProps.includes(key);
56
56
  }));
57
57
  }
58
58
  function omitDataValueReadWriteProps(props) {
59
- return Object.fromEntries(Object.entries(props ?? {}).filter(_ref6 => {
59
+ return Object.fromEntries(Object.entries(props !== null && props !== void 0 ? props : {}).filter(_ref6 => {
60
60
  let [key] = _ref6;
61
61
  return !dataValueReadProps.includes(key) && !dataValueWriteProps.includes(key);
62
62
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["FormError","Error","constructor","message","options","_defineProperty","validationRule","exports","dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","_ref","key","includes","omitDataValueReadProps","_ref2","dataValueWriteProps","pickDataValueWriteProps","_ref3","omitDataValueWriteProps","_ref4","pickDataValueReadWriteProps","_ref5","omitDataValueReadWriteProps","_ref6"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import { JSONSchema7 } from 'json-schema'\nimport { SpacingProps } from '../../components/space/types'\n\ninterface IFormErrorOptions {\n validationRule?: string | string[]\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum)\n */\n validationRule?: string | string[]\n\n constructor(message: string, options?: IFormErrorOptions) {\n super(message)\n\n if (options) {\n this.validationRule = options.validationRule\n }\n }\n}\n\n// Data value\n\ninterface DefaultErrorMessages {\n required?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n elementPath?: string\n value?: Value\n}\n\nconst dataValueReadProps = ['path', 'elementPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> {\n emptyValue?: EmptyValue\n onFocus?: (value: Value | EmptyValue) => void\n onBlur?: (value: Value | EmptyValue) => void\n onChange?: (value: Value | EmptyValue) => void\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport interface FieldProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n ErrorMessages extends { required?: string } = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue> {\n /** ID added to the actual field component, and linked to the label via for-attribute */\n id?: string\n name?: string\n layout?: 'horizontal' | 'vertical'\n /** Main label text */\n label?: React.ReactNode\n /** A more discreet text displayed beside the label (i.e for \"(optional)\") */\n labelDescription?: React.ReactNode\n /** Secondary information displayed at the end of the label line (i.e character counter) */\n labelSecondary?: React.ReactNode\n /** Text showing in place of the value if no value is given */\n placeholder?: string\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n info?: Error | FormError | string\n warning?: Error | FormError | string\n error?: Error | FormError\n disabled?: boolean\n // Validation\n required?: boolean\n schema?: JSONSchema7\n validator?: (\n value: Value | EmptyValue\n ) => Error | undefined | Promise<Error | undefined>\n onBlurValidator?: (\n value: Value | EmptyValue\n ) => Error | undefined | Promise<Error | undefined>\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n * */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /** Should validation be done while writing, not just when blurring the field? */\n continuousValidation?: boolean\n errorMessages?: ErrorMessages\n // Derivatives\n toInput?: (external: Value | undefined) => any\n fromInput?: (...args: any[]) => Value | undefined\n}\n\nexport interface FieldHelpProps {\n help?: {\n title?: string\n contents?: string\n }\n}\n\nexport interface ValueProps<Value>\n extends DataValueReadComponentProps<Value> {\n label?: string\n /** Should the component render if the value is empty? */\n showEmpty?: boolean\n /** Text showing in place of the value if no value is given. */\n placeholder?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n elementPath?: string\n /** For showing the value inline (not as a block element) */\n inline?: boolean\n // Derivatives\n /** Prepare value for display (regardless of source like props or data context) */\n prepare?: (external: Value | undefined) => string\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAMnCC,WAAWA,CAACC,OAAe,EAAEC,OAA2B,EAAE;IACxD,KAAK,CAACD,OAAO,CAAC;IAAAE,eAAA;IAEd,IAAID,OAAO,EAAE;MACX,IAAI,CAACE,cAAc,GAAGF,OAAO,CAACE,cAAc;IAC9C;EACF;AACF;AAACC,OAAA,CAAAP,SAAA,GAAAA,SAAA;AAgBD,MAAMQ,kBAAkB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC;AAEpD,SAASC,sBAAsBA,CACpCC,KAAY,EACQ;EACpB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACC,IAAA;IAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;IAAA,OACvCP,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC;EAAA,CAClC,CACF,CAAC;AACH;AAEO,SAASE,sBAAsBA,CACpCR,KAAY,EACwC;EACpD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCK,KAAA;IAAA,IAAC,CAACH,GAAG,CAAC,GAAAG,KAAA;IAAA,OAAK,CAACX,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC;EAAA,CAC9C,CACF,CAAC;AACH;AAYA,MAAMI,mBAAmB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;AAEpE,SAASC,uBAAuBA,CACrCX,KAAY,EACS;EACrB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACQ,KAAA;IAAA,IAAC,CAACN,GAAG,CAAC,GAAAM,KAAA;IAAA,OACvCF,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACnC,CACF,CAAC;AACH;AAEO,SAASO,uBAAuBA,CACrCb,KAAY,EAC0C;EACtD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCU,KAAA;IAAA,IAAC,CAACR,GAAG,CAAC,GAAAQ,KAAA;IAAA,OAAK,CAACJ,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CAC/C,CACF,CAAC;AACH;AAOO,SAASS,2BAA2BA,CAEzCf,KAAY,EAA2B;EACvC,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCY,KAAA;IAAA,IAAC,CAACV,GAAG,CAAC,GAAAU,KAAA;IAAA,OACJlB,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC,IAChCI,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACrC,CACF,CAAC;AACH;AAEO,SAASW,2BAA2BA,CAGzCjB,KAAY,EACkD;EAC9D,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCc,KAAA;IAAA,IAAC,CAACZ,GAAG,CAAC,GAAAY,KAAA;IAAA,OACJ,CAACpB,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC,IACjC,CAACI,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACtC,CACF,CAAC;AACH"}
1
+ {"version":3,"file":"types.js","names":["FormError","Error","constructor","message","options","_defineProperty","validationRule","exports","dataValueReadProps","pickDataValueReadProps","props","Object","fromEntries","entries","filter","_ref","key","includes","omitDataValueReadProps","_ref2","dataValueWriteProps","pickDataValueWriteProps","_ref3","omitDataValueWriteProps","_ref4","pickDataValueReadWriteProps","_ref5","omitDataValueReadWriteProps","_ref6"],"sources":["../../../../src/extensions/forms/types.ts"],"sourcesContent":["import { JSONSchema7 } from 'json-schema'\nimport { SpacingProps } from '../../components/space/types'\n\ninterface IFormErrorOptions {\n validationRule?: string | string[]\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum)\n */\n validationRule?: string | string[]\n\n constructor(message: string, options?: IFormErrorOptions) {\n super(message)\n\n if (options) {\n this.validationRule = options.validationRule\n }\n }\n}\n\n// Data value\n\ninterface DefaultErrorMessages {\n required?: string\n}\n\nexport interface DataValueReadProps<Value = unknown> {\n /** JSON Pointer for where the data for this field is located in the source dataset */\n path?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n elementPath?: string\n value?: Value\n}\n\nconst dataValueReadProps = ['path', 'elementPath', 'value']\n\nexport function pickDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): DataValueReadProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueReadProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadProps<Props extends DataValueReadProps>(\n props: Props\n): Omit<DataValueReadProps, keyof DataValueReadProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueReadProps.includes(key)\n )\n )\n}\n\nexport interface DataValueWriteProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> {\n emptyValue?: EmptyValue\n onFocus?: (value: Value | EmptyValue) => void\n onBlur?: (value: Value | EmptyValue) => void\n onChange?: (value: Value | EmptyValue) => void\n}\n\nconst dataValueWriteProps = ['emptyValue', 'onFocus', 'onBlur', 'onChange']\n\nexport function pickDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): DataValueWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(([key]) =>\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueWriteProps<Props extends DataValueWriteProps>(\n props: Props\n): Omit<DataValueWriteProps, keyof DataValueWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) => !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type DataValueReadWriteProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>\n\nexport function pickDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(props: Props): DataValueReadWriteProps {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n dataValueReadProps.includes(key) ||\n dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport function omitDataValueReadWriteProps<\n Props extends DataValueReadWriteProps,\n>(\n props: Props\n): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps> {\n return Object.fromEntries(\n Object.entries(props ?? {}).filter(\n ([key]) =>\n !dataValueReadProps.includes(key) &&\n !dataValueWriteProps.includes(key)\n )\n )\n}\n\nexport type ComponentProps = SpacingProps & {\n className?: string\n}\n\nexport type DataValueReadComponentProps<Value = unknown> = ComponentProps &\n DataValueReadProps<Value>\n\nexport type DataValueReadWriteComponentProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n> = ComponentProps &\n DataValueReadProps<Value> &\n DataValueWriteProps<Value, EmptyValue>\n\nexport interface FieldProps<\n Value = unknown,\n EmptyValue = undefined | string | number,\n ErrorMessages extends { required?: string } = DefaultErrorMessages,\n> extends DataValueReadWriteComponentProps<Value, EmptyValue> {\n /** ID added to the actual field component, and linked to the label via for-attribute */\n id?: string\n name?: string\n layout?: 'horizontal' | 'vertical'\n /** Main label text */\n label?: React.ReactNode\n /** A more discreet text displayed beside the label (i.e for \"(optional)\") */\n labelDescription?: React.ReactNode\n /** Secondary information displayed at the end of the label line (i.e character counter) */\n labelSecondary?: React.ReactNode\n /** Text showing in place of the value if no value is given */\n placeholder?: string\n autoComplete?:\n | HTMLInputElement['autocomplete']\n | HTMLTextAreaElement['autocomplete']\n info?: Error | FormError | string\n warning?: Error | FormError | string\n error?: Error | FormError\n disabled?: boolean\n // Validation\n required?: boolean\n schema?: JSONSchema7\n validator?: (\n value: Value | EmptyValue\n ) => Error | undefined | Promise<Error | undefined>\n onBlurValidator?: (\n value: Value | EmptyValue\n ) => Error | undefined | Promise<Error | undefined>\n /**\n * Should error messages based on validation be shown initially (from given value-prop or source data)\n * before the user interacts with the field?\n * @default false\n * */\n validateInitially?: boolean\n /**\n * Should error messages be shown when touching (like focusing a field and blurring) without having changed\n * the value? So the user did not introduce a new error, but it was invalid based on validation initially.\n */\n validateUnchanged?: boolean\n /** Should validation be done while writing, not just when blurring the field? */\n continuousValidation?: boolean\n errorMessages?: ErrorMessages\n // Derivatives\n toInput?: (external: Value | undefined) => any\n fromInput?: (...args: any[]) => Value | undefined\n}\n\nexport interface FieldHelpProps {\n help?: {\n title?: string\n contents?: string\n }\n}\n\nexport interface ValueProps<Value>\n extends DataValueReadComponentProps<Value> {\n label?: string\n /** Should the component render if the value is empty? */\n showEmpty?: boolean\n /** Text showing in place of the value if no value is given. */\n placeholder?: string\n /** JSON Pointer for where the data for this field is located in the source iterate loop element */\n elementPath?: string\n /** For showing the value inline (not as a block element) */\n inline?: boolean\n // Derivatives\n /** Prepare value for display (regardless of source like props or data context) */\n prepare?: (external: Value | undefined) => string\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAMnCC,WAAWA,CAACC,OAAe,EAAEC,OAA2B,EAAE;IACxD,KAAK,CAACD,OAAO,CAAC;IAAAE,eAAA;IAEd,IAAID,OAAO,EAAE;MACX,IAAI,CAACE,cAAc,GAAGF,OAAO,CAACE,cAAc;IAC9C;EACF;AACF;AAACC,OAAA,CAAAP,SAAA,GAAAA,SAAA;AAgBD,MAAMQ,kBAAkB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC;AAEpD,SAASC,sBAAsBA,CACpCC,KAAY,EACQ;EACpB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACC,IAAA;IAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;IAAA,OACvCP,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC;EAAA,CAClC,CACF,CAAC;AACH;AAEO,SAASE,sBAAsBA,CACpCR,KAAY,EACwC;EACpD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCK,KAAA;IAAA,IAAC,CAACH,GAAG,CAAC,GAAAG,KAAA;IAAA,OAAK,CAACX,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC;EAAA,CAC9C,CACF,CAAC;AACH;AAYA,MAAMI,mBAAmB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;AAEpE,SAASC,uBAAuBA,CACrCX,KAAY,EACS;EACrB,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAACQ,KAAA;IAAA,IAAC,CAACN,GAAG,CAAC,GAAAM,KAAA;IAAA,OACvCF,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACnC,CACF,CAAC;AACH;AAEO,SAASO,uBAAuBA,CACrCb,KAAY,EAC0C;EACtD,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCU,KAAA;IAAA,IAAC,CAACR,GAAG,CAAC,GAAAQ,KAAA;IAAA,OAAK,CAACJ,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CAC/C,CACF,CAAC;AACH;AAOO,SAASS,2BAA2BA,CAEzCf,KAAY,EAA2B;EACvC,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCY,KAAA;IAAA,IAAC,CAACV,GAAG,CAAC,GAAAU,KAAA;IAAA,OACJlB,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC,IAChCI,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACrC,CACF,CAAC;AACH;AAEO,SAASW,2BAA2BA,CAGzCjB,KAAY,EACkD;EAC9D,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC,CAAC,CAACI,MAAM,CAChCc,KAAA;IAAA,IAAC,CAACZ,GAAG,CAAC,GAAAY,KAAA;IAAA,OACJ,CAACpB,kBAAkB,CAACS,QAAQ,CAACD,GAAG,CAAC,IACjC,CAACI,mBAAmB,CAACH,QAAQ,CAACD,GAAG,CAAC;EAAA,CACtC,CACF,CAAC;AACH"}
@@ -41,7 +41,8 @@ function getValidationRule(ajvError) {
41
41
  return ajvError.keyword;
42
42
  }
43
43
  function ajvErrorToFormError(ajvError) {
44
- const error = new _types.FormError(ajvError.message ?? 'Unknown error', {
44
+ var _ajvError$message;
45
+ const error = new _types.FormError((_ajvError$message = ajvError.message) !== null && _ajvError$message !== void 0 ? _ajvError$message : 'Unknown error', {
45
46
  validationRule: getValidationRule(ajvError)
46
47
  });
47
48
  return error;
@@ -58,7 +59,7 @@ function ajvErrorsToOneFormError(errors) {
58
59
  validationRule: errors.map(getValidationRule)
59
60
  });
60
61
  }
61
- const ajvErrorsToFormErrors = errors => (errors ?? []).reduce((errors, ajvError) => {
62
+ const ajvErrorsToFormErrors = errors => (errors !== null && errors !== void 0 ? errors : []).reduce((errors, ajvError) => {
62
63
  return _objectSpread(_objectSpread({}, errors), {}, {
63
64
  [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError)
64
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ajv.js","names":["_ajv","_interopRequireDefault","require","_ajvErrors","_types","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ajv","Ajv","allErrors","ajvErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","ajvErrorToFormError","error","FormError","message","validationRule","ajvErrorsToOneFormError","errorMessages","map","join","ajvErrorsToFormErrors","reduce","exports","_default"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import Ajv, { ErrorObject } from 'ajv'\nimport ajvErrors from 'ajv-errors'\nimport { FormError } from '../types'\n\nconst ajv = new Ajv({\n // If allErrors is off, ajv only give you the first error it finds\n allErrors: true,\n})\n\najvErrors(ajv)\n\nfunction getInstancePath(ajvError: ErrorObject): string {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\nfunction getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\nfunction ajvErrorToFormError(ajvError: ErrorObject): FormError {\n const error = new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n })\n return error\n}\n\n/**\n * Transform errors from ajv-validation into one error object (i.e for validating a flat value)\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n return ajvErrorToFormError(errors[0])\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' | '), {\n validationRule: errors.map(getValidationRule),\n })\n}\n\n/**\n *\n * @param errors Transform errors from ajv-validation into a record of errors (path as key, error as value)\n * @returns\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null\n): Record<string, FormError> =>\n (errors ?? []).reduce((errors, ajvError) => {\n return {\n ...errors,\n [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError),\n }\n }, {})\n\nexport default ajv\n"],"mappings":"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"}
1
+ {"version":3,"file":"ajv.js","names":["_ajv","_interopRequireDefault","require","_ajvErrors","_types","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ajv","Ajv","allErrors","ajvErrors","getInstancePath","ajvError","keyword","instancePath","params","missingProperty","errors","getValidationRule","ajvErrorToFormError","_ajvError$message","error","FormError","message","validationRule","ajvErrorsToOneFormError","errorMessages","map","join","ajvErrorsToFormErrors","reduce","exports","_default"],"sources":["../../../../../src/extensions/forms/utils/ajv.ts"],"sourcesContent":["import Ajv, { ErrorObject } from 'ajv'\nimport ajvErrors from 'ajv-errors'\nimport { FormError } from '../types'\n\nconst ajv = new Ajv({\n // If allErrors is off, ajv only give you the first error it finds\n allErrors: true,\n})\n\najvErrors(ajv)\n\nfunction getInstancePath(ajvError: ErrorObject): string {\n switch (ajvError.keyword) {\n case 'required': {\n // Required-errors are considered object errors by ajv, so they don't have instancePaths. We want to\n // show them under the relevant field\n return `${ajvError.instancePath}/${ajvError.params.missingProperty}`\n }\n case 'errorMessage': {\n // errorMessage structures (from ajv-errors) wrap the original error. Find instance path from original\n // to avoid issues like required-errors pointing at parent object.\n if (ajvError.params.errors[0]) {\n return getInstancePath(ajvError.params.errors[0])\n }\n }\n }\n return ajvError.instancePath\n}\n\nfunction getValidationRule(ajvError: ErrorObject): string {\n if (ajvError.keyword === 'errorMessage' && ajvError.params.errors[0]) {\n // errorMessage structures (from ajv-errors) wrap the original error. Find keyword from original\n // to avoid issues like required-errors pointing at parent object.\n return getValidationRule(ajvError.params.errors[0])\n }\n return ajvError.keyword\n}\n\nfunction ajvErrorToFormError(ajvError: ErrorObject): FormError {\n const error = new FormError(ajvError.message ?? 'Unknown error', {\n validationRule: getValidationRule(ajvError),\n })\n return error\n}\n\n/**\n * Transform errors from ajv-validation into one error object (i.e for validating a flat value)\n */\nexport function ajvErrorsToOneFormError(\n errors?: ErrorObject[] | null\n): FormError | undefined {\n if (!errors || errors.length === 0) {\n return\n }\n if (errors.length === 1) {\n return ajvErrorToFormError(errors[0])\n }\n\n const errorMessages = errors?.map((error) => error.message)\n return new FormError(errorMessages.join(' | '), {\n validationRule: errors.map(getValidationRule),\n })\n}\n\n/**\n *\n * @param errors Transform errors from ajv-validation into a record of errors (path as key, error as value)\n * @returns\n */\nexport const ajvErrorsToFormErrors = (\n errors?: ErrorObject[] | null\n): Record<string, FormError> =>\n (errors ?? []).reduce((errors, ajvError) => {\n return {\n ...errors,\n [getInstancePath(ajvError)]: ajvErrorToFormError(ajvError),\n }\n }, {})\n\nexport default ajv\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ function formatNumber(value, options) {
14
14
  magnitude,
15
15
  prefix,
16
16
  suffix
17
- } = options ?? {};
17
+ } = options !== null && options !== void 0 ? options : {};
18
18
  const withMagnitude = magnitude !== undefined ? value / Math.pow(10, magnitude) : value;
19
19
  const withDecimals = fixedDecimals !== undefined ? withMagnitude.toFixed(fixedDecimals) : decimalLimit ? (Math.round(withMagnitude * Math.pow(10, decimalLimit)) / Math.pow(10, decimalLimit)).toString() : withMagnitude.toString();
20
20
  const withDecimalSymbol = decimalSymbol !== undefined ? withDecimals.replace('.', decimalSymbol) : withDecimals;
@@ -30,7 +30,7 @@ function parseFormattedNumber(formattedValue, options) {
30
30
  magnitude,
31
31
  prefix,
32
32
  suffix
33
- } = options ?? {};
33
+ } = options !== null && options !== void 0 ? options : {};
34
34
  const parsedDecimalSymbol = decimalSymbol !== undefined ? formattedValue.replace(decimalSymbol, '.') : formattedValue;
35
35
  const parsedThousandSeparator = thousandSeparator !== undefined ? parsedDecimalSymbol.split(thousandSeparator).join('') : parsedDecimalSymbol;
36
36
  const parsedPrefix = prefix !== undefined && parsedThousandSeparator.substring(0, prefix.length) === prefix ? parsedThousandSeparator.substring(prefix.length) : parsedThousandSeparator;
@@ -1 +1 @@
1
- {"version":3,"file":"numbers.js","names":["formatNumber","value","options","thousandSeparator","decimalLimit","fixedDecimals","decimalSymbol","magnitude","prefix","suffix","withMagnitude","undefined","Math","pow","withDecimals","toFixed","round","toString","withDecimalSymbol","replace","withThousandSeparator","withPrefix","withSuffix","parseFormattedNumber","formattedValue","parsedDecimalSymbol","parsedThousandSeparator","split","join","parsedPrefix","substring","length","parsedSuffix","slice","parsedNumber","Number","parsedMagnitude"],"sources":["../../../../../src/extensions/forms/utils/numbers.ts"],"sourcesContent":["interface FormatNumberOptions {\n prefix?: string\n suffix?: string\n /** Character to use for separating groups of number. Like '12 345' for 12345. */\n thousandSeparator?: string\n /** Max number of decimals. For source numbers with higher number of decimals, the number will be rounded. Will not add leading zeros. */\n decimalLimit?: number\n /** Set a fixed number of decimals (rounding when more decimals, adding leading zeros when less). */\n fixedDecimals?: number\n /** Symbol to separate between digits and decimals. */\n decimalSymbol?: string\n /** For showing magnitude of original number. For instance, 23500000 with magnitude 6 displays as 23,5 */\n magnitude?: number\n}\n\nexport function formatNumber(\n value: number,\n options?: FormatNumberOptions\n): string {\n const {\n thousandSeparator,\n decimalLimit,\n fixedDecimals,\n decimalSymbol = ',', // Norwegian default format\n magnitude,\n prefix,\n suffix,\n } = options ?? {}\n\n const withMagnitude =\n magnitude !== undefined ? value / Math.pow(10, magnitude) : value\n\n const withDecimals =\n fixedDecimals !== undefined\n ? withMagnitude.toFixed(fixedDecimals)\n : decimalLimit\n ? (\n Math.round(withMagnitude * Math.pow(10, decimalLimit)) /\n Math.pow(10, decimalLimit)\n ).toString()\n : withMagnitude.toString()\n\n const withDecimalSymbol =\n decimalSymbol !== undefined\n ? withDecimals.replace('.', decimalSymbol)\n : withDecimals\n\n const withThousandSeparator =\n thousandSeparator !== undefined\n ? withDecimalSymbol.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousandSeparator\n )\n : withDecimalSymbol\n\n const withPrefix =\n prefix !== undefined\n ? prefix + withThousandSeparator\n : withThousandSeparator\n\n const withSuffix =\n suffix !== undefined ? withPrefix + suffix : withPrefix\n\n return withSuffix\n}\n\nexport function parseFormattedNumber(\n formattedValue: string,\n options?: FormatNumberOptions\n): number {\n const {\n thousandSeparator,\n decimalSymbol = ',', // Norwegian default format\n magnitude,\n prefix,\n suffix,\n } = options ?? {}\n\n const parsedDecimalSymbol =\n decimalSymbol !== undefined\n ? formattedValue.replace(decimalSymbol, '.')\n : formattedValue\n\n const parsedThousandSeparator =\n thousandSeparator !== undefined\n ? parsedDecimalSymbol.split(thousandSeparator).join('')\n : parsedDecimalSymbol\n\n const parsedPrefix =\n prefix !== undefined &&\n parsedThousandSeparator.substring(0, prefix.length) === prefix\n ? parsedThousandSeparator.substring(prefix.length)\n : parsedThousandSeparator\n\n const parsedSuffix =\n suffix !== undefined &&\n parsedPrefix.slice(suffix.length * -1) === suffix\n ? parsedPrefix.substring(0, parsedPrefix.length - suffix.length)\n : parsedPrefix\n\n const parsedNumber = Number(parsedSuffix)\n\n const parsedMagnitude =\n magnitude !== undefined\n ? // toFixed to avoid inaccuracies (like 10/5 = 1.999999999999998)\n Number((parsedNumber * Math.pow(10, magnitude)).toFixed(6))\n : parsedNumber\n\n return parsedMagnitude\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"numbers.js","names":["formatNumber","value","options","thousandSeparator","decimalLimit","fixedDecimals","decimalSymbol","magnitude","prefix","suffix","withMagnitude","undefined","Math","pow","withDecimals","toFixed","round","toString","withDecimalSymbol","replace","withThousandSeparator","withPrefix","withSuffix","parseFormattedNumber","formattedValue","parsedDecimalSymbol","parsedThousandSeparator","split","join","parsedPrefix","substring","length","parsedSuffix","slice","parsedNumber","Number","parsedMagnitude"],"sources":["../../../../../src/extensions/forms/utils/numbers.ts"],"sourcesContent":["interface FormatNumberOptions {\n prefix?: string\n suffix?: string\n /** Character to use for separating groups of number. Like '12 345' for 12345. */\n thousandSeparator?: string\n /** Max number of decimals. For source numbers with higher number of decimals, the number will be rounded. Will not add leading zeros. */\n decimalLimit?: number\n /** Set a fixed number of decimals (rounding when more decimals, adding leading zeros when less). */\n fixedDecimals?: number\n /** Symbol to separate between digits and decimals. */\n decimalSymbol?: string\n /** For showing magnitude of original number. For instance, 23500000 with magnitude 6 displays as 23,5 */\n magnitude?: number\n}\n\nexport function formatNumber(\n value: number,\n options?: FormatNumberOptions\n): string {\n const {\n thousandSeparator,\n decimalLimit,\n fixedDecimals,\n decimalSymbol = ',', // Norwegian default format\n magnitude,\n prefix,\n suffix,\n } = options ?? {}\n\n const withMagnitude =\n magnitude !== undefined ? value / Math.pow(10, magnitude) : value\n\n const withDecimals =\n fixedDecimals !== undefined\n ? withMagnitude.toFixed(fixedDecimals)\n : decimalLimit\n ? (\n Math.round(withMagnitude * Math.pow(10, decimalLimit)) /\n Math.pow(10, decimalLimit)\n ).toString()\n : withMagnitude.toString()\n\n const withDecimalSymbol =\n decimalSymbol !== undefined\n ? withDecimals.replace('.', decimalSymbol)\n : withDecimals\n\n const withThousandSeparator =\n thousandSeparator !== undefined\n ? withDecimalSymbol.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n thousandSeparator\n )\n : withDecimalSymbol\n\n const withPrefix =\n prefix !== undefined\n ? prefix + withThousandSeparator\n : withThousandSeparator\n\n const withSuffix =\n suffix !== undefined ? withPrefix + suffix : withPrefix\n\n return withSuffix\n}\n\nexport function parseFormattedNumber(\n formattedValue: string,\n options?: FormatNumberOptions\n): number {\n const {\n thousandSeparator,\n decimalSymbol = ',', // Norwegian default format\n magnitude,\n prefix,\n suffix,\n } = options ?? {}\n\n const parsedDecimalSymbol =\n decimalSymbol !== undefined\n ? formattedValue.replace(decimalSymbol, '.')\n : formattedValue\n\n const parsedThousandSeparator =\n thousandSeparator !== undefined\n ? parsedDecimalSymbol.split(thousandSeparator).join('')\n : parsedDecimalSymbol\n\n const parsedPrefix =\n prefix !== undefined &&\n parsedThousandSeparator.substring(0, prefix.length) === prefix\n ? parsedThousandSeparator.substring(prefix.length)\n : parsedThousandSeparator\n\n const parsedSuffix =\n suffix !== undefined &&\n parsedPrefix.slice(suffix.length * -1) === suffix\n ? parsedPrefix.substring(0, parsedPrefix.length - suffix.length)\n : parsedPrefix\n\n const parsedNumber = Number(parsedSuffix)\n\n const parsedMagnitude =\n magnitude !== undefined\n ? // toFixed to avoid inaccuracies (like 10/5 = 1.999999999999998)\n Number((parsedNumber * Math.pow(10, magnitude)).toFixed(6))\n : parsedNumber\n\n return parsedMagnitude\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
@@ -6,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
6
7
  exports.default = useWasChanged;
7
8
  var _react = require("react");
8
9
  function useWasChanged(subject, title, debug) {
10
+ var _previous$current;
9
11
  const previous = (0, _react.useRef)(subject);
10
12
  if (!previous.current && !subject) {
11
13
  console.log('useWasChanged() - No subject was provided, while previous render had a subject. Was the whole object deleted?');
@@ -13,17 +15,17 @@ function useWasChanged(subject, title, debug) {
13
15
  const {
14
16
  changed,
15
17
  unchanged
16
- } = [...Object.entries(subject), ...Object.entries(previous.current ?? {}).filter(_ref => {
18
+ } = [...Object.entries(subject), ...Object.entries((_previous$current = previous.current) !== null && _previous$current !== void 0 ? _previous$current : {}).filter(_ref => {
17
19
  let [key] = _ref;
18
20
  return subject[key] === undefined;
19
21
  })].reduce((_ref2, _ref3) => {
20
- var _previous$current;
22
+ var _previous$current2;
21
23
  let {
22
24
  changed,
23
25
  unchanged
24
26
  } = _ref2;
25
27
  let [key, value] = _ref3;
26
- if (((_previous$current = previous.current) === null || _previous$current === void 0 ? void 0 : _previous$current[key]) !== (subject === null || subject === void 0 ? void 0 : subject[key])) {
28
+ if (((_previous$current2 = previous.current) === null || _previous$current2 === void 0 ? void 0 : _previous$current2[key]) !== (subject === null || subject === void 0 ? void 0 : subject[key])) {
27
29
  return {
28
30
  changed: changed.concat(key),
29
31
  unchanged
@@ -41,12 +43,12 @@ function useWasChanged(subject, title, debug) {
41
43
  if (changed.length === 0 && !debug) {
42
44
  return;
43
45
  }
44
- console.groupCollapsed(`${title ?? 'object'} -- ${changed.length} members was changed`);
46
+ console.groupCollapsed(`${title !== null && title !== void 0 ? title : 'object'} -- ${changed.length} members was changed`);
45
47
  Object.values(changed).map(key => {
46
48
  if (debug) {
47
- var _previous$current2;
49
+ var _previous$current3;
48
50
  console.groupCollapsed(`CHANGED: ${key}`);
49
- console.log('PREVIOUS: ', (_previous$current2 = previous.current) === null || _previous$current2 === void 0 ? void 0 : _previous$current2[key]);
51
+ console.log('PREVIOUS: ', (_previous$current3 = previous.current) === null || _previous$current3 === void 0 ? void 0 : _previous$current3[key]);
50
52
  console.log('CURRENT: ', subject === null || subject === void 0 ? void 0 : subject[key]);
51
53
  console.groupEnd();
52
54
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useWasChanged.js","names":["_react","require","useWasChanged","subject","title","debug","previous","useRef","current","console","log","changed","unchanged","Object","entries","filter","_ref","key","undefined","reduce","_ref2","_ref3","_previous$current","value","concat","length","groupCollapsed","values","map","_previous$current2","groupEnd"],"sources":["../../../../../src/extensions/forms/utils/useWasChanged.ts"],"sourcesContent":["import { useRef } from 'react'\n\n/**\n *\n * Shallow object comparison to easily find out what props of an object was changed since the last render\n */\nexport default function useWasChanged<Subject extends object>(\n subject: Subject,\n title?: string,\n debug?: boolean\n): void {\n const previous = useRef<Subject>(subject)\n if (!previous.current && !subject) {\n console.log(\n 'useWasChanged() - No subject was provided, while previous render had a subject. Was the whole object deleted?'\n )\n }\n\n const { changed, unchanged } = [\n ...Object.entries(subject),\n ...Object.entries(previous.current ?? {}).filter(\n ([key]) => subject[key] === undefined\n ),\n ].reduce(\n ({ changed, unchanged }, [key, value]) => {\n if (previous.current?.[key] !== subject?.[key]) {\n return {\n changed: changed.concat(key),\n unchanged,\n }\n } else {\n return {\n changed,\n unchanged: unchanged.concat(key),\n }\n }\n },\n { changed: [], unchanged: [] }\n )\n\n if (changed.length === 0 && !debug) {\n return\n }\n\n console.groupCollapsed(\n `${title ?? 'object'} -- ${changed.length} members was changed`\n )\n\n Object.values(changed).map((key) => {\n if (debug) {\n console.groupCollapsed(`CHANGED: ${key}`)\n console.log('PREVIOUS: ', previous.current?.[key])\n console.log('CURRENT: ', subject?.[key])\n console.groupEnd()\n } else {\n console.log(`CHANGED: ${key}`)\n }\n })\n Object.values(unchanged).map((key) => {\n console.log(`UNCHANGED: ${key}`)\n })\n\n previous.current = subject\n\n console.groupEnd()\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMe,SAASC,aAAaA,CACnCC,OAAgB,EAChBC,KAAc,EACdC,KAAe,EACT;EACN,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAUJ,OAAO,CAAC;EACzC,IAAI,CAACG,QAAQ,CAACE,OAAO,IAAI,CAACL,OAAO,EAAE;IACjCM,OAAO,CAACC,GAAG,CACT,+GACF,CAAC;EACH;EAEA,MAAM;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG,CAC7B,GAAGC,MAAM,CAACC,OAAO,CAACX,OAAO,CAAC,EAC1B,GAAGU,MAAM,CAACC,OAAO,CAACR,QAAQ,CAACE,OAAO,IAAI,CAAC,CAAC,CAAC,CAACO,MAAM,CAC9CC,IAAA;IAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;IAAA,OAAKb,OAAO,CAACc,GAAG,CAAC,KAAKC,SAAS;EAAA,CACvC,CAAC,CACF,CAACC,MAAM,CACN,CAAAC,KAAA,EAAAC,KAAA,KAA0C;IAAA,IAAAC,iBAAA;IAAA,IAAzC;MAAEX,OAAO;MAAEC;IAAU,CAAC,GAAAQ,KAAA;IAAA,IAAE,CAACH,GAAG,EAAEM,KAAK,CAAC,GAAAF,KAAA;IACnC,IAAI,EAAAC,iBAAA,GAAAhB,QAAQ,CAACE,OAAO,cAAAc,iBAAA,uBAAhBA,iBAAA,CAAmBL,GAAG,CAAC,OAAKd,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGc,GAAG,CAAC,GAAE;MAC9C,OAAO;QACLN,OAAO,EAAEA,OAAO,CAACa,MAAM,CAACP,GAAG,CAAC;QAC5BL;MACF,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLD,OAAO;QACPC,SAAS,EAAEA,SAAS,CAACY,MAAM,CAACP,GAAG;MACjC,CAAC;IACH;EACF,CAAC,EACD;IAAEN,OAAO,EAAE,EAAE;IAAEC,SAAS,EAAE;EAAG,CAC/B,CAAC;EAED,IAAID,OAAO,CAACc,MAAM,KAAK,CAAC,IAAI,CAACpB,KAAK,EAAE;IAClC;EACF;EAEAI,OAAO,CAACiB,cAAc,CACnB,GAAEtB,KAAK,IAAI,QAAS,OAAMO,OAAO,CAACc,MAAO,sBAC5C,CAAC;EAEDZ,MAAM,CAACc,MAAM,CAAChB,OAAO,CAAC,CAACiB,GAAG,CAAEX,GAAG,IAAK;IAClC,IAAIZ,KAAK,EAAE;MAAA,IAAAwB,kBAAA;MACTpB,OAAO,CAACiB,cAAc,CAAE,YAAWT,GAAI,EAAC,CAAC;MACzCR,OAAO,CAACC,GAAG,CAAC,YAAY,GAAAmB,kBAAA,GAAEvB,QAAQ,CAACE,OAAO,cAAAqB,kBAAA,uBAAhBA,kBAAA,CAAmBZ,GAAG,CAAC,CAAC;MAClDR,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGc,GAAG,CAAC,CAAC;MACxCR,OAAO,CAACqB,QAAQ,CAAC,CAAC;IACpB,CAAC,MAAM;MACLrB,OAAO,CAACC,GAAG,CAAE,YAAWO,GAAI,EAAC,CAAC;IAChC;EACF,CAAC,CAAC;EACFJ,MAAM,CAACc,MAAM,CAACf,SAAS,CAAC,CAACgB,GAAG,CAAEX,GAAG,IAAK;IACpCR,OAAO,CAACC,GAAG,CAAE,cAAaO,GAAI,EAAC,CAAC;EAClC,CAAC,CAAC;EAEFX,QAAQ,CAACE,OAAO,GAAGL,OAAO;EAE1BM,OAAO,CAACqB,QAAQ,CAAC,CAAC;AACpB"}
1
+ {"version":3,"file":"useWasChanged.js","names":["_react","require","useWasChanged","subject","title","debug","_previous$current","previous","useRef","current","console","log","changed","unchanged","Object","entries","filter","_ref","key","undefined","reduce","_ref2","_ref3","_previous$current2","value","concat","length","groupCollapsed","values","map","_previous$current3","groupEnd"],"sources":["../../../../../src/extensions/forms/utils/useWasChanged.ts"],"sourcesContent":["import { useRef } from 'react'\n\n/**\n *\n * Shallow object comparison to easily find out what props of an object was changed since the last render\n */\nexport default function useWasChanged<Subject extends object>(\n subject: Subject,\n title?: string,\n debug?: boolean\n): void {\n const previous = useRef<Subject>(subject)\n if (!previous.current && !subject) {\n console.log(\n 'useWasChanged() - No subject was provided, while previous render had a subject. Was the whole object deleted?'\n )\n }\n\n const { changed, unchanged } = [\n ...Object.entries(subject),\n ...Object.entries(previous.current ?? {}).filter(\n ([key]) => subject[key] === undefined\n ),\n ].reduce(\n ({ changed, unchanged }, [key, value]) => {\n if (previous.current?.[key] !== subject?.[key]) {\n return {\n changed: changed.concat(key),\n unchanged,\n }\n } else {\n return {\n changed,\n unchanged: unchanged.concat(key),\n }\n }\n },\n { changed: [], unchanged: [] }\n )\n\n if (changed.length === 0 && !debug) {\n return\n }\n\n console.groupCollapsed(\n `${title ?? 'object'} -- ${changed.length} members was changed`\n )\n\n Object.values(changed).map((key) => {\n if (debug) {\n console.groupCollapsed(`CHANGED: ${key}`)\n console.log('PREVIOUS: ', previous.current?.[key])\n console.log('CURRENT: ', subject?.[key])\n console.groupEnd()\n } else {\n console.log(`CHANGED: ${key}`)\n }\n })\n Object.values(unchanged).map((key) => {\n console.log(`UNCHANGED: ${key}`)\n })\n\n previous.current = subject\n\n console.groupEnd()\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMe,SAASC,aAAaA,CACnCC,OAAgB,EAChBC,KAAc,EACdC,KAAe,EACT;EAAA,IAAAC,iBAAA;EACN,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAUL,OAAO,CAAC;EACzC,IAAI,CAACI,QAAQ,CAACE,OAAO,IAAI,CAACN,OAAO,EAAE;IACjCO,OAAO,CAACC,GAAG,CACT,+GACF,CAAC;EACH;EAEA,MAAM;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG,CAC7B,GAAGC,MAAM,CAACC,OAAO,CAACZ,OAAO,CAAC,EAC1B,GAAGW,MAAM,CAACC,OAAO,EAAAT,iBAAA,GAACC,QAAQ,CAACE,OAAO,cAAAH,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC,CAAC,CAACU,MAAM,CAC9CC,IAAA;IAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;IAAA,OAAKd,OAAO,CAACe,GAAG,CAAC,KAAKC,SAAS;EAAA,CACvC,CAAC,CACF,CAACC,MAAM,CACN,CAAAC,KAAA,EAAAC,KAAA,KAA0C;IAAA,IAAAC,kBAAA;IAAA,IAAzC;MAAEX,OAAO;MAAEC;IAAU,CAAC,GAAAQ,KAAA;IAAA,IAAE,CAACH,GAAG,EAAEM,KAAK,CAAC,GAAAF,KAAA;IACnC,IAAI,EAAAC,kBAAA,GAAAhB,QAAQ,CAACE,OAAO,cAAAc,kBAAA,uBAAhBA,kBAAA,CAAmBL,GAAG,CAAC,OAAKf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,GAAG,CAAC,GAAE;MAC9C,OAAO;QACLN,OAAO,EAAEA,OAAO,CAACa,MAAM,CAACP,GAAG,CAAC;QAC5BL;MACF,CAAC;IACH,CAAC,MAAM;MACL,OAAO;QACLD,OAAO;QACPC,SAAS,EAAEA,SAAS,CAACY,MAAM,CAACP,GAAG;MACjC,CAAC;IACH;EACF,CAAC,EACD;IAAEN,OAAO,EAAE,EAAE;IAAEC,SAAS,EAAE;EAAG,CAC/B,CAAC;EAED,IAAID,OAAO,CAACc,MAAM,KAAK,CAAC,IAAI,CAACrB,KAAK,EAAE;IAClC;EACF;EAEAK,OAAO,CAACiB,cAAc,CACnB,GAAEvB,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,QAAS,OAAMQ,OAAO,CAACc,MAAO,sBAC5C,CAAC;EAEDZ,MAAM,CAACc,MAAM,CAAChB,OAAO,CAAC,CAACiB,GAAG,CAAEX,GAAG,IAAK;IAClC,IAAIb,KAAK,EAAE;MAAA,IAAAyB,kBAAA;MACTpB,OAAO,CAACiB,cAAc,CAAE,YAAWT,GAAI,EAAC,CAAC;MACzCR,OAAO,CAACC,GAAG,CAAC,YAAY,GAAAmB,kBAAA,GAAEvB,QAAQ,CAACE,OAAO,cAAAqB,kBAAA,uBAAhBA,kBAAA,CAAmBZ,GAAG,CAAC,CAAC;MAClDR,OAAO,CAACC,GAAG,CAAC,WAAW,EAAER,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,GAAG,CAAC,CAAC;MACxCR,OAAO,CAACqB,QAAQ,CAAC,CAAC;IACpB,CAAC,MAAM;MACLrB,OAAO,CAACC,GAAG,CAAE,YAAWO,GAAI,EAAC,CAAC;IAChC;EACF,CAAC,CAAC;EACFJ,MAAM,CAACc,MAAM,CAACf,SAAS,CAAC,CAACgB,GAAG,CAAEX,GAAG,IAAK;IACpCR,OAAO,CAACC,GAAG,CAAE,cAAaO,GAAI,EAAC,CAAC;EAClC,CAAC,CAAC;EAEFX,QAAQ,CAACE,OAAO,GAAGN,OAAO;EAE1BO,OAAO,CAACqB,QAAQ,CAAC,CAAC;AACpB"}
@@ -346,7 +346,7 @@ const prepareDerivedState = (props, state) => {
346
346
  if (props.value === 'initval') {
347
347
  state.selected_item = null;
348
348
  } else {
349
- state.selected_item = getCurrentIndex(props.value, state.data);
349
+ state.selected_item = getCurrentIndex(props.value, state.original_data);
350
350
  }
351
351
  if (typeof props.on_state_update === 'function') {
352
352
  (0, _componentHelper.dispatchCustomElementEvent)({