@adyen/adyen-web 6.44.0 → 6.45.1

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 (313) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/adyen.css +17 -17
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +2001 -1879
  7. package/dist/es/adyen.css +17 -17
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/ANCV/components/ANCVInput.js +1 -1
  10. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  11. package/dist/es/components/Ach/Ach.js +1 -1
  12. package/dist/es/components/Ach/Ach.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchComponent.js +1 -1
  14. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  15. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  16. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  17. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  18. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  19. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  20. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  21. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  22. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  23. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  24. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  25. package/dist/es/components/Blik/Blik.js +1 -1
  26. package/dist/es/components/Blik/Blik.js.map +1 -1
  27. package/dist/es/components/Blik/components/BlikInput.js +1 -1
  28. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  29. package/dist/es/components/Card/Card.js +1 -1
  30. package/dist/es/components/Card/Card.js.map +1 -1
  31. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  32. package/dist/es/components/Card/components/ClickToPayHolder.js.map +1 -1
  33. package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
  34. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  35. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  36. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  37. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  38. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  39. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  40. package/dist/es/components/Donation/Donation.js +1 -1
  41. package/dist/es/components/Donation/Donation.js.map +1 -1
  42. package/dist/es/components/Donation/DonationCampaignService.js +1 -1
  43. package/dist/es/components/Donation/DonationCampaignService.js.map +1 -1
  44. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  45. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  46. package/dist/es/components/Dropin/Dropin.js +1 -1
  47. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  48. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  49. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js +1 -1
  50. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  51. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  52. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  53. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  54. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  55. package/dist/es/components/Giropay/Giropay.js +1 -1
  56. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  57. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  58. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  59. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  60. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  61. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  62. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  63. package/dist/es/components/MBWay/MBWay.js +1 -1
  64. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  65. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  66. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  67. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  68. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  69. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  70. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  71. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  72. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  73. package/dist/es/components/PayTo/PayTo.js +1 -1
  74. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  75. package/dist/es/components/PayTo/components/BSBInput.js +1 -1
  76. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  77. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  78. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  79. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  80. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  81. package/dist/es/components/Pix/Pix.js +1 -1
  82. package/dist/es/components/Pix/Pix.js.map +1 -1
  83. package/dist/es/components/Pix/components/PixInput/PixInput.js +1 -1
  84. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  85. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  86. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  87. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  88. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  89. package/dist/es/components/Redirect/Redirect.js +1 -1
  90. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  91. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  92. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  93. package/dist/es/components/Trustly/Trustly.js +1 -1
  94. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  95. package/dist/es/components/Twint/Twint.js +1 -1
  96. package/dist/es/components/Twint/Twint.js.map +1 -1
  97. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  98. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  99. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  100. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  101. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  102. package/dist/es/components/internal/Address/components/AddressSearch.js.map +1 -1
  103. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  104. package/dist/es/components/internal/Address/validate.formats.js +1 -1
  105. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  106. package/dist/es/components/internal/Address/validate.js +1 -1
  107. package/dist/es/components/internal/Address/validate.js.map +1 -1
  108. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  109. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  110. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  111. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  112. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  113. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  114. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  115. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  116. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  117. package/dist/es/components/internal/IbanInput/validate.js +1 -1
  118. package/dist/es/components/internal/IbanInput/validate.js.map +1 -1
  119. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  120. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  121. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  122. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  123. package/dist/es/components/internal/PayButton/utils.js +1 -1
  124. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  125. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  126. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  127. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  128. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  129. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  130. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  131. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  132. package/dist/es/components/internal/UIElement/utils.js +1 -1
  133. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  134. package/dist/es/core/Analytics/constants.js +1 -1
  135. package/dist/es/core/Analytics/constants.js.map +1 -1
  136. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js +1 -1
  137. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  138. package/dist/es/core/Errors/constants.js +1 -1
  139. package/dist/es/core/Errors/constants.js.map +1 -1
  140. package/dist/es/core/config.js +1 -1
  141. package/dist/es/core/config.js.map +1 -1
  142. package/dist/es/core/core.js +1 -1
  143. package/dist/es/core/core.js.map +1 -1
  144. package/dist/es/core/utils.js +1 -1
  145. package/dist/es/core/utils.js.map +1 -1
  146. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  147. package/dist/es/external/preact/dist/preact.js +1 -1
  148. package/dist/es/external/preact/dist/preact.js.map +1 -1
  149. package/dist/es/index.d.ts +2001 -1879
  150. package/dist/es/utils/Validator/Validator.js +1 -1
  151. package/dist/es/utils/Validator/Validator.js.map +1 -1
  152. package/dist/es/utils/useForm/reducer.js +1 -1
  153. package/dist/es/utils/useForm/reducer.js.map +1 -1
  154. package/dist/es/utils/useForm/useForm.js +1 -1
  155. package/dist/es/utils/useForm/useForm.js.map +1 -1
  156. package/dist/es/utils/useForm/useFormWithA11y.js +1 -1
  157. package/dist/es/utils/useForm/useFormWithA11y.js.map +1 -1
  158. package/dist/es/utils/validator-utils.js +1 -1
  159. package/dist/es/utils/validator-utils.js.map +1 -1
  160. package/dist/es-legacy/adyen.css +17 -17
  161. package/dist/es-legacy/adyen.css.map +1 -1
  162. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  163. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  164. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  165. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  166. package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
  167. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  168. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  169. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  170. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  171. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  172. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  173. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  174. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  175. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  176. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  177. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  178. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  179. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  180. package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
  181. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  182. package/dist/es-legacy/components/Card/Card.js +1 -1
  183. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  184. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  185. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js.map +1 -1
  186. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  187. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  188. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  189. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  190. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  191. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  192. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  193. package/dist/es-legacy/components/Donation/Donation.js +1 -1
  194. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  195. package/dist/es-legacy/components/Donation/DonationCampaignService.js +1 -1
  196. package/dist/es-legacy/components/Donation/DonationCampaignService.js.map +1 -1
  197. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  198. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  199. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  200. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  201. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  202. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js +1 -1
  203. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  204. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  205. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  206. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  207. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  208. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  209. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  210. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  211. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  212. package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
  213. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  214. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  215. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  216. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  217. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  218. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  219. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  220. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  221. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  222. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  223. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  224. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  225. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  226. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  227. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  228. package/dist/es-legacy/components/PayTo/components/BSBInput.js +1 -1
  229. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  230. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  231. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  232. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  233. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  234. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  235. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  236. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +1 -1
  237. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  238. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  239. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  240. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  241. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  242. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  243. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  244. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  245. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  246. package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
  247. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  248. package/dist/es-legacy/components/Twint/Twint.js +1 -1
  249. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  250. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  251. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  252. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  253. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  254. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  255. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js.map +1 -1
  256. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  257. package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
  258. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  259. package/dist/es-legacy/components/internal/Address/validate.js +1 -1
  260. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  261. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  262. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  263. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  264. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  265. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  266. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  267. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  268. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  269. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  270. package/dist/es-legacy/components/internal/IbanInput/validate.js +1 -1
  271. package/dist/es-legacy/components/internal/IbanInput/validate.js.map +1 -1
  272. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  273. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  274. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  275. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  276. package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
  277. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  278. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  279. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  280. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  281. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  282. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  283. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  284. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  285. package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
  286. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  287. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  288. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  289. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js +1 -1
  290. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  291. package/dist/es-legacy/core/Errors/constants.js +1 -1
  292. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  293. package/dist/es-legacy/core/config.js +1 -1
  294. package/dist/es-legacy/core/config.js.map +1 -1
  295. package/dist/es-legacy/core/core.js +1 -1
  296. package/dist/es-legacy/core/core.js.map +1 -1
  297. package/dist/es-legacy/core/utils.js +1 -1
  298. package/dist/es-legacy/core/utils.js.map +1 -1
  299. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  300. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  301. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  302. package/dist/es-legacy/utils/Validator/Validator.js +1 -1
  303. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  304. package/dist/es-legacy/utils/useForm/reducer.js +1 -1
  305. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  306. package/dist/es-legacy/utils/useForm/useForm.js +1 -1
  307. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  308. package/dist/es-legacy/utils/useForm/useFormWithA11y.js +1 -1
  309. package/dist/es-legacy/utils/useForm/useFormWithA11y.js.map +1 -1
  310. package/dist/es-legacy/utils/validator-utils.js +1 -1
  311. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  312. package/package.json +22 -22
  313. package/styles/adyen.css +17 -17
