@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":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport { ComponentMethodsRef, UIElementStatus } from '../../types';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: Readonly<BacsInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount } = useAmount();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n\n const bacsInputRef = useRef<ComponentMethodsRef>({\n setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.setComponentRef(bacsInputRef.current);\n }, [props.setComponentRef]);\n\n const handlePayButton = () => {\n if (!isValid) return bacsInputRef.current?.showValidation?.();\n\n if (status === ENTER_STATE) {\n return bacsInputRef.current?.setStatus?.(CONFIRM_STATE as UIElementStatus);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return bacsInputRef.current?.setStatus?.(ENTER_STATE as UIElementStatus);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n autocomplete={undefined}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders?.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'name'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={Boolean(errors.bankAccountNumber) && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders?.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={Boolean(errors.bankLocationId) && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders?.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail ?? undefined, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders?.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'email'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={Boolean(data.amountConsentCheckbox)}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={Boolean(data.accountConsentCheckbox)}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton?.({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!amount?.value && !!amount?.currency ? i18n.amount(amount.value, amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","errors","i18n","useCoreContext","getImage","useImage","amount","useAmount","handleChangeFor","triggerValidation","data","valid","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","bacsInputRef","useRef","showValidation","useEffect","setComponentRef","current","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","autocomplete","undefined","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","Boolean","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"0/BAoBA,MAAMA,EAAc,aACdC,EAAgB,eAEtB,SAASC,EAAUC,GA8JiCC,IAAAA,EAzEnBD,EA8BIA,EA4BAA,EA8BJA,EAqCjBA,EAjNZ,MAAME,KAAEA,GAASC,IACXC,EAAWC,KACXC,OAAEA,GAAWC,KAEbC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKV,OAAEA,EAAMW,QAAEA,GAAYC,EAAuB,CAChGC,OAAQ,CAAC,aAAc,oBAAqB,iBAAkB,eAAgB,wBAAyB,0BACvGC,YAAaf,EAAMU,KACnBM,WAAYC,EACZC,MAAOC,KAGJC,EAAQC,GAAaC,EAASzB,GAE/B0B,EAAeC,EAA4B,CAC7CH,YACAI,eAAgB,KACZhB,OAIRiB,EAAU,KACN1B,EAAM2B,gBAAgBJ,EAAaK,UACpC,CAAC5B,EAAM2B,kBAoBV,OAJAD,EAAU,KACN1B,EAAM6B,SAAS,CAAEnB,OAAMC,QAAOV,SAAQW,aACvC,CAACF,EAAMC,EAAOV,EAAQW,IAGrBkB,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,wBAAwB,EACxB,gCAAiCb,IAAWtB,GAA4B,YAAXsB,KAGjEU,EAACI,EAAAA,MAEAd,GAAUtB,GACPgC,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,8BAA8B,EAC9B,oCAAqCjC,EAAMmC,YAG/CL,EAACM,EAAAA,CACGC,KAAM,WACNL,UAAW,oCACXM,MAAOpC,EAAKqC,IAAI,QAChBC,aAAYtC,EAAKqC,IAAI,QACrBE,UAAU,EACVC,QA9BD,SACRnB,EAAAA,EAAP,OAA2B,QAApBA,EAAAA,EAAaK,eAAbL,IAAAA,GAA+B,QAA/BA,EAAAA,EAAsBF,iBAAtBE,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAkC1B,IA8BzB8C,kBAAcC,KAK1Bd,EAACe,EAAAA,CACGb,UAAWC,EAAW,CAClB,qCAAqC,EACrC,kCAAmCb,IAAWtB,GAA4B,YAAXsB,IAEnE0B,MAAO5C,EAAKqC,IAAI,0BAChBQ,eAAc9C,EAAO+C,YAAa9C,EAAKqC,IAAI,kCAC3C3B,QAASD,EAAMqC,WACfX,KAAM,oBACNnC,KAAMA,GAEN4B,EAACM,EAAAA,CACGC,KAAM,yBACNL,UAAW,0CACXiB,YAA+B,QAAlBjD,EAAAA,EAAMkD,oBAANlD,IAAAA,SAAAA,EAAoBgD,WACjCV,MAAO5B,EAAKsC,WACZG,gBAAexC,EAAMqC,WACrBR,aAAYtC,EAAKqC,IAAI,0BACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUrB,IAAWtB,GAA4B,YAAXsB,EACtCkC,YAAa,MACbX,aAAc,OACdY,OAAQ/C,EAAgB,aAAc,QACtCgD,QAAShD,EAAgB,aAAc,YAI/CsB,EAACC,MAAAA,CAAIC,UAAU,8DACXF,EAACe,EAAAA,CACGE,aAAcU,QAAQxD,EAAOyD,oBAAsBxD,EAAKqC,IAAI,8BAC5DO,MAAO5C,EAAKqC,IAAI,sBAChBP,UAAWC,EAAW,CAClB,6CAA6C,EAC7C,kCAAmCb,IAAWtB,GAA4B,YAAXsB,IAEnEuC,mBAAoB,CAAC,UACrB/C,QAASD,EAAM+C,kBACfrB,KAAM,oBACNnC,KAAMA,GAEN4B,EAACM,EAAAA,CACGE,MAAO5B,EAAKgD,kBACZ1B,UAAW,kDACXiB,YAA+B,QAAlBjD,EAAAA,EAAMkD,oBAANlD,IAAAA,SAAAA,EAAoB0D,kBACjCP,gBAAexC,EAAM+C,kBACrBlB,aAAYtC,EAAKqC,IAAI,sBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUrB,IAAWtB,GAA4B,YAAXsB,EACtCkC,YAAa,MACbX,kBAAcC,EACdW,OAAQ/C,EAAgB,oBAAqB,QAC7CgD,QAAShD,EAAgB,oBAAqB,YAItDsB,EAACe,EAAAA,CACGE,aAAcU,QAAQxD,EAAO2D,iBAAmB1D,EAAKqC,IAAI,+BACzDO,MAAO5C,EAAKqC,IAAI,uBAChBP,UAAWC,EAAW,CAClB,0CAA0C,EAC1C,kCAAmCb,IAAWtB,GAA4B,YAAXsB,IAEnEuC,mBAAoB,CAAC,UACrB/C,QAASD,EAAMiD,eACfvB,KAAM,iBACNnC,KAAMA,GAEN4B,EAACM,EAAAA,CACGE,MAAO5B,EAAKkD,eACZ5B,UAAW,+CACXiB,YAA+B,QAAlBjD,EAAAA,EAAMkD,oBAANlD,IAAAA,SAAAA,EAAoB4D,eACjCT,gBAAexC,EAAMiD,eACrBpB,aAAYtC,EAAKqC,IAAI,uBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUrB,IAAWtB,GAA4B,YAAXsB,EACtCkC,YAAa,MACbX,kBAAcC,EACdW,OAAQ/C,EAAgB,iBAAkB,QAC1CgD,QAAShD,EAAgB,iBAAkB,aAKvDsB,EAACe,EAAAA,CACGE,aAAcc,EAAgB3D,EAAyB,QAAnBD,EAAAA,EAAO6D,oBAAP7D,IAAAA,EAAAA,OAAuB2C,EAAW1C,EAAKqC,IAAI,iBAC/EO,MAAO5C,EAAKqC,IAAI,gBAChBP,UAAWC,EAAW,CAClB,uCAAuC,EACvC,kCAAmCb,IAAWtB,GAA4B,YAAXsB,IAEnER,QAASD,EAAMmD,aACfzB,KAAM,eACNnC,KAAMA,GAEN4B,EAACiC,EAAAA,CACGzB,MAAO5B,EAAKoD,aACZzB,KAAM,eACNL,UAAW,4CACX2B,mBAAoB,CAAC,SACrBV,YAA+B,QAAlBjD,EAAAA,EAAMkD,oBAANlD,IAAAA,SAAAA,EAAoB8D,aACjCE,YAAY,EACZb,gBAAexC,EAAMmD,aACrBtB,aAAYtC,EAAKqC,IAAI,gBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUrB,IAAWtB,GAA4B,YAAXsB,EACtCkC,YAAa,MACbX,aAAc,QACda,QAAShD,EAAgB,eAAgB,SACzC+C,OAAQ/C,EAAgB,eAAgB,WAI/CY,IAAWvB,GACRiC,EAACmC,EAAAA,CACGN,mBAAoB,CAAC,yBACrBZ,aAAc9C,EAAOiE,sBACrBpB,MAAO5C,EAAKqC,IAAI,uBAChBV,SAAUrB,EAAgB,yBAC1B2D,QAASV,QAAQ/C,EAAKwD,uBACtBhE,KAAMA,IAIbkB,IAAWvB,GACRiC,EAACmC,EAAAA,CACGN,mBAAoB,CAAC,0BACrBZ,aAAc9C,EAAOmE,uBACrBtB,MAAO5C,EAAKqC,IAAI,wBAChBV,SAAUrB,EAAgB,0BAC1B2D,QAASV,QAAQ/C,EAAK0D,wBACtBlE,KAAMA,IAIbF,EAAMqE,gBACY,QAAfrE,EAAAA,EAAMsE,iBAANtE,IAAAA,OAAAA,EAAAA,OAAAA,EAAkB,CACdoB,SACA0B,MACI1B,IAAWvB,EACLK,EAAKqC,IAAI,YACT,GAAGrC,EAAKqC,IAAI,oBACNjC,aAAAA,EAAAA,EAAQgC,SAAWhC,aAAAA,EAAAA,EAAQiE,UAAWrE,EAAKI,OAAOA,EAAOgC,MAAOhC,EAAOiE,UAAY,KAEnGC,KAAMpE,EAAS,CAAEqE,YAAa,eAAxBrE,CAAyC,GAAGsE,SAClDhC,QAlMQ,SACCnB,EAAAA,EAGVA,EAAAA,EAHX,OAAKX,EAEDQ,IAAWvB,EACgB,QAApB0B,EAAAA,EAAaK,eAAbL,IAAAA,GAA+B,QAA/BA,EAAAA,EAAsBF,iBAAtBE,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAkCzB,GAClCsB,IAAWtB,EACXE,EAAM2E,gBADV,EAJkC,QAApBpD,EAAAA,EAAaK,eAAbL,IAAAA,GAAoC,QAApCA,EAAAA,EAAsBE,0BAAtBF,OAAAA,EAAAA,EAAAA,KAAAA,OAqM7B,CAEAxB,EAAU6E,aAAe,CACrBlE,KAAM,CAAA,EACNwC,aAAc,CAAA"}
1
+ {"version":3,"file":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: Readonly<BacsInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount } = useAmount();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n const handlePayButton = () => {\n if (!isValid) return this.showValidation();\n\n if (status === ENTER_STATE) {\n return this.setStatus(CONFIRM_STATE);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return this.setStatus(ENTER_STATE);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n autocomplete={undefined}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'name'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={!!errors.bankAccountNumber && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={!!errors.bankLocationId && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'email'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={!!errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={!!data.amountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={!!errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={!!data.accountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!amount?.value && !!amount?.currency ? i18n.amount(amount.value, amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","i18n","useCoreContext","getImage","useImage","amount","useAmount","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","this","showValidation","useEffect","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","autocomplete","undefined","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"8+BAmBA,MAAMA,EAAc,aACdC,EAAgB,eAEtB,SAASC,EAAUC,GACf,MAAMC,KAAEA,GAASC,IACXC,EAAWC,KACXC,OAAEA,GAAWC,KAEbC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAAuB,CAChGC,OAAQ,CAAC,aAAc,oBAAqB,iBAAkB,eAAgB,wBAAyB,0BACvGC,YAAaf,EAAMS,KACnBO,WAAYC,EACZC,MAAOC,KAGJC,EAAQC,GAAaC,EAASzB,GACrC0B,KAAKF,UAAYA,EACjBE,KAAKC,eAAiBhB,EAoBtB,OAJAiB,EAAU,KACNzB,EAAM0B,SAAS,CAAEjB,OAAMC,QAAOC,SAAQC,aACvC,CAACH,EAAMC,EAAOC,EAAQC,IAGrBe,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,wBAAwB,EACxB,gCAAiCV,IAAWtB,GAA4B,YAAXsB,KAGjEO,EAACI,EAAAA,MAEAX,GAAUtB,GACP6B,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,8BAA8B,EAC9B,oCAAqC9B,EAAMgC,YAG/CL,EAACM,EAAAA,CACGC,KAAM,WACNL,UAAW,oCACXM,MAAOlC,EAAKmC,IAAI,QAChBC,aAAYpC,EAAKmC,IAAI,QACrBE,UAAU,EACVC,QA9BD,IACRhB,KAAKF,UAAUxB,GA8BN2C,kBAAcC,KAK1Bd,EAACe,EAAAA,CACGb,UAAWC,EAAW,CAClB,qCAAqC,EACrC,kCAAmCV,IAAWtB,GAA4B,YAAXsB,IAEnEuB,MAAO1C,EAAKmC,IAAI,0BAChBQ,eAAcjC,EAAOkC,YAAa5C,EAAKmC,IAAI,kCAC3CxB,QAASF,EAAMmC,WACfX,KAAM,oBACNjC,KAAMA,GAEN0B,EAACM,EAAAA,CACGC,KAAM,yBACNL,UAAW,0CACXiB,YAAa9C,EAAM+C,aAAaF,WAChCV,MAAO1B,EAAKoC,WACZG,gBAAetC,EAAMmC,WACrBR,aAAYpC,EAAKmC,IAAI,0BACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUlB,IAAWtB,GAA4B,YAAXsB,EACtC+B,YAAa,MACbX,aAAc,OACdY,OAAQ7C,EAAgB,aAAc,QACtC8C,QAAS9C,EAAgB,aAAc,YAI/CoB,EAACC,MAAAA,CAAIC,UAAU,8DACXF,EAACe,EAAAA,CACGE,eAAgBjC,EAAO2C,mBAAqBrD,EAAKmC,IAAI,8BACrDO,MAAO1C,EAAKmC,IAAI,sBAChBP,UAAWC,EAAW,CAClB,6CAA6C,EAC7C,kCAAmCV,IAAWtB,GAA4B,YAAXsB,IAEnEmC,mBAAoB,CAAC,UACrB3C,QAASF,EAAM4C,kBACfpB,KAAM,oBACNjC,KAAMA,GAEN0B,EAACM,EAAAA,CACGE,MAAO1B,EAAK6C,kBACZzB,UAAW,kDACXiB,YAAa9C,EAAM+C,aAAaO,kBAChCN,gBAAetC,EAAM4C,kBACrBjB,aAAYpC,EAAKmC,IAAI,sBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUlB,IAAWtB,GAA4B,YAAXsB,EACtC+B,YAAa,MACbX,kBAAcC,EACdW,OAAQ7C,EAAgB,oBAAqB,QAC7C8C,QAAS9C,EAAgB,oBAAqB,YAItDoB,EAACe,EAAAA,CACGE,eAAgBjC,EAAO6C,gBAAkBvD,EAAKmC,IAAI,+BAClDO,MAAO1C,EAAKmC,IAAI,uBAChBP,UAAWC,EAAW,CAClB,0CAA0C,EAC1C,kCAAmCV,IAAWtB,GAA4B,YAAXsB,IAEnEmC,mBAAoB,CAAC,UACrB3C,QAASF,EAAM8C,eACftB,KAAM,iBACNjC,KAAMA,GAEN0B,EAACM,EAAAA,CACGE,MAAO1B,EAAK+C,eACZ3B,UAAW,+CACXiB,YAAa9C,EAAM+C,aAAaS,eAChCR,gBAAetC,EAAM8C,eACrBnB,aAAYpC,EAAKmC,IAAI,uBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUlB,IAAWtB,GAA4B,YAAXsB,EACtC+B,YAAa,MACbX,kBAAcC,EACdW,OAAQ7C,EAAgB,iBAAkB,QAC1C8C,QAAS9C,EAAgB,iBAAkB,aAKvDoB,EAACe,EAAAA,CACGE,aAAca,EAAgBxD,EAAMU,EAAO+C,aAAczD,EAAKmC,IAAI,iBAClEO,MAAO1C,EAAKmC,IAAI,gBAChBP,UAAWC,EAAW,CAClB,uCAAuC,EACvC,kCAAmCV,IAAWtB,GAA4B,YAAXsB,IAEnER,QAASF,EAAMgD,aACfxB,KAAM,eACNjC,KAAMA,GAEN0B,EAACgC,EAAAA,CACGxB,MAAO1B,EAAKiD,aACZxB,KAAM,eACNL,UAAW,4CACX0B,mBAAoB,CAAC,SACrBT,YAAa9C,EAAM+C,aAAaW,aAChCE,YAAY,EACZZ,gBAAetC,EAAMgD,aACrBrB,aAAYpC,EAAKmC,IAAI,gBACrBa,gBAAe,OACfC,UAAU,EACVZ,SAAUlB,IAAWtB,GAA4B,YAAXsB,EACtC+B,YAAa,MACbX,aAAc,QACda,QAAS9C,EAAgB,eAAgB,SACzC6C,OAAQ7C,EAAgB,eAAgB,WAI/Ca,IAAWvB,GACR8B,EAACkC,EAAAA,CACGN,mBAAoB,CAAC,yBACrBX,eAAgBjC,EAAOmD,sBACvBnB,MAAO1C,EAAKmC,IAAI,uBAChBV,SAAUnB,EAAgB,yBAC1BwD,UAAWtD,EAAKqD,sBAChB7D,KAAMA,IAIbmB,IAAWvB,GACR8B,EAACkC,EAAAA,CACGN,mBAAoB,CAAC,0BACrBX,eAAgBjC,EAAOqD,uBACvBrB,MAAO1C,EAAKmC,IAAI,wBAChBV,SAAUnB,EAAgB,0BAC1BwD,UAAWtD,EAAKuD,uBAChB/D,KAAMA,IAIbD,EAAMiE,eACHjE,EAAMkE,UAAU,CACZ9C,SACAuB,MACIvB,IAAWvB,EACLI,EAAKmC,IAAI,YACT,GAAGnC,EAAKmC,IAAI,oBACN/B,aAAAA,EAAAA,EAAQ8B,SAAW9B,aAAAA,EAAAA,EAAQ8D,UAAWlE,EAAKI,OAAOA,EAAO8B,MAAO9B,EAAO8D,UAAY,KAEnGC,KAAMjE,EAAS,CAAEkE,YAAa,eAAxBlE,CAAyC,GAAGmE,SAClD/B,QAlMQ,IACf3B,EAEDQ,IAAWvB,EACJ0B,KAAKF,UAAUvB,GACfsB,IAAWtB,EACXE,EAAMuE,gBADV,EAJchD,KAAKC,mBAqMlC,CAEAzB,EAAUyE,aAAe,CACrB/D,KAAM,CAAA,EACNsC,aAAc,CAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as r}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"../internal/RedirectButton/RedirectButton.js";import a from"./components/BankTransferResult/BankTransferResult.js";import s from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as o}from"../tx-variants.js";function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){i(e,r,t[r])})}return 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}class b extends t{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:e}=this.state.data,r=this.type!==o.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},r)},e&&{shopperEmail:e})}componentToRender(){return this.props.reference?e(a,f(p({},this.props),{onActionHandled:this.onActionHandled})):e(r,null,this.props.showEmailAddress&&e(s,f(p({setComponentRef:this.setComponentRef},this.props),{onChange:this.setState})),e(n,f(p({},this.props),{setComponentRef:this.setComponentRef,showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton})))}constructor(...e){super(...e),i(this,"state",{isValid:!this.props.showEmailAddress,data:{}})}}i(b,"type",o.bankTransfer_IBAN),i(b,"txVariants",[o.bankTransfer_IBAN,o.bankTransfer_BE,o.bankTransfer_NL,o.bankTransfer_PL,o.bankTransfer_FR,o.bankTransfer_CH,o.bankTransfer_IE,o.bankTransfer_GB,o.bankTransfer_DE,o.bankTransfer_AE,o.bankTransfer_AT,o.bankTransfer_AU,o.bankTransfer_BG,o.bankTransfer_CA,o.bankTransfer_EE,o.bankTransfer_ES,o.bankTransfer_FI,o.bankTransfer_HK,o.bankTransfer_HU,o.bankTransfer_IT,o.bankTransfer_JP,o.bankTransfer_LU,o.bankTransfer_NZ,o.bankTransfer_PT,o.bankTransfer_SG,o.bankTransfer_SK,o.bankTransfer_US]),i(b,"defaultProps",{showEmailAddress:!0,showContextualElement:!0,data:{shopperEmail:""}});export{b as BankTransferElement,b as default};
1
+ import{createElement as e,Fragment as r}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"../internal/RedirectButton/RedirectButton.js";import a from"./components/BankTransferResult/BankTransferResult.js";import s from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as o}from"../tx-variants.js";function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){i(e,r,t[r])})}return 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}class b extends t{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:e}=this.state.data,r=this.type!==o.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},r)},e&&{shopperEmail:e})}componentToRender(){return this.props.reference?e(a,f(p({},this.props),{onActionHandled:this.onActionHandled})):e(r,null,this.props.showEmailAddress&&e(s,f(p({setComponentRef:this.setComponentRef},this.props),{onChange:this.setState})),e(n,f(p({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton})))}constructor(...e){super(...e),i(this,"state",{isValid:!this.props.showEmailAddress,data:{}})}}i(b,"type",o.bankTransfer_IBAN),i(b,"txVariants",[o.bankTransfer_IBAN,o.bankTransfer_BE,o.bankTransfer_NL,o.bankTransfer_PL,o.bankTransfer_FR,o.bankTransfer_CH,o.bankTransfer_IE,o.bankTransfer_GB,o.bankTransfer_DE,o.bankTransfer_AE,o.bankTransfer_AT,o.bankTransfer_AU,o.bankTransfer_BG,o.bankTransfer_CA,o.bankTransfer_EE,o.bankTransfer_ES,o.bankTransfer_FI,o.bankTransfer_HK,o.bankTransfer_HU,o.bankTransfer_IT,o.bankTransfer_JP,o.bankTransfer_LU,o.bankTransfer_NZ,o.bankTransfer_PT,o.bankTransfer_SG,o.bankTransfer_SK,o.bankTransfer_US]),i(b,"defaultProps",{showEmailAddress:!0,showContextualElement:!0,data:{shopperEmail:""}});export{b as BankTransferElement,b as default};
2
2
  //# sourceMappingURL=BankTransfer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport RedirectButton from '../internal/RedirectButton';\nimport { BankTransferConfiguration, BankTransferState } from './types';\nimport BankTransferResult from './components/BankTransferResult';\nimport BankTransferInput from './components/BankTransferInput';\nimport { TxVariants } from '../tx-variants';\n\nexport class BankTransferElement extends UIElement<BankTransferConfiguration> {\n public static readonly type = TxVariants.bankTransfer_IBAN;\n public static readonly txVariants = [\n TxVariants.bankTransfer_IBAN,\n TxVariants.bankTransfer_BE,\n TxVariants.bankTransfer_NL,\n TxVariants.bankTransfer_PL,\n TxVariants.bankTransfer_FR,\n TxVariants.bankTransfer_CH,\n TxVariants.bankTransfer_IE,\n TxVariants.bankTransfer_GB,\n TxVariants.bankTransfer_DE,\n TxVariants.bankTransfer_AE,\n TxVariants.bankTransfer_AT,\n TxVariants.bankTransfer_AU,\n TxVariants.bankTransfer_BG,\n TxVariants.bankTransfer_CA,\n TxVariants.bankTransfer_EE,\n TxVariants.bankTransfer_ES,\n TxVariants.bankTransfer_FI,\n TxVariants.bankTransfer_HK,\n TxVariants.bankTransfer_HU,\n TxVariants.bankTransfer_IT,\n TxVariants.bankTransfer_JP,\n TxVariants.bankTransfer_LU,\n TxVariants.bankTransfer_NZ,\n TxVariants.bankTransfer_PT,\n TxVariants.bankTransfer_SG,\n TxVariants.bankTransfer_SK,\n TxVariants.bankTransfer_US\n ];\n\n public static readonly defaultProps = {\n showEmailAddress: true,\n showContextualElement: true,\n data: { shopperEmail: '' }\n };\n\n // @ts-ignore Double check why state extends all props\n public state: BankTransferState = {\n isValid: !this.props.showEmailAddress,\n data: {}\n };\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { shopperEmail } = this.state.data;\n const subtype = this.type !== (TxVariants.bankTransfer_IBAN as string) ? { subtype: 'embedded' } : {};\n\n return {\n paymentMethod: {\n type: this.type,\n ...subtype\n },\n ...(shopperEmail && { shopperEmail })\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.reference) {\n return <BankTransferResult {...this.props} onActionHandled={this.onActionHandled} />;\n }\n\n return (\n <Fragment>\n {this.props.showEmailAddress && <BankTransferInput setComponentRef={this.setComponentRef} {...this.props} onChange={this.setState} />}\n <RedirectButton\n {...this.props}\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n </Fragment>\n );\n }\n}\n\nexport default BankTransferElement;\n"],"names":["BankTransferElement","UIElement","isValid","this","state","formatData","shopperEmail","data","subtype","type","TxVariants","bankTransfer_IBAN","_object_spread","paymentMethod","componentToRender","props","reference","h","BankTransferResult","onActionHandled","Fragment","showEmailAddress","BankTransferInput","setComponentRef","onChange","setState","RedirectButton","showPayButton","name","displayName","onSubmit","submit","payButton","super","args","_define_property","txVariants","bankTransfer_BE","bankTransfer_NL","bankTransfer_PL","bankTransfer_FR","bankTransfer_CH","bankTransfer_IE","bankTransfer_GB","bankTransfer_DE","bankTransfer_AE","bankTransfer_AT","bankTransfer_AU","bankTransfer_BG","bankTransfer_CA","bankTransfer_EE","bankTransfer_ES","bankTransfer_FI","bankTransfer_HK","bankTransfer_HU","bankTransfer_IT","bankTransfer_JP","bankTransfer_LU","bankTransfer_NZ","bankTransfer_PT","bankTransfer_SG","bankTransfer_SK","bankTransfer_US","defaultProps","showContextualElement"],"mappings":"8qCAQO,MAAMA,UAA4BC,EA4CrC,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,aAAEA,GAAiBH,KAAKC,MAAMG,KAC9BC,EAAUL,KAAKM,OAAUC,EAAWC,kBAA+B,CAAEH,QAAS,YAAe,CAAA,EAEnG,OAAOI,EAAA,CACHC,cAAeD,EAAA,CACXH,KAAMN,KAAKM,MACRD,IAEHF,GAAgB,CAAEA,gBAE9B,CAEmBQ,iBAAAA,GACf,OAAIX,KAAKY,MAAMC,UACJC,EAACC,EAAAA,EAAAA,EAAAA,GAAuBf,KAAKY,OAAK,CAAEI,gBAAiBhB,KAAKgB,mBAIjEF,EAACG,OACIjB,KAAKY,MAAMM,kBAAoBJ,EAACK,EAAAA,EAAAA,EAAAA,CAAkBC,gBAAiBpB,KAAKoB,iBAAqBpB,KAAKY,OAAK,CAAES,SAAUrB,KAAKsB,YACzHR,EAACS,EAAAA,EAAAA,EAAAA,CAAAA,EACOvB,KAAKY,OAAK,CACdQ,gBAAiBpB,KAAKoB,gBACtBI,cAAexB,KAAKY,MAAMY,cAC1BC,KAAMzB,KAAK0B,YACXC,SAAU3B,KAAK4B,OACfC,UAAW7B,KAAK6B,aAIhC,mBAlFGC,SAAAC,GAuCHC,EAAAhC,KAAOC,QAA2B,CAC9BF,SAAUC,KAAKY,MAAMM,iBACrBd,KAAM,CAAA,KAxCV4B,EADSnC,EACcS,OAAOC,EAAWC,mBACzCwB,EAFSnC,EAEcoC,aAAa,CAChC1B,EAAWC,kBACXD,EAAW2B,gBACX3B,EAAW4B,gBACX5B,EAAW6B,gBACX7B,EAAW8B,gBACX9B,EAAW+B,gBACX/B,EAAWgC,gBACXhC,EAAWiC,gBACXjC,EAAWkC,gBACXlC,EAAWmC,gBACXnC,EAAWoC,gBACXpC,EAAWqC,gBACXrC,EAAWsC,gBACXtC,EAAWuC,gBACXvC,EAAWwC,gBACXxC,EAAWyC,gBACXzC,EAAW0C,gBACX1C,EAAW2C,gBACX3C,EAAW4C,gBACX5C,EAAW6C,gBACX7C,EAAW8C,gBACX9C,EAAW+C,gBACX/C,EAAWgD,gBACXhD,EAAWiD,gBACXjD,EAAWkD,gBACXlD,EAAWmD,gBACXnD,EAAWoD,kBAGf3B,EAhCSnC,EAgCc+D,eAAe,CAClC1C,kBAAkB,EAClB2C,uBAAuB,EACvBzD,KAAM,CAAED,aAAc"}
