@adyen/adyen-web 6.45.1 → 6.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +1846 -1889
  4. package/dist/es/components/ANCV/components/ANCVInput.js +1 -1
  5. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  6. package/dist/es/components/Ach/Ach.js +1 -1
  7. package/dist/es/components/Ach/Ach.js.map +1 -1
  8. package/dist/es/components/Ach/components/AchComponent.js +1 -1
  9. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  10. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  11. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  12. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  13. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  14. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  15. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  16. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  17. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  18. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  19. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  20. package/dist/es/components/Blik/Blik.js +1 -1
  21. package/dist/es/components/Blik/Blik.js.map +1 -1
  22. package/dist/es/components/Blik/components/BlikInput.js +1 -1
  23. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  24. package/dist/es/components/Card/Card.js +1 -1
  25. package/dist/es/components/Card/Card.js.map +1 -1
  26. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  27. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  28. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  29. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  30. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  31. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  32. package/dist/es/components/Donation/Donation.js +1 -1
  33. package/dist/es/components/Donation/Donation.js.map +1 -1
  34. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  35. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  36. package/dist/es/components/Dropin/Dropin.js +1 -1
  37. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  38. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  39. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  40. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  41. package/dist/es/components/Giropay/Giropay.js +1 -1
  42. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  43. package/dist/es/components/MBWay/MBWay.js +1 -1
  44. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  45. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  46. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  47. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  48. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  49. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  50. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  51. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  52. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  53. package/dist/es/components/PayTo/components/BSBInput.js +1 -1
  54. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  55. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  56. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  57. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  58. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  59. package/dist/es/components/Pix/Pix.js +1 -1
  60. package/dist/es/components/Pix/Pix.js.map +1 -1
  61. package/dist/es/components/Pix/components/PixInput/PixInput.js +1 -1
  62. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  63. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  64. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  65. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  66. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  67. package/dist/es/components/Redirect/Redirect.js +1 -1
  68. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  69. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  70. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  71. package/dist/es/components/Trustly/Trustly.js +1 -1
  72. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  73. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  74. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  75. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  76. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  77. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  78. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  79. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  80. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  81. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  82. package/dist/es/components/internal/IbanInput/validate.js +1 -1
  83. package/dist/es/components/internal/IbanInput/validate.js.map +1 -1
  84. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  85. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  86. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  87. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  88. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  89. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  90. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  91. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  92. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  93. package/dist/es/components/internal/UIElement/utils.js +1 -1
  94. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  95. package/dist/es/core/config.js +1 -1
  96. package/dist/es/index.d.ts +1846 -1889
  97. package/dist/es/utils/Validator/Validator.js +1 -1
  98. package/dist/es/utils/Validator/Validator.js.map +1 -1
  99. package/dist/es/utils/useForm/reducer.js +1 -1
  100. package/dist/es/utils/useForm/reducer.js.map +1 -1
  101. package/dist/es/utils/useForm/useForm.js +1 -1
  102. package/dist/es/utils/useForm/useForm.js.map +1 -1
  103. package/dist/es/utils/useForm/useFormWithA11y.js +1 -1
  104. package/dist/es/utils/useForm/useFormWithA11y.js.map +1 -1
  105. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  106. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  107. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  108. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  109. package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
  110. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  111. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  112. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  113. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  114. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  115. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  116. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  117. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  118. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  119. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  120. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  121. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  122. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  123. package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
  124. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  125. package/dist/es-legacy/components/Card/Card.js +1 -1
  126. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  127. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  128. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  129. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  130. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  131. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  132. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  133. package/dist/es-legacy/components/Donation/Donation.js +1 -1
  134. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  135. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  136. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  137. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  138. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  139. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  140. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  141. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  142. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  143. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  144. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  145. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  146. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  147. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  148. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  149. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  150. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  151. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  152. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  153. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  154. package/dist/es-legacy/components/PayTo/components/BSBInput.js +1 -1
  155. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  156. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  157. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  158. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  159. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  160. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  161. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  162. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +1 -1
  163. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  164. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  165. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  166. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  167. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  168. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  169. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  170. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  171. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  172. package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
  173. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  174. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  175. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  176. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  177. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  178. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  179. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  180. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  181. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  182. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  183. package/dist/es-legacy/components/internal/IbanInput/validate.js +1 -1
  184. package/dist/es-legacy/components/internal/IbanInput/validate.js.map +1 -1
  185. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  186. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  187. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  188. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  189. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  190. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  191. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  192. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  193. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  194. package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
  195. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  196. package/dist/es-legacy/core/config.js +1 -1
  197. package/dist/es-legacy/utils/Validator/Validator.js +1 -1
  198. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  199. package/dist/es-legacy/utils/useForm/reducer.js +1 -1
  200. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  201. package/dist/es-legacy/utils/useForm/useForm.js +1 -1
  202. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  203. package/dist/es-legacy/utils/useForm/useFormWithA11y.js +1 -1
  204. package/dist/es-legacy/utils/useForm/useFormWithA11y.js.map +1 -1
  205. package/package.json +1 -1