@@ -1,2 +1,2 @@
1
- import{ValidationRuleResult as t}from"./ValidationRuleResult.js";function r(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}class e{get isValid(){return this.validationResults.reduce((t,r)=>t&&r.isValid,!0)}hasError(t=!1){return Boolean(this.getError(t))}getError(t=!1){return this.validationResults.find(r=>r.hasError(t))}getAllErrors(){return this.validationResults.filter(t=>t.hasError())}constructor(t){r(this,"validationResults",void 0),this.validationResults=t}}class s{setRules(t){this.rules={...this.rules,...t}}getRulesFor(t){let r=this.rules[t]??this.rules.default;return Array.isArray(r)||(r=[r]),r}validate({key:r,value:s,mode:i="blur"},l){const u=this.getRulesFor(r).map(r=>new t(r,s,i,l,this.i18n));return new e(u)}constructor(t,e){r(this,"rules",{default:{validate:()=>!0,modes:["blur","input"]}}),r(this,"i18n",void 0),this.setRules(t),this.i18n=e}}export{s as default};
1
+ import{ValidationRuleResult as t}from"./ValidationRuleResult.js";function r(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}class e{get isValid(){return this.validationResults.reduce((t,r)=>t&&r.isValid,!0)}hasError(t=!1){return Boolean(this.getError(t))}getError(t=!1){return this.validationResults.find(r=>r.hasError(t))??null}getAllErrors(){return this.validationResults.filter(t=>t.hasError())}constructor(t){r(this,"validationResults",void 0),this.validationResults=t}}class s{setRules(t){this.rules={...this.rules,...t}}getRulesFor(t){let r=this.rules[t]??this.rules.default;return Array.isArray(r)||(r=[r]),r}validate({key:r,value:s,mode:i="blur"},l){const u=this.getRulesFor(r).map(r=>new t(r,s,i,l,this.i18n));return new e(u)}constructor(t,e){r(this,"rules",{default:{validate:()=>!0,modes:["blur","input"]}}),r(this,"i18n",void 0),this.setRules(t),this.i18n=e}}export{e as ValidationResult,s as default};
2
2
  //# sourceMappingURL=Validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.js","sources":["../../../../src/utils/Validator/Validator.ts"],"sourcesContent":["import { ValidatorRules, ValidatorRule, FieldContext, FieldData } from './types';\nimport { ValidationRuleResult } from './ValidationRuleResult';\nimport type Language from '../../language';\n\nclass ValidationResult {\n private validationResults: ValidationRuleResult[];\n\n constructor(results: ValidationRuleResult[]) {\n this.validationResults = results;\n }\n\n /** Checks if all validation rules have passed */\n get isValid(): boolean {\n return this.validationResults.reduce((acc, result) => acc && result.isValid, true);\n }\n\n /** Checks if any validation rule returned an error */\n hasError(isValidatingForm = false): boolean {\n return Boolean(this.getError(isValidatingForm));\n }\n\n /** Returns the first validation result that returned an error */\n getError(isValidatingForm = false) {\n return this.validationResults.find(result => result.hasError(isValidatingForm));\n }\n\n /** Returns all validation results that returned an error */\n getAllErrors() {\n return this.validationResults.filter(result => result.hasError());\n }\n}\n\nclass Validator {\n public rules: ValidatorRules = {\n default: {\n validate: () => true,\n modes: ['blur', 'input']\n }\n };\n\n private readonly i18n: Language;\n\n constructor(rules: ValidatorRules, i18n: Language) {\n this.setRules(rules);\n this.i18n = i18n;\n }\n\n setRules(newRules) {\n this.rules = {\n ...this.rules,\n ...newRules\n };\n }\n\n /**\n * Get all validation rules for a field\n */\n private getRulesFor(field: string): ValidatorRule[] {\n let fieldRules: ValidatorRule | ValidatorRule[] = this.rules[field] ?? this.rules['default'];\n\n if (!Array.isArray(fieldRules)) {\n fieldRules = [fieldRules];\n }\n\n return fieldRules;\n }\n\n /**\n * Validates a field\n */\n validate({ key, value, mode = 'blur' }: FieldData, context?: FieldContext) {\n const fieldRules = this.getRulesFor(key);\n // create an ValidationRuleResult, we run the actual validation inside of it\n // validate is called in the constructor of ValidationRuleResult\n // line rule.validate(value, context);\n //\n const validationRulesResult = fieldRules.map(rule => new ValidationRuleResult(rule, value, mode, context, this.i18n));\n\n return new ValidationResult(validationRulesResult);\n }\n}\n\nexport default Validator;\n"],"names":["ValidationResult","isValid","this","validationResults","reduce","acc","result","hasError","isValidatingForm","Boolean","getError","find","getAllErrors","filter","constructor","results","_define_property","Validator","setRules","newRules","rules","getRulesFor","field","fieldRules","Array","isArray","validate","key","value","mode","context","validationRulesResult","map","rule","ValidationRuleResult","i18n","default","modes"],"mappings":"yLAIA,MAAMA,EAQF,WAAIC,GACA,OAAOC,KAAKC,kBAAkBC,OAAO,CAACC,EAAKC,IAAWD,GAAOC,EAAOL,SAAS,EACjF,CAGAM,QAAAA,CAASC,GAAmB,GACxB,OAAOC,QAAQP,KAAKQ,SAASF,GACjC,CAGAE,QAAAA,CAASF,GAAmB,GACxB,OAAON,KAAKC,kBAAkBQ,KAAKL,GAAUA,EAAOC,SAASC,GACjE,CAGAI,YAAAA,GACI,OAAOV,KAAKC,kBAAkBU,OAAOP,GAAUA,EAAOC,WAC1D,CAtBA,WAAAO,CAAYC,GAFZC,EAAAd,KAAQC,4BAGJD,KAAKC,kBAAoBY,CAC7B,EAuBJ,MAAME,EAeFC,QAAAA,CAASC,GACLjB,KAAKkB,MAAQ,IACNlB,KAAKkB,SACLD,EAEX,CAKQE,WAAAA,CAAYC,GAChB,IAAIC,EAA8CrB,KAAKkB,MAAME,IAAUpB,KAAKkB,MAAM,QAMlF,OAJKI,MAAMC,QAAQF,KACfA,EAAa,CAACA,IAGXA,CACX,CAKAG,QAAAA,EAASC,IAAEA,EAAGC,MAAEA,EAAKC,KAAEA,EAAO,QAAqBC,GAC/C,MAKMC,EALa7B,KAAKmB,YAAYM,GAKKK,IAAIC,GAAQ,IAAIC,EAAqBD,EAAML,EAAOC,EAAMC,EAAS5B,KAAKiC,OAE/G,OAAO,IAAInC,EAAiB+B,EAChC,CArCA,WAAAjB,CAAYM,EAAuBe,GATnCnB,EAAAd,KAAOkB,QAAwB,CAC3BgB,QAAS,CACLV,SAAU,KAAM,EAChBW,MAAO,CAAC,OAAQ,YAIxBrB,EAAAd,KAAiBiC,eAGbjC,KAAKgB,SAASE,GACdlB,KAAKiC,KAAOA,CAChB"}
