@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,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -1 +1 @@
1
- {"version":3,"file":"At.js","names":["React","useContext","useMemo","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","contextHandlePathChange","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined,\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}/${i}${changePath}`, value)\n }\n : undefined\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAM,YAAY;AAShC,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGT,UAAU,CAACG,OAAO,CAAC;EACvC,MAAM;IAAEO,IAAI,EAAEC,WAAW;IAAEC,gBAAgB,EAAEC;EAAwB,CAAC,GACpEJ,WAAW;EAEb,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAgB,GAAGX,OAAO,CAC9B,MACEY,uBAAuB,GACnB,CAACI,UAAU,EAAEC,KAAK,KAAK;IACrBL,uBAAuB,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EACxD,CAAC,GACDF,SAAS,EACf,CAACH,uBAAuB,EAAEP,IAAI,CAChC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GAAGC,uBAAuB,GAC5C,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,uBAAuB,CAAE,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAAEC,KAAK,CAAC;MAC7D,CAAC,GACDF,SAAS;MAEb,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,qBAAqB,GAAG,IAAI;AAC/B,eAAezB,EAAE"}
1
+ {"version":3,"file":"At.js","names":["React","useContext","useMemo","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","contextHandlePathChange","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined,\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}/${i}${changePath}`, value)\n }\n : undefined\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAM,YAAY;AAShC,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGT,UAAU,CAACG,OAAO,CAAC;EACvC,MAAM;IAAEO,IAAI,EAAEC,WAAW;IAAEC,gBAAgB,EAAEC;EAAwB,CAAC,GACpEJ,WAAW;EAEb,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAgB,GAAGX,OAAO,CAC9B,MACEY,uBAAuB,GACnB,CAACI,UAAU,EAAEC,KAAK,KAAK;IACrBL,uBAAuB,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EACxD,CAAC,GACDF,SAAS,EACf,CAACH,uBAAuB,EAAEP,IAAI,CAChC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GAAGC,uBAAuB,GAC5C,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,uBAAuB,CAAE,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAAEC,KAAK,CAAC;MAC7D,CAAC,GACDF,SAAS;MAEb,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,qBAAqB,GAAG,IAAI;AAC/B,eAAezB,EAAE"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
5
  const _excluded = ["defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "scrollTopOnSubmit", "sessionStorageId", "children"];
@@ -41,7 +43,7 @@ export default function Provider(_ref) {
41
43
  return JSON.parse(sessionDataJSON);
42
44
  }
43
45
  }
44
- return data ?? defaultData;
46
+ return data !== null && data !== void 0 ? data : defaultData;
45
47
  }, [data, defaultData, sessionStorageId]);
46
48
  const ajvSchemaValidator = useMemo(() => schema ? ajv.compile(schema) : undefined, [schema]);
47
49
  const [internalData, setInternalData] = useState(initialData);
@@ -69,7 +71,8 @@ export default function Provider(_ref) {
69
71
  }
70
72
  }, [ajvSchemaValidator]);
71
73
  const validateBySchemaAndUpdateState = useCallback(data => {
72
- errorsRef.current = validateBySchema(data) ?? {};
74
+ var _validateBySchema;
75
+ errorsRef.current = (_validateBySchema = validateBySchema(data)) !== null && _validateBySchema !== void 0 ? _validateBySchema : {};
73
76
  }, [validateBySchema]);