1
+ {"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport RedirectButton from '../internal/RedirectButton';\nimport { BankTransferConfiguration, BankTransferState } from './types';\nimport BankTransferResult from './components/BankTransferResult';\nimport BankTransferInput from './components/BankTransferInput';\nimport { TxVariants } from '../tx-variants';\n\nexport class BankTransferElement extends UIElement<BankTransferConfiguration> {\n public static readonly type = TxVariants.bankTransfer_IBAN;\n public static readonly txVariants = [\n TxVariants.bankTransfer_IBAN,\n TxVariants.bankTransfer_BE,\n TxVariants.bankTransfer_NL,\n TxVariants.bankTransfer_PL,\n TxVariants.bankTransfer_FR,\n TxVariants.bankTransfer_CH,\n TxVariants.bankTransfer_IE,\n TxVariants.bankTransfer_GB,\n TxVariants.bankTransfer_DE,\n TxVariants.bankTransfer_AE,\n TxVariants.bankTransfer_AT,\n TxVariants.bankTransfer_AU,\n TxVariants.bankTransfer_BG,\n TxVariants.bankTransfer_CA,\n TxVariants.bankTransfer_EE,\n TxVariants.bankTransfer_ES,\n TxVariants.bankTransfer_FI,\n TxVariants.bankTransfer_HK,\n TxVariants.bankTransfer_HU,\n TxVariants.bankTransfer_IT,\n TxVariants.bankTransfer_JP,\n TxVariants.bankTransfer_LU,\n TxVariants.bankTransfer_NZ,\n TxVariants.bankTransfer_PT,\n TxVariants.bankTransfer_SG,\n TxVariants.bankTransfer_SK,\n TxVariants.bankTransfer_US\n ];\n\n public static readonly defaultProps = {\n showEmailAddress: true,\n showContextualElement: true,\n data: { shopperEmail: '' }\n };\n\n // @ts-ignore Double check why state extends all props\n public state: BankTransferState = {\n isValid: !this.props.showEmailAddress,\n data: {}\n };\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { shopperEmail } = this.state.data;\n const subtype = this.type !== (TxVariants.bankTransfer_IBAN as string) ? { subtype: 'embedded' } : {};\n\n return {\n paymentMethod: {\n type: this.type,\n ...subtype\n },\n ...(shopperEmail && { shopperEmail })\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.reference) {\n return <BankTransferResult {...this.props} onActionHandled={this.onActionHandled} />;\n }\n\n return (\n <Fragment>\n {this.props.showEmailAddress && <BankTransferInput setComponentRef={this.setComponentRef} {...this.props} onChange={this.setState} />}\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n </Fragment>\n );\n }\n}\n\nexport default BankTransferElement;\n"],"names":["BankTransferElement","UIElement","isValid","this","state","formatData","shopperEmail","data","subtype","type","TxVariants","bankTransfer_IBAN","_object_spread","paymentMethod","componentToRender","props","reference","h","BankTransferResult","onActionHandled","Fragment","showEmailAddress","BankTransferInput","setComponentRef","onChange","setState","RedirectButton","showPayButton","name","displayName","onSubmit","submit","payButton","super","args","_define_property","txVariants","bankTransfer_BE","bankTransfer_NL","bankTransfer_PL","bankTransfer_FR","bankTransfer_CH","bankTransfer_IE","bankTransfer_GB","bankTransfer_DE","bankTransfer_AE","bankTransfer_AT","bankTransfer_AU","bankTransfer_BG","bankTransfer_CA","bankTransfer_EE","bankTransfer_ES","bankTransfer_FI","bankTransfer_HK","bankTransfer_HU","bankTransfer_IT","bankTransfer_JP","bankTransfer_LU","bankTransfer_NZ","bankTransfer_PT","bankTransfer_SG","bankTransfer_SK","bankTransfer_US","defaultProps","showContextualElement"],"mappings":"8qCAQO,MAAMA,UAA4BC,EA4CrC,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,aAAEA,GAAiBH,KAAKC,MAAMG,KAC9BC,EAAUL,KAAKM,OAAUC,EAAWC,kBAA+B,CAAEH,QAAS,YAAe,CAAA,EAEnG,OAAOI,EAAA,CACHC,cAAeD,EAAA,CACXH,KAAMN,KAAKM,MACRD,IAEHF,GAAgB,CAAEA,gBAE9B,CAEmBQ,iBAAAA,GACf,OAAIX,KAAKY,MAAMC,UACJC,EAACC,EAAAA,EAAAA,EAAAA,GAAuBf,KAAKY,OAAK,CAAEI,gBAAiBhB,KAAKgB,mBAIjEF,EAACG,OACIjB,KAAKY,MAAMM,kBAAoBJ,EAACK,EAAAA,EAAAA,EAAAA,CAAkBC,gBAAiBpB,KAAKoB,iBAAqBpB,KAAKY,OAAK,CAAES,SAAUrB,KAAKsB,YACzHR,EAACS,EAAAA,EAAAA,EAAAA,CAAAA,EACOvB,KAAKY,OAAK,CACdY,cAAexB,KAAKY,MAAMY,cAC1BC,KAAMzB,KAAK0B,YACXC,SAAU3B,KAAK4B,OACfC,UAAW7B,KAAK6B,aAIhC,mBAjFGC,SAAAC,GAuCHC,EAAAhC,KAAOC,QAA2B,CAC9BF,SAAUC,KAAKY,MAAMM,iBACrBd,KAAM,CAAA,KAxCV4B,EADSnC,EACcS,OAAOC,EAAWC,mBACzCwB,EAFSnC,EAEcoC,aAAa,CAChC1B,EAAWC,kBACXD,EAAW2B,gBACX3B,EAAW4B,gBACX5B,EAAW6B,gBACX7B,EAAW8B,gBACX9B,EAAW+B,gBACX/B,EAAWgC,gBACXhC,EAAWiC,gBACXjC,EAAWkC,gBACXlC,EAAWmC,gBACXnC,EAAWoC,gBACXpC,EAAWqC,gBACXrC,EAAWsC,gBACXtC,EAAWuC,gBACXvC,EAAWwC,gBACXxC,EAAWyC,gBACXzC,EAAW0C,gBACX1C,EAAW2C,gBACX3C,EAAW4C,gBACX5C,EAAW6C,gBACX7C,EAAW8C,gBACX9C,EAAW+C,gBACX/C,EAAWgD,gBACXhD,EAAWiD,gBACXjD,EAAWkD,gBACXlD,EAAWmD,gBACXnD,EAAWoD,kBAGf3B,EAhCSnC,EAgCc+D,eAAe,CAClC1C,kBAAkB,EAClB2C,uBAAuB,EACvBzD,KAAM,CAAED,aAAc"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import{useRef as r,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import t from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as s}from"../../../../utils/getErrorMessage.js";import i from"../../../internal/FormFields/InputEmail.js";import l from"../../../internal/FormFields/Field/Field.js";import{optionalEmailValidationRule as n}from"./validationRule.js";function m(m){const{i18n:p}=a(),d=`${p.get("shopperEmail")} ${p.get("field.title.optional")}`,{handleChangeFor:u,triggerValidation:c,data:h,valid:f,errors:E,isValid:_}=t({schema:["shopperEmail"],defaultData:m.data,rules:{shopperEmail:n}}),g=r({showValidation:()=>{c()}});return o(()=>{m.onChange({data:h,errors:E,valid:f,isValid:_})},[h,f,E,_]),o(()=>{m.setComponentRef(g.current)},[m.setComponentRef]),e("div",{className:"adyen-checkout__bankTransfer"},e("p",{className:"adyen-checkout__bankTransfer__introduction"},p.get("bankTransfer.introduction")),e("div",{className:"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField"},e(l,{label:d,classNameModifiers:["shopperEmail"],errorMessage:Boolean(E.shopperEmail)&&s(p,E.shopperEmail,p.get("shopperEmail")),isValid:f.shopperEmail,name:"shopperEmail",showContextualElement:m.showContextualElement,contextualText:p.get("bankTransfer.shopperEmail.contextualText")},e(i,{name:"shopperEmail",autoCorrect:"off",spellcheck:!1,required:!1,value:h.shopperEmail,onInput:u("shopperEmail","input"),onBlur:u("shopperEmail","blur"),autocomplete:"email"}))))}export{m as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import{useRef as r,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import t from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as s}from"../../../../utils/getErrorMessage.js";import i from"../../../internal/FormFields/InputEmail.js";import l from"../../../internal/FormFields/Field/Field.js";import{optionalEmailValidationRule as n}from"./validationRule.js";function m(m){const{i18n:p}=a(),d=`${p.get("shopperEmail")} ${p.get("field.title.optional")}`,{handleChangeFor:u,triggerValidation:c,data:h,valid:f,errors:E,isValid:_}=t({schema:["shopperEmail"],defaultData:m.data,rules:{shopperEmail:n}}),g=r({showValidation:()=>{c()}});return o(()=>{m.onChange({data:h,errors:E,valid:f,isValid:_})},[h,f,E,_]),o(()=>{m.setComponentRef(g.current)},[m.setComponentRef]),e("div",{className:"adyen-checkout__bankTransfer"},e("p",{className:"adyen-checkout__bankTransfer__introduction"},p.get("bankTransfer.introduction")),e("div",{className:"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField"},e(l,{label:d,classNameModifiers:["shopperEmail"],errorMessage:!!E.shopperEmail&&s(p,E.shopperEmail,p.get("shopperEmail")),isValid:f.shopperEmail,name:"shopperEmail",showContextualElement:m.showContextualElement,contextualText:p.get("bankTransfer.shopperEmail.contextualText")},e(i,{name:"shopperEmail",autoCorrect:"off",spellcheck:!1,required:!1,value:h.shopperEmail,onInput:u("shopperEmail","input"),onBlur:u("shopperEmail","blur"),autocomplete:"email"}))))}export{m as default};
2
2
  //# sourceMappingURL=BankTransferInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankTransferInput.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferInput/BankTransferInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './BankTransferInput.scss';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport { BankTransferSchema } from '../../types';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Field from '../../../internal/FormFields/Field';\nimport { optionalEmailValidationRule } from './validationRule';\nimport { BankTransferInputProps } from './types';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nfunction BankTransferInput(props: Readonly<BankTransferInputProps>) {\n const { i18n } = useCoreContext();\n const emailOptionalLabel = `${i18n.get('shopperEmail')} ${i18n.get('field.title.optional')}`;\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BankTransferSchema>({\n schema: ['shopperEmail'],\n defaultData: props.data,\n rules: {\n shopperEmail: optionalEmailValidationRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.onChange({ data, errors, valid, isValid });\n }, [data, valid, errors, isValid]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__bankTransfer\">\n <p className=\"adyen-checkout__bankTransfer__introduction\">{i18n.get('bankTransfer.introduction')}</p>\n <div className=\"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField\">\n <Field\n label={emailOptionalLabel}\n classNameModifiers={['shopperEmail']}\n errorMessage={Boolean(errors.shopperEmail) && getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n isValid={valid.shopperEmail}\n name={'shopperEmail'}\n showContextualElement={props.showContextualElement}\n contextualText={i18n.get('bankTransfer.shopperEmail.contextualText')}\n >\n <InputEmail\n name={'shopperEmail'}\n autoCorrect={'off'}\n spellcheck={false}\n required={false}\n value={data.shopperEmail}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n autocomplete={'email'}\n />\n </Field>\n </div>\n </div>\n );\n}\n\nexport default BankTransferInput;\n"],"names":["BankTransferInput","props","i18n","useCoreContext","emailOptionalLabel","get","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","rules","shopperEmail","optionalEmailValidationRule","self","useRef","showValidation","useEffect","onChange","setComponentRef","current","h","div","className","p","Field","label","classNameModifiers","errorMessage","Boolean","getErrorMessage","name","showContextualElement","contextualText","InputEmail","autoCorrect","spellcheck","required","value","onInput","onBlur","autocomplete"],"mappings":"kmBAaA,SAASA,EAAkBC,GACvB,MAAMC,KAAEA,GAASC,IACXC,EAAqB,GAAGF,EAAKG,IAAI,mBAAmBH,EAAKG,IAAI,2BAE7DC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,gBACTC,YAAab,EAAMO,KACnBO,MAAO,CACHC,aAAcC,KAIhBC,EAAOC,EAA4B,CACrCC,eAAgB,KACZb,OAYR,OARAc,EAAU,KACNpB,EAAMqB,SAAS,CAAEd,OAAME,SAAQD,QAAOE,aACvC,CAACH,EAAMC,EAAOC,EAAQC,IAEzBU,EAAU,KACNpB,EAAMsB,gBAAgBL,EAAKM,UAC5B,CAACvB,EAAMsB,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,IAAAA,CAAED,UAAU,8CAA8CzB,EAAKG,IAAI,8BACpEoB,EAACC,MAAAA,CAAIC,UAAU,+GACXF,EAACI,EAAAA,CACGC,MAAO1B,EACP2B,mBAAoB,CAAC,gBACrBC,aAAcC,QAAQvB,EAAOM,eAAiBkB,EAAgBhC,EAAMQ,EAAOM,aAAcd,EAAKG,IAAI,iBAClGM,QAASF,EAAMO,aACfmB,KAAM,eACNC,sBAAuBnC,EAAMmC,sBAC7BC,eAAgBnC,EAAKG,IAAI,6CAEzBoB,EAACa,EAAAA,CACGH,KAAM,eACNI,YAAa,MACbC,YAAY,EACZC,UAAU,EACVC,MAAOlC,EAAKQ,aACZ2B,QAASrC,EAAgB,eAAgB,SACzCsC,OAAQtC,EAAgB,eAAgB,QACxCuC,aAAc,YAMtC"}
1
+ {"version":3,"file":"BankTransferInput.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferInput/BankTransferInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './BankTransferInput.scss';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport { BankTransferSchema } from '../../types';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Field from '../../../internal/FormFields/Field';\nimport { optionalEmailValidationRule } from './validationRule';\nimport { BankTransferInputProps } from './types';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nfunction BankTransferInput(props: Readonly<BankTransferInputProps>) {\n const { i18n } = useCoreContext();\n const emailOptionalLabel = `${i18n.get('shopperEmail')} ${i18n.get('field.title.optional')}`;\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BankTransferSchema>({\n schema: ['shopperEmail'],\n defaultData: props.data,\n rules: {\n shopperEmail: optionalEmailValidationRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.onChange({ data, errors, valid, isValid });\n }, [data, valid, errors, isValid]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__bankTransfer\">\n <p className=\"adyen-checkout__bankTransfer__introduction\">{i18n.get('bankTransfer.introduction')}</p>\n <div className=\"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField\">\n <Field\n label={emailOptionalLabel}\n classNameModifiers={['shopperEmail']}\n errorMessage={!!errors.shopperEmail && getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n isValid={valid.shopperEmail}\n name={'shopperEmail'}\n showContextualElement={props.showContextualElement}\n contextualText={i18n.get('bankTransfer.shopperEmail.contextualText')}\n >\n <InputEmail\n name={'shopperEmail'}\n autoCorrect={'off'}\n spellcheck={false}\n required={false}\n value={data.shopperEmail}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n autocomplete={'email'}\n />\n </Field>\n </div>\n </div>\n );\n}\n\nexport default BankTransferInput;\n"],"names":["BankTransferInput","props","i18n","useCoreContext","emailOptionalLabel","get","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","rules","shopperEmail","optionalEmailValidationRule","self","useRef","showValidation","useEffect","onChange","setComponentRef","current","h","div","className","p","Field","label","classNameModifiers","errorMessage","getErrorMessage","name","showContextualElement","contextualText","InputEmail","autoCorrect","spellcheck","required","value","onInput","onBlur","autocomplete"],"mappings":"kmBAaA,SAASA,EAAkBC,GACvB,MAAMC,KAAEA,GAASC,IACXC,EAAqB,GAAGF,EAAKG,IAAI,mBAAmBH,EAAKG,IAAI,2BAE7DC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,gBACTC,YAAab,EAAMO,KACnBO,MAAO,CACHC,aAAcC,KAIhBC,EAAOC,EAA4B,CACrCC,eAAgB,KACZb,OAYR,OARAc,EAAU,KACNpB,EAAMqB,SAAS,CAAEd,OAAME,SAAQD,QAAOE,aACvC,CAACH,EAAMC,EAAOC,EAAQC,IAEzBU,EAAU,KACNpB,EAAMsB,gBAAgBL,EAAKM,UAC5B,CAACvB,EAAMsB,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,IAAAA,CAAED,UAAU,8CAA8CzB,EAAKG,IAAI,8BACpEoB,EAACC,MAAAA,CAAIC,UAAU,+GACXF,EAACI,EAAAA,CACGC,MAAO1B,EACP2B,mBAAoB,CAAC,gBACrBC,eAAgBtB,EAAOM,cAAgBiB,EAAgB/B,EAAMQ,EAAOM,aAAcd,EAAKG,IAAI,iBAC3FM,QAASF,EAAMO,aACfkB,KAAM,eACNC,sBAAuBlC,EAAMkC,sBAC7BC,eAAgBlC,EAAKG,IAAI,6CAEzBoB,EAACY,EAAAA,CACGH,KAAM,eACNI,YAAa,MACbC,YAAY,EACZC,UAAU,EACVC,MAAOjC,EAAKQ,aACZ0B,QAASpC,EAAgB,eAAgB,SACzCqC,OAAQrC,EAAgB,eAAgB,QACxCsC,aAAc,YAMtC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import{Await as n}from"../internal/Await/Await.js";import r from"./config.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function p(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),n.forEach(function(e){a(t,e,o[e])})}return t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class l extends e{formatData(){var t,e;const o=!!this.props.storedPaymentMethodId;return{paymentMethod:p({type:l.type},!o&&{blikCode:null===(e=this.state)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.blikCode},o&&{storedPaymentMethodId:this.props.storedPaymentMethodId})}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId&&this.props.label?this.props.name:null}componentToRender(){return this.props.paymentData?t(n,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.handleError,onComplete:this.onComplete,brandLogo:this.icon,brandName:this.displayName,type:r.type,messageText:this.props.i18n.get(r.messageTextId),awaitText:this.props.i18n.get(r.awaitTextId),showCountdownTimer:r.showCountdownTimer,delay:r.STATUS_INTERVAL,countdownTime:r.COUNTDOWN_MINUTES,throttleTime:r.THROTTLE_TIME,throttleInterval:r.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}):this.props.storedPaymentMethodId?t(s,{showPayButton:this.props.showPayButton,name:this.displayName,payButton:this.payButton,onSubmit:this.submit,setComponentRef:this.setComponentRef}):t(o,m(p({},this.props),{setComponentRef:this.setComponentRef,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton}))}}a(l,"type",i.blik);export{l as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import{Await as r}from"../internal/Await/Await.js";import n from"./config.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function p(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){a(t,e,o[e])})}return t}function l(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class m extends e{formatData(){var t,e;const o=!!this.props.storedPaymentMethodId;return{paymentMethod:p({type:m.type},!o&&{blikCode:null===(e=this.state)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.blikCode},o&&{storedPaymentMethodId:this.props.storedPaymentMethodId})}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId&&this.props.label?this.props.name:null}componentToRender(){return this.props.paymentData?t(r,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.handleError,onComplete:this.onComplete,brandLogo:this.icon,brandName:this.displayName,type:n.type,messageText:this.props.i18n.get(n.messageTextId),awaitText:this.props.i18n.get(n.awaitTextId),showCountdownTimer:n.showCountdownTimer,delay:n.STATUS_INTERVAL,countdownTime:n.COUNTDOWN_MINUTES,throttleTime:n.THROTTLE_TIME,throttleInterval:n.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}):this.props.storedPaymentMethodId?t(s,{showPayButton:this.props.showPayButton,name:this.displayName,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,l(p({ref:t=>{this.componentRef=t}},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton}))}}a(m,"type",i.blik);export{m as default};
2
2
  //# sourceMappingURL=Blik.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport { Await } from '../internal/Await';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n setComponentRef={this.setComponentRef}\n />\n ) : (\n <BlikInput\n {...this.props}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default BlikElement;\n"],"names":["BlikElement","UIElement","formatData","_this_state_data","_this_state","recurringPayment","this","props","storedPaymentMethodId","paymentMethod","_object_spread","type","blikCode","state","data","isValid","displayName","label","name","additionalInfo","componentToRender","paymentData","h","Await","clientKey","onError","handleError","onComplete","brandLogo","icon","brandName","config","messageText","i18n","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","RedirectButton","showPayButton","payButton","onSubmit","submit","setComponentRef","BlikInput","onChange","setState","_define_property","TxVariants","blik"],"mappings":"+oCAgBA,MAAMA,UAAoBC,EAGtBC,UAAAA,OAMiDC,EAAAC,EAL7C,MAAMC,IAAqBC,KAAKC,MAAMC,sBAEtC,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMX,EAAYW,OACbN,GAAoB,CAAEO,SAAoB,QAAVR,EAAAE,KAAKO,iBAALT,GAAgB,QAAhBD,EAAAC,EAAYU,YAAZ,IAAAX,OAAA,EAAAA,EAAkBS,UACnDP,GAAoB,CAAEG,sBAAuBF,KAAKC,MAAMC,wBAGxE,CAEA,WAAIO,GACA,QAAIT,KAAKC,MAAMC,yBAINF,KAAKO,MAAME,OACxB,CAEA,eAAIC,GACA,OAAIV,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMU,MAEfX,KAAKC,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAIb,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMW,KAEf,IACX,CAOA,iBAAAE,GACI,OAAId,KAAKC,MAAMc,YAEPC,EAACC,EAAAA,CACGC,UAAWlB,KAAKC,MAAMiB,UACtBH,YAAaf,KAAKC,MAAMc,YACxBI,QAASnB,KAAKoB,YACdC,WAAYrB,KAAKqB,WACjBC,UAAWtB,KAAKuB,KAChBC,UAAWxB,KAAKU,YAChBL,KAAMoB,EAAOpB,KACbqB,YAAa1B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOI,eACxCC,UAAW9B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOM,aACtCC,mBAAoBP,EAAOO,mBAC3BC,MAAOR,EAAOS,gBACdC,cAAeV,EAAOW,kBACtBC,aAAcZ,EAAOa,cACrBC,iBAAkBd,EAAOe,kBACzBC,gBAAiBzC,KAAKyC,kBAK3BzC,KAAKC,MAAMC,sBACdc,EAAC0B,EAAAA,CACGC,cAAe3C,KAAKC,MAAM0C,cAC1B/B,KAAMZ,KAAKU,YACXkC,UAAW5C,KAAK4C,UAChBC,SAAU7C,KAAK8C,OACfC,gBAAiB/C,KAAK+C,kBAG1B/B,EAACgC,EAAAA,EAAAA,EAAAA,GACOhD,KAAKC,OAAK,CACd8C,gBAAiB/C,KAAK+C,gBACtBE,SAAUjD,KAAKkD,SACfL,SAAU7C,KAAK8C,OACfF,UAAW5C,KAAK4C,YAG5B,EAjFAO,EADEzD,EACqBW,OAAO+C,EAAWC"}
1
+ {"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport { Await } from '../internal/Await';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <BlikInput\n // @ts-ignore Ref is used by preact component\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default BlikElement;\n"],"names":["BlikElement","UIElement","formatData","_this_state_data","_this_state","recurringPayment","this","props","storedPaymentMethodId","paymentMethod","_object_spread","type","blikCode","state","data","isValid","displayName","label","name","additionalInfo","componentToRender","paymentData","h","Await","clientKey","onError","handleError","onComplete","brandLogo","icon","brandName","config","messageText","i18n","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","RedirectButton","showPayButton","payButton","onSubmit","submit","ref","componentRef","BlikInput","onChange","setState","_define_property","TxVariants","blik"],"mappings":"+oCAgBA,MAAMA,UAAoBC,EAGtBC,UAAAA,OAMiDC,EAAAC,EAL7C,MAAMC,IAAqBC,KAAKC,MAAMC,sBAEtC,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMX,EAAYW,OACbN,GAAoB,CAAEO,SAAoB,QAAVR,EAAAE,KAAKO,iBAALT,GAAgB,QAAhBD,EAAAC,EAAYU,YAAZ,IAAAX,OAAA,EAAAA,EAAkBS,UACnDP,GAAoB,CAAEG,sBAAuBF,KAAKC,MAAMC,wBAGxE,CAEA,WAAIO,GACA,QAAIT,KAAKC,MAAMC,yBAINF,KAAKO,MAAME,OACxB,CAEA,eAAIC,GACA,OAAIV,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMU,MAEfX,KAAKC,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAIb,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMW,KAEf,IACX,CAOA,iBAAAE,GACI,OAAId,KAAKC,MAAMc,YAEPC,EAACC,EAAAA,CACGC,UAAWlB,KAAKC,MAAMiB,UACtBH,YAAaf,KAAKC,MAAMc,YACxBI,QAASnB,KAAKoB,YACdC,WAAYrB,KAAKqB,WACjBC,UAAWtB,KAAKuB,KAChBC,UAAWxB,KAAKU,YAChBL,KAAMoB,EAAOpB,KACbqB,YAAa1B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOI,eACxCC,UAAW9B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOM,aACtCC,mBAAoBP,EAAOO,mBAC3BC,MAAOR,EAAOS,gBACdC,cAAeV,EAAOW,kBACtBC,aAAcZ,EAAOa,cACrBC,iBAAkBd,EAAOe,kBACzBC,gBAAiBzC,KAAKyC,kBAK3BzC,KAAKC,MAAMC,sBACdc,EAAC0B,EAAAA,CACGC,cAAe3C,KAAKC,MAAM0C,cAC1B/B,KAAMZ,KAAKU,YACXkC,UAAW5C,KAAK4C,UAChBC,SAAU7C,KAAK8C,OACfC,IAAKA,IACD/C,KAAKgD,aAAeD,KAI5B/B,EAACiC,EAAAA,EAAAA,EAAAA,CAEGF,IAAKA,IACD/C,KAAKgD,aAAeD,IAEpB/C,KAAKC,OAAK,CACdiD,SAAUlD,KAAKmD,SACfN,SAAU7C,KAAK8C,OACfF,UAAW5C,KAAK4C,YAG5B,EAtFAQ,EADE1D,EACqBW,OAAOgD,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useEffect as o,useState as r,useRef as t}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as l}from"../../../core/Context/CoreProvider.js";import i from"../../internal/FormFields/Field/Field.js";import a from"../../../utils/useForm/useForm.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{digitsOnlyFormatter as s}from"../../../utils/Formatters/formatters.js";import n from"../../../core/Context/useImage.js";import d from"../../internal/FormFields/InputText.js";import{PREFIX as m}from"../../internal/Icon/constants.js";function u(u){var c,p,f;const{i18n:k}=l(),b=n(),{handleChangeFor:C,triggerValidation:h,data:g,valid:v,errors:F,isValid:j}=a({schema:["blikCode"],rules:{blikCode:{validate:e=>6===(null==e?void 0:e.length),errorMessage:"blik.invalid",modes:["blur"]}},formatters:{blikCode:s}});o(()=>{var e;null===(e=u.onChange)||void 0===e||e.call(u,{data:g,errors:F,valid:v,isValid:Boolean(j)},this)},[g,v,F,j]);const[x,y]=r("ready"),M=t({setStatus:y,showValidation:()=>{h()}});return o(()=>{u.setComponentRef(M.current)},[u.setComponentRef]),e("div",{className:"adyen-checkout__blik"},e("p",{className:"adyen-checkout__blik__helper"},k.get("blik.help")),e(i,{errorMessage:"string"==typeof(null===(c=F.blikCode)||void 0===c?void 0:c.errorMessage)&&k.get(F.blikCode.errorMessage),label:k.get("blik.code"),classNameModifiers:["blikCode","50"],isValid:v.blikCode,dir:"ltr",name:"blikCode"},e(d,{value:g.blikCode,name:"blikCode",spellcheck:!1,required:!0,autocorrect:"off",autocomplete:"off",onInput:C("blikCode","input"),onBlur:C("blikCode","blur"),placeholder:null==u||null===(p=u.placeholders)||void 0===p?void 0:p.blikCode,inputMode:"numeric",maxLength:6})),u.showPayButton&&(null===(f=u.payButton)||void 0===f?void 0:f.call(u,{status:x,icon:b({imageFolder:"components/"})(`${m}lock`)})))}u.defaultProps={data:{blikCode:""}};export{u as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useEffect as o,useState as r}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import i from"../../internal/FormFields/Field/Field.js";import l from"../../../utils/useForm/useForm.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{digitsOnlyFormatter as a}from"../../../utils/Formatters/formatters.js";import s from"../../../core/Context/useImage.js";import d from"../../internal/FormFields/InputText.js";import{PREFIX as n}from"../../internal/Icon/constants.js";function m(m){var u;const{i18n:c}=t(),p=s(),{handleChangeFor:k,triggerValidation:b,data:f,valid:h,errors:C,isValid:g}=l({schema:["blikCode"],rules:{blikCode:{validate:e=>6===(null==e?void 0:e.length),errorMessage:"blik.invalid",modes:["blur"]}},formatters:{blikCode:a}});o(()=>{m.onChange({data:f,errors:C,valid:h,isValid:g},this)},[f,h,C,g]);const[F,v]=r("ready");return this.setStatus=v,this.showValidation=b,e("div",{className:"adyen-checkout__blik"},e("p",{className:"adyen-checkout__blik__helper"},c.get("blik.help")),e(i,{errorMessage:!!C.blikCode&&c.get(C.blikCode.errorMessage),label:c.get("blik.code"),classNameModifiers:["blikCode","50"],isValid:h.blikCode,dir:"ltr",name:"blikCode"},e(d,{value:f.blikCode,name:"blikCode",spellcheck:!1,required:!0,autocorrect:"off",autocomplete:"off",onInput:k("blikCode","input"),onBlur:k("blikCode","blur"),placeholder:null==m||null===(u=m.placeholders)||void 0===u?void 0:u.blikCode,inputMode:"numeric",maxLength:6})),m.showPayButton&&m.payButton({status:F,icon:p({imageFolder:"components/"})(`${n}lock`)}))}m.defaultProps={data:{blikCode:""}};export{m as default};
2
2
  //# sourceMappingURL=BlikInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlikInput.js","sources":["../../../../../src/components/Blik/components/BlikInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport './BlikInput.scss';\nimport useForm from '../../../utils/useForm';\nimport { digitsOnlyFormatter } from '../../../utils/Formatters/formatters';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport { ComponentMethodsRef, UIElementProps } from '../../internal/UIElement/types';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport { OnChangeDataErrors, PaymentData } from '../../../types';\n\ninterface BlikInputProps extends UIElementProps {\n data?: BlikInputDataState;\n placeholders?: BlikInputDataState;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n}\n\ninterface BlikInputDataState {\n blikCode: string;\n}\n\nfunction BlikInput(props: Readonly<BlikInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BlikInputDataState>({\n schema: ['blikCode'],\n rules: {\n blikCode: {\n validate: code => code?.length === 6,\n errorMessage: 'blik.invalid',\n modes: ['blur']\n }\n },\n formatters: {\n blikCode: digitsOnlyFormatter\n }\n });\n\n useEffect(() => {\n props.onChange?.({ data: data as unknown as PaymentData, errors: errors as OnChangeDataErrors, valid, isValid: Boolean(isValid) }, this);\n }, [data, valid, errors, isValid]);\n\n const [status, setStatus] = useState('ready');\n\n const blikComponentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.setComponentRef(blikComponentRef.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__blik\">\n <p className=\"adyen-checkout__blik__helper\">{i18n.get('blik.help')}</p>\n <Field\n errorMessage={typeof errors.blikCode?.errorMessage === 'string' ? i18n.get(errors.blikCode.errorMessage) : false}\n label={i18n.get('blik.code')}\n classNameModifiers={['blikCode', '50']}\n isValid={valid.blikCode}\n dir={'ltr'}\n name={'blikCode'}\n >\n <InputText\n value={data.blikCode}\n name={'blikCode'}\n spellcheck={false}\n required={true}\n autocorrect={'off'}\n autocomplete={'off'}\n onInput={handleChangeFor('blikCode', 'input')}\n onBlur={handleChangeFor('blikCode', 'blur')}\n placeholder={props?.placeholders?.blikCode}\n inputMode={'numeric'}\n maxLength={6}\n />\n </Field>\n\n {props.showPayButton &&\n props.payButton?.({\n status,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)\n })}\n </div>\n );\n}\n\nBlikInput.defaultProps = { data: { blikCode: '' } };\n\nexport default BlikInput;\n"],"names":["BlikInput","props","errors","i18n","useCoreContext","getImage","useImage","handleChangeFor","triggerValidation","data","valid","isValid","useForm","schema","rules","blikCode","validate","code","length","errorMessage","modes","formatters","digitsOnlyFormatter","useEffect","onChange","Boolean","this","status","setStatus","useState","blikComponentRef","useRef","showValidation","setComponentRef","current","h","div","className","p","get","Field","label","classNameModifiers","dir","name","InputText","value","spellcheck","required","autocorrect","autocomplete","onInput","onBlur","placeholder","placeholders","inputMode","maxLength","showPayButton","payButton","icon","imageFolder","PREFIX","defaultProps"],"mappings":"0oBAuBA,SAASA,EAAUC,GAsCkBC,IAAAA,EAgBJD,EAOjBA,EA5DZ,MAAME,KAAEA,GAASC,IACXC,EAAWC,KACXC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKR,OAAEA,EAAMS,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,YACTC,MAAO,CACHC,SAAU,CACNC,SAAUC,GAAyB,KAAjBA,aAAAA,EAAAA,EAAMC,QACxBC,aAAc,eACdC,MAAO,CAAC,UAGhBC,WAAY,CACRN,SAAUO,KAIlBC,EAAU,KACNtB,IAAAA,EAAc,QAAdA,EAAAA,EAAMuB,gBAANvB,IAAAA,GAAAA,OAAAA,EAAiB,CAAEQ,KAAMA,EAAgCP,OAAQA,EAA8BQ,QAAOC,QAASc,QAAQd,IAAYe,OACpI,CAACjB,EAAMC,EAAOR,EAAQS,IAEzB,MAAOgB,EAAQC,GAAaC,EAAS,SAE/BC,EAAmBC,EAA4B,CACjDH,UAAWA,EACXI,eAAgB,KACZxB,OAQR,OAJAe,EAAU,KACNtB,EAAMgC,gBAAgBH,EAAiBI,UACxC,CAACjC,EAAMgC,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,wBACXF,EAACG,IAAAA,CAAED,UAAU,gCAAgClC,EAAKoC,IAAI,cACtDJ,EAACK,EAAAA,CACGrB,aAAuD,iBAAnB,QAAfjB,EAAAA,EAAOa,oBAAPb,SAAAA,EAAiBiB,eAA4BhB,EAAKoC,IAAIrC,EAAOa,SAASI,cAC3FsB,MAAOtC,EAAKoC,IAAI,aAChBG,mBAAoB,CAAC,WAAY,MACjC/B,QAASD,EAAMK,SACf4B,IAAK,MACLC,KAAM,YAENT,EAACU,EAAAA,CACGC,MAAOrC,EAAKM,SACZ6B,KAAM,WACNG,YAAY,EACZC,UAAU,EACVC,YAAa,MACbC,aAAc,MACdC,QAAS5C,EAAgB,WAAY,SACrC6C,OAAQ7C,EAAgB,WAAY,QACpC8C,YAAapD,SAAmB,QAAnBA,EAAAA,EAAOqD,oBAAPrD,IAAAA,OAAAA,EAAAA,EAAqBc,SAClCwC,UAAW,UACXC,UAAW,KAIlBvD,EAAMwD,gBACY,QAAfxD,EAAAA,EAAMyD,iBAANzD,IAAAA,OAAAA,EAAAA,OAAAA,EAAkB,CACd0B,SACAgC,KAAMtD,EAAS,CAAEuD,YAAa,eAAxBvD,CAAyC,GAAGwD,YAItE,CAEA7D,EAAU8D,aAAe,CAAErD,KAAM,CAAEM,SAAU"}
1
+ {"version":3,"file":"BlikInput.js","sources":["../../../../../src/components/Blik/components/BlikInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport './BlikInput.scss';\nimport useForm from '../../../utils/useForm';\nimport { digitsOnlyFormatter } from '../../../utils/Formatters/formatters';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport { UIElementProps } from '../../internal/UIElement/types';\nimport { PREFIX } from '../../internal/Icon/constants';\n\ninterface BlikInputProps extends UIElementProps {\n data?: BlikInputDataState;\n placeholders?: BlikInputDataState;\n}\n\ninterface BlikInputDataState {\n blikCode: string;\n}\n\nfunction BlikInput(props: Readonly<BlikInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BlikInputDataState>({\n schema: ['blikCode'],\n rules: {\n blikCode: {\n validate: code => code?.length === 6,\n errorMessage: 'blik.invalid',\n modes: ['blur']\n }\n },\n formatters: {\n blikCode: digitsOnlyFormatter\n }\n });\n\n useEffect(() => {\n // @ts-ignore TODO: Fix this. Preact component types should not inherit from UIElementProps.\n props.onChange({ data, errors, valid, isValid }, this);\n }, [data, valid, errors, isValid]);\n\n const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n return (\n <div className=\"adyen-checkout__blik\">\n <p className=\"adyen-checkout__blik__helper\">{i18n.get('blik.help')}</p>\n <Field\n errorMessage={!!errors.blikCode && i18n.get(errors.blikCode.errorMessage)}\n label={i18n.get('blik.code')}\n classNameModifiers={['blikCode', '50']}\n isValid={valid.blikCode}\n dir={'ltr'}\n name={'blikCode'}\n >\n <InputText\n value={data.blikCode}\n name={'blikCode'}\n spellcheck={false}\n required={true}\n autocorrect={'off'}\n autocomplete={'off'}\n onInput={handleChangeFor('blikCode', 'input')}\n onBlur={handleChangeFor('blikCode', 'blur')}\n placeholder={props?.placeholders?.blikCode}\n inputMode={'numeric'}\n maxLength={6}\n />\n </Field>\n\n {props.showPayButton &&\n props.payButton({\n status,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)\n })}\n </div>\n );\n}\n\nBlikInput.defaultProps = { data: { blikCode: '' } };\n\nexport default BlikInput;\n"],"names":["BlikInput","props","i18n","useCoreContext","getImage","useImage","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","blikCode","validate","code","length","errorMessage","modes","formatters","digitsOnlyFormatter","useEffect","onChange","this","status","setStatus","useState","showValidation","h","div","className","p","get","Field","label","classNameModifiers","dir","name","InputText","value","spellcheck","required","autocorrect","autocomplete","onInput","onBlur","placeholder","placeholders","inputMode","maxLength","showPayButton","payButton","icon","imageFolder","PREFIX","defaultProps"],"mappings":"8nBAqBA,SAASA,EAAUC,GA8CcA,IAAAA,EA7C7B,MAAMC,KAAEA,GAASC,IACXC,EAAWC,KACXC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,YACTC,MAAO,CACHC,SAAU,CACNC,SAAUC,GAAyB,KAAjBA,aAAAA,EAAAA,EAAMC,QACxBC,aAAc,eACdC,MAAO,CAAC,UAGhBC,WAAY,CACRN,SAAUO,KAIlBC,EAAU,KAENtB,EAAMuB,SAAS,CAAEhB,OAAME,SAAQD,QAAOE,WAAWc,OAClD,CAACjB,EAAMC,EAAOC,EAAQC,IAEzB,MAAOe,EAAQC,GAAaC,EAAS,SAIrC,OAHAH,KAAKE,UAAYA,EACjBF,KAAKI,eAAiBtB,EAGlBuB,EAACC,MAAAA,CAAIC,UAAU,wBACXF,EAACG,IAAAA,CAAED,UAAU,gCAAgC9B,EAAKgC,IAAI,cACtDJ,EAACK,EAAAA,CACGhB,eAAgBT,EAAOK,UAAYb,EAAKgC,IAAIxB,EAAOK,SAASI,cAC5DiB,MAAOlC,EAAKgC,IAAI,aAChBG,mBAAoB,CAAC,WAAY,MACjC1B,QAASF,EAAMM,SACfuB,IAAK,MACLC,KAAM,YAENT,EAACU,EAAAA,CACGC,MAAOjC,EAAKO,SACZwB,KAAM,WACNG,YAAY,EACZC,UAAU,EACVC,YAAa,MACbC,aAAc,MACdC,QAASxC,EAAgB,WAAY,SACrCyC,OAAQzC,EAAgB,WAAY,QACpC0C,YAAa/C,SAAmB,QAAnBA,EAAAA,EAAOgD,oBAAPhD,IAAAA,OAAAA,EAAAA,EAAqBc,SAClCmC,UAAW,UACXC,UAAW,KAIlBlD,EAAMmD,eACHnD,EAAMoD,UAAU,CACZ3B,SACA4B,KAAMlD,EAAS,CAAEmD,YAAa,eAAxBnD,CAAyC,GAAGoD,WAItE,CAEAxD,EAAUyD,aAAe,CAAEjD,KAAM,CAAEO,SAAU"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import o from"./components/CardInput/CardInput.js";import e from"../../utils/browserInfo.js";import{triggerBinLookUp as n}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{fieldTypeToSnakeCase as i,isSecuredField as s}from"../internal/SecuredFields/utils.js";import{reject as r,notFalsy as a}from"../../utils/commonUtils.js";import{shouldIncludeInstallmentsInPaymentData as l}from"./components/CardInput/utils.js";import d from"../internal/ClickToPay/services/create-clicktopay-service.js";import u from"./components/ClickToPayWrapper.js";import{TxVariants as c}from"../tx-variants.js";import{UIElement as p}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import m,{IMPLEMENTATION_ERROR as y}from"../../core/Errors/AdyenCheckoutError.js";import f from"./components/CardInput/defaultProps.js";import{AnalyticsInfoEvent as v,InfoEventType as b}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function g(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function P(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},n=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.forEach(function(o){g(t,o,e[o])})}return t}function C(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}class S extends p{setStatus(t){var o,e;return(null===(o=this.componentRef)||void 0===o?void 0:o.setStatus)&&this.componentRef.setStatus(t),(null===(e=this.clickToPayRef)||void 0===e?void 0:e.setStatus)&&this.clickToPayRef.setStatus(t),this}getPaymentMethodConfigFromResponse(t){var o;return(null==t?void 0:t.fundingSource)?null===(o=this.core.paymentMethodsResponse)||void 0===o?void 0:o.findByFundingSource(t.type,t.fundingSource):super.getPaymentMethodConfigFromResponse(t)}formatProps(t){var o,e,n,i,s,r,l,d,u,p,h,v,b,g,S,k,w,R,B,O,T,j,I;const M=null!==(o=null===(r=t.session)||void 0===r||null===(s=r.configuration)||void 0===s?void 0:s.enableStoreDetails)&&void 0!==o?o:t.enableStoreDetails,A=!(0===(null===(l=t.amount)||void 0===l?void 0:l.value))&&M,D=t.storedPaymentMethodId||t.id,F=D&&(null==t||null===(d=t.supportedShopperInteractions)||void 0===d?void 0:d.includes("Ecommerce"));if(D&&!F)throw new m(y,"You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions");const N=t.installmentOptions;t.session&&a(N)&&console.warn("WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\n\n");const E=t.session?null!==(e=null===(p=t.session)||void 0===p||null===(u=p.configuration)||void 0===u?void 0:u.installmentOptions)&&void 0!==e?e:f.installmentOptions:N;return P(C(P({},t),{holderNameRequired:!!t.hasHolderName&&t.holderNameRequired,hasCVC:!(t.brand&&"bcmc"===t.brand||t.hideCVC),billingAddressRequired:!t.storedPaymentMethodId&&t.billingAddressRequired,billingAddressMode:t.onAddressLookup?f.billingAddressMode:t.billingAddressMode,brand:null!==(n=t.brand)&&void 0!==n?n:c.card,countryCode:t.countryCode?t.countryCode.toLowerCase():null,configuration:C(P({},t.configuration),{socialSecurityNumberMode:null!==(i=null===(h=t.configuration)||void 0===h?void 0:h.socialSecurityNumberMode)&&void 0!==i?i:"auto"}),brandsConfiguration:t.brandsConfiguration||(null===(v=t.configuration)||void 0===v?void 0:v.brandsConfiguration)||{},icon:t.icon||(null===(b=t.configuration)||void 0===b?void 0:b.icon),installmentOptions:E,enableStoreDetails:M,showStoreDetailsCheckbox:A,clickToPayConfiguration:C(P({},t.clickToPayConfiguration),{disableOtpAutoFocus:(null===(g=t.clickToPayConfiguration)||void 0===g?void 0:g.disableOtpAutoFocus)||!1,shopperEmail:(null===(S=t.clickToPayConfiguration)||void 0===S?void 0:S.shopperEmail)||(null===(w=this.core.options)||void 0===w||null===(k=w.session)||void 0===k?void 0:k.shopperEmail),telephoneNumber:(null===(R=t.clickToPayConfiguration)||void 0===R?void 0:R.telephoneNumber)||(null===(O=this.core.options)||void 0===O||null===(B=O.session)||void 0===B?void 0:B.telephoneNumber),locale:(null===(T=t.clickToPayConfiguration)||void 0===T?void 0:T.locale)||(null===(I=t.i18n)||void 0===I||null===(j=I.locale)||void 0===j?void 0:j.replace("-","_"))})}),D&&{storedPaymentMethodId:D})}formatData(){var t;const o=this.state.selectedBrandValue;return C(P({paymentMethod:P({type:S.type},this.state.data,this.props.storedPaymentMethodId&&{storedPaymentMethodId:this.props.storedPaymentMethodId,holderName:null!==(t=this.props.holderName)&&void 0!==t?t:""},o&&{brand:o},this.props.fundingSource&&{fundingSource:this.props.fundingSource},this.state.fastlaneData&&{fastlaneData:btoa(JSON.stringify(this.state.fastlaneData))})},this.state.billingAddress&&{billingAddress:this.state.billingAddress},this.state.socialSecurityNumber&&{socialSecurityNumber:this.state.socialSecurityNumber},this.storePaymentMethodPayload,l(this.state.installments)&&{installments:this.state.installments}),{browserInfo:this.browserInfo,origin:!!window&&window.location.origin})}beforeRender(t){if(null==t?void 0:t.originalAction)return;const o=new v(P({type:b.rendered,component:this.type,configData:C(P({},t),{showPayButton:this.props.showPayButton})},(null==t?void 0:t.oneClick)&&{isStoredPaymentMethod:!0,brand:t.brand}));this.analytics.sendAnalytics(o)}updateStyles(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.updateStyles)&&this.componentRef.updateStyles(t),this}setFocusOn(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.setFocusOn)&&this.componentRef.setFocusOn(t),this}processBinLookupResponse(t,o=!1){var e;return(null===(e=this.componentRef)||void 0===e?void 0:e.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(t,o),this}handleUnsupportedCard(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(t),this}onBinLookup(t){if(!t.isReset){var o,e;const n=r("supportedBrandsRaw").from(t);null===(o=(e=this.props).onBinLookup)||void 0===o||o.call(e,n)}}get storePaymentMethodPayload(){var t,o;if((null===(t=this.props.storedPaymentMethodId)||void 0===t?void 0:t.length)>0)return{};if(0===(null===(o=this.props.amount)||void 0===o?void 0:o.value))return this.props.enableStoreDetails?{storePaymentMethod:!0}:{};return this.props.showStoreDetailsCheckbox&&void 0!==this.state.storePaymentMethod?{storePaymentMethod:Boolean(this.state.storePaymentMethod)}:{}}get isValid(){return!!this.state.isValid}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()(this.props.brand)}get brands(){const{brands:t,brandsConfiguration:o}=this.props;return t?t.map(t=>{var e,n;return{icon:null!==(e=null==o||null===(n=o[t])||void 0===n?void 0:n.icon)&&void 0!==e?e:this.props.modules.resources.getImage()(t),name:t}}):[]}get displayName(){return this.props.storedPaymentMethodId?`•••• ${this.props.lastFour}`:this.props.name||S.type}get accessibleName(){return(this.props.name||S.type)+(this.props.storedPaymentMethodId?" "+this.props.i18n.get("creditCard.storedCard.description.ariaLabel").replace("%@",this.props.lastFour):"")}get browserInfo(){return e()}renderCardInput(e=!0){return t(o,C(P({setComponentRef:this.setComponentRef},this.props,this.state),{billingAddressMode:this.props.billingAddressMode,onSubmitAnalytics:this.submitAnalytics,onChange:this.setState,onSubmit:this.submit,handleKeyDown:this.handleKeyDown,payButton:this.payButton,onBrand:this.onBrand,onBinValue:this.onBinValue,brand:this.props.brand,brandsIcons:this.brands,isPayButtonPrimaryVariant:e,resources:this.resources,onFocus:this.onFocus,onBlur:this.onBlur,onConfigSuccess:this.onConfigSuccess}))}componentToRender(){return t(u,{configuration:this.props.clickToPayConfiguration,clickToPayService:this.clickToPayService,isStandaloneComponent:!1,setClickToPayRef:this.setClickToPayRef,onSetStatus:this.setElementStatus,onSubmit:this.handleClickToPaySubmit,onError:this.handleError},t=>this.renderCardInput(t))}constructor(o,e){var r;(super(o,e),g(this,"clickToPayService",void 0),g(this,"componentRef",void 0),g(this,"clickToPayRef",null),g(this,"setClickToPayRef",t=>{this.clickToPayRef=t}),g(this,"onBrand",t=>{var o,e;null===(o=(e=this.props).onBrand)||void 0===o||o.call(e,t)}),g(this,"handleClickToPaySubmit",t=>{this.setState({data:P({},t),valid:{},errors:{},isValid:!0}),this.submit()}),g(this,"onConfigSuccess",t=>{var o,e;const n=new v({component:this.type,type:b.configured});this.submitAnalytics(n),null===(o=(e=this.props).onConfigSuccess)||void 0===o||o.call(e,t)}),g(this,"onFocus",t=>{const o=new v({component:this.type,type:b.focus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onFocus)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onFocus)||void 0===r||r.call(a,t)}),g(this,"onBlur",t=>{const o=new v({component:this.type,type:b.unfocus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onBlur)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onBlur)||void 0===r||r.call(a,t)}),g(this,"onBinValue",n(this)),g(this,"payButton",o=>{var e,n;const i=0===(null===(e=this.props.amount)||void 0===e?void 0:e.value),s=(null===(n=this.props.storedPaymentMethodId)||void 0===n?void 0:n.length)>0;return t(h,C(P({},o),{label:i&&!s?this.props.i18n.get("payButton.saveDetails"):"",onClick:this.submit,showReview:!!this.props.onReview}))}),e&&!e._disableClickToPay&&"prepaid"!==this.props.fundingSource)&&(this.clickToPayService=d(this.props.configuration,this.props.clickToPayConfiguration,this.props.environment,this.analytics),null===(r=this.clickToPayService)||void 0===r||r.initialize())}}g(S,"type",c.scheme),g(S,"defaultProps",P({showFormInstruction:!0,_disableClickToPay:!1,doBinLookup:!0},r(["type","setComponentRef"]).from(f)));export{S as CardElement,S as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import o from"./components/CardInput/CardInput.js";import e from"../../utils/browserInfo.js";import{triggerBinLookUp as n}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{fieldTypeToSnakeCase as i,isSecuredField as s}from"../internal/SecuredFields/utils.js";import{reject as r,notFalsy as a}from"../../utils/commonUtils.js";import{shouldIncludeInstallmentsInPaymentData as l}from"./components/CardInput/utils.js";import d from"../internal/ClickToPay/services/create-clicktopay-service.js";import u from"./components/ClickToPayWrapper.js";import{TxVariants as c}from"../tx-variants.js";import{UIElement as p}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import m,{IMPLEMENTATION_ERROR as y}from"../../core/Errors/AdyenCheckoutError.js";import f from"./components/CardInput/defaultProps.js";import{AnalyticsInfoEvent as v,InfoEventType as b}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function g(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function P(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},n=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.forEach(function(o){g(t,o,e[o])})}return t}function C(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}class S extends p{setStatus(t,o){var e,n;return(null===(e=this.componentRef)||void 0===e?void 0:e.setStatus)&&this.componentRef.setStatus(t,o),(null===(n=this.clickToPayRef)||void 0===n?void 0:n.setStatus)&&this.clickToPayRef.setStatus(t),this}getPaymentMethodConfigFromResponse(t){var o;return(null==t?void 0:t.fundingSource)?null===(o=this.core.paymentMethodsResponse)||void 0===o?void 0:o.findByFundingSource(t.type,t.fundingSource):super.getPaymentMethodConfigFromResponse(t)}formatProps(t){var o,e,n,i,s,r,l,d,u,p,h,v,b,g,S,k,w,R,B,O,T,j,I;const M=null!==(o=null===(r=t.session)||void 0===r||null===(s=r.configuration)||void 0===s?void 0:s.enableStoreDetails)&&void 0!==o?o:t.enableStoreDetails,A=!(0===(null===(l=t.amount)||void 0===l?void 0:l.value))&&M,D=t.storedPaymentMethodId||t.id,F=D&&(null==t||null===(d=t.supportedShopperInteractions)||void 0===d?void 0:d.includes("Ecommerce"));if(D&&!F)throw new m(y,"You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions");const N=t.installmentOptions;t.session&&a(N)&&console.warn("WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\n\n");const E=t.session?null!==(e=null===(p=t.session)||void 0===p||null===(u=p.configuration)||void 0===u?void 0:u.installmentOptions)&&void 0!==e?e:f.installmentOptions:N;return P(C(P({},t),{holderNameRequired:!!t.hasHolderName&&t.holderNameRequired,hasCVC:!(t.brand&&"bcmc"===t.brand||t.hideCVC),billingAddressRequired:!t.storedPaymentMethodId&&t.billingAddressRequired,billingAddressMode:t.onAddressLookup?f.billingAddressMode:t.billingAddressMode,brand:null!==(n=t.brand)&&void 0!==n?n:c.card,countryCode:t.countryCode?t.countryCode.toLowerCase():null,configuration:C(P({},t.configuration),{socialSecurityNumberMode:null!==(i=null===(h=t.configuration)||void 0===h?void 0:h.socialSecurityNumberMode)&&void 0!==i?i:"auto"}),brandsConfiguration:t.brandsConfiguration||(null===(v=t.configuration)||void 0===v?void 0:v.brandsConfiguration)||{},icon:t.icon||(null===(b=t.configuration)||void 0===b?void 0:b.icon),installmentOptions:E,enableStoreDetails:M,showStoreDetailsCheckbox:A,clickToPayConfiguration:C(P({},t.clickToPayConfiguration),{disableOtpAutoFocus:(null===(g=t.clickToPayConfiguration)||void 0===g?void 0:g.disableOtpAutoFocus)||!1,shopperEmail:(null===(S=t.clickToPayConfiguration)||void 0===S?void 0:S.shopperEmail)||(null===(w=this.core.options)||void 0===w||null===(k=w.session)||void 0===k?void 0:k.shopperEmail),telephoneNumber:(null===(R=t.clickToPayConfiguration)||void 0===R?void 0:R.telephoneNumber)||(null===(O=this.core.options)||void 0===O||null===(B=O.session)||void 0===B?void 0:B.telephoneNumber),locale:(null===(T=t.clickToPayConfiguration)||void 0===T?void 0:T.locale)||(null===(I=t.i18n)||void 0===I||null===(j=I.locale)||void 0===j?void 0:j.replace("-","_"))})}),D&&{storedPaymentMethodId:D})}formatData(){var t;const o=this.state.selectedBrandValue;return C(P({paymentMethod:P({type:S.type},this.state.data,this.props.storedPaymentMethodId&&{storedPaymentMethodId:this.props.storedPaymentMethodId,holderName:null!==(t=this.props.holderName)&&void 0!==t?t:""},o&&{brand:o},this.props.fundingSource&&{fundingSource:this.props.fundingSource},this.state.fastlaneData&&{fastlaneData:btoa(JSON.stringify(this.state.fastlaneData))})},this.state.billingAddress&&{billingAddress:this.state.billingAddress},this.state.socialSecurityNumber&&{socialSecurityNumber:this.state.socialSecurityNumber},this.storePaymentMethodPayload,l(this.state.installments)&&{installments:this.state.installments}),{browserInfo:this.browserInfo,origin:!!window&&window.location.origin})}beforeRender(t){if(null==t?void 0:t.originalAction)return;const o=new v(P({type:b.rendered,component:this.type,configData:C(P({},t),{showPayButton:this.props.showPayButton})},(null==t?void 0:t.oneClick)&&{isStoredPaymentMethod:!0,brand:t.brand}));this.analytics.sendAnalytics(o)}updateStyles(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.updateStyles)&&this.componentRef.updateStyles(t),this}setFocusOn(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.setFocusOn)&&this.componentRef.setFocusOn(t),this}processBinLookupResponse(t,o=!1){var e;return(null===(e=this.componentRef)||void 0===e?void 0:e.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(t,o),this}handleUnsupportedCard(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(t),this}onBinLookup(t){if(!t.isReset){var o,e;const n=r("supportedBrandsRaw").from(t);null===(o=(e=this.props).onBinLookup)||void 0===o||o.call(e,n)}}get storePaymentMethodPayload(){var t,o;if((null===(t=this.props.storedPaymentMethodId)||void 0===t?void 0:t.length)>0)return{};if(0===(null===(o=this.props.amount)||void 0===o?void 0:o.value))return this.props.enableStoreDetails?{storePaymentMethod:!0}:{};return this.props.showStoreDetailsCheckbox&&void 0!==this.state.storePaymentMethod?{storePaymentMethod:Boolean(this.state.storePaymentMethod)}:{}}get isValid(){return!!this.state.isValid}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()(this.props.brand)}get brands(){const{brands:t,brandsConfiguration:o}=this.props;return t?t.map(t=>{var e,n;return{icon:null!==(e=null==o||null===(n=o[t])||void 0===n?void 0:n.icon)&&void 0!==e?e:this.props.modules.resources.getImage()(t),name:t}}):[]}get displayName(){return this.props.storedPaymentMethodId?`•••• ${this.props.lastFour}`:this.props.name||S.type}get accessibleName(){return(this.props.name||S.type)+(this.props.storedPaymentMethodId?" "+this.props.i18n.get("creditCard.storedCard.description.ariaLabel").replace("%@",this.props.lastFour):"")}get browserInfo(){return e()}renderCardInput(e=!0){return t(o,C(P({setComponentRef:this.setComponentRef},this.props,this.state),{onSubmitAnalytics:this.submitAnalytics,onChange:this.setState,onSubmit:this.submit,handleKeyDown:this.handleKeyDown,payButton:this.payButton,onBrand:this.onBrand,onBinValue:this.onBinValue,brand:this.props.brand,brandsIcons:this.brands,isPayButtonPrimaryVariant:e,resources:this.resources,onFocus:this.onFocus,onBlur:this.onBlur,onConfigSuccess:this.onConfigSuccess}))}componentToRender(){return t(u,{configuration:this.props.clickToPayConfiguration,clickToPayService:this.clickToPayService,isStandaloneComponent:!1,setClickToPayRef:this.setClickToPayRef,onSetStatus:this.setElementStatus,onSubmit:this.handleClickToPaySubmit,onError:this.handleError},t=>this.renderCardInput(t))}constructor(o,e){var r;(super(o,e),g(this,"clickToPayService",void 0),g(this,"clickToPayRef",null),g(this,"setClickToPayRef",t=>{this.clickToPayRef=t}),g(this,"onBrand",t=>{var o,e;null===(o=(e=this.props).onBrand)||void 0===o||o.call(e,t)}),g(this,"handleClickToPaySubmit",t=>{this.setState({data:P({},t),valid:{},errors:{},isValid:!0}),this.submit()}),g(this,"onConfigSuccess",t=>{var o,e;const n=new v({component:this.type,type:b.configured});this.submitAnalytics(n),null===(o=(e=this.props).onConfigSuccess)||void 0===o||o.call(e,t)}),g(this,"onFocus",t=>{const o=new v({component:this.type,type:b.focus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onFocus)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onFocus)||void 0===r||r.call(a,t)}),g(this,"onBlur",t=>{const o=new v({component:this.type,type:b.unfocus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onBlur)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onBlur)||void 0===r||r.call(a,t)}),g(this,"onBinValue",n(this)),g(this,"payButton",o=>{var e,n;const i=0===(null===(e=this.props.amount)||void 0===e?void 0:e.value),s=(null===(n=this.props.storedPaymentMethodId)||void 0===n?void 0:n.length)>0;return t(h,C(P({},o),{label:i&&!s?this.props.i18n.get("payButton.saveDetails"):"",onClick:this.submit,showReview:!!this.props.onReview}))}),e&&!e._disableClickToPay&&"prepaid"!==this.props.fundingSource)&&(this.clickToPayService=d(this.props.configuration,this.props.clickToPayConfiguration,this.props.environment,this.analytics),null===(r=this.clickToPayService)||void 0===r||r.initialize())}}g(S,"type",c.scheme),g(S,"defaultProps",P({showFormInstruction:!0,_disableClickToPay:!1,doBinLookup:!0},r(["type","setComponentRef"]).from(f)));export{S as CardElement,S as default};
2
2
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport {\n CardBinLookupData,\n CardBrandData,\n CardConfigSuccessData,\n CardErrorData,\n CardFocusData,\n StylesObject\n} from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, isSecuredField } from '../internal/SecuredFields/utils';\nimport { notFalsy, reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject, PaymentMethodBrand } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { ComponentMethodsRef, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { InstallmentOptions } from './components/CardInput/components/Installments/Installments';\nimport { AddressModeOptions, CardInputRef } from './components/CardInput/types';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static readonly type: TxVariants = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n protected componentRef: CardInputRef | undefined;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef: ComponentMethodsRef | null = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static readonly defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status);\n }\n return this;\n }\n\n private readonly setClickToPayRef = (ref: ComponentMethodsRef) => {\n this.clickToPayRef = ref;\n };\n\n // This is the most self contained way of handling funding source matching\n // Alternatives would be to override getPaymentMethodConfigFromResponse and change it's signature\n protected override getPaymentMethodConfigFromResponse(componentProps: CardConfiguration) {\n if (componentProps?.fundingSource) {\n return this.core.paymentMethodsResponse?.findByFundingSource(componentProps.type, componentProps.fundingSource);\n }\n\n return super.getPaymentMethodConfigFromResponse(componentProps);\n }\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n // Take the configuration set on the card component - which is either merchant defined or default (empty object)\n // @ts-ignore 'installmentOptions' is optional on CardConfiguration (the merchant-facing type), but by this point\n // UIElement.buildElementProps has already merged CardInputDefaultProps.installmentOptions ({}) into props\n // before formatProps() is called, so the value is always defined here.\n const merchantInstallmentOptions: InstallmentOptions = props.installmentOptions;\n\n if (props.session && notFalsy(merchantInstallmentOptions)) {\n console.warn(\n 'WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\\n\\n'\n );\n }\n\n // In a session scenario, only the session's own installments configuration is used; otherwise fall back to the merchant configuration / default\n const shownInstallmentOptions: InstallmentOptions = props.session\n ? (props.session?.configuration?.installmentOptions ?? CardInputDefaultProps.installmentOptions)\n : merchantInstallmentOptions;\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n installmentOptions: shownInstallmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj: StylesObject) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName: string) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = (event: CardBrandData) => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse | null, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj: CardErrorData) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private readonly handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private readonly onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private readonly onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private readonly onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): PaymentMethodBrand[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration?.[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n showReview={!!this.props.onReview}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n billingAddressMode={this.props.billingAddressMode as AddressModeOptions}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyDown={this.handleKeyDown}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","getPaymentMethodConfigFromResponse","componentProps","_this_core_paymentMethodsResponse","fundingSource","core","paymentMethodsResponse","findByFundingSource","type","super","formatProps","props","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","merchantInstallmentOptions","installmentOptions","notFalsy","console","warn","shownInstallmentOptions","_ref1","CardInputDefaultProps","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref2","brandsConfiguration","icon","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","data","holderName","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","brandIcon","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyDown","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","isSecuredField","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","showReview","onReview","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, isSecuredField } from '../internal/SecuredFields/utils';\nimport { notFalsy, reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject, PaymentMethodBrand } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { ComponentMethodsRef, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { InstallmentOptions } from './components/CardInput/components/Installments/Installments';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static readonly type: TxVariants = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef: ComponentMethodsRef | null = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static readonly defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status);\n }\n return this;\n }\n\n private readonly setClickToPayRef = (ref: ComponentMethodsRef) => {\n this.clickToPayRef = ref;\n };\n\n // This is the most self contained way of handling funding source matching\n // Alternatives would be to override getPaymentMethodConfigFromResponse and change it's signature\n protected override getPaymentMethodConfigFromResponse(componentProps: CardConfiguration) {\n if (componentProps?.fundingSource) {\n return this.core.paymentMethodsResponse?.findByFundingSource(componentProps.type, componentProps.fundingSource);\n }\n\n return super.getPaymentMethodConfigFromResponse(componentProps);\n }\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n // Take the configuration set on the card component - which is either merchant defined or default (empty object)\n // @ts-ignore 'installmentOptions' is optional on CardConfiguration (the merchant-facing type), but by this point\n // UIElement.buildElementProps has already merged CardInputDefaultProps.installmentOptions ({}) into props\n // before formatProps() is called, so the value is always defined here.\n const merchantInstallmentOptions: InstallmentOptions = props.installmentOptions;\n\n if (props.session && notFalsy(merchantInstallmentOptions)) {\n console.warn(\n 'WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\\n\\n'\n );\n }\n\n // In a session scenario, only the session's own installments configuration is used; otherwise fall back to the merchant configuration / default\n const shownInstallmentOptions: InstallmentOptions = props.session\n ? (props.session?.configuration?.installmentOptions ?? CardInputDefaultProps.installmentOptions)\n : merchantInstallmentOptions;\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n installmentOptions: shownInstallmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse | null, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private readonly handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private readonly onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private readonly onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private readonly onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): PaymentMethodBrand[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration?.[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n showReview={!!this.props.onReview}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyDown={this.handleKeyDown}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","getPaymentMethodConfigFromResponse","componentProps","_this_core_paymentMethodsResponse","fundingSource","core","paymentMethodsResponse","findByFundingSource","type","super","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","merchantInstallmentOptions","installmentOptions","notFalsy","console","warn","shownInstallmentOptions","_ref1","CardInputDefaultProps","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref2","brandsConfiguration","icon","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","data","holderName","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","brandIcon","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyDown","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","isSecuredField","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","showReview","onReview","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\nimport { AdyenCheckoutError } from '../../../../types';\nimport { ValidationRuleResult } from '../../../../utils/Validator/ValidationRuleResult';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationRuleResult;\n billingAddress?: ValidationRuleResult;\n socialSecurityNumber?: ValidationRuleResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationRuleResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData | null;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey?: string;\n configuration: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: 'components' | 'custom';\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel?: SRPanel;\n analytics?: IAnalytics;\n risk?: RiskElement;\n resources?: Resources;\n };\n onAdditionalSFConfig?: () => void;\n onAdditionalSFRemoved?: () => void;\n onAllValid?: (o: CardAllValidData) => void;\n onAutoComplete?: (o: CardAutoCompleteData) => void;\n onBinValue?: (o: CardBinValueData) => void;\n onBlur?: (e) => void;\n onBrand?: (o: CardBrandData) => void;\n onConfigSuccess?: (O: CardConfigSuccessData) => void;\n onChange: (state) => void;\n onError?: (e: AdyenCheckoutError) => void;\n onFieldValid?: (o: CardFieldValidData) => void;\n onFocus?: (e) => void;\n onLoad?: (o: CardLoadData) => void;\n onSubmitAnalytics: (event: AbstractAnalyticsEvent) => void;\n handleKeyDown?: (event: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n onSubmit?: () => void;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showPayButton?: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n disclaimerMessage?: DisclaimerMsgObject;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: SecuredFieldsProviderRef;\n setFocusOn?: (field: string) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AAiNO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport { ValidationResult } from '../../../internal/PersonalDetails/types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationResult;\n billingAddress?: ValidationResult;\n socialSecurityNumber?: ValidationResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData | null;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey: string;\n configuration: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: 'components' | 'custom';\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel: SRPanel;\n analytics: IAnalytics;\n risk: RiskElement;\n resources: Resources;\n };\n onAdditionalSFConfig?: () => void;\n onAdditionalSFRemoved?: () => void;\n onAllValid?: (o: CardAllValidData) => void;\n onAutoComplete?: (o: CardAutoCompleteData) => void;\n onBinValue?: (o: CardBinValueData) => void;\n onBlur?: (e) => void;\n onBrand?: (o: CardBrandData) => void;\n onConfigSuccess?: (O: CardConfigSuccessData) => void;\n onChange: (state) => void;\n onError?: () => void;\n onFieldValid?: (o: CardFieldValidData) => void;\n onFocus?: (e) => void;\n onLoad?: (o: CardLoadData) => void;\n onSubmitAnalytics: (event: AbstractAnalyticsEvent) => void;\n handleKeyDown?: (event: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showPayButton: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n disclaimerMessage?: DisclaimerMsgObject;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: SecuredFieldsProviderRef;\n setFocusOn?: (who) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AA+MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}