1
+ {"version":3,"file":"Validator.js","sources":["../../../../src/utils/Validator/Validator.ts"],"sourcesContent":["import { ValidatorRules, ValidatorRule, FieldContext, FieldData } from './types';\nimport { ValidationRuleResult } from './ValidationRuleResult';\nimport type Language from '../../language';\n\nexport class ValidationResult {\n private readonly validationResults: ValidationRuleResult[];\n\n constructor(results: ValidationRuleResult[]) {\n this.validationResults = results;\n }\n\n /** Checks if all validation rules have passed */\n get isValid(): boolean {\n return this.validationResults.reduce((acc, result) => acc && result.isValid, true);\n }\n\n /** Checks if any validation rule returned an error */\n hasError(isValidatingForm = false): boolean {\n return Boolean(this.getError(isValidatingForm));\n }\n\n /** Returns the first validation result that returned an error */\n getError(isValidatingForm = false): ValidationRuleResult | null {\n return this.validationResults.find(result => result.hasError(isValidatingForm)) ?? null;\n }\n\n /** Returns all validation results that returned an error */\n getAllErrors() {\n return this.validationResults.filter(result => result.hasError());\n }\n}\n\nclass Validator {\n public rules: ValidatorRules = {\n default: {\n validate: () => true,\n modes: ['blur', 'input']\n }\n };\n\n private readonly i18n: Language;\n\n constructor(rules: ValidatorRules, i18n: Language) {\n this.setRules(rules);\n this.i18n = i18n;\n }\n\n setRules(newRules: ValidatorRules) {\n this.rules = {\n ...this.rules,\n ...newRules\n };\n }\n\n /**\n * Get all validation rules for a field\n */\n private getRulesFor(field: string): ValidatorRule[] {\n let fieldRules: ValidatorRule | ValidatorRule[] = this.rules[field] ?? this.rules['default'];\n\n if (!Array.isArray(fieldRules)) {\n fieldRules = [fieldRules];\n }\n\n return fieldRules;\n }\n\n /**\n * Validates a field\n */\n validate({ key, value, mode = 'blur' }: FieldData, context?: FieldContext) {\n const fieldRules = this.getRulesFor(key);\n // create an ValidationRuleResult, we run the actual validation inside of it\n // validate is called in the constructor of ValidationRuleResult\n // line rule.validate(value, context);\n //\n const validationRulesResult = fieldRules.map(rule => new ValidationRuleResult(rule, value, mode, context, this.i18n));\n\n return new ValidationResult(validationRulesResult);\n }\n}\n\nexport default Validator;\n"],"names":["ValidationResult","isValid","this","validationResults","reduce","acc","result","hasError","isValidatingForm","Boolean","getError","find","getAllErrors","filter","constructor","results","_define_property","Validator","setRules","newRules","rules","getRulesFor","field","fieldRules","Array","isArray","validate","key","value","mode","context","validationRulesResult","map","rule","ValidationRuleResult","i18n","default","modes"],"mappings":"yLAIO,MAAMA,EAQT,WAAIC,GACA,OAAOC,KAAKC,kBAAkBC,OAAO,CAACC,EAAKC,IAAWD,GAAOC,EAAOL,SAAS,EACjF,CAGAM,QAAAA,CAASC,GAAmB,GACxB,OAAOC,QAAQP,KAAKQ,SAASF,GACjC,CAGAE,QAAAA,CAASF,GAAmB,GACxB,OAAON,KAAKC,kBAAkBQ,KAAKL,GAAUA,EAAOC,SAASC,KAAsB,IACvF,CAGAI,YAAAA,GACI,OAAOV,KAAKC,kBAAkBU,OAAOP,GAAUA,EAAOC,WAC1D,CAtBA,WAAAO,CAAYC,GAFZC,EAAAd,KAAiBC,4BAGbD,KAAKC,kBAAoBY,CAC7B,EAuBJ,MAAME,EAeFC,QAAAA,CAASC,GACLjB,KAAKkB,MAAQ,IACNlB,KAAKkB,SACLD,EAEX,CAKQE,WAAAA,CAAYC,GAChB,IAAIC,EAA8CrB,KAAKkB,MAAME,IAAUpB,KAAKkB,MAAM,QAMlF,OAJKI,MAAMC,QAAQF,KACfA,EAAa,CAACA,IAGXA,CACX,CAKAG,QAAAA,EAASC,IAAEA,EAAGC,MAAEA,EAAKC,KAAEA,EAAO,QAAqBC,GAC/C,MAKMC,EALa7B,KAAKmB,YAAYM,GAKKK,IAAIC,GAAQ,IAAIC,EAAqBD,EAAML,EAAOC,EAAMC,EAAS5B,KAAKiC,OAE/G,OAAO,IAAInC,EAAiB+B,EAChC,CArCA,WAAAjB,CAAYM,EAAuBe,GATnCnB,EAAAd,KAAOkB,QAAwB,CAC3BgB,QAAS,CACLV,SAAU,KAAM,EAChBW,MAAO,CAAC,OAAQ,YAIxBrB,EAAAd,KAAiBiC,eAGbjC,KAAKgB,SAASE,GACdlB,KAAKiC,KAAOA,CAChB"}
@@ -1,2 +1,2 @@
1
- const r=(r,e)=>Object.keys(r).filter(r=>!e.includes(r)).reduce((e,a)=>(e[a]=r[a],e),{}),e=(r,e,a,l,d)=>e.reduce((r,e)=>({...r,[e]:r[e]??d?.[e]??l?.[e]??a}),r);function a({schema:r,defaultData:e,processField:a,fieldProblems:l}){const d=r=>{if(void 0===e[r])return{valid:!1,errors:null,data:null,fieldProblems:l?.[r]??null};const[d,s]=a({key:r,value:e[r],mode:"blur"},{state:{data:e}});return{valid:s.isValid&&!l?.[r]||!1,errors:s.hasError()?s.getError():null,data:d,fieldProblems:l?.[r]??null}},s=r.reduce((r,e)=>{const{valid:a,errors:l,data:s,fieldProblems:t}=d(e);return{valid:{...r.valid,[e]:a},errors:{...r.errors,[e]:l},data:{...r.data,[e]:s},fieldProblems:{...r.fieldProblems,[e]:t}}},{data:{},valid:{},errors:{},fieldProblems:{}});return{schema:r,data:s.data,valid:s.valid,errors:s.errors,fieldProblems:s.fieldProblems}}function l(l){return function(d,{type:s,key:t,value:o,mode:i,schema:c,defaultData:u,formValue:n,selectedSchema:m,fieldProblems:v,data:f}){const b=m||d.schema;switch(s){case"setData":return{...d,data:{...d.data,[t]:o}};case"mergeData":return{...d,data:{...d.data,...f}};case"setValid":return{...d,valid:{...d.valid,[t]:o}};case"setErrors":return{...d,errors:{...d.errors,[t]:o}};case"setFieldProblems":return d?.schema?.reduce((r,e)=>({...r,fieldProblems:{...d.fieldProblems,[e]:v?.[e]??null},valid:{...d.valid,[e]:d.valid?.[e]&&!v[e]}}),d)??d;case"updateField":{const[r,e]=l({key:t,value:o,mode:i},{state:d}),a=d.data[t],s={...d.fieldProblems};return a!==r&&(s[t]=null),{...d,data:{...d.data,[t]:r},errors:{...d.errors,[t]:e.hasError()?e.getError():null},valid:{...d.valid,[t]:e.isValid&&!s[t]||!1},fieldProblems:s}}case"mergeForm":{const r={...d,data:{...d.data,...n.data},errors:{...d.errors,...n.errors},valid:{...d.valid,...n.valid},fieldProblems:{...d.fieldProblems,...n.fieldProblems}};return r.valid&&(r.isValid=Object.values(r.valid).every(r=>r)),r}case"setSchema":{const s=a({schema:c,defaultData:u,processField:l,fieldProblems:v}),t=d.schema.filter(r=>!c.includes(r)),o=c.filter(r=>!d.schema.includes(r)),i={data:r(d.data,o),errors:r(d.errors,o),valid:r(d.valid,o)},n=e(r(d.data,t),o,null,s.data,d.local?.data),m=e(r(d.valid,t),o,!1,s.valid,d.local?.valid),f=e(r(d.errors,t),o,null,s.errors,d.local?.errors);return{...d,schema:c,data:n,valid:m,errors:f,local:i}}case"validateForm":{const r=b.reduce((r,e)=>{const[,a]=l({key:e,value:d.data[e],mode:"blur"},{state:d});return{valid:{...r.valid,[e]:a.isValid&&!d.fieldProblems[e]||!1},errors:{...r.errors,[e]:a.hasError(!0)?a.getError(!0):null}}},{valid:d.valid,errors:d.errors});return{...d,valid:r.valid,errors:r.errors}}default:throw new Error("Undefined useForm action")}}}export{l as getReducer,a as init};
1
+ const e=(e,r)=>Object.keys(e).filter(e=>!r.includes(e)).reduce((r,a)=>(r[a]=e[a],r),{}),r=(e,r,a,l,d)=>r.reduce((e,r)=>({...e,[r]:e[r]??d?.[r]??l?.[r]??a}),e);function a({schema:e,defaultData:r,processField:a,fieldProblems:l}){const d=e=>{if(void 0===r[e])return{valid:!1,errors:null,data:null,fieldProblems:l?.[e]??null};const[d,s]=a({key:e,value:r[e],mode:"blur"},{state:{data:r}});return{valid:s.isValid&&!l?.[e]||!1,errors:s.hasError()?s.getError():null,data:d,fieldProblems:l?.[e]??null}},s=e.reduce((e,r)=>{const{valid:a,errors:l,data:s,fieldProblems:t}=d(r);return{valid:{...e.valid,[r]:a},errors:{...e.errors,[r]:l},data:{...e.data,[r]:s},fieldProblems:{...e.fieldProblems,[r]:t}}},{data:{},valid:{},errors:{},fieldProblems:{}});return{schema:e,data:s.data,valid:s.valid,errors:s.errors,fieldProblems:s.fieldProblems}}function l(l){return function(d,s){switch(s.type){case"setData":{const{key:e,value:r}=s;return{...d,data:{...d.data,[e]:r}}}case"mergeData":return{...d,data:{...d.data,...s.data}};case"setValid":{const{key:e,value:r}=s;return{...d,valid:{...d.valid,[e]:r}}}case"setErrors":{const{key:e,value:r}=s;return{...d,errors:{...d.errors,[e]:r}}}case"setFieldProblems":{const{fieldProblems:e}=s;return d?.schema?.reduce((r,a)=>({...r,fieldProblems:{...d.fieldProblems,[a]:e?.[a]??null},valid:{...d.valid,[a]:d.valid?.[a]&&!e?.[a]}}),d)??d}case"updateField":{const{key:e,value:r,mode:a}=s,[t,o]=l({key:e,value:r,mode:a},{state:d}),i=d.data[e],c={...d.fieldProblems};return i!==t&&(c[e]=null),{...d,data:{...d.data,[e]:t},errors:{...d.errors,[e]:o.hasError()?o.getError():null},valid:{...d.valid,[e]:o.isValid&&!c[e]||!1},fieldProblems:c}}case"mergeForm":{const{formValue:e}=s,r={...d,data:{...d.data,...e?.data},errors:{...d.errors,...e?.errors},valid:{...d.valid,...e?.valid},fieldProblems:{...d.fieldProblems,...e?.fieldProblems}};return r.valid&&(r.isValid=Object.values(r.valid).every(e=>e)),r}case"setSchema":{const{schema:t,defaultData:o}=s,i=a({schema:t,defaultData:o,processField:l}),c=d.schema.filter(e=>!t?.includes(e)),u=t?.filter(e=>!d.schema.includes(e)),n={data:e(d.data,u),errors:e(d.errors,u),valid:e(d.valid,u)},v=r(e(d.data,c),u,null,i.data,d.local?.data),m=r(e(d.valid,c),u,!1,i.valid,d.local?.valid),f=r(e(d.errors,c),u,null,i.errors,d.local?.errors);return{...d,schema:t,data:v,valid:m,errors:f,local:n}}case"validateForm":{const e=(s.selectedSchema||d.schema).reduce((e,r)=>{const[,a]=l({key:r,value:d.data[r],mode:"blur"},{state:d});return{valid:{...e.valid,[r]:a.isValid&&!d.fieldProblems[r]||!1},errors:{...e.errors,[r]:a.hasError(!0)?a.getError(!0):null}}},{valid:d.valid,errors:d.errors});return{...d,valid:e.valid,errors:e.errors}}default:throw new Error("Undefined useForm action")}}}export{l as getReducer,a as init};
2
2
  //# sourceMappingURL=reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["const omitKeys = (obj, omit) =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {});\n\nconst addKeys = (obj, add, initialValue, defaultData, pendingData) =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init({ schema, defaultData, processField, fieldProblems }) {\n const getProcessedState = fieldKey => {\n if (typeof defaultData[fieldKey] === 'undefined')\n return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: any, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {}, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer(processField) {\n return function reducer(state, { type, key, value, mode, schema, defaultData, formValue, selectedSchema, fieldProblems, data }) {\n const validationSchema: string[] = selectedSchema || state.schema;\n\n switch (type) {\n case 'setData': {\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'mergeData': {\n return { ...state, data: { ...state['data'], ...data } };\n }\n case 'setValid': {\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue['data'] },\n errors: { ...state['errors'], ...formValue['errors'] },\n valid: { ...state['valid'], ...formValue['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const defaultState = init({ schema, defaultData, processField, fieldProblems });\n const removedSchemaFields = state.schema.filter(x => !schema.includes(x));\n const newSchemaFields = schema.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(omitKeys(state.data, removedSchemaFields), newSchemaFields, null, defaultState.data, state.local?.data);\n const valid = addKeys(omitKeys(state.valid, removedSchemaFields), newSchemaFields, false, defaultState.valid, state.local?.valid);\n const errors = addKeys(omitKeys(state.errors, removedSchemaFields), newSchemaFields, null, defaultState.errors, state.local?.errors);\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","formData","acc","getReducer","type","formValue","selectedSchema","validationSchema","validation","oldValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","cur","Error"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["import { FormAction, FormInitArg, FormState, FormStateErrors, FormStateValid, ProcessFieldType } from './types';\n\nconst omitKeys = <O extends object>(obj: O, omit: string[]): O =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {} as O);\n\nconst addKeys = <O extends object>(obj: O, add: string[], initialValue: unknown, defaultData?: NoInfer<O>, pendingData?: NoInfer<O>): O =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init<FormSchema>({ schema, defaultData, processField, fieldProblems }: FormInitArg<FormSchema>): FormState<FormSchema> {\n const getProcessedState = (fieldKey: string) => {\n if (defaultData[fieldKey] === undefined) return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: Pick<FormState<FormSchema>, 'data' | 'valid' | 'errors' | 'fieldProblems'>, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {} as FormSchema, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer<FormSchema extends object>(processField: ProcessFieldType) {\n return function reducer(state: FormState<FormSchema>, action: FormAction<FormSchema>): FormState<FormSchema> {\n switch (action.type) {\n case 'setData': {\n const { key, value } = action;\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'mergeData': {\n return { ...state, data: { ...state['data'], ...action.data } };\n }\n case 'setValid': {\n const { key, value } = action;\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n const { key, value } = action;\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n const { fieldProblems } = action;\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems?.[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const { key, value, mode } = action;\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n const { formValue } = action;\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue?.['data'] },\n errors: { ...state['errors'], ...formValue?.['errors'] },\n valid: { ...state['valid'], ...formValue?.['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue?.['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const { schema, defaultData } = action;\n const defaultState = init({ schema, defaultData, processField });\n const removedSchemaFields = state.schema.filter(x => !schema?.includes(x));\n const newSchemaFields = schema?.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(\n omitKeys<FormSchema>(state.data, removedSchemaFields),\n newSchemaFields,\n null,\n defaultState.data,\n state.local?.data\n );\n const valid = addKeys(\n omitKeys<FormStateValid>(state.valid, removedSchemaFields),\n newSchemaFields,\n false,\n defaultState.valid,\n state.local?.valid\n );\n const errors = addKeys(\n omitKeys<FormStateErrors>(state.errors, removedSchemaFields),\n newSchemaFields,\n null,\n defaultState.errors,\n state.local?.errors\n );\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const validationSchema: string[] = action.selectedSchema || state.schema;\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","init","schema","processField","fieldProblems","getProcessedState","fieldKey","undefined","valid","errors","data","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","formData","acc","getReducer","action","type","validation","oldValue","formValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","selectedSchema","cur","Error"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useMemo as e,useReducer as a,useCallback as t,useEffect as r}from"../../external/preact/hooks/dist/hooks.js";import s from"../Validator/Validator.js";import{init as o,getReducer as l}from"./reducer.js";import{useCoreContext as m}from"../../core/Context/CoreProvider.js";function d(d){const{rules:i,formatters:c,defaultData:u,fieldProblems:f,schema:n}=d,p=i??{},y=c??{},h=u??{},v=f??{},g=n??[],{i18n:k}=m(),F=e(()=>new s(p,k),[p]),b=({key:e,value:a,mode:t},r)=>{const s=y?.[e],o=function(e){return e&&"formatterFn"in e}(s)?s.formatterFn:s,l=o&&"function"==typeof o?o(a??"",r):a;return[l,F.validate({key:e,value:l,mode:t},r)]},[P,D]=a(l(b),{defaultData:h,schema:g,processField:b,fieldProblems:v},o),V=e(()=>P.schema.reduce((e,a)=>e&&P.valid[a],!0),[P.schema,P.valid]),j=t((e=null)=>{D({type:"validateForm",selectedSchema:e})},[]),x=t((e,a)=>D({type:"setErrors",key:e,value:a}),[]),C=t((e,a)=>D({type:"setValid",key:e,value:a}),[]),S=t((e,a)=>D({type:"setData",key:e,value:a}),[]),E=t(e=>D({type:"mergeData",data:e}),[]),w=t(e=>D({type:"setSchema",schema:e,defaultData:h}),[P.schema]),J=t(e=>D({type:"mergeForm",formValue:e}),[]),M=t(e=>D({type:"setFieldProblems",fieldProblems:e}),[P.schema]);return r(()=>{M(v??{})},[JSON.stringify(v)]),{handleChangeFor:(e,a)=>t=>{const r=((e,a)=>a.target?"checkbox"===a.target.type?!P.data[e]:a.target.value:a)(e,t);D({type:"updateField",key:e,value:r,mode:a})},triggerValidation:j,setSchema:w,setData:S,mergeData:E,setValid:C,setErrors:x,isValid:V,mergeForm:J,setFieldProblems:M,schema:P.schema,valid:P.valid,errors:P.errors,data:P.data,fieldProblems:P.fieldProblems}}export{d as default};