74
77
  const setPathWithError = useCallback((path, hasError) => {
75
78
  pathsWithErrorRef.current = hasError ? addListPath(pathsWithErrorRef.current, path) : removeListPath(pathsWithErrorRef.current, path);
@@ -79,7 +82,7 @@ export default function Provider(_ref) {
79
82
  return;
80
83
  }
81
84
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
82
- const newData = structuredClone(path === '/' ? value : internalData ?? (path.match(isArrayJsonPointer) ? [] : {}));
85
+ const newData = structuredClone(path === '/' ? value : internalData !== null && internalData !== void 0 ? internalData : path.match(isArrayJsonPointer) ? [] : {});
83
86
  if (path !== '/') {
84
87
  pointer.set(newData, path, value);
85
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","_ref","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","wasMounted","initialData","window","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","ajvSchemaValidator","compile","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","setPathWithError","hasError","handlePathChange","value","newData","match","set","_window$sessionStorag2","setItem","stringify","handleMountField","handleUnMountField","handleSubmit","formElement","arguments","length","_formElement$reset","reset","call","removeItem","_window","scrollTo","top","behavior","createElement","_objectSpread","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../../utils/ajv'\nimport { FormError } from '../../types'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported my all mihor browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport interface Props<Data extends JsonObject> {\n /** Default source data, only used if no other source is available, and not leading to updates if changed after mount */\n defaultData?: Partial<Data>\n /** Dynamic source data used as both initial data, and updates internal data if changed after mount */\n data?: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n /** Key for caching the data in session storage */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n children,\n ...rest\n}: Props<Data>) {\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // State\n const wasMounted = useRef(false)\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n }, [data, defaultData, sessionStorageId])\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(initialData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n if (!wasMounted.current) {\n wasMounted.current = true\n return\n }\n // When receivint the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(data)\n }, [data])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n onPathChange?.(path, value)\n\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalData ?? (path.match(isArrayJsonPointer) ? [] : {})\n )\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n onChange?.(newData as Data)\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n\n if (scrollTopOnSubmit) {\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n },\n [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]\n )\n\n useEffect(() => {\n // Mount procedure\n if (initialData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(initialData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n ...rest,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useState","pointer","ajv","ajvErrorsToFormErrors","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","_ref","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","wasMounted","initialData","window","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","ajvSchemaValidator","compile","internalData","setInternalData","mountedFieldPathsRef","errorsRef","showAllErrors","setShowAllErrors","pathsWithErrorRef","hasErrors","Boolean","current","find","mountedFieldPath","validateBySchema","errors","validateBySchemaAndUpdateState","_validateBySchema","setPathWithError","hasError","handlePathChange","value","newData","match","set","_window$sessionStorag2","setItem","stringify","handleMountField","handleUnMountField","handleSubmit","formElement","arguments","length","_formElement$reset","reset","call","removeItem","_window","scrollTo","top","behavior","createElement","_objectSpread","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useState,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { JSONSchema7 } from 'json-schema'\nimport ajv, { ajvErrorsToFormErrors } from '../../utils/ajv'\nimport { FormError } from '../../types'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport interface Props<Data extends JsonObject> {\n /** Default source data, only used if no other source is available, and not leading to updates if changed after mount */\n defaultData?: Partial<Data>\n /** Dynamic source data used as both initial data, and updates internal data if changed after mount */\n data?: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema7\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: string, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (data: Data) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n /** Key for caching the data in session storage */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: string): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: string): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n children,\n ...rest\n}: Props<Data>) {\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // State\n const wasMounted = useRef(false)\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n }, [data, defaultData, sessionStorageId])\n const ajvSchemaValidator = useMemo(\n () => (schema ? ajv.compile(schema) : undefined),\n [schema]\n )\n const [internalData, setInternalData] =\n useState<Partial<Data>>(initialData)\n const mountedFieldPathsRef = useRef<string[]>([])\n\n // Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError>>({})\n const [showAllErrors, setShowAllErrors] = useState<boolean>(false)\n // Errors reported by fields, based on their direct validation rules\n const pathsWithErrorRef = useRef<string[]>([])\n\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current[mountedFieldPath] !== undefined ||\n pathsWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n useEffect(() => {\n if (!wasMounted.current) {\n wasMounted.current = true\n return\n }\n // When receiving the initial data, or receiving updated data by props, update the internal data (controlled state)\n setInternalData(data)\n }, [data])\n\n const validateBySchema = useCallback(\n (data: Partial<Data>): Record<string, Error> | undefined => {\n if (!ajvSchemaValidator) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidator(data)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(ajvSchemaValidator.errors)\n return errors\n } else {\n return\n }\n },\n [ajvSchemaValidator]\n )\n\n const validateBySchemaAndUpdateState = useCallback(\n (data: Partial<Data>) => {\n errorsRef.current = validateBySchema(data) ?? {}\n },\n [validateBySchema]\n )\n\n const setPathWithError = useCallback(\n (path: string, hasError: boolean) => {\n pathsWithErrorRef.current = hasError\n ? addListPath(pathsWithErrorRef.current, path)\n : removeListPath(pathsWithErrorRef.current, path)\n },\n []\n )\n\n const handlePathChange = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n onPathChange?.(path, value)\n\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n const newData = structuredClone(\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalData ?? (path.match(isArrayJsonPointer) ? [] : {})\n )\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n onChange?.(newData as Data)\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n validateBySchemaAndUpdateState(newData)\n\n setInternalData(newData)\n\n setShowAllErrors(false)\n },\n [internalData, onChange, onPathChange, validateBySchemaAndUpdateState]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: string) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n onSubmit?.(internalData as Data)\n\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n\n if (scrollTopOnSubmit) {\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n return internalData\n },\n [internalData, scrollTopOnSubmit, hasErrors, onSubmit, onSubmitRequest]\n )\n\n useEffect(() => {\n // Mount procedure\n if (initialData) {\n // Validate the initial data to know if the user can submit, and to show errors if inputs are requested to with props\n validateBySchemaAndUpdateState(initialData)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only run for mount and unmount\n }, [])\n\n return (\n <Context.Provider\n value={{\n data: internalData,\n ...rest,\n handlePathChange,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setPathWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
@@ -40,15 +40,18 @@ function ArraySelection(props) {
40
40
  labelDescription,
41
41
  labelSecondary
42
42
  }, pickSpacingProps(props));
43
- const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option => ({
44
- title: option.props.title ?? option.props.children,
45
- value: option.props.value,
46
- handleSelect: () => {
47
- const selected = option.props.value;
48
- const newValue = value !== null && value !== void 0 && value.includes(selected) ? value.filter(value => value !== selected) : [...(value ?? []), selected];
49
- handleChange === null || handleChange === void 0 ? void 0 : handleChange(newValue.length === 0 ? emptyValue : newValue);
50
- }
51
- })), [children, value, emptyValue, handleChange]);
43
+ const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === Option).map(option => {
44
+ var _option$props$title;
45
+ return {
46
+ title: (_option$props$title = option.props.title) !== null && _option$props$title !== void 0 ? _option$props$title : option.props.children,
47
+ value: option.props.value,
48
+ handleSelect: () => {
49
+ const selected = option.props.value;
50
+ const newValue = value !== null && value !== void 0 && value.includes(selected) ? value.filter(value => value !== selected) : [...(value !== null && value !== void 0 ? value : []), selected];
51
+ handleChange === null || handleChange === void 0 ? void 0 : handleChange(newValue.length === 0 ? emptyValue : newValue);
52
+ }
53
+ };
54
+ }), [children, value, emptyValue, handleChange]);
52
55
  switch (variant) {
53
56
  case 'button':
54
57
  return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ButtonRow, null, options.map((option, i) => React.createElement(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","Button","ButtonRow","classnames","Option","FieldBlock","useDataValue","pickSpacingProps","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","labelSecondary","value","error","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","title","handleSelect","selected","newValue","includes","length","createElement","i","key","text","on_click","undefined","status","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, Button } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport classnames from 'classnames'\nimport Option from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n labelSecondary,\n value,\n error,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useDataValue(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ButtonRow>\n {options.map((option, i) => (\n <Button\n key={`option-${i}-${option.value}`}\n id={id}\n text={option.title}\n on_click={option.handleSelect}\n variant={\n value?.includes(option.value) ? undefined : 'secondary'\n }\n status={error ? 'error' : undefined}\n disabled={disabled}\n />\n ))}\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","Button","ButtonRow","classnames","Option","FieldBlock","useDataValue","pickSpacingProps","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","labelSecondary","value","error","info","warning","disabled","emptyValue","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","length","createElement","i","key","text","on_click","undefined","status","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, Button } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport classnames from 'classnames'\nimport Option from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number>> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n labelSecondary,\n value,\n error,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useDataValue(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n labelSecondary,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) => React.isValidElement(child) && child.type === Option\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ButtonRow>\n {options.map((option, i) => (\n <Button\n key={`option-${i}-${option.value}`}\n id={id}\n text={option.title}\n on_click={option.handleSelect}\n variant={\n value?.includes(option.value) ? undefined : 'secondary'\n }\n status={error ? 'error' : undefined}\n disabled={disabled}\n />\n ))}\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -5,6 +7,7 @@ import React, { useContext } from 'react';
5
7
  import StringComponent from '../String';
6
8
  import SharedContext from '../../../../shared/Context';
7
9
  function BankAccountNumber(props) {
10
+ var _props$pattern, _props$label, _props$width;
8
11
  const sharedContext = useContext(SharedContext);
9
12
  const {
10
13
  validate = true,
@@ -12,14 +15,14 @@ function BankAccountNumber(props) {
12
15
  } = props;
13
16
  const stringComponentProps = _objectSpread(_objectSpread({}, props), {}, {
14
17
  className: 'dnb-forms-field-bank-account-number',
15
- pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),
16
- label: props.label ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.bankAccountNumberLabel),
18
+ pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{11}$' : undefined,
19
+ label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.bankAccountNumberLabel,
17
20
  errorMessages: _objectSpread({
18
21
  required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.bankAccountNumberErrorRequired,
19
22
  pattern: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.bankAccountNumberErrorPattern
20
23
  }, props.errorMessages),
21
24
  mask: omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/],
22
- width: props.width ?? 'medium'
25
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium'
23
26
  });
24
27
  return React.createElement(StringComponent, stringComponentProps);
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BankAccountNumber.js","names":["React","useContext","StringComponent","SharedContext","BankAccountNumber","props","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","className","pattern","undefined","label","translation","Forms","bankAccountNumberLabel","errorMessages","required","bankAccountNumberErrorRequired","bankAccountNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.bankAccountNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.bankAccountNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms.bankAccountNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAOtD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EACvC,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAEI,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAE3C,MAAMI,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BL,KAAK;IACRM,SAAS,EAAE,qCAAqC;IAChDC,OAAO,EAAEP,KAAK,CAACO,OAAO,KAAKL,QAAQ,GAAG,aAAa,GAAGM,SAAS,CAAC;IAChEC,KAAK,EACHT,KAAK,CAACS,KAAK,KACXR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACC,sBAAsB;IACzDC,aAAa,EAAAR,aAAA;MACXS,QAAQ,EACNb,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACI,8BAA8B;MACjER,OAAO,EACLN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACK;IAA6B,GAC7DhB,KAAK,CAACa,aAAa,CACvB;IACDI,IAAI,EAAEd,QAAQ,GACV,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAClE,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;IACLe,KAAK,EAAElB,KAAK,CAACkB,KAAK,IAAI;EAAQ,EAC/B;EAED,OAAOvB,KAAA,CAAAwB,aAAA,CAACtB,eAAe,EAAKO,oBAAuB,CAAC;AACtD;AAEAL,iBAAiB,CAACqB,qBAAqB,GAAG,IAAI;AAC9C,eAAerB,iBAAiB"}
1
+ {"version":3,"file":"BankAccountNumber.js","names":["React","useContext","StringComponent","SharedContext","BankAccountNumber","props","_props$pattern","_props$label","_props$width","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","className","pattern","undefined","label","translation","Forms","bankAccountNumberLabel","errorMessages","required","bankAccountNumberErrorRequired","bankAccountNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.bankAccountNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms.bankAccountNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms.bankAccountNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAOtD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,aAAa,GAAGR,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAEO,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BR,KAAK;IACRS,SAAS,EAAE,qCAAqC;IAChDC,OAAO,GAAAT,cAAA,GAAED,KAAK,CAACU,OAAO,cAAAT,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,aAAa,GAAGM,SAAU;IAChEC,KAAK,GAAAV,YAAA,GACHF,KAAK,CAACY,KAAK,cAAAV,YAAA,cAAAA,YAAA,GACXE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACC,sBAAsB;IACzDC,aAAa,EAAAR,aAAA;MACXS,QAAQ,EACNb,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACI,8BAA8B;MACjER,OAAO,EACLN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAES,WAAW,CAACC,KAAK,CAACK;IAA6B,GAC7DnB,KAAK,CAACgB,aAAa,CACvB;IACDI,IAAI,EAAEd,QAAQ,GACV,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAClE,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;IACLe,KAAK,GAAAlB,YAAA,GAAEH,KAAK,CAACqB,KAAK,cAAAlB,YAAA,cAAAA,YAAA,GAAI;EAAQ,EAC/B;EAED,OAAOR,KAAA,CAAA2B,aAAA,CAACzB,eAAe,EAAKU,oBAAuB,CAAC;AACtD;AAEAR,iBAAiB,CAACwB,qBAAqB,GAAG,IAAI;AAC9C,eAAexB,iBAAiB"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
5
  const _excluded = ["trueText", "falseText"];
@@ -14,8 +16,8 @@ function BooleanComponent(props) {
14
16
  return React.createElement(Toggle, _extends({}, restProps, {
15
17
  valueOn: true,
16
18
  valueOff: false,
17
- textOn: trueText ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes),
18
- textOff: falseText ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo)
19
+ textOn: trueText !== null && trueText !== void 0 ? trueText : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes,
20
+ textOff: falseText !== null && falseText !== void 0 ? falseText : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo
19
21
  }));
20
22
  }
21
23
  BooleanComponent._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Boolean.js","names":["React","useContext","Toggle","SharedContext","BooleanComponent","props","sharedContext","trueText","falseText","restProps","_objectWithoutProperties","_excluded","createElement","_extends","valueOn","valueOff","textOn","translation","Forms","booleanYes","textOff","booleanNo","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Boolean/Boolean.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport Toggle, { Props as ToggleProps } from '../Toggle'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = Omit<\n ToggleProps,\n 'valueOn' | 'valueOff' | 'textOn' | 'textOff'\n> & {\n trueText?: string\n falseText?: string\n}\n\nfunction BooleanComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { trueText, falseText, ...restProps } = props\n return (\n <Toggle\n {...restProps}\n valueOn={true}\n valueOff={false}\n textOn={trueText ?? sharedContext?.translation.Forms.booleanYes}\n textOff={falseText ?? sharedContext?.translation.Forms.booleanNo}\n />\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,MAAM,MAAgC,WAAW;AACxD,OAAOC,aAAa,MAAM,4BAA4B;AAUtD,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;MAAEI,QAAQ;MAAEC;IAAwB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACnD,OACEX,KAAA,CAAAY,aAAA,CAACV,MAAM,EAAAW,QAAA,KACDJ,SAAS;IACbK,OAAO,EAAE,IAAK;IACdC,QAAQ,EAAE,KAAM;IAChBC,MAAM,EAAET,QAAQ,KAAID,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACC,UAAU,CAAC;IAChEC,OAAO,EAAEZ,SAAS,KAAIF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACG,SAAS;EAAC,EAClE,CAAC;AAEN;AAEAjB,gBAAgB,CAACkB,qBAAqB,GAAG,IAAI;AAC7C,eAAelB,gBAAgB"}
1
+ {"version":3,"file":"Boolean.js","names":["React","useContext","Toggle","SharedContext","BooleanComponent","props","sharedContext","trueText","falseText","restProps","_objectWithoutProperties","_excluded","createElement","_extends","valueOn","valueOff","textOn","translation","Forms","booleanYes","textOff","booleanNo","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Boolean/Boolean.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport Toggle, { Props as ToggleProps } from '../Toggle'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = Omit<\n ToggleProps,\n 'valueOn' | 'valueOff' | 'textOn' | 'textOff'\n> & {\n trueText?: string\n falseText?: string\n}\n\nfunction BooleanComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { trueText, falseText, ...restProps } = props\n return (\n <Toggle\n {...restProps}\n valueOn={true}\n valueOff={false}\n textOn={trueText ?? sharedContext?.translation.Forms.booleanYes}\n textOff={falseText ?? sharedContext?.translation.Forms.booleanNo}\n />\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,MAAM,MAAgC,WAAW;AACxD,OAAOC,aAAa,MAAM,4BAA4B;AAUtD,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;MAAEI,QAAQ;MAAEC;IAAwB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACnD,OACEX,KAAA,CAAAY,aAAA,CAACV,MAAM,EAAAW,QAAA,KACDJ,SAAS;IACbK,OAAO,EAAE,IAAK;IACdC,QAAQ,EAAE,KAAM;IAChBC,MAAM,EAAET,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAID,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACC,UAAW;IAChEC,OAAO,EAAEZ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACG;EAAU,EAClE,CAAC;AAEN;AAEAjB,gBAAgB,CAACkB,qBAAqB,GAAG,IAAI;AAC7C,eAAelB,gBAAgB"}
@@ -6,9 +6,10 @@ import React from 'react';
6
6
  import classnames from 'classnames';
7
7
  import NumberComponent from '../Number';
8
8
  function Currency(props) {
9
+ var _props$currency, _props$placeholder;
9
10
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
10
- currency: props.currency ?? 'NOK',
11
- placeholder: props.placeholder ?? 'kr'
11
+ currency: (_props$currency = props.currency) !== null && _props$currency !== void 0 ? _props$currency : 'NOK',
12
+ placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : 'kr'
12
13
  });
13
14
  return React.createElement(NumberComponent, _extends({}, preparedProps, {
14
15
  className: classnames('dnb-forms-field-currency', props.className)
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","classnames","NumberComponent","Currency","props","preparedProps","_objectSpread","currency","placeholder","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport NumberComponent from '../Number'\nimport type { FieldProps, FieldHelpProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined> & {\n currency?: string\n }\n\nfunction Currency(props: Props) {\n const preparedProps = {\n ...props,\n currency: props.currency ?? 'NOK',\n placeholder: props.placeholder ?? 'kr',\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,eAAe,MAAM,WAAW;AAQvC,SAASC,QAAQA,CAACC,KAAY,EAAE;EAC9B,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdF,KAAK;IACRG,QAAQ,EAAEH,KAAK,CAACG,QAAQ,IAAI,KAAK;IACjCC,WAAW,EAAEJ,KAAK,CAACI,WAAW,IAAI;EAAI,EACvC;EAED,OACER,KAAA,CAAAS,aAAA,CAACP,eAAe,EAAAQ,QAAA,KACVL,aAAa;IACjBM,SAAS,EAAEV,UAAU,CAAC,0BAA0B,EAAEG,KAAK,CAACO,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAR,QAAQ,CAACS,qBAAqB,GAAG,IAAI;AACrC,eAAeT,QAAQ"}
1
+ {"version":3,"file":"Currency.js","names":["React","classnames","NumberComponent","Currency","props","_props$currency","_props$placeholder","preparedProps","_objectSpread","currency","placeholder","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport NumberComponent from '../Number'\nimport type { FieldProps, FieldHelpProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined> & {\n currency?: string\n }\n\nfunction Currency(props: Props) {\n const preparedProps = {\n ...props,\n currency: props.currency ?? 'NOK',\n placeholder: props.placeholder ?? 'kr',\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,eAAe,MAAM,WAAW;AAQvC,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdJ,KAAK;IACRK,QAAQ,GAAAJ,eAAA,GAAED,KAAK,CAACK,QAAQ,cAAAJ,eAAA,cAAAA,eAAA,GAAI,KAAK;IACjCK,WAAW,GAAAJ,kBAAA,GAAEF,KAAK,CAACM,WAAW,cAAAJ,kBAAA,cAAAA,kBAAA,GAAI;EAAI,EACvC;EAED,OACEN,KAAA,CAAAW,aAAA,CAACT,eAAe,EAAAU,QAAA,KACVL,aAAa;IACjBM,SAAS,EAAEZ,UAAU,CAAC,0BAA0B,EAAEG,KAAK,CAACS,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAV,QAAQ,CAACW,qBAAqB,GAAG,IAAI;AACrC,eAAeX,QAAQ"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -30,7 +32,7 @@ function DateComponent(props) {
30
32
  } = useDataValue(preparedProps);
31
33
  return React.createElement(DatePicker, _extends({
32
34
  className: className,
33
- label: label ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.dateLabel),
35
+ label: label !== null && label !== void 0 ? label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.dateLabel,
34
36
  label_direction: "vertical",
35
37
  date: value,
36
38
  status: error === null || error === void 0 ? void 0 : error.message,
@@ -1 +1 @@
1
- {"version":3,"file":"Date.js","names":["React","useContext","DatePicker","HelpButton","useDataValue","pickSpacingProps","SharedContext","DateComponent","props","sharedContext","preparedProps","_objectSpread","fromInput","_ref","date","className","label","value","help","error","disabled","handleFocus","handleBlur","handleChange","createElement","_extends","translation","Forms","dateLabel","label_direction","status","message","show_input","show_cancel_button","show_reset_button","suffix","title","contents","undefined","on_change","on_show","on_hide","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = FieldHelpProps & FieldProps<string>\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n }\n\n const {\n className,\n label,\n value,\n help,\n error,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <DatePicker\n className={className}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n label_direction=\"vertical\"\n date={value}\n status={error?.message}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_show={handleFocus}\n on_hide={handleBlur}\n {...pickSpacingProps(props)}\n />\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,wBAAwB;AAC/D,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,aAAa,GAAGR,UAAU,CAACK,aAAa,CAAC;EAC/C,MAAMI,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBH,KAAK;IACRI,SAAS,EAAEC,IAAA,IAAgC;MAAA,IAA/B;QAAEC;MAAuB,CAAC,GAAAD,IAAA;MACpC,OAAOC,IAAI;IACb;EAAC,EACF;EAED,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC;EACF,CAAC,GAAGnB,YAAY,CAACM,aAAa,CAAC;EAE/B,OACEV,KAAA,CAAAwB,aAAA,CAACtB,UAAU,EAAAuB,QAAA;IACTV,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAK,KAAIP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiB,WAAW,CAACC,KAAK,CAACC,SAAS,CAAC;IAC3DC,eAAe,EAAC,UAAU;IAC1Bf,IAAI,EAAEG,KAAM;IACZa,MAAM,EAAEX,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEY,OAAQ;IACvBX,QAAQ,EAAEA,QAAS;IACnBY,UAAU,EAAE,IAAK;IACjBC,kBAAkB,EAAE,IAAK;IACzBC,iBAAiB,EAAE,IAAK;IACxBC,MAAM,EACJjB,IAAI,GACFlB,KAAA,CAAAwB,aAAA,CAACrB,UAAU;MAACiC,KAAK,EAAElB,IAAI,CAACkB;IAAM,GAAElB,IAAI,CAACmB,QAAqB,CAAC,GACzDC,SACL;IACDC,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAEnB,WAAY;IACrBoB,OAAO,EAAEnB;EAAW,GAChBjB,gBAAgB,CAACG,KAAK,CAAC,CAC5B,CAAC;AAEN;AAEAD,aAAa,CAACmC,qBAAqB,GAAG,IAAI;AAC1C,eAAenC,aAAa"}
1
+ {"version":3,"file":"Date.js","names":["React","useContext","DatePicker","HelpButton","useDataValue","pickSpacingProps","SharedContext","DateComponent","props","sharedContext","preparedProps","_objectSpread","fromInput","_ref","date","className","label","value","help","error","disabled","handleFocus","handleBlur","handleChange","createElement","_extends","translation","Forms","dateLabel","label_direction","status","message","show_input","show_cancel_button","show_reset_button","suffix","title","contents","undefined","on_change","on_show","on_hide","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = FieldHelpProps & FieldProps<string>\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n }\n\n const {\n className,\n label,\n value,\n help,\n error,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <DatePicker\n className={className}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n label_direction=\"vertical\"\n date={value}\n status={error?.message}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_show={handleFocus}\n on_hide={handleBlur}\n {...pickSpacingProps(props)}\n />\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,wBAAwB;AAC/D,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,aAAa,GAAGR,UAAU,CAACK,aAAa,CAAC;EAC/C,MAAMI,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBH,KAAK;IACRI,SAAS,EAAEC,IAAA,IAAgC;MAAA,IAA/B;QAAEC;MAAuB,CAAC,GAAAD,IAAA;MACpC,OAAOC,IAAI;IACb;EAAC,EACF;EAED,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC;EACF,CAAC,GAAGnB,YAAY,CAACM,aAAa,CAAC;EAE/B,OACEV,KAAA,CAAAwB,aAAA,CAACtB,UAAU,EAAAuB,QAAA;IACTV,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiB,WAAW,CAACC,KAAK,CAACC,SAAU;IAC3DC,eAAe,EAAC,UAAU;IAC1Bf,IAAI,EAAEG,KAAM;IACZa,MAAM,EAAEX,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEY,OAAQ;IACvBX,QAAQ,EAAEA,QAAS;IACnBY,UAAU,EAAE,IAAK;IACjBC,kBAAkB,EAAE,IAAK;IACzBC,iBAAiB,EAAE,IAAK;IACxBC,MAAM,EACJjB,IAAI,GACFlB,KAAA,CAAAwB,aAAA,CAACrB,UAAU;MAACiC,KAAK,EAAElB,IAAI,CAACkB;IAAM,GAAElB,IAAI,CAACmB,QAAqB,CAAC,GACzDC,SACL;IACDC,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAEnB,WAAY;IACrBoB,OAAO,EAAEnB;EAAW,GAChBjB,gBAAgB,CAACG,KAAK,CAAC,CAC5B,CAAC;AAEN;AAEAD,aAAa,CAACmC,qBAAqB,GAAG,IAAI;AAC1C,eAAenC,aAAa"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -5,11 +7,12 @@ import React, { useContext } from 'react';
5
7
  import StringComponent from '../String';
6
8
  import SharedContext from '../../../../shared/Context';
7
9
  function Email(props) {
10
+ var _props$type, _props$pattern, _props$label;
8
11
  const sharedContext = useContext(SharedContext);
9
12
  const stringComponentProps = _objectSpread(_objectSpread({}, props), {}, {
10
- type: props.type ?? 'email',
11
- pattern: props.pattern ?? "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
12
- label: props.label ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.emailLabel),
13
+ type: (_props$type = props.type) !== null && _props$type !== void 0 ? _props$type : 'email',
14
+ pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
15
+ label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.emailLabel,
13
16
  errorMessages: _objectSpread({
14
17
  required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.emailErrorRequired,
15
18
  pattern: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.emailErrorPattern
@@ -1 +1 @@
1
- {"version":3,"file":"Email.js","names":["React","useContext","StringComponent","SharedContext","Email","props","sharedContext","stringComponentProps","_objectSpread","type","pattern","label","translation","Forms","emailLabel","errorMessages","required","emailErrorRequired","emailErrorPattern","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Email/Email.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps\n\nfunction Email(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const stringComponentProps: Props = {\n ...props,\n type: props.type ?? 'email',\n pattern:\n props.pattern ??\n \"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$\",\n label: props.label ?? sharedContext?.translation.Forms.emailLabel,\n errorMessages: {\n required: sharedContext?.translation.Forms.emailErrorRequired,\n pattern: sharedContext?.translation.Forms.emailErrorPattern,\n ...props.errorMessages,\n },\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nEmail._supportsSpacingProps = true\nexport default Email\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,KAAKA,CAACC,KAAY,EAAE;EAC3B,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAMI,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BH,KAAK;IACRI,IAAI,EAAEJ,KAAK,CAACI,IAAI,IAAI,OAAO;IAC3BC,OAAO,EACLL,KAAK,CAACK,OAAO,IACb,qEAAqE;IACvEC,KAAK,EAAEN,KAAK,CAACM,KAAK,KAAIL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC,UAAU;IACjEC,aAAa,EAAAP,aAAA;MACXQ,QAAQ,EAAEV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACI,kBAAkB;MAC7DP,OAAO,EAAEJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACK;IAAiB,GACxDb,KAAK,CAACU,aAAa;EACvB,EACF;EAED,OAAOf,KAAA,CAAAmB,aAAA,CAACjB,eAAe,EAAKK,oBAAuB,CAAC;AACtD;AAEAH,KAAK,CAACgB,qBAAqB,GAAG,IAAI;AAClC,eAAehB,KAAK"}
1
+ {"version":3,"file":"Email.js","names":["React","useContext","StringComponent","SharedContext","Email","props","_props$type","_props$pattern","_props$label","sharedContext","stringComponentProps","_objectSpread","type","pattern","label","translation","Forms","emailLabel","errorMessages","required","emailErrorRequired","emailErrorPattern","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Email/Email.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps\n\nfunction Email(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const stringComponentProps: Props = {\n ...props,\n type: props.type ?? 'email',\n pattern:\n props.pattern ??\n \"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$\",\n label: props.label ?? sharedContext?.translation.Forms.emailLabel,\n errorMessages: {\n required: sharedContext?.translation.Forms.emailErrorRequired,\n pattern: sharedContext?.translation.Forms.emailErrorPattern,\n ...props.errorMessages,\n },\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nEmail._supportsSpacingProps = true\nexport default Email\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAItD,SAASC,KAAKA,CAACC,KAAY,EAAE;EAAA,IAAAC,WAAA,EAAAC,cAAA,EAAAC,YAAA;EAC3B,MAAMC,aAAa,GAAGR,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAMO,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BN,KAAK;IACRO,IAAI,GAAAN,WAAA,GAAED,KAAK,CAACO,IAAI,cAAAN,WAAA,cAAAA,WAAA,GAAI,OAAO;IAC3BO,OAAO,GAAAN,cAAA,GACLF,KAAK,CAACQ,OAAO,cAAAN,cAAA,cAAAA,cAAA,GACb,qEAAqE;IACvEO,KAAK,GAAAN,YAAA,GAAEH,KAAK,CAACS,KAAK,cAAAN,YAAA,cAAAA,YAAA,GAAIC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACC,UAAU;IACjEC,aAAa,EAAAP,aAAA;MACXQ,QAAQ,EAAEV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACI,kBAAkB;MAC7DP,OAAO,EAAEJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,WAAW,CAACC,KAAK,CAACK;IAAiB,GACxDhB,KAAK,CAACa,aAAa;EACvB,EACF;EAED,OAAOlB,KAAA,CAAAsB,aAAA,CAACpB,eAAe,EAAKQ,oBAAuB,CAAC;AACtD;AAEAN,KAAK,CAACmB,qBAAqB,GAAG,IAAI;AAClC,eAAenB,KAAK"}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -5,20 +7,21 @@ import React, { useContext } from 'react';
5
7
  import StringComponent from '../String';
6
8
  import SharedContext from '../../../../shared/Context';
7
9
  function NationalIdentityNumber(props) {
10
+ var _props$pattern, _props$label, _props$width;
8
11
  const sharedContext = useContext(SharedContext);
9
12
  const {
10
13
  validate = true,
11
14
  omitMask
12
15
  } = props;
13
16
  const stringComponentProps = _objectSpread(_objectSpread({}, props), {}, {
14
- pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),
15
- label: props.label ?? (sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.nationalIdentityNumberLabel),
17
+ pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{11}$' : undefined,
18
+ label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.nationalIdentityNumberLabel,
16
19
  errorMessages: _objectSpread({
17
20
  required: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.nationalIdentityNumberErrorRequired,
18
21
  pattern: sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.nationalIdentityNumberErrorPattern
19
22
  }, props.errorMessages),
20
23
  mask: omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/],
21
- width: props.width ?? 'medium'
24
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium'
22
25
  });
23
26
  return React.createElement(StringComponent, stringComponentProps);
24
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NationalIdentityNumber.js","names":["React","useContext","StringComponent","SharedContext","NationalIdentityNumber","props","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","pattern","undefined","label","translation","Forms","nationalIdentityNumberLabel","errorMessages","required","nationalIdentityNumberErrorRequired","nationalIdentityNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n omitMask?: boolean\n validate?: boolean\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.nationalIdentityNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms\n .nationalIdentityNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms\n .nationalIdentityNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAOtD,SAASC,sBAAsBA,CAACC,KAAY,EAAE;EAC5C,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAEI,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAE3C,MAAMI,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BL,KAAK;IACRM,OAAO,EAAEN,KAAK,CAACM,OAAO,KAAKJ,QAAQ,GAAG,aAAa,GAAGK,SAAS,CAAC;IAChEC,KAAK,EACHR,KAAK,CAACQ,KAAK,KACXP,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAACC,2BAA2B;IAC9DC,aAAa,EAAAP,aAAA;MACXQ,QAAQ,EACNZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAC7BI,mCAAmC;MACxCR,OAAO,EACLL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAC7BK;IAAkC,GACpCf,KAAK,CAACY,aAAa,CACvB;IACDI,IAAI,EAAEb,QAAQ,GACV,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAClE,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;IACLc,KAAK,EAAEjB,KAAK,CAACiB,KAAK,IAAI;EAAQ,EAC/B;EAED,OAAOtB,KAAA,CAAAuB,aAAA,CAACrB,eAAe,EAAKO,oBAAuB,CAAC;AACtD;AAEAL,sBAAsB,CAACoB,qBAAqB,GAAG,IAAI;AACnD,eAAepB,sBAAsB"}
1
+ {"version":3,"file":"NationalIdentityNumber.js","names":["React","useContext","StringComponent","SharedContext","NationalIdentityNumber","props","_props$pattern","_props$label","_props$width","sharedContext","validate","omitMask","stringComponentProps","_objectSpread","pattern","undefined","label","translation","Forms","nationalIdentityNumberLabel","errorMessages","required","nationalIdentityNumberErrorRequired","nationalIdentityNumberErrorPattern","mask","width","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport StringComponent, { Props as StringComponentProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = StringComponentProps & {\n omitMask?: boolean\n validate?: boolean\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { validate = true, omitMask } = props\n\n const stringComponentProps: Props = {\n ...props,\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.nationalIdentityNumberLabel,\n errorMessages: {\n required:\n sharedContext?.translation.Forms\n .nationalIdentityNumberErrorRequired,\n pattern:\n sharedContext?.translation.Forms\n .nationalIdentityNumberErrorPattern,\n ...props.errorMessages,\n },\n mask: omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n width: props.width ?? 'medium',\n }\n\n return <StringComponent {...stringComponentProps} />\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,eAAe,MAAyC,WAAW;AAC1E,OAAOC,aAAa,MAAM,4BAA4B;AAOtD,SAASC,sBAAsBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EAC5C,MAAMC,aAAa,GAAGR,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAEO,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,oBAA2B,GAAAC,aAAA,CAAAA,aAAA,KAC5BR,KAAK;IACRS,OAAO,GAAAR,cAAA,GAAED,KAAK,CAACS,OAAO,cAAAR,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,aAAa,GAAGK,SAAU;IAChEC,KAAK,GAAAT,YAAA,GACHF,KAAK,CAACW,KAAK,cAAAT,YAAA,cAAAA,YAAA,GACXE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAACC,2BAA2B;IAC9DC,aAAa,EAAAP,aAAA;MACXQ,QAAQ,EACNZ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAC7BI,mCAAmC;MACxCR,OAAO,EACLL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEQ,WAAW,CAACC,KAAK,CAC7BK;IAAkC,GACpClB,KAAK,CAACe,aAAa,CACvB;IACDI,IAAI,EAAEb,QAAQ,GACV,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAClE,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;IACLc,KAAK,GAAAjB,YAAA,GAAEH,KAAK,CAACoB,KAAK,cAAAjB,YAAA,cAAAA,YAAA,GAAI;EAAQ,EAC/B;EAED,OAAOR,KAAA,CAAA0B,aAAA,CAACxB,eAAe,EAAKU,oBAAuB,CAAC;AACtD;AAEAR,sBAAsB,CAACuB,qBAAqB,GAAG,IAAI;AACnD,eAAevB,sBAAsB"}
@@ -9,6 +9,7 @@ import FieldBlock from '../../FieldBlock';
9
9
  import { useDataValue } from '../../hooks';
10
10
  import { pickSpacingProps } from '../../../../components/flex/utils';
11
11
  function NumberComponent(props) {
12
+ var _props$schema, _props$width;
12
13
  const {
13
14
  currency,
14
15
  percent,
@@ -45,7 +46,7 @@ function NumberComponent(props) {
45
46
  };
46
47
  }, [currency, percent, mask, decimalLimit, decimalSymbol, thousandSeparator, prefix, suffix]);
47
48
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
48
- schema: props.schema ?? {
49
+ schema: (_props$schema = props.schema) !== null && _props$schema !== void 0 ? _props$schema : {
49
50
  type: 'number',
50
51
  minimum: props.minimum,
51
52
  maximum: props.maximum,
@@ -69,7 +70,7 @@ function NumberComponent(props) {
69
70
  }
70
71
  return numberValue;
71
72
  },
72
- width: props.width ?? 'medium'
73
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium'
73
74
  });
74
75
  const {
75
76
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useMemo","InputMasked","HelpButton","classnames","FieldBlock","useDataValue","pickSpacingProps","NumberComponent","props","currency","percent","mask","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","maskProps","as_currency","as_percent","as_number","number_mask","includeThousandsSeparator","undefined","thousandsSeparatorSymbol","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","fromInput","_ref","value","numberValue","emptyValue","width","id","name","className","autoComplete","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","help","handleFocus","handleBlur","handleChange","createElement","_extends","forId","contentsWidth","right","on_focus","on_blur","on_change","status","stretch","title","contents","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { InputMasked, HelpButton } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n currency,\n percent,\n mask,\n thousandSeparator,\n decimalSymbol,\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n if (currency) {\n return {\n as_currency: currency,\n }\n }\n if (percent) {\n return {\n as_percent: percent,\n }\n }\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n },\n }\n }, [\n currency,\n percent,\n mask,\n decimalLimit,\n decimalSymbol,\n thousandSeparator,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n help,\n emptyValue,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n <InputMasked\n id={id}\n name={name}\n autoComplete={autoComplete}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n {...maskProps}\n right={rightAligned}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={handleChange}\n disabled={disabled}\n status={error ? 'error' : undefined}\n stretch={width !== undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useMemo","InputMasked","HelpButton","classnames","FieldBlock","useDataValue","pickSpacingProps","NumberComponent","props","_props$schema","_props$width","currency","percent","mask","thousandSeparator","decimalSymbol","decimalLimit","prefix","suffix","rightAligned","maskProps","as_currency","as_percent","as_number","number_mask","includeThousandsSeparator","undefined","thousandsSeparatorSymbol","preparedProps","_objectSpread","schema","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","fromInput","_ref","value","numberValue","emptyValue","width","id","name","className","autoComplete","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","disabled","info","warning","error","help","handleFocus","handleBlur","handleChange","createElement","_extends","forId","contentsWidth","right","on_focus","on_blur","on_change","status","stretch","title","contents","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { InputMasked, HelpButton } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n // Formatting\n thousandSeparator?: string | true\n decimalSymbol?: string\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n rightAligned?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const {\n currency,\n percent,\n mask,\n thousandSeparator,\n decimalSymbol,\n decimalLimit = 12,\n prefix,\n suffix,\n rightAligned,\n } = props\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n if (currency) {\n return {\n as_currency: currency,\n }\n }\n if (percent) {\n return {\n as_percent: percent,\n }\n }\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n decimalLimit,\n decimalSymbol,\n includeThousandsSeparator: thousandSeparator !== undefined,\n thousandsSeparatorSymbol:\n thousandSeparator === true ? ' ' : thousandSeparator,\n prefix,\n suffix,\n },\n }\n }, [\n currency,\n percent,\n mask,\n decimalLimit,\n decimalSymbol,\n thousandSeparator,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n ...props,\n schema: props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n toInput: (external: number | undefined) => {\n if (external === undefined) {\n return ''\n }\n return external\n },\n fromInput: ({\n value,\n numberValue,\n }: {\n value: string\n numberValue: number\n }) => {\n if (value === '') {\n return emptyValue\n }\n return numberValue\n },\n width: props.width ?? 'medium',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n disabled,\n info,\n warning,\n error,\n help,\n emptyValue,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-number', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n error={error}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n <InputMasked\n id={id}\n name={name}\n autoComplete={autoComplete}\n className={classnames(\n 'dnb-forms-field-number__input',\n inputClassName\n )}\n placeholder={placeholder}\n value={value}\n {...maskProps}\n right={rightAligned}\n on_focus={handleFocus}\n on_blur={handleBlur}\n on_change={handleChange}\n disabled={disabled}\n status={error ? 'error' : undefined}\n stretch={width !== undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -10,6 +10,6 @@ export default function Option(_ref) {
10
10
  return React.createElement("span", {
11
11
  className: classnames('dnb-forms-field-option', className),
12
12
  role: "option"
13
- }, children ?? title, text);
13
+ }, children !== null && children !== void 0 ? children : title, text);
14
14
  }
15
15
  //# sourceMappingURL=Option.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AASnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,IAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}
1
+ {"version":3,"file":"Option.js","names":["React","classnames","Option","_ref","className","title","text","children","createElement","role"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AASnC,eAAe,SAASC,MAAMA,CAAAC,IAAA,EAKpB;EAAA,IALqB;IAC7BC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC;EACK,CAAC,GAAAJ,IAAA;EACN,OACEH,KAAA,CAAAQ,aAAA;IACEJ,SAAS,EAAEH,UAAU,CAAC,wBAAwB,EAAEG,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX"}