@@ -1 +1 @@
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","_object_spread_props","_object_spread","init","schema","processField","fieldProblems","getProcessedState","fieldKey","undefined","valid","errors","data","_ref","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","_ref1","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
+ {"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","_object_spread_props","_object_spread","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","_ref","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","_ref1","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,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 l from"../Validator/Validator.js";import{init as o,getReducer as s}from"./reducer.js";import{useCoreContext as d}from"../../core/Context/CoreProvider.js";function i(i){const{rules:m,formatters:u,defaultData:n,fieldProblems:c,schema:f}=i,p=null!=m?m:{},v=null!=u?u:{},y=null!=n?n:{},h=null!=c?c:{},g=null!=f?f:[],{i18n:b}=d(),k=e(()=>new l(p,b),[p]),F=({key:e,value:a,mode:t},r)=>{const l=null==v?void 0:v[e],o=function(e){return e&&"formatterFn"in e}(l)?l.formatterFn:l,s=o&&"function"==typeof o?o(null!=a?a:"",r):a;return[s,k.validate({key:e,value:s,mode:t},r)]},[P,D]=a(s(F),{defaultData:y,schema:g,processField:F,fieldProblems:h},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:y}),[P.schema]),J=t(e=>D({type:"mergeForm",formValue:e}),[]),M=t(e=>D({type:"setFieldProblems",fieldProblems:e}),[P.schema]);return r(()=>{M(null!=h?h:{})},[JSON.stringify(h)]),{handleChangeFor:(e,a)=>t=>{const r=((e,a)=>{var t,r,l;return(l=a)&&"object"==typeof l&&"target"in l?"checkbox"===(null===(t=a.target)||void 0===t?void 0:t.type)?!P.data[e]:null===(r=a.target)||void 0===r?void 0:r.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{i as default};
1
+ import{useMemo as e,useReducer as a,useCallback as t,useEffect as r}from"../../external/preact/hooks/dist/hooks.js";import l from"../Validator/Validator.js";import{init as s,getReducer as o}from"./reducer.js";import{useCoreContext as m}from"../../core/Context/CoreProvider.js";function d(d){const{rules:i,formatters:u,defaultData:n,fieldProblems:c,schema:f}=d,p=null!=i?i:{},y=null!=u?u:{},h=null!=n?n:{},v=null!=c?c:{},g=null!=f?f:[],{i18n:k}=m(),F=e(()=>new l(p,k),[p]),b=({key:e,value:a,mode:t},r)=>{const l=null==y?void 0:y[e],s=function(e){return e&&"formatterFn"in e}(l)?l.formatterFn:l,o=s&&"function"==typeof s?s(null!=a?a:"",r):a;return[o,F.validate({key:e,value:o,mode:t},r)]},[P,D]=a(o(b),{defaultData:h,schema:g,processField:b,fieldProblems:v},s),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(null!=v?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};
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';\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,QAAAA,EAAiB,CAAA,EACzBC,EAAaC,QAAAA,EAAsB,CAAA,EACnCC,EAAeC,QAAAA,EAAuB,CAAA,EACtCC,EAAiBC,QAAAA,EAAyB,CAAA,EAC1CC,EAASC,QAAAA,EAAkB,IAE3BC,KAAEA,GAASC,IAEXC,EAAYC,EAAQ,IAAM,IAAIC,EAAUd,EAAOU,GAAO,CAACV,IAGvDe,EAAiC,EAAGC,MAAKC,QAAOC,QAAQC,KAE1D,MAAMC,EAAYlB,aAAAA,EAAAA,EAAac,GACzBK,EA/Bd,SAA2BD,GACvB,OAAOA,GAAa,gBAAiBA,CACzC,CA6B4BE,CAAkBF,GAAaA,EAAUC,YAAcD,EACrEG,EAAiBF,GAAsC,mBAAhBA,EAA6BA,EAAYJ,QAAAA,EAAS,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,QAAAA,EAAiB,KACnC,CAAC2C,KAAKC,UAAU5C,KAEZ,CACH6C,gBA7BoB,CAACnC,EAAaE,IAC1BkC,IACJ,MAAMnC,EAZS,EAACD,EAAaoC,SAG7BA,EAGGA,EA/CSC,EA0ChB,OA1CgBA,EA0CID,IAzCW,iBAAVC,GAAsB,WAAYA,EA2ChC,sBAAnBD,EAAAA,EAAEE,cAAFF,IAAAA,OAAAA,EAAAA,EAAUd,OACFb,EAAMkB,KAAK3B,GAER,QAARoC,EAAAA,EAAEE,cAAFF,IAAAA,SAAAA,EAAUnC,MALcmC,GAWbG,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
+ {"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,QAAAA,EAAiB,CAAA,EACzBC,EAAaC,QAAAA,EAAsB,CAAA,EACnCC,EAAcC,QAAAA,EAAuB,CAAA,EACrCC,EAAgBC,QAAAA,EAAyB,CAAA,EACzCC,EAASC,QAAAA,EAAkB,IAE3BC,KAAEA,GAASC,IAEXC,EAAYC,EAAQ,IAAM,IAAIC,EAAUd,EAAOU,GAAO,CAACV,IAGvDe,EAAe,EAAGC,MAAKC,QAAOC,QAAQC,KAExC,MAAMC,EAAYlB,aAAAA,EAAAA,EAAac,GACzBK,EA3Bd,SAA2BD,GACvB,OAAOA,GAAa,gBAAiBA,CACzC,CAyB4BE,CAAkBF,GAAaA,EAAUC,YAAcD,EACrEG,EAAiBF,GAAsC,mBAAhBA,EAA6BA,EAAYJ,QAAAA,EAAS,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,QAAAA,EAAiB,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,2 +1,2 @@
1
- import{useRef as e,useCallback as r,useEffect as t}from"../../external/preact/hooks/dist/hooks.js";import o from"./useForm.js";import{useErrorFocus as n}from"./useErrorFocus.js";function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function i(e,r){if(null==e)return{};var t,o,n,c={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(t=Reflect.ownKeys(Object(e)),n=0;n<t.length;n++)o=t[n],r.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(c[o]=e[o]);return c}if(c=function(e,r){if(null==e)return{};var t,o,n={},c=Object.getOwnPropertyNames(e);for(o=0;o<c.length;o++)t=c[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t]);return n}(e,r),Object.getOwnPropertySymbols)for(t=Object.getOwnPropertySymbols(e),n=0;n<t.length;n++)o=t[n],r.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(c[o]=e[o]);return c}function l(l){const{formHolder:u}=l,s=i(l,["formHolder"]),p=o(s),{focusFirstError:a}=n(u),b=e(!1),O=r(e=>{b.current=!0,p.triggerValidation(e)},[p.triggerValidation]);return t(()=>{b.current&&(b.current=!1,a(p.errors,p.schema))},[p.errors]),f(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach(function(r){c(e,r,t[r])})}return e}({},p),{triggerValidation:O})}export{l as default};
1
+ import{useRef as e,useCallback as r,useEffect as t}from"../../external/preact/hooks/dist/hooks.js";import o from"./useForm.js";import{useErrorFocus as n}from"./useErrorFocus.js";function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function u(e,r){if(null==e)return{};var t,o,n,c={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(t=Reflect.ownKeys(Object(e)),n=0;n<t.length;n++)o=t[n],r.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(c[o]=e[o]);return c}if(c=function(e,r){if(null==e)return{};var t,o,n={},c=Object.getOwnPropertyNames(e);for(o=0;o<c.length;o++)t=c[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t]);return n}(e,r),Object.getOwnPropertySymbols)for(t=Object.getOwnPropertySymbols(e),n=0;n<t.length;n++)o=t[n],r.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(c[o]=e[o]);return c}function f(f){const{formHolder:i}=f,s=u(f,["formHolder"]),p=o(s),{focusFirstError:a}=n(i),b=e(!1),O=r((e=null)=>{b.current=!0,p.triggerValidation(e)},[p.triggerValidation]);return t(()=>{b.current&&(b.current=!1,a(p.errors,p.schema))},[p.errors]),l(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach(function(r){c(e,r,t[r])})}return e}({},p),{triggerValidation:O})}export{f 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 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","_object_spread_props","_object_spread"],"mappings":"gxCAuBA,SAASA,EAA2CC,GAChD,MAAMC,WAAEA,GAA6BD,EAAdE,EAAAA,EAAcF,EAAAA,gBAC/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,SAEFE,oUAAAC,CAAA,CAAA,EACAd,GAAAA,CACHM,qBAER"}
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","_object_spread_props","_object_spread"],"mappings":"gxCAuBA,SAASA,EAA4BC,GACjC,MAAMC,WAAEA,GAA6BD,EAAdE,EAAAA,EAAcF,EAAAA,gBAC/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,SAEFE,oUAAAC,CAAA,CAAA,EACAd,GAAAA,CACHM,qBAER"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/adyen-web",
3
- "version": "6.45.1",
3
+ "version": "6.45.2",
4
4
  "license": "MIT",
5
5
  "homepage": "https://docs.adyen.com/checkout",
6
6
  "type": "module",