1
+ import{useMemo as e,useReducer as a,useCallback as t,useEffect as r}from"../../external/preact/hooks/dist/hooks.js";import s from"../Validator/Validator.js";import{init as o,getReducer as l}from"./reducer.js";import{useCoreContext as m}from"../../core/Context/CoreProvider.js";function d(d){const{rules:i,formatters:c,defaultData:u,fieldProblems:f,schema:n}=d,p=i??{},y=c??{},h=u??{},v=f??{},g=n??[],{i18n:b}=m(),k=e(()=>new s(p,b),[p]),F=({key:e,value:a,mode:t},r)=>{const s=y?.[e],o=function(e){return e&&"formatterFn"in e}(s)?s.formatterFn:s,l=o&&"function"==typeof o?o(a??"",r):a;return[l,k.validate({key:e,value:l,mode:t},r)]},[P,D]=a(l(F),{defaultData:h,schema:g,processField:F,fieldProblems:v},o),V=e(()=>P.schema.reduce((e,a)=>e&&P.valid[a],!0),[P.schema,P.valid]),j=t(e=>{D({type:"validateForm",selectedSchema:e})},[]),x=t((e,a)=>D({type:"setErrors",key:e,value:a}),[]),C=t((e,a)=>D({type:"setValid",key:e,value:a}),[]),S=t((e,a)=>D({type:"setData",key:e,value:a}),[]),E=t(e=>D({type:"mergeData",data:e}),[]),w=t(e=>D({type:"setSchema",schema:e,defaultData:h}),[P.schema]),J=t(e=>D({type:"mergeForm",formValue:e}),[]),M=t(e=>D({type:"setFieldProblems",fieldProblems:e}),[P.schema]);return r(()=>{M(v??{})},[JSON.stringify(v)]),{handleChangeFor:(e,a)=>t=>{const r=((e,a)=>{return(t=a)&&"object"==typeof t&&"target"in t?"checkbox"===a.target?.type?!P.data[e]:a.target?.value:a;var t})(e,t);D({type:"updateField",key:e,value:r,mode:a})},triggerValidation:j,setSchema:w,setData:S,mergeData:E,setValid:C,setErrors:x,isValid:V,mergeForm:J,setFieldProblems:M,schema:P.schema,valid:P.valid,errors:P.errors,data:P.data,fieldProblems:P.fieldProblems}}export{d as default};
2
2
  //# sourceMappingURL=useForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","sources":["../../../../src/utils/useForm/useForm.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from 'preact/hooks';\nimport Validator from '../Validator';\nimport { getReducer, init } from './reducer';\nimport { Form, FormState, FormProps, Formatter } from './types';\nimport { useCoreContext } from '../../core/Context/CoreProvider';\n\nfunction isFormatterObject(formatter: Formatter | Function): formatter is Formatter {\n return formatter && 'formatterFn' in formatter;\n}\n\nfunction useForm<FormSchema>(props: FormProps): Form<FormSchema> {\n // Normalize null values to empty objects/arrays to avoid type errors\n const {\n rules: providedRules,\n formatters: providedFormatters,\n defaultData: providedDefaultData,\n fieldProblems: providedFieldProblems,\n schema: providedSchema\n } = props;\n const rules = providedRules ?? {};\n const formatters = providedFormatters ?? {};\n const defaultData = providedDefaultData ?? {};\n const fieldProblems = providedFieldProblems ?? {};\n const schema = providedSchema ?? [];\n\n const { i18n } = useCoreContext();\n\n const validator = useMemo(() => new Validator(rules, i18n), [rules]);\n\n /** Formats and validates a field */\n const processField = ({ key, value, mode }, fieldContext) => {\n // Find a formatting function either stored under 'key' or a level deeper under a 'formatter' property\n const formatter = formatters?.[key];\n const formatterFn = isFormatterObject(formatter) ? formatter.formatterFn : formatter;\n const formattedValue = formatterFn && typeof formatterFn === 'function' ? formatterFn(value ?? '', fieldContext) : value;\n\n const validationResult = validator.validate({ key, value: formattedValue, mode }, fieldContext);\n return [formattedValue, validationResult];\n };\n\n const [state, dispatch] = useReducer<FormState<FormSchema>, any, any>(\n getReducer(processField),\n { defaultData, schema, processField, fieldProblems },\n init\n );\n const isValid = useMemo(() => state.schema.reduce((acc, val) => acc && state.valid[val], true), [state.schema, state.valid]);\n\n const getTargetValue = (key, e) => {\n if (!e.target) return e;\n\n if (e.target.type === 'checkbox') {\n return !state.data[key];\n }\n return e.target.value;\n };\n\n /** Formats, validates, and stores a new value for a form field */\n const handleChangeFor = (key, mode) => {\n return e => {\n const value = getTargetValue(key, e);\n dispatch({ type: 'updateField', key, value, mode });\n };\n };\n\n /** Validates every field in the form OR just those in selectedSchema */\n const triggerValidation = useCallback((selectedSchema = null) => {\n dispatch({ type: 'validateForm', selectedSchema });\n }, []);\n\n const setErrors = useCallback((key, value) => dispatch({ type: 'setErrors', key, value }), []);\n const setValid = useCallback((key, value) => dispatch({ type: 'setValid', key, value }), []);\n const setData = useCallback((key, value) => dispatch({ type: 'setData', key, value }), []);\n const mergeData = useCallback(data => dispatch({ type: 'mergeData', data }), []);\n const setSchema = useCallback(schema => dispatch({ type: 'setSchema', schema, defaultData }), [state.schema]);\n const mergeForm = useCallback(formValue => dispatch({ type: 'mergeForm', formValue }), []);\n const setFieldProblems = useCallback(fieldProblems => dispatch({ type: 'setFieldProblems', fieldProblems }), [state.schema]);\n\n // Set reducer fields problems if fieldProblems prop changes\n useEffect(() => {\n setFieldProblems(fieldProblems ?? {});\n }, [JSON.stringify(fieldProblems)]);\n\n return {\n handleChangeFor,\n triggerValidation,\n setSchema,\n setData,\n mergeData,\n setValid,\n setErrors,\n isValid,\n mergeForm,\n setFieldProblems,\n schema: state.schema,\n valid: state.valid,\n errors: state.errors,\n data: state.data,\n fieldProblems: state.fieldProblems\n };\n}\n\nexport default useForm;\n"],"names":["useForm","props","rules","providedRules","formatters","providedFormatters","defaultData","providedDefaultData","fieldProblems","providedFieldProblems","schema","providedSchema","i18n","useCoreContext","validator","useMemo","Validator","processField","key","value","mode","fieldContext","formatter","formatterFn","isFormatterObject","formattedValue","validate","state","dispatch","useReducer","getReducer","init","isValid","reduce","acc","val","valid","triggerValidation","useCallback","selectedSchema","type","setErrors","setValid","setData","mergeData","data","setSchema","mergeForm","formValue","setFieldProblems","useEffect","JSON","stringify","handleChangeFor","e","target","getTargetValue","errors"],"mappings":"qRAUA,SAASA,EAAoBC,GAEzB,MACIC,MAAOC,EACPC,WAAYC,EACZC,YAAaC,EACbC,cAAeC,EACfC,OAAQC,GACRV,EACEC,EAAQC,GAAiB,CAAA,EACzBC,EAAaC,GAAsB,CAAA,EACnCC,EAAcC,GAAuB,CAAA,EACrCC,EAAgBC,GAAyB,CAAA,EACzCC,EAASC,GAAkB,IAE3BC,KAAEA,GAASC,IAEXC,EAAYC,EAAQ,IAAM,IAAIC,EAAUd,EAAOU,GAAO,CAACV,IAGvDe,EAAe,EAAGC,MAAKC,QAAOC,QAAQC,KAExC,MAAMC,EAAYlB,IAAac,GACzBK,EA3Bd,SAA2BD,GACvB,OAAOA,GAAa,gBAAiBA,CACzC,CAyB4BE,CAAkBF,GAAaA,EAAUC,YAAcD,EACrEG,EAAiBF,GAAsC,mBAAhBA,EAA6BA,EAAYJ,GAAS,GAAIE,GAAgBF,EAGnH,MAAO,CAACM,EADiBX,EAAUY,SAAS,CAAER,MAAKC,MAAOM,EAAgBL,QAAQC,MAI/EM,EAAOC,GAAYC,EACtBC,EAAWb,GACX,CAAEX,cAAaI,SAAQO,eAAcT,iBACrCuB,GAEEC,EAAUjB,EAAQ,IAAMY,EAAMjB,OAAOuB,OAAO,CAACC,EAAKC,IAAQD,GAAOP,EAAMS,MAAMD,IAAM,GAAO,CAACR,EAAMjB,OAAQiB,EAAMS,QAoB/GC,EAAoBC,EAAY,CAACC,EAAiB,QACpDX,EAAS,CAAEY,KAAM,eAAgBD,oBAClC,IAEGE,EAAYH,EAAY,CAACpB,EAAKC,IAAUS,EAAS,CAAEY,KAAM,YAAatB,MAAKC,UAAU,IACrFuB,EAAWJ,EAAY,CAACpB,EAAKC,IAAUS,EAAS,CAAEY,KAAM,WAAYtB,MAAKC,UAAU,IACnFwB,EAAUL,EAAY,CAACpB,EAAKC,IAAUS,EAAS,CAAEY,KAAM,UAAWtB,MAAKC,UAAU,IACjFyB,EAAYN,EAAYO,GAAQjB,EAAS,CAAEY,KAAM,YAAaK,SAAS,IACvEC,EAAYR,EAAY5B,GAAUkB,EAAS,CAAEY,KAAM,YAAa9B,SAAQJ,gBAAgB,CAACqB,EAAMjB,SAC/FqC,EAAYT,EAAYU,GAAapB,EAAS,CAAEY,KAAM,YAAaQ,cAAc,IACjFC,EAAmBX,EAAY9B,GAAiBoB,EAAS,CAAEY,KAAM,mBAAoBhC,kBAAkB,CAACmB,EAAMjB,SAOpH,OAJAwC,EAAU,KACND,EAAiBzC,GAAiB,KACnC,CAAC2C,KAAKC,UAAU5C,KAEZ,CACH6C,gBA1BoB,CAACnC,EAAKE,IACnBkC,IACH,MAAMnC,EAZS,EAACD,EAAKoC,IACpBA,EAAEC,OAEe,aAAlBD,EAAEC,OAAOf,MACDb,EAAMkB,KAAK3B,GAEhBoC,EAAEC,OAAOpC,MALMmC,EAWJE,CAAetC,EAAKoC,GAClC1B,EAAS,CAAEY,KAAM,cAAetB,MAAKC,QAAOC,UAwBhDiB,oBACAS,YACAH,UACAC,YACAF,WACAD,YACAT,UACAe,YACAE,mBACAvC,OAAQiB,EAAMjB,OACd0B,MAAOT,EAAMS,MACbqB,OAAQ9B,EAAM8B,OACdZ,KAAMlB,EAAMkB,KACZrC,cAAemB,EAAMnB,cAE7B"}
1
+ {"version":3,"file":"useForm.js","sources":["../../../../src/utils/useForm/useForm.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from 'preact/hooks';\nimport Validator from '../Validator';\nimport { getReducer, init } from './reducer';\n\nimport type { Form, FormState, FormProps, Formatter, FormAction, FormInitArg, ProcessFieldType, FormChangeEventTarget } from './types';\nimport { useCoreContext } from '../../core/Context/CoreProvider';\nimport { ValidatorMode } from '../Validator/types';\nimport { ValidationRuleResult } from '../Validator/ValidationRuleResult';\n\nfunction isFormatterObject(formatter: Formatter | Function): formatter is Formatter {\n return formatter && 'formatterFn' in formatter;\n}\n\nfunction hasEventTarget(event: unknown): event is { target: FormChangeEventTarget } {\n return !!event && typeof event === 'object' && 'target' in event;\n}\n\nfunction useForm<FormSchema extends object>(props: FormProps): Form<FormSchema> {\n // Normalize null values to empty objects/arrays to avoid type errors\n const {\n rules: providedRules,\n formatters: providedFormatters,\n defaultData: providedDefaultData,\n fieldProblems: providedFieldProblems,\n schema: providedSchema\n } = props;\n const rules = providedRules ?? {};\n const formatters = providedFormatters ?? {};\n const defaultData = (providedDefaultData ?? {}) as FormSchema;\n const fieldProblems = (providedFieldProblems ?? {}) as Record<string, string | null>;\n const schema = providedSchema ?? [];\n\n const { i18n } = useCoreContext();\n\n const validator = useMemo(() => new Validator(rules, i18n), [rules]);\n\n /** Formats and validates a field */\n const processField: ProcessFieldType = ({ key, value, mode }, fieldContext) => {\n // Find a formatting function either stored under 'key' or a level deeper under a 'formatter' property\n const formatter = formatters?.[key];\n const formatterFn = isFormatterObject(formatter) ? formatter.formatterFn : formatter;\n const formattedValue = formatterFn && typeof formatterFn === 'function' ? formatterFn(value ?? '', fieldContext) : value;\n\n const validationResult = validator.validate({ key, value: formattedValue, mode }, fieldContext);\n return [formattedValue, validationResult];\n };\n\n const [state, dispatch] = useReducer<FormState<FormSchema>, FormAction<FormSchema>, FormInitArg<FormSchema>>(\n getReducer<FormSchema>(processField),\n { defaultData, schema, processField, fieldProblems },\n init\n );\n const isValid = useMemo(() => state.schema.reduce((acc, val) => acc && state.valid[val], true), [state.schema, state.valid]);\n\n const getTargetValue = (key: string, e: unknown) => {\n if (!hasEventTarget(e)) return e;\n\n if (e.target?.type === 'checkbox') {\n return !state.data[key];\n }\n return e.target?.value;\n };\n\n /** Formats, validates, and stores a new value for a form field */\n const handleChangeFor = (key: string, mode: ValidatorMode) => {\n return (e: unknown) => {\n const value = getTargetValue(key, e);\n dispatch({ type: 'updateField', key, value, mode });\n };\n };\n\n /** Validates every field in the form OR just those in selectedSchema */\n const triggerValidation = useCallback((selectedSchema?: string[]) => {\n dispatch({ type: 'validateForm', selectedSchema });\n }, []);\n\n const setErrors = useCallback((key: string, value: ValidationRuleResult | null) => dispatch({ type: 'setErrors', key, value }), []);\n const setValid = useCallback((key: string, value: boolean) => dispatch({ type: 'setValid', key, value }), []);\n const setData = useCallback((key: string, value: unknown) => dispatch({ type: 'setData', key, value }), []);\n const mergeData = useCallback((data: FormSchema) => dispatch({ type: 'mergeData', data }), []);\n const setSchema = useCallback((schema: string[]) => dispatch({ type: 'setSchema', schema, defaultData }), [state.schema]);\n const mergeForm = useCallback((formValue: FormState<FormSchema>) => dispatch({ type: 'mergeForm', formValue }), []);\n const setFieldProblems = useCallback(\n (fieldProblems: Record<string, string | null>) => dispatch({ type: 'setFieldProblems', fieldProblems }),\n [state.schema]\n );\n\n // Set reducer fields problems if fieldProblems prop changes\n useEffect(() => {\n setFieldProblems(fieldProblems ?? {});\n }, [JSON.stringify(fieldProblems)]);\n\n return {\n handleChangeFor,\n triggerValidation,\n setSchema,\n setData,\n mergeData,\n setValid,\n setErrors,\n isValid,\n mergeForm,\n setFieldProblems,\n schema: state.schema,\n valid: state.valid,\n errors: state.errors,\n data: state.data,\n fieldProblems: state.fieldProblems\n };\n}\n\nexport default useForm;\n"],"names":["useForm","props","rules","providedRules","formatters","providedFormatters","defaultData","providedDefaultData","fieldProblems","providedFieldProblems","schema","providedSchema","i18n","useCoreContext","validator","useMemo","Validator","processField","key","value","mode","fieldContext","formatter","formatterFn","isFormatterObject","formattedValue","validate","state","dispatch","useReducer","getReducer","init","isValid","reduce","acc","val","valid","triggerValidation","useCallback","selectedSchema","type","setErrors","setValid","setData","mergeData","data","setSchema","mergeForm","formValue","setFieldProblems","useEffect","JSON","stringify","handleChangeFor","e","event","target","getTargetValue","errors"],"mappings":"qRAiBA,SAASA,EAAmCC,GAExC,MACIC,MAAOC,EACPC,WAAYC,EACZC,YAAaC,EACbC,cAAeC,EACfC,OAAQC,GACRV,EACEC,EAAQC,GAAiB,CAAA,EACzBC,EAAaC,GAAsB,CAAA,EACnCC,EAAeC,GAAuB,CAAA,EACtCC,EAAiBC,GAAyB,CAAA,EAC1CC,EAASC,GAAkB,IAE3BC,KAAEA,GAASC,IAEXC,EAAYC,EAAQ,IAAM,IAAIC,EAAUd,EAAOU,GAAO,CAACV,IAGvDe,EAAiC,EAAGC,MAAKC,QAAOC,QAAQC,KAE1D,MAAMC,EAAYlB,IAAac,GACzBK,EA/Bd,SAA2BD,GACvB,OAAOA,GAAa,gBAAiBA,CACzC,CA6B4BE,CAAkBF,GAAaA,EAAUC,YAAcD,EACrEG,EAAiBF,GAAsC,mBAAhBA,EAA6BA,EAAYJ,GAAS,GAAIE,GAAgBF,EAGnH,MAAO,CAACM,EADiBX,EAAUY,SAAS,CAAER,MAAKC,MAAOM,EAAgBL,QAAQC,MAI/EM,EAAOC,GAAYC,EACtBC,EAAuBb,GACvB,CAAEX,cAAaI,SAAQO,eAAcT,iBACrCuB,GAEEC,EAAUjB,EAAQ,IAAMY,EAAMjB,OAAOuB,OAAO,CAACC,EAAKC,IAAQD,GAAOP,EAAMS,MAAMD,IAAM,GAAO,CAACR,EAAMjB,OAAQiB,EAAMS,QAoB/GC,EAAoBC,EAAaC,IACnCX,EAAS,CAAEY,KAAM,eAAgBD,oBAClC,IAEGE,EAAYH,EAAY,CAACpB,EAAaC,IAAuCS,EAAS,CAAEY,KAAM,YAAatB,MAAKC,UAAU,IAC1HuB,EAAWJ,EAAY,CAACpB,EAAaC,IAAmBS,EAAS,CAAEY,KAAM,WAAYtB,MAAKC,UAAU,IACpGwB,EAAUL,EAAY,CAACpB,EAAaC,IAAmBS,EAAS,CAAEY,KAAM,UAAWtB,MAAKC,UAAU,IAClGyB,EAAYN,EAAaO,GAAqBjB,EAAS,CAAEY,KAAM,YAAaK,SAAS,IACrFC,EAAYR,EAAa5B,GAAqBkB,EAAS,CAAEY,KAAM,YAAa9B,SAAQJ,gBAAgB,CAACqB,EAAMjB,SAC3GqC,EAAYT,EAAaU,GAAqCpB,EAAS,CAAEY,KAAM,YAAaQ,cAAc,IAC1GC,EAAmBX,EACpB9B,GAAiDoB,EAAS,CAAEY,KAAM,mBAAoBhC,kBACvF,CAACmB,EAAMjB,SAQX,OAJAwC,EAAU,KACND,EAAiBzC,GAAiB,KACnC,CAAC2C,KAAKC,UAAU5C,KAEZ,CACH6C,gBA7BoB,CAACnC,EAAaE,IAC1BkC,IACJ,MAAMnC,EAZS,EAACD,EAAaoC,KACjC,OA1CgBC,EA0CID,IAzCW,iBAAVC,GAAsB,WAAYA,EA2ChC,aAAnBD,EAAEE,QAAQhB,MACFb,EAAMkB,KAAK3B,GAEhBoC,EAAEE,QAAQrC,MALcmC,EA1CvC,IAAwBC,GAqDEE,CAAevC,EAAKoC,GAClC1B,EAAS,CAAEY,KAAM,cAAetB,MAAKC,QAAOC,UA2BhDiB,oBACAS,YACAH,UACAC,YACAF,WACAD,YACAT,UACAe,YACAE,mBACAvC,OAAQiB,EAAMjB,OACd0B,MAAOT,EAAMS,MACbsB,OAAQ/B,EAAM+B,OACdb,KAAMlB,EAAMkB,KACZrC,cAAemB,EAAMnB,cAE7B"}
@@ -1,2 +1,2 @@
1
- import{useRef as r,useCallback as o,useEffect as e}from"../../external/preact/hooks/dist/hooks.js";import s from"./useForm.js";import{useErrorFocus as t}from"./useErrorFocus.js";function a(a){const{formHolder:i,...u}=a,n=s(u),{focusFirstError:c}=t(i),f=r(!1),l=o((r=null)=>{f.current=!0,n.triggerValidation(r)},[n.triggerValidation]);return e(()=>{f.current&&(f.current=!1,c(n.errors,n.schema))},[n.errors]),{...n,triggerValidation:l}}export{a as default};
1
+ import{useRef as r,useCallback as o,useEffect as e}from"../../external/preact/hooks/dist/hooks.js";import s from"./useForm.js";import{useErrorFocus as t}from"./useErrorFocus.js";function a(a){const{formHolder:i,...u}=a,c=s(u),{focusFirstError:n}=t(i),f=r(!1),m=o(r=>{f.current=!0,c.triggerValidation(r)},[c.triggerValidation]);return e(()=>{f.current&&(f.current=!1,n(c.errors,c.schema))},[c.errors]),{...c,triggerValidation:m}}export{a as default};
2
2
  //# sourceMappingURL=useFormWithA11y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormWithA11y.js","sources":["../../../../src/utils/useForm/useFormWithA11y.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'preact/hooks';\nimport { RefObject } from 'preact';\nimport useForm from './useForm';\nimport { useErrorFocus } from './useErrorFocus';\nimport { Form, FormProps } from './types';\n\nexport interface FormWithA11yProps extends FormProps {\n /**\n * DOM Element, CSS selector string, or RefObject pointing to the form root.\n * Used to find and focus the first invalid field after submit-time validation.\n */\n formHolder: Element | string | RefObject<Element>;\n}\n\n/**\n * Wraps useForm and adds submit-time focus management via useErrorFocus.\n * Adds inline aria-live announcements on Field error spans, without requiring an SRPanel.\n *\n * Usage:\n * - Pass `formHolder` (CSS selector or Element ref) to enable focus-on-first-error.\n * - Set `errorLive={true}` on the Field components inside the form so their error spans\n * announce changes via aria-live=\"polite\".\n */\nfunction useFormWithA11y<FormSchema>(props: FormWithA11yProps): Form<FormSchema> {\n const { formHolder, ...formProps } = props;\n const form = useForm<FormSchema>(formProps);\n const { focusFirstError } = useErrorFocus(formHolder);\n\n // Tracks whether we are in a submit-triggered validation pass.\n // A ref (not state) so that setting it does not schedule an extra render,\n // and so it does not need to be listed in the useEffect dependency array.\n const isValidating = useRef(false);\n\n const triggerValidation = useCallback(\n (selectedSchema = null) => {\n isValidating.current = true;\n form.triggerValidation(selectedSchema);\n },\n [form.triggerValidation]\n );\n\n // After errors update from a submit-time validation, focus the first error field.\n // Blur-time validations (isValidating.current === false) do NOT trigger focus management.\n useEffect(() => {\n if (!isValidating.current) return;\n isValidating.current = false;\n focusFirstError(form.errors, form.schema);\n }, [form.errors]);\n\n return {\n ...form,\n triggerValidation\n };\n}\n\nexport default useFormWithA11y;\n"],"names":["useFormWithA11y","props","formHolder","formProps","form","useForm","focusFirstError","useErrorFocus","isValidating","useRef","triggerValidation","useCallback","selectedSchema","current","useEffect","errors","schema"],"mappings":"kLAuBA,SAASA,EAA4BC,GACjC,MAAMC,WAAEA,KAAeC,GAAcF,EAC/BG,EAAOC,EAAoBF,IAC3BG,gBAAEA,GAAoBC,EAAcL,GAKpCM,EAAeC,GAAO,GAEtBC,EAAoBC,EACtB,CAACC,EAAiB,QACdJ,EAAaK,SAAU,EACvBT,EAAKM,kBAAkBE,IAE3B,CAACR,EAAKM,oBAWV,OANAI,EAAU,KACDN,EAAaK,UAClBL,EAAaK,SAAU,EACvBP,EAAgBF,EAAKW,OAAQX,EAAKY,UACnC,CAACZ,EAAKW,SAEF,IACAX,EACHM,oBAER"}
1
+ {"version":3,"file":"useFormWithA11y.js","sources":["../../../../src/utils/useForm/useFormWithA11y.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'preact/hooks';\nimport { RefObject } from 'preact';\nimport useForm from './useForm';\nimport { useErrorFocus } from './useErrorFocus';\nimport { Form, FormProps } from './types';\n\nexport interface FormWithA11yProps extends FormProps {\n /**\n * DOM Element, CSS selector string, or RefObject pointing to the form root.\n * Used to find and focus the first invalid field after submit-time validation.\n */\n formHolder: Element | string | RefObject<Element>;\n}\n\n/**\n * Wraps useForm and adds submit-time focus management via useErrorFocus.\n * Adds inline aria-live announcements on Field error spans, without requiring an SRPanel.\n *\n * Usage:\n * - Pass `formHolder` (CSS selector or Element ref) to enable focus-on-first-error.\n * - Set `errorLive={true}` on the Field components inside the form so their error spans\n * announce changes via aria-live=\"polite\".\n */\nfunction useFormWithA11y<FormSchema extends object>(props: FormWithA11yProps): Form<FormSchema> {\n const { formHolder, ...formProps } = props;\n const form = useForm<FormSchema>(formProps);\n const { focusFirstError } = useErrorFocus(formHolder);\n\n // Tracks whether we are in a submit-triggered validation pass.\n // A ref (not state) so that setting it does not schedule an extra render,\n // and so it does not need to be listed in the useEffect dependency array.\n const isValidating = useRef(false);\n\n const triggerValidation = useCallback(\n (selectedSchema?: string[]) => {\n isValidating.current = true;\n form.triggerValidation(selectedSchema);\n },\n [form.triggerValidation]\n );\n\n // After errors update from a submit-time validation, focus the first error field.\n // Blur-time validations (isValidating.current === false) do NOT trigger focus management.\n useEffect(() => {\n if (!isValidating.current) return;\n isValidating.current = false;\n focusFirstError(form.errors, form.schema);\n }, [form.errors]);\n\n return {\n ...form,\n triggerValidation\n };\n}\n\nexport default useFormWithA11y;\n"],"names":["useFormWithA11y","props","formHolder","formProps","form","useForm","focusFirstError","useErrorFocus","isValidating","useRef","triggerValidation","useCallback","selectedSchema","current","useEffect","errors","schema"],"mappings":"kLAuBA,SAASA,EAA2CC,GAChD,MAAMC,WAAEA,KAAeC,GAAcF,EAC/BG,EAAOC,EAAoBF,IAC3BG,gBAAEA,GAAoBC,EAAcL,GAKpCM,EAAeC,GAAO,GAEtBC,EAAoBC,EACrBC,IACGJ,EAAaK,SAAU,EACvBT,EAAKM,kBAAkBE,IAE3B,CAACR,EAAKM,oBAWV,OANAI,EAAU,KACDN,EAAaK,UAClBL,EAAaK,SAAU,EACvBP,EAAgBF,EAAKW,OAAQX,EAAKY,UACnC,CAACZ,EAAKW,SAEF,IACAX,EACHM,oBAER"}
@@ -1,2 +1,2 @@
1
- const t=(t,e,n,r)=>{if(t[n]?.[e]?.formatterFn)return null;const l=t[n]?.[e]?.maxlength;return l||30},e=t=>!(null!=t&&!/^[\s]*$/.test(t)),n="?\\+_=!@#$%^&*(){}~<>\\[\\]\\\\",r=(t,e="g")=>new RegExp(`[${t}]`,e),l=t=>t.trim().replace(/\s+/g," ");export{n as SPECIAL_CHARS,r as getFormattingRegEx,t as getMaxLengthByFieldAndCountry,e as isEmpty,l as trimValWithOneSpace};
1
+ const e=(e,t,n,r)=>{if(e[n]?.[t]?.formatterFn)return null;const u=e[n]?.[t]?.maxlength;return u||30},t=e=>!(null!=e&&!/^[\s]*$/.test(e)),n="(?:[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\p{Cc}\\p{Cf}]|[0-9#*]\\uFE0F?\\u20E3)",[r,u]=(()=>{try{return[new RegExp(n,"u"),new RegExp(n,"gu")]}catch{const e="[\\u0000-\\u001F\\u007F-\\u009F]";return[new RegExp(e),new RegExp(e,"g")]}})(),g=(e,t="g")=>new RegExp(`[${e}]`,t),p=e=>!e.length||!r.test(e),c=e=>e.replace(u,""),l=e=>e.trim().replace(/\s+/g," ");export{g as getFormattingRegEx,e as getMaxLengthByFieldAndCountry,t as isEmpty,c as stripInvalidChars,l as trimValWithOneSpace,p as validateForSpecialChars};
2
2
  //# sourceMappingURL=validator-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator-utils.js","sources":["../../../src/utils/validator-utils.ts"],"sourcesContent":["import { CountryFormatRules } from './Validator/types';\n\nconst MAX_LENGTH = 30;\n\nexport const getMaxLengthByFieldAndCountry = (\n formattingRules: CountryFormatRules,\n field: string,\n country: string,\n ignoreIfFormatterExists: boolean\n): number | null => {\n // In ignoreIfFormatterExists is true we expect the formatter function to also act to limit length\n if (ignoreIfFormatterExists && formattingRules[country]?.[field]?.formatterFn) {\n return null;\n }\n const maxLength = formattingRules[country]?.[field]?.maxlength;\n return maxLength ? maxLength : MAX_LENGTH;\n};\n\n// Not null or undefined or only spaces\nexport const isEmpty = (input: string) => !!(input == null || /^[\\s]*$/.test(input));\n\nexport const isString = (input: unknown) => typeof input === 'string' || input instanceof String;\nexport const hasText = (input: string) => isString(input) && !isEmpty(input);\n\nexport const SPECIAL_CHARS = '?\\\\+_=!@#$%^&*(){}~<>\\\\[\\\\]\\\\\\\\'; // N.B. difficulty escaping \\ (takes 3 backslashes!)\n\n// Generates a regEx ideal for use in a String.replace call for use in a formatter\n// e.g. getFormattingRegEx('^\\\\d', 'g') will generate: /[^\\d]/g which is a regEx to match anything that is not a digit\nexport const getFormattingRegEx = (specChars: string, flags = 'g') => new RegExp(`[${specChars}]`, flags);\n\n// Creates a regEx ideal for use in a RegExp.test call for use in a validator\nexport const getValidatingRegEx = (specChars: string, exclude: boolean) => new RegExp(`^[${exclude ? '^' : ''}${specChars}]+$`);\n\nexport const CHARACTER_PATTERNS: { [key: string]: RegExp } = {\n digitsHyphen: /^[\\d-]+$/,\n noHtml: /^[^<>&]+$/,\n alphaNum: /^\\d[a-zA-Z0-9]{6,11}$/,\n noSpecialChars: getValidatingRegEx(SPECIAL_CHARS, true)\n};\n\nexport const exactLength = (input: string, length: number) => {\n if (isEmpty(input)) {\n return true;\n }\n return input.length === length;\n};\n\nexport const validateForSpecialChars = (name: string) => {\n const hasNoLength = !name.length;\n // RegEx .test, if run against empty string, will return false\n return CHARACTER_PATTERNS.noSpecialChars.test(name) || hasNoLength;\n};\n\n// Trim both ends and never allow more than 1 space in between\nexport const trimValWithOneSpace = (val: string) => val.trim().replace(/\\s+/g, ' ');\n"],"names":["getMaxLengthByFieldAndCountry","formattingRules","field","country","ignoreIfFormatterExists","formatterFn","maxLength","maxlength","isEmpty","input","test","SPECIAL_CHARS","getFormattingRegEx","specChars","flags","RegExp","trimValWithOneSpace","val","trim","replace"],"mappings":"AAEA,MAEaA,EAAgC,CACzCC,EACAC,EACAC,EACAC,KAGA,GAA+BH,EAAgBE,KAAWD,IAAQG,YAC9D,OAAO,KAEX,MAAMC,EAAYL,EAAgBE,KAAWD,IAAQK,UACrD,OAAOD,GAbQ,IAiBNE,EAAWC,KAA8B,MAATA,IAAiB,UAAUC,KAAKD,IAKhEE,EAAgB,kCAIhBC,EAAqB,CAACC,EAAmBC,EAAQ,MAAQ,IAAIC,OAAO,IAAIF,KAAcC,GA0BtFE,EAAuBC,GAAgBA,EAAIC,OAAOC,QAAQ,OAAQ"}
1
+ {"version":3,"file":"validator-utils.js","sources":["../../../src/utils/validator-utils.ts"],"sourcesContent":["import { CountryFormatRules } from './Validator/types';\n\nconst MAX_LENGTH = 30;\n\nexport const getMaxLengthByFieldAndCountry = (\n formattingRules: CountryFormatRules,\n field: string,\n country: string,\n ignoreIfFormatterExists: boolean\n): number | null => {\n // In ignoreIfFormatterExists is true we expect the formatter function to also act to limit length\n if (ignoreIfFormatterExists && formattingRules[country]?.[field]?.formatterFn) {\n return null;\n }\n const maxLength = formattingRules[country]?.[field]?.maxlength;\n return maxLength ? maxLength : MAX_LENGTH;\n};\n\n// Not null or undefined or only spaces\nexport const isEmpty = (input: string) => !!(input == null || /^[\\s]*$/.test(input));\n\nexport const isString = (input: unknown) => typeof input === 'string' || input instanceof String;\nexport const hasText = (input: string) => isString(input) && !isEmpty(input);\n\n// Block emojis and control/format characters, allow everything else\nconst INVALID_CHARS_REGEX_SOURCE = '(?:[\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\p{Cc}\\\\p{Cf}]|[0-9#*]\\\\uFE0F?\\\\u20E3)';\nconst [INVALID_CHARS_TEST, INVALID_CHARS_STRIP] = ((): [RegExp, RegExp] => {\n try {\n // This is inside a try/catch just in case the browser doesn't support Unicode property escapes\n return [new RegExp(INVALID_CHARS_REGEX_SOURCE, 'u'), new RegExp(INVALID_CHARS_REGEX_SOURCE, 'gu')];\n } catch {\n // Fallback for browsers without Unicode property escapes - just block control chars\n const fallbackRegex = '[\\\\u0000-\\\\u001F\\\\u007F-\\\\u009F]';\n return [new RegExp(fallbackRegex), new RegExp(fallbackRegex, 'g')];\n }\n})();\n\n// Generates a regEx ideal for use in a String.replace call for use in a formatter\n// e.g. getFormattingRegEx('^\\\\d', 'g') will generate: /[^\\d]/g which is a regEx to match anything that is not a digit\nexport const getFormattingRegEx = (specChars: string, flags = 'g') => new RegExp(`[${specChars}]`, flags);\n\nexport const exactLength = (input: string, length: number) => {\n if (isEmpty(input)) {\n return true;\n }\n return input.length === length;\n};\n\nexport const validateForSpecialChars = (text: string): boolean => {\n if (!text.length) return true;\n // Returns true if no invalid characters found\n return !INVALID_CHARS_TEST.test(text);\n};\n\nexport const stripInvalidChars = (text: string): string => text.replace(INVALID_CHARS_STRIP, '');\n\n// Trim both ends and never allow more than 1 space in between\nexport const trimValWithOneSpace = (val: string) => val.trim().replace(/\\s+/g, ' ');\n"],"names":["getMaxLengthByFieldAndCountry","formattingRules","field","country","ignoreIfFormatterExists","formatterFn","maxLength","maxlength","isEmpty","input","test","INVALID_CHARS_REGEX_SOURCE","INVALID_CHARS_TEST","INVALID_CHARS_STRIP","RegExp","fallbackRegex","getFormattingRegEx","specChars","flags","validateForSpecialChars","text","length","stripInvalidChars","replace","trimValWithOneSpace","val","trim"],"mappings":"AAEA,MAEaA,EAAgC,CACzCC,EACAC,EACAC,EACAC,KAGA,GAA+BH,EAAgBE,KAAWD,IAAQG,YAC9D,OAAO,KAEX,MAAMC,EAAYL,EAAgBE,KAAWD,IAAQK,UACrD,OAAOD,GAbQ,IAiBNE,EAAWC,KAA8B,MAATA,IAAiB,UAAUC,KAAKD,IAMvEE,EAA6B,gGAC5BC,EAAoBC,GAAuB,MAC9C,IAEI,MAAO,CAAC,IAAIC,OAAOH,EAA4B,KAAM,IAAIG,OAAOH,EAA4B,MAChG,CAAE,MAEE,MAAMI,EAAgB,mCACtB,MAAO,CAAC,IAAID,OAAOC,GAAgB,IAAID,OAAOC,EAAe,KACjE,CACJ,EATkD,GAarCC,EAAqB,CAACC,EAAmBC,EAAQ,MAAQ,IAAIJ,OAAO,IAAIG,KAAcC,GAStFC,EAA2BC,IAC/BA,EAAKC,SAEFT,EAAmBF,KAAKU,GAGvBE,EAAqBF,GAAyBA,EAAKG,QAAQV,EAAqB,IAGhFW,EAAuBC,GAAgBA,EAAIC,OAAOH,QAAQ,OAAQ"}