@adyen/adyen-web 6.18.1 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/cjs/adyen.css +6 -3
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +14 -3
  6. package/dist/es/adyen.css +6 -3
  7. package/dist/es/adyen.css.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/BankTransfer/BankTransfer.js +1 -1
  11. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  12. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  13. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  14. package/dist/es/components/BankTransfer/components/BankTransferInput/validationRule.js +2 -0
  15. package/dist/es/components/BankTransfer/components/BankTransferInput/validationRule.js.map +1 -0
  16. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  17. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  18. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResultInstructions.js +2 -0
  19. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResultInstructions.js.map +1 -0
  20. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js +2 -0
  21. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js.map +1 -0
  22. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  23. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  24. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  25. package/dist/es/components/internal/Button/Button.js +1 -1
  26. package/dist/es/components/internal/Button/Button.js.map +1 -1
  27. package/dist/es/components/internal/Button/CopyIconButton.js +2 -0
  28. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -0
  29. package/dist/es/components/internal/DetailsTable/DetailsTable.js +1 -1
  30. package/dist/es/components/internal/DetailsTable/DetailsTable.js.map +1 -1
  31. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  32. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  33. package/dist/es/components/internal/Tooltip/SingletonTooltipProvider.js +2 -0
  34. package/dist/es/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -0
  35. package/dist/es/components/internal/Tooltip/Tooltip.js +2 -0
  36. package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -0
  37. package/dist/es/components/internal/Tooltip/TooltipController.js +2 -0
  38. package/dist/es/components/internal/Tooltip/TooltipController.js.map +1 -0
  39. package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
  40. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  41. package/dist/es/core/core.js +1 -1
  42. package/dist/es/external/preact/compat/dist/compat.js +2 -0
  43. package/dist/es/external/preact/compat/dist/compat.js.map +1 -0
  44. package/dist/es/index.d.ts +14 -3
  45. package/dist/es/utils/clipboard.js +1 -1
  46. package/dist/es/utils/clipboard.js.map +1 -1
  47. package/dist/es-legacy/adyen.css +6 -3
  48. package/dist/es-legacy/adyen.css.map +1 -1
  49. package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
  50. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  51. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  52. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  53. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  54. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  55. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/validationRule.js +2 -0
  56. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/validationRule.js.map +1 -0
  57. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  58. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  59. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResultInstructions.js +2 -0
  60. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResultInstructions.js.map +1 -0
  61. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js +2 -0
  62. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js.map +1 -0
  63. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  64. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  65. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  66. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  67. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  68. package/dist/es-legacy/components/internal/Button/CopyIconButton.js +2 -0
  69. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -0
  70. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js +1 -1
  71. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js.map +1 -1
  72. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  73. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  74. package/dist/es-legacy/components/internal/Tooltip/SingletonTooltipProvider.js +2 -0
  75. package/dist/es-legacy/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -0
  76. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js +2 -0
  77. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -0
  78. package/dist/es-legacy/components/internal/Tooltip/TooltipController.js +2 -0
  79. package/dist/es-legacy/components/internal/Tooltip/TooltipController.js.map +1 -0
  80. package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
  81. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  82. package/dist/es-legacy/core/core.js +1 -1
  83. package/dist/es-legacy/external/preact/compat/dist/compat.js +2 -0
  84. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -0
  85. package/dist/es-legacy/utils/clipboard.js +1 -1
  86. package/dist/es-legacy/utils/clipboard.js.map +1 -1
  87. package/package.json +1 -1
  88. package/styles/adyen.css +6 -3
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useMemo as r,useState as o,useRef as a,useEffect as t,useCallback as n}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import u from"../../internal/FormInstruction/FormInstruction.js";import{AccountTypeSelector as c}from"./AccountTypeSelector.js";import l from"../../internal/FormFields/Fieldset/Fieldset.js";import s from"../../../utils/useForm/useForm.js";import m from"../../internal/FormFields/Field/Field.js";import d from"../../internal/FormFields/InputText.js";import{achValidationRules as b,achFormatters as N}from"./validate.js";import g from"../../internal/StoreDetails/StoreDetails.js";import p from"./useSRPanelForACHErrors.js";function f({onChange:f,payButton:h,showPayButton:V,placeholders:F,hasHolderName:M,setComponentRef:v,enableStoreDetails:y}){const j=r(()=>["selectedAccountType","routingNumber","accountNumber","accountNumberVerification",...M?["ownerName"]:[]],[M]),{i18n:w}=i(),[A,S]=o("ready"),{handleChangeFor:T,triggerValidation:x,data:C,errors:k,valid:I,isValid:B}=s({schema:j,rules:b,formatters:N}),[P,q]=o(!1),D="loading"===A,E=a(!1),H=a({setStatus:S,showValidation:()=>{E.current=!0,x()}});t(()=>{v(H.current)},[v,H.current]),p({errors:k,data:C,isValidating:E}),t(()=>{f({data:C,valid:I,errors:k,isValid:B,storePaymentMethod:P})},[f,C,I,k,B,P]);const R=n(e=>{T("accountNumber","input")(e);!!k.accountNumberVerification&&x(["accountNumberVerification"])},[T,x,C.accountNumberVerification,k.accountNumberVerification]);return e("div",{className:"adyen-checkout__ach"},e(u,null),e(l,{classNameModifiers:[],label:w.get("ach.bankAccount.title")},e(c,{placeholder:null==F?void 0:F.accountTypeSelector,onSelect:T("selectedAccountType"),selectedAccountType:C.selectedAccountType,disabled:D,errorMessage:!!k.selectedAccountType&&w.get(k.selectedAccountType.errorMessage)}),M&&e(m,{label:w.get("ach.accountHolderNameField.title"),errorMessage:!!k.ownerName&&w.get(k.ownerName.errorMessage),isValid:!!I.ownerName,name:"ownerName"},e(d,{disabled:D,name:"ownerName",placeholder:null==F?void 0:F.ownerName,value:C.ownerName,onInput:T("ownerName","input"),onBlur:T("ownerName","blur"),required:!0})),e(m,{label:w.get("ach.routingNumber.label"),classNameModifiers:["col-60"],errorMessage:!!k.routingNumber&&w.get(k.routingNumber.errorMessage),name:"routingNumber",isValid:!!I.routingNumber},e(d,{disabled:D,name:"routingNumber",placeholder:null==F?void 0:F.routingNumber,value:C.routingNumber,onInput:T("routingNumber","input"),onBlur:T("routingNumber","blur"),required:!0,maxlength:9})),e(m,{label:w.get("ach.bankAccountNumber.label"),classNameModifiers:["col-40"],errorMessage:!!k.accountNumber&&w.get(k.accountNumber.errorMessage),isValid:!!I.accountNumber,name:"accountNumber"},e(d,{disabled:D,name:"accountNumber",placeholder:null==F?void 0:F.accountNumber,value:C.accountNumber,onInput:R,onBlur:T("accountNumber","blur"),required:!0,maxlength:17})),e(m,{label:w.get("ach.bankAccountNumberVerification.label"),errorMessage:!!k.accountNumberVerification&&w.get(k.accountNumberVerification.errorMessage),name:"accountNumberVerification",isValid:!!I.accountNumberVerification},e(d,{disabled:D,name:"accountNumberVerification",placeholder:null==F?void 0:F.accountNumberVerification,value:C.accountNumberVerification,onInput:T("accountNumberVerification","input"),onBlur:T("accountNumberVerification","blur"),required:!0,maxlength:17}))),y&&e(g,{disabled:D,onChange:q}),V&&h({status:A,label:w.get("confirmPurchase")}))}export{f as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useMemo as r,useState as o,useRef as t,useEffect as a,useCallback as n}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import u from"../../internal/FormInstruction/FormInstruction.js";import{AccountTypeSelector as c}from"./AccountTypeSelector.js";import l from"../../internal/FormFields/Fieldset/Fieldset.js";import s from"../../../utils/useForm/useForm.js";import m from"../../internal/FormFields/Field/Field.js";import d from"../../internal/FormFields/InputText.js";import{achValidationRules as b,achFormatters as N}from"./validate.js";import p from"../../internal/StoreDetails/StoreDetails.js";import g from"./useSRPanelForACHErrors.js";import f from"../../../core/Context/useImage.js";import{PREFIX as h}from"../../internal/Icon/constants.js";function V({onChange:V,payButton:F,showPayButton:M,placeholders:j,hasHolderName:v,setComponentRef:y,enableStoreDetails:w}){const A=f(),x=r(()=>["selectedAccountType","routingNumber","accountNumber","accountNumberVerification",...v?["ownerName"]:[]],[v]),{i18n:C}=i(),[I,S]=o("ready"),{handleChangeFor:T,triggerValidation:k,data:B,errors:q,valid:P,isValid:D}=s({schema:x,rules:b,formatters:N}),[E,H]=o(!1),R="loading"===I,_=t(!1),$=t({setStatus:S,showValidation:()=>{_.current=!0,k()}});a(()=>{y($.current)},[y,$.current]),g({errors:q,data:B,isValidating:_}),a(()=>{V({data:B,valid:P,errors:q,isValid:D,storePaymentMethod:E})},[V,B,P,q,D,E]);const z=n(e=>{T("accountNumber","input")(e);!!q.accountNumberVerification&&k(["accountNumberVerification"])},[T,k,B.accountNumberVerification,q.accountNumberVerification]);return e("div",{className:"adyen-checkout__ach"},e(u,null),e(l,{classNameModifiers:[],label:C.get("ach.bankAccount.title")},e(c,{placeholder:null==j?void 0:j.accountTypeSelector,onSelect:T("selectedAccountType"),selectedAccountType:B.selectedAccountType,disabled:R,errorMessage:!!q.selectedAccountType&&C.get(q.selectedAccountType.errorMessage)}),v&&e(m,{label:C.get("ach.accountHolderNameField.title"),errorMessage:!!q.ownerName&&C.get(q.ownerName.errorMessage),isValid:!!P.ownerName,name:"ownerName"},e(d,{disabled:R,name:"ownerName",placeholder:null==j?void 0:j.ownerName,value:B.ownerName,onInput:T("ownerName","input"),onBlur:T("ownerName","blur"),required:!0})),e(m,{label:C.get("ach.routingNumber.label"),classNameModifiers:["col-60"],errorMessage:!!q.routingNumber&&C.get(q.routingNumber.errorMessage),name:"routingNumber",isValid:!!P.routingNumber},e(d,{disabled:R,name:"routingNumber",placeholder:null==j?void 0:j.routingNumber,value:B.routingNumber,onInput:T("routingNumber","input"),onBlur:T("routingNumber","blur"),required:!0,maxlength:9})),e(m,{label:C.get("ach.bankAccountNumber.label"),classNameModifiers:["col-40"],errorMessage:!!q.accountNumber&&C.get(q.accountNumber.errorMessage),isValid:!!P.accountNumber,name:"accountNumber"},e(d,{disabled:R,name:"accountNumber",placeholder:null==j?void 0:j.accountNumber,value:B.accountNumber,onInput:z,onBlur:T("accountNumber","blur"),required:!0,maxlength:17})),e(m,{label:C.get("ach.bankAccountNumberVerification.label"),errorMessage:!!q.accountNumberVerification&&C.get(q.accountNumberVerification.errorMessage),name:"accountNumberVerification",isValid:!!P.accountNumberVerification},e(d,{disabled:R,name:"accountNumberVerification",placeholder:null==j?void 0:j.accountNumberVerification,value:B.accountNumberVerification,onInput:T("accountNumberVerification","input"),onBlur:T("accountNumberVerification","blur"),required:!0,maxlength:17}))),w&&e(p,{disabled:R,onChange:H}),M&&F({status:I,icon:A({imageFolder:"components/"})(`${h}lock`)}))}export{V as default};
2
2
  //# sourceMappingURL=AchComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AchComponent.js","sources":["../../../../../src/components/Ach/components/AchComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { AccountTypeSelector } from './AccountTypeSelector';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { achValidationRules, achFormatters } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { AchPlaceholders } from '../types';\nimport type { AchStateErrors } from './useSRPanelForACHErrors';\nimport useSRPanelForAchErrors from './useSRPanelForACHErrors';\n\ntype AchForm = {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n};\n\ninterface AchComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: AchForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: Partial<PayButtonProps>) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n hasHolderName: boolean;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n placeholders?: AchPlaceholders;\n}\n\nfunction AchComponent({ onChange, payButton, showPayButton, placeholders, hasHolderName, setComponentRef, enableStoreDetails }: AchComponentProps) {\n const schema = useMemo(\n () => ['selectedAccountType', 'routingNumber', 'accountNumber', 'accountNumberVerification', ...(hasHolderName ? ['ownerName'] : [])],\n [hasHolderName]\n );\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<AchForm>({\n schema,\n rules: achValidationRules,\n formatters: achFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const isFormDisabled = status === 'loading';\n\n const isValidating = useRef(false);\n\n const achRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n isValidating.current = true;\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(achRef.current);\n }, [setComponentRef, achRef.current]);\n\n useSRPanelForAchErrors({ errors: errors as AchStateErrors, data, isValidating });\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n /**\n * If the \"Verify account number\" field has errors, we want to trigger\n * its validation when there is any change done to the \"Account number\" field\n */\n const onAccountNumberInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n handleChangeFor('accountNumber', 'input')(event);\n\n const hasAccountVerificationError = !!errors.accountNumberVerification;\n if (hasAccountVerificationError) {\n triggerValidation(['accountNumberVerification']);\n }\n },\n [handleChangeFor, triggerValidation, data.accountNumberVerification, errors.accountNumberVerification]\n );\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <Fieldset classNameModifiers={[]} label={i18n.get('ach.bankAccount.title')}>\n <AccountTypeSelector\n placeholder={placeholders?.accountTypeSelector}\n onSelect={handleChangeFor('selectedAccountType')}\n selectedAccountType={data.selectedAccountType}\n disabled={isFormDisabled}\n errorMessage={!!errors.selectedAccountType && i18n.get(errors.selectedAccountType.errorMessage)}\n />\n\n {hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n />\n </Field>\n )}\n\n <Field\n label={i18n.get('ach.routingNumber.label')}\n classNameModifiers={['col-60']}\n errorMessage={!!errors.routingNumber && i18n.get(errors.routingNumber.errorMessage)}\n name={'routingNumber'}\n isValid={!!valid.routingNumber}\n >\n <InputText\n disabled={isFormDisabled}\n name={'routingNumber'}\n placeholder={placeholders?.routingNumber}\n value={data.routingNumber}\n onInput={handleChangeFor('routingNumber', 'input')}\n onBlur={handleChangeFor('routingNumber', 'blur')}\n required={true}\n maxlength={9}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumber.label')}\n classNameModifiers={['col-40']}\n errorMessage={!!errors.accountNumber && i18n.get(errors.accountNumber.errorMessage)}\n isValid={!!valid.accountNumber}\n name={'accountNumber'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumber'}\n placeholder={placeholders?.accountNumber}\n value={data.accountNumber}\n onInput={onAccountNumberInput}\n onBlur={handleChangeFor('accountNumber', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumberVerification.label')}\n errorMessage={!!errors.accountNumberVerification && i18n.get(errors.accountNumberVerification.errorMessage)}\n name={'accountNumberVerification'}\n isValid={!!valid.accountNumberVerification}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumberVerification'}\n placeholder={placeholders?.accountNumberVerification}\n value={data.accountNumberVerification}\n onInput={handleChangeFor('accountNumberVerification', 'input')}\n onBlur={handleChangeFor('accountNumberVerification', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && <StoreDetails disabled={isFormDisabled} onChange={setStorePaymentMethod} />}\n\n {showPayButton && payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nexport default AchComponent;\n"],"names":["AchComponent","onChange","payButton","showPayButton","placeholders","hasHolderName","setComponentRef","enableStoreDetails","schema","useMemo","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","rules","achValidationRules","formatters","achFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","isValidating","useRef","achRef","showValidation","current","useEffect","useSRPanelForAchErrors","onAccountNumberInput","useCallback","event","accountNumberVerification","h","div","className","FormInstruction","Fieldset","classNameModifiers","label","get","AccountTypeSelector","placeholder","accountTypeSelector","onSelect","selectedAccountType","disabled","errorMessage","Field","ownerName","name","InputText","value","onInput","onBlur","required","routingNumber","maxlength","accountNumber","StoreDetails"],"mappings":"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"}
1
+ {"version":3,"file":"AchComponent.js","sources":["../../../../../src/components/Ach/components/AchComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { AccountTypeSelector } from './AccountTypeSelector';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { achValidationRules, achFormatters } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useSRPanelForAchErrors from './useSRPanelForACHErrors';\nimport useImage from '../../../core/Context/useImage';\nimport { PREFIX } from '../../internal/Icon/constants';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { AchPlaceholders } from '../types';\nimport type { AchStateErrors } from './useSRPanelForACHErrors';\n\ntype AchForm = {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n};\n\ninterface AchComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: AchForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: Partial<PayButtonProps>) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n hasHolderName: boolean;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n placeholders?: AchPlaceholders;\n}\n\nfunction AchComponent({ onChange, payButton, showPayButton, placeholders, hasHolderName, setComponentRef, enableStoreDetails }: AchComponentProps) {\n const getImage = useImage();\n const schema = useMemo(\n () => ['selectedAccountType', 'routingNumber', 'accountNumber', 'accountNumberVerification', ...(hasHolderName ? ['ownerName'] : [])],\n [hasHolderName]\n );\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<AchForm>({\n schema,\n rules: achValidationRules,\n formatters: achFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const isFormDisabled = status === 'loading';\n\n const isValidating = useRef(false);\n\n const achRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n isValidating.current = true;\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(achRef.current);\n }, [setComponentRef, achRef.current]);\n\n useSRPanelForAchErrors({ errors: errors as AchStateErrors, data, isValidating });\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n /**\n * If the \"Verify account number\" field has errors, we want to trigger\n * its validation when there is any change done to the \"Account number\" field\n */\n const onAccountNumberInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n handleChangeFor('accountNumber', 'input')(event);\n\n const hasAccountVerificationError = !!errors.accountNumberVerification;\n if (hasAccountVerificationError) {\n triggerValidation(['accountNumberVerification']);\n }\n },\n [handleChangeFor, triggerValidation, data.accountNumberVerification, errors.accountNumberVerification]\n );\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <Fieldset classNameModifiers={[]} label={i18n.get('ach.bankAccount.title')}>\n <AccountTypeSelector\n placeholder={placeholders?.accountTypeSelector}\n onSelect={handleChangeFor('selectedAccountType')}\n selectedAccountType={data.selectedAccountType}\n disabled={isFormDisabled}\n errorMessage={!!errors.selectedAccountType && i18n.get(errors.selectedAccountType.errorMessage)}\n />\n\n {hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n />\n </Field>\n )}\n\n <Field\n label={i18n.get('ach.routingNumber.label')}\n classNameModifiers={['col-60']}\n errorMessage={!!errors.routingNumber && i18n.get(errors.routingNumber.errorMessage)}\n name={'routingNumber'}\n isValid={!!valid.routingNumber}\n >\n <InputText\n disabled={isFormDisabled}\n name={'routingNumber'}\n placeholder={placeholders?.routingNumber}\n value={data.routingNumber}\n onInput={handleChangeFor('routingNumber', 'input')}\n onBlur={handleChangeFor('routingNumber', 'blur')}\n required={true}\n maxlength={9}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumber.label')}\n classNameModifiers={['col-40']}\n errorMessage={!!errors.accountNumber && i18n.get(errors.accountNumber.errorMessage)}\n isValid={!!valid.accountNumber}\n name={'accountNumber'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumber'}\n placeholder={placeholders?.accountNumber}\n value={data.accountNumber}\n onInput={onAccountNumberInput}\n onBlur={handleChangeFor('accountNumber', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumberVerification.label')}\n errorMessage={!!errors.accountNumberVerification && i18n.get(errors.accountNumberVerification.errorMessage)}\n name={'accountNumberVerification'}\n isValid={!!valid.accountNumberVerification}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumberVerification'}\n placeholder={placeholders?.accountNumberVerification}\n value={data.accountNumberVerification}\n onInput={handleChangeFor('accountNumberVerification', 'input')}\n onBlur={handleChangeFor('accountNumberVerification', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && <StoreDetails disabled={isFormDisabled} onChange={setStorePaymentMethod} />}\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n </div>\n );\n}\n\nexport default AchComponent;\n"],"names":["AchComponent","onChange","payButton","showPayButton","placeholders","hasHolderName","setComponentRef","enableStoreDetails","getImage","useImage","schema","useMemo","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","rules","achValidationRules","formatters","achFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","isValidating","useRef","achRef","showValidation","current","useEffect","useSRPanelForAchErrors","onAccountNumberInput","useCallback","event","accountNumberVerification","h","div","className","FormInstruction","Fieldset","classNameModifiers","label","get","AccountTypeSelector","placeholder","accountTypeSelector","onSelect","selectedAccountType","disabled","errorMessage","Field","ownerName","name","InputText","value","onInput","onBlur","required","routingNumber","maxlength","accountNumber","StoreDetails","icon","imageFolder","PREFIX"],"mappings":"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"}
@@ -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{CoreProvider as r}from"../../core/Context/CoreProvider.js";import n from"../internal/RedirectButton/RedirectButton.js";import s from"./components/BankTransferResult/BankTransferResult.js";import o from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as a}from"../tx-variants.js";function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){i(t,e,r[e])})}return t}function c(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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class f extends e{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:t}=this.state.data,e=this.type!==a.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},e)},t&&{shopperEmail:t})}render(){return this.props.reference?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,c(p({ref:this.handleRef},this.props),{onActionHandled:this.onActionHandled}))):t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.showEmailAddress&&t(o,c(p({ref:this.handleRef},this.props),{onChange:this.setState})),t(n,c(p({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton})))}constructor(...t){super(...t),i(this,"state",{isValid:!this.props.showEmailAddress,data:{}}),i(this,"handleRef",t=>{this.componentRef=t})}}i(f,"type",a.bankTransfer_IBAN),i(f,"txVariants",[a.bankTransfer_IBAN,a.bankTransfer_BE,a.bankTransfer_NL,a.bankTransfer_PL,a.bankTransfer_FR,a.bankTransfer_CH,a.bankTransfer_IE,a.bankTransfer_GB,a.bankTransfer_DE]),i(f,"defaultProps",{showEmailAddress:!0});export{f as BankTransferElement,f as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import n from"../internal/RedirectButton/RedirectButton.js";import s from"./components/BankTransferResult/BankTransferResult.js";import o from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as a}from"../tx-variants.js";function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){i(t,e,r[e])})}return t}function c(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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class f extends e{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:t}=this.state.data,e=this.type!==a.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},e)},t&&{shopperEmail:t})}render(){return this.props.reference?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,c(p({},this.props),{onActionHandled:this.onActionHandled}))):t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.showEmailAddress&&t(o,c(p({setComponentRef:this.setComponentRef},this.props),{onChange:this.setState})),t(n,c(p({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton})))}constructor(...t){super(...t),i(this,"state",{isValid:!this.props.showEmailAddress,data:{}})}}i(f,"type",a.bankTransfer_IBAN),i(f,"txVariants",[a.bankTransfer_IBAN,a.bankTransfer_BE,a.bankTransfer_NL,a.bankTransfer_PL,a.bankTransfer_FR,a.bankTransfer_CH,a.bankTransfer_IE,a.bankTransfer_GB,a.bankTransfer_DE]),i(f,"defaultProps",{showEmailAddress:!0,showContextualElement:!0,data:{shopperEmail:""}});export{f as BankTransferElement,f as default};
2
2
  //# sourceMappingURL=BankTransfer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\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 type = TxVariants.bankTransfer_IBAN;\n public static 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 ];\n\n public static defaultProps = {\n showEmailAddress: true\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 private handleRef = ref => {\n this.componentRef = ref;\n };\n\n render() {\n if (this.props.reference) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <BankTransferResult ref={this.handleRef} {...this.props} onActionHandled={this.onActionHandled} />\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.showEmailAddress && <BankTransferInput ref={this.handleRef} {...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 </CoreProvider>\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","render","props","reference","h","CoreProvider","i18n","loadingContext","resources","BankTransferResult","ref","handleRef","onActionHandled","showEmailAddress","BankTransferInput","onChange","setState","RedirectButton","showPayButton","name","displayName","onSubmit","submit","payButton","super","args","_define_property","componentRef","txVariants","bankTransfer_BE","bankTransfer_NL","bankTransfer_PL","bankTransfer_FR","bankTransfer_CH","bankTransfer_IE","bankTransfer_GB","bankTransfer_DE","defaultProps"],"mappings":"kuCASO,MAAMA,UAA4BC,EAwBrC,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,CAMAQ,MAAAA,GACI,OAAIX,KAAKY,MAAMC,UAEPC,EAACC,EAAAA,CAAaC,KAAMhB,KAAKY,MAAMI,KAAMC,eAAgBjB,KAAKY,MAAMK,eAAgBC,UAAWlB,KAAKkB,WAC5FJ,EAACK,EAAAA,EAAAA,EAAAA,CAAmBC,IAAKpB,KAAKqB,WAAerB,KAAKY,OAAK,CAAEU,gBAAiBtB,KAAKsB,oBAMvFR,EAACC,EAAAA,CAAaC,KAAMhB,KAAKY,MAAMI,KAAMC,eAAgBjB,KAAKY,MAAMK,eAAgBC,UAAWlB,KAAKkB,WAC3FlB,KAAKY,MAAMW,kBAAoBT,EAACU,EAAAA,EAAAA,EAAAA,CAAkBJ,IAAKpB,KAAKqB,WAAerB,KAAKY,OAAK,CAAEa,SAAUzB,KAAK0B,YACvGZ,EAACa,EAAAA,EAAAA,EAAAA,CAAAA,EACO3B,KAAKY,OAAK,CACdgB,cAAe5B,KAAKY,MAAMgB,cAC1BC,KAAM7B,KAAK8B,YACXC,SAAU/B,KAAKgC,OACfC,UAAWjC,KAAKiC,aAIhC,mBArEGC,SAAAC,GAmBHC,EAAApC,KAAOC,QAA2B,CAC9BF,SAAUC,KAAKY,MAAMW,iBACrBnB,KAAM,CAAA,IAuBVgC,EAAApC,KAAQqB,YAAYD,IAChBpB,KAAKqC,aAAejB,KA5CxBgB,EADSvC,EACKS,OAAOC,EAAWC,mBAChC4B,EAFSvC,EAEKyC,aAAa,CACvB/B,EAAWC,kBACXD,EAAWgC,gBACXhC,EAAWiC,gBACXjC,EAAWkC,gBACXlC,EAAWmC,gBACXnC,EAAWoC,gBACXpC,EAAWqC,gBACXrC,EAAWsC,gBACXtC,EAAWuC,kBAGfV,EAdSvC,EAcKkD,eAAe,CACzBxB,kBAAkB"}
1
+ {"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\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 type = TxVariants.bankTransfer_IBAN;\n public static 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 ];\n\n public static 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 render() {\n if (this.props.reference) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <BankTransferResult {...this.props} onActionHandled={this.onActionHandled} />\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\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 </CoreProvider>\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","render","props","reference","h","CoreProvider","i18n","loadingContext","resources","BankTransferResult","onActionHandled","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","defaultProps","showContextualElement"],"mappings":"kuCASO,MAAMA,UAA4BC,EA0BrC,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,CAEAQ,MAAAA,GACI,OAAIX,KAAKY,MAAMC,UAEPC,EAACC,EAAAA,CAAaC,KAAMhB,KAAKY,MAAMI,KAAMC,eAAgBjB,KAAKY,MAAMK,eAAgBC,UAAWlB,KAAKkB,WAC5FJ,EAACK,EAAAA,EAAAA,EAAAA,GAAuBnB,KAAKY,OAAK,CAAEQ,gBAAiBpB,KAAKoB,oBAMlEN,EAACC,EAAAA,CAAaC,KAAMhB,KAAKY,MAAMI,KAAMC,eAAgBjB,KAAKY,MAAMK,eAAgBC,UAAWlB,KAAKkB,WAC3FlB,KAAKY,MAAMS,kBAAoBP,EAACQ,EAAAA,EAAAA,EAAAA,CAAkBC,gBAAiBvB,KAAKuB,iBAAqBvB,KAAKY,OAAK,CAAEY,SAAUxB,KAAKyB,YACzHX,EAACY,EAAAA,EAAAA,EAAAA,CAAAA,EACO1B,KAAKY,OAAK,CACde,cAAe3B,KAAKY,MAAMe,cAC1BC,KAAM5B,KAAK6B,YACXC,SAAU9B,KAAK+B,OACfC,UAAWhC,KAAKgC,aAIhC,mBAnEGC,SAAAC,GAqBHC,EAAAnC,KAAOC,QAA2B,CAC9BF,SAAUC,KAAKY,MAAMS,iBACrBjB,KAAM,CAAA,KAtBV+B,EADStC,EACKS,OAAOC,EAAWC,mBAChC2B,EAFStC,EAEKuC,aAAa,CACvB7B,EAAWC,kBACXD,EAAW8B,gBACX9B,EAAW+B,gBACX/B,EAAWgC,gBACXhC,EAAWiC,gBACXjC,EAAWkC,gBACXlC,EAAWmC,gBACXnC,EAAWoC,gBACXpC,EAAWqC,kBAGfT,EAdStC,EAcKgD,eAAe,CACzBxB,kBAAkB,EAClByB,uBAAuB,EACvB1C,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 r from"../../../internal/SendCopyToEmail/SendCopyToEmail.js";import{useState as o,useEffect as t}from"../../../../external/preact/hooks/dist/hooks.js";import s from"../../../../utils/useForm/useForm.js";import{validationRules as i}from"../../../../utils/Validator/defaultRules.js";function n(n){const{i18n:l}=a(),[m,p]=o(!1),{handleChangeFor:d,triggerValidation:u,data:c,valid:h,errors:f,isValid:E,setSchema:_}=s({schema:[],defaultData:n.data,rules:{shopperEmail:i.emailRule}});return t(()=>{_(m?["shopperEmail"]:[])},[m]),this.showValidation=u,t(()=>{n.onChange({data:c,errors:f,valid:h,isValid:E})},[c,h,f,m,E]),e("div",{className:"adyen-checkout__bankTransfer"},e("p",{className:"adyen-checkout__bankTransfer__introduction"},l.get("bankTransfer.introduction")),e(r,{classNames:"adyen-checkout__bankTransfer__emailField",value:c.shopperEmail,errors:f.shopperEmail,onToggle:()=>p(!m),onInput:d("shopperEmail","input"),onBlur:d("shopperEmail","blur")}))}export{n 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{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}}),k=r({showValidation:()=>{c()}});return o(()=>{m.onChange({data:h,errors:E,valid:f,isValid:_})},[h,f,E,_]),o(()=>{m.setComponentRef(k.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")}))))}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 SendCopyToEmail from '../../../internal/SendCopyToEmail/SendCopyToEmail';\nimport { useEffect, useState } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport { BankTransferSchema } from '../../types';\nimport { validationRules } from '../../../../utils/Validator/defaultRules';\n\nfunction BankTransferInput(props) {\n const { i18n } = useCoreContext();\n const [showingEmail, setShowingEmail] = useState(false);\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid, setSchema } = useForm<BankTransferSchema>({\n schema: [],\n defaultData: props.data,\n rules: {\n shopperEmail: validationRules.emailRule\n }\n });\n\n const toggleEmailField = () => setShowingEmail(!showingEmail);\n\n useEffect(() => {\n const newSchema = showingEmail ? ['shopperEmail'] : [];\n setSchema(newSchema);\n }, [showingEmail]);\n\n this.showValidation = triggerValidation;\n\n useEffect(() => {\n props.onChange({ data, errors, valid, isValid });\n }, [data, valid, errors, showingEmail, isValid]);\n\n return (\n <div className=\"adyen-checkout__bankTransfer\">\n <p className=\"adyen-checkout__bankTransfer__introduction\">{i18n.get('bankTransfer.introduction')}</p>\n <SendCopyToEmail\n classNames={'adyen-checkout__bankTransfer__emailField'}\n value={data.shopperEmail}\n errors={errors.shopperEmail}\n onToggle={toggleEmailField}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </div>\n );\n}\n\nexport default BankTransferInput;\n"],"names":["BankTransferInput","props","i18n","useCoreContext","showingEmail","setShowingEmail","useState","handleChangeFor","triggerValidation","data","valid","errors","isValid","setSchema","useForm","schema","defaultData","rules","shopperEmail","validationRules","emailRule","useEffect","this","showValidation","onChange","h","div","className","p","get","SendCopyToEmail","classNames","value","onToggle","onInput","onBlur"],"mappings":"qbASA,SAASA,EAAkBC,GACvB,MAAMC,KAAEA,GAASC,KACVC,EAAcC,GAAmBC,GAAS,IAE3CC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,EAAOC,UAAEA,GAAcC,EAA4B,CAChHC,OAAQ,GACRC,YAAaf,EAAMQ,KACnBQ,MAAO,CACHC,aAAcC,EAAgBC,aAiBtC,OAXAC,EAAU,KAENR,EADkBT,EAAe,CAAC,gBAAkB,KAErD,CAACA,IAEJkB,KAAKC,eAAiBf,EAEtBa,EAAU,KACNpB,EAAMuB,SAAS,CAAEf,OAAME,SAAQD,QAAOE,aACvC,CAACH,EAAMC,EAAOC,EAAQP,EAAcQ,IAGnCa,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,IAAAA,CAAED,UAAU,8CAA8CzB,EAAK2B,IAAI,8BACpEJ,EAACK,EAAAA,CACGC,WAAY,2CACZC,MAAOvB,EAAKS,aACZP,OAAQA,EAAOO,aACfe,SApBa,IAAM5B,GAAiBD,GAqBpC8B,QAAS3B,EAAgB,eAAgB,SACzC4B,OAAQ5B,EAAgB,eAAgB,UAIxD"}
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';\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({\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 />\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"],"mappings":"+hBAYA,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,EAAO,CAChBC,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,YAMhE"}
@@ -0,0 +1,2 @@
1
+ import{isEmpty as r}from"../../../../utils/validator-utils.js";import{email as t}from"../../../../utils/regex.js";import{ERROR_FIELD_INVALID as o}from"../../../../core/Errors/constants.js";const s={validate:o=>!!r(o)||o.length>=6&&o.length<=320&&t.test(o),errorMessage:o,modes:["blur"]};export{s as optionalEmailValidationRule};
2
+ //# sourceMappingURL=validationRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationRule.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferInput/validationRule.ts"],"sourcesContent":["import { ValidatorRule } from '../../../../utils/Validator/types';\nimport { isEmpty } from '../../../../utils/validator-utils';\nimport { email } from '../../../../utils/regex';\nimport { ERROR_FIELD_INVALID } from '../../../../core/Errors/constants';\n\nexport const optionalEmailValidationRule: ValidatorRule = {\n validate: value => {\n if (isEmpty(value)) {\n return true;\n }\n return value.length >= 6 && value.length <= 320 && email.test(value);\n },\n errorMessage: ERROR_FIELD_INVALID,\n modes: ['blur']\n};\n"],"names":["optionalEmailValidationRule","validate","value","isEmpty","length","email","test","errorMessage","ERROR_FIELD_INVALID","modes"],"mappings":"mMAKaA,EAA6C,CACtDC,SAAUC,KACFC,EAAQD,IAGLA,EAAME,QAAU,GAAKF,EAAME,QAAU,KAAOC,EAAMC,KAAKJ,GAElEK,aAAcC,EACdC,MAAO,CAAC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import r from"../../../internal/Voucher/Voucher.js";import{useCoreContext as t}from"../../../../core/Context/CoreProvider.js";import n from"../../../../core/Context/useImage.js";import{extractCommonPropsForVoucher as o}from"../../../internal/Voucher/utils.js";function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function i(i){const{reference:b}=i,{i18n:f}=t(),l=n();return e(r,a(function(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){c(e,r,t[r])})}return e}({},o({props:i,i18n:f,introKey:"bankTransfer.instructions",getImage:l()})),{reference:"",voucherDetails:[{label:f.get("bankTransfer.beneficiary"),value:i.beneficiary},{label:f.get("bankTransfer.iban"),value:i.iban},{label:f.get("bankTransfer.bic"),value:i.bic},{label:f.get("bankTransfer.reference"),value:b}]}))}export{i as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import r from"../../../../core/Context/useImage.js";import t from"../../../internal/DetailsTable/DetailsTable.js";import{BankTransferResultInstructions as n}from"./BankTransferResultInstructions.js";import o from"./BankTransferVoucher.js";function l(l){const{i18n:u}=a(),s=r();return e(o,{paymentMethodType:l.paymentMethodType,imageUrl:s()(l.paymentMethodType),onActionHandled:l.onActionHandled,amount:u.amount(l.totalAmount.value,l.totalAmount.currency),instructions:e(n,null),voucherDetails:e(t,{shouldShowCopyButton:!0,tableFields:[{label:u.get("bankTransfer.beneficiary"),value:l.beneficiary},{label:u.get("bankTransfer.accountNumber"),value:l.accountNumber},{label:u.get("bankTransfer.sortCode"),value:l.sortCode},{label:u.get("bankTransfer.routingNumber"),value:l.routingNumber},{label:u.get("bankTransfer.iban"),value:l.iban},{label:u.get("bankTransfer.bic"),value:l.bic},{label:u.get("bankTransfer.reference"),value:l.reference}]})})}export{l as default};
2
2
  //# sourceMappingURL=BankTransferResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankTransferResult.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferResult/BankTransferResult.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Voucher from '../../../internal/Voucher';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport useImage from '../../../../core/Context/useImage';\nimport { extractCommonPropsForVoucher } from '../../../internal/Voucher/utils';\nimport type { ActionHandledReturnObject } from '../../../../types/global-types';\n\nexport interface BankTransferResultProps {\n ref?: (ref: any) => void;\n paymentMethodType?: string;\n reference?: string;\n totalAmount?: { value: number; currency: string };\n beneficiary?: string;\n iban?: string;\n bic?: string;\n onActionHandled?: (actionHandledObj: ActionHandledReturnObject) => void;\n}\n\nexport default function BankTransferResult(props: BankTransferResultProps) {\n const { reference } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n return (\n <Voucher\n {...extractCommonPropsForVoucher({ props, i18n, introKey: 'bankTransfer.instructions', getImage: getImage() })}\n reference={''} // Overwrite the passed reference, so it is not displayed in its own section (since it is already part of the voucherDetails)\n voucherDetails={[\n { label: i18n.get('bankTransfer.beneficiary'), value: props.beneficiary },\n { label: i18n.get('bankTransfer.iban'), value: props.iban },\n { label: i18n.get('bankTransfer.bic'), value: props.bic },\n { label: i18n.get('bankTransfer.reference'), value: reference }\n ]}\n />\n );\n}\n"],"names":["BankTransferResult","props","reference","i18n","useCoreContext","getImage","useImage","h","Voucher","extractCommonPropsForVoucher","introKey","voucherDetails","label","get","value","beneficiary","iban","bic"],"mappings":"ozBAkBe,SAASA,EAAmBC,GACvC,MAAMC,UAAEA,GAAcD,GAChBE,KAAEA,GAASC,IACXC,EAAWC,IAEjB,OACIC,EAACC,0UACOC,EAA6B,CAAER,QAAOE,OAAMO,SAAU,4BAA6BL,SAAUA,OAAW,CAC5GH,UAAW,GACXS,eAAgB,CACZ,CAAEC,MAAOT,EAAKU,IAAI,4BAA6BC,MAAOb,EAAMc,aAC5D,CAAEH,MAAOT,EAAKU,IAAI,qBAAsBC,MAAOb,EAAMe,MACrD,CAAEJ,MAAOT,EAAKU,IAAI,oBAAqBC,MAAOb,EAAMgB,KACpD,CAAEL,MAAOT,EAAKU,IAAI,0BAA2BC,MAAOZ,MAIpE"}
1
+ {"version":3,"file":"BankTransferResult.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferResult/BankTransferResult.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport useImage from '../../../../core/Context/useImage';\nimport DetailsTable from '../../../internal/DetailsTable';\nimport { BankTransferResultInstructions } from './BankTransferResultInstructions';\nimport BankTransferVoucher from './BankTransferVoucher';\nimport type { ActionHandledReturnObject } from '../../../../types/global-types';\n\nexport interface BankTransferResultProps {\n paymentMethodType?: string;\n reference?: string;\n totalAmount?: { value: number; currency: string };\n beneficiary?: string;\n iban?: string;\n bic?: string;\n accountNumber?: string;\n sortCode?: string;\n routingNumber?: string;\n onActionHandled?: (actionHandledObj: ActionHandledReturnObject) => void;\n}\n\nexport default function BankTransferResult(props: BankTransferResultProps) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n return (\n <BankTransferVoucher\n paymentMethodType={props.paymentMethodType}\n imageUrl={getImage()(props.paymentMethodType)}\n onActionHandled={props.onActionHandled}\n amount={i18n.amount(props.totalAmount.value, props.totalAmount.currency)}\n instructions={<BankTransferResultInstructions />}\n voucherDetails={\n <DetailsTable\n shouldShowCopyButton\n tableFields={[\n { label: i18n.get('bankTransfer.beneficiary'), value: props.beneficiary },\n { label: i18n.get('bankTransfer.accountNumber'), value: props.accountNumber },\n { label: i18n.get('bankTransfer.sortCode'), value: props.sortCode },\n { label: i18n.get('bankTransfer.routingNumber'), value: props.routingNumber },\n { label: i18n.get('bankTransfer.iban'), value: props.iban },\n { label: i18n.get('bankTransfer.bic'), value: props.bic },\n { label: i18n.get('bankTransfer.reference'), value: props.reference }\n ]}\n />\n }\n />\n );\n}\n"],"names":["BankTransferResult","props","i18n","useCoreContext","getImage","useImage","h","BankTransferVoucher","paymentMethodType","imageUrl","onActionHandled","amount","totalAmount","value","currency","instructions","BankTransferResultInstructions","voucherDetails","DetailsTable","shouldShowCopyButton","tableFields","label","get","beneficiary","accountNumber","sortCode","routingNumber","iban","bic","reference"],"mappings":"oYAqBe,SAASA,EAAmBC,GACvC,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAEjB,OACIC,EAACC,EAAAA,CACGC,kBAAmBP,EAAMO,kBACzBC,SAAUL,IAAWH,EAAMO,mBAC3BE,gBAAiBT,EAAMS,gBACvBC,OAAQT,EAAKS,OAAOV,EAAMW,YAAYC,MAAOZ,EAAMW,YAAYE,UAC/DC,aAAcT,EAACU,EAAAA,MACfC,eACIX,EAACY,EAAAA,CACGC,sBAAAA,EACAC,YAAa,CACT,CAAEC,MAAOnB,EAAKoB,IAAI,4BAA6BT,MAAOZ,EAAMsB,aAC5D,CAAEF,MAAOnB,EAAKoB,IAAI,8BAA+BT,MAAOZ,EAAMuB,eAC9D,CAAEH,MAAOnB,EAAKoB,IAAI,yBAA0BT,MAAOZ,EAAMwB,UACzD,CAAEJ,MAAOnB,EAAKoB,IAAI,8BAA+BT,MAAOZ,EAAMyB,eAC9D,CAAEL,MAAOnB,EAAKoB,IAAI,qBAAsBT,MAAOZ,EAAM0B,MACrD,CAAEN,MAAOnB,EAAKoB,IAAI,oBAAqBT,MAAOZ,EAAM2B,KACpD,CAAEP,MAAOnB,EAAKoB,IAAI,0BAA2BT,MAAOZ,EAAM4B,eAMlF"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as r}from"../../../../core/Context/CoreProvider.js";import{TimelineWrapper as t}from"../../../internal/Timeline/TimelineWrapper.js";import{Timeline as n}from"../../../internal/Timeline/Timeline.js";const i=()=>{const{i18n:i}=r();return e(t,null,e(n,{instructions:[i.get("bankTransfer.instruction.step1"),i.get("bankTransfer.instruction.step2"),i.get("bankTransfer.instruction.step3"),i.get("bankTransfer.instruction.step4")]}))};export{i as BankTransferResultInstructions};
2
+ //# sourceMappingURL=BankTransferResultInstructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankTransferResultInstructions.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferResult/BankTransferResultInstructions.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { Timeline, TimelineWrapper } from '../../../internal/Timeline';\n\nconst BankTransferResultInstructions = () => {\n const { i18n } = useCoreContext();\n\n return (\n <TimelineWrapper>\n <Timeline\n instructions={[\n i18n.get('bankTransfer.instruction.step1'),\n i18n.get('bankTransfer.instruction.step2'),\n i18n.get('bankTransfer.instruction.step3'),\n i18n.get('bankTransfer.instruction.step4')\n ]}\n />\n </TimelineWrapper>\n );\n};\n\nexport { BankTransferResultInstructions };\n"],"names":["BankTransferResultInstructions","i18n","useCoreContext","h","TimelineWrapper","Timeline","instructions","get"],"mappings":"uSAIA,MAAMA,EAAiC,KACnC,MAAMC,KAAEA,GAASC,IAEjB,OACIC,EAACC,OACGD,EAACE,EAAAA,CACGC,aAAc,CACVL,EAAKM,IAAI,kCACTN,EAAKM,IAAI,kCACTN,EAAKM,IAAI,kCACTN,EAAKM,IAAI"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import r from"../../../../_virtual/index.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";function c(e,t){if(null==e)return{};var r,a,c=function(e,t){if(null==e)return{};var r,a,c={},n=Object.keys(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a<n.length;a++)r=n[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}function n(n){var o,{voucherDetails:s,className:u=""}=n,l=c(n,["voucherDetails","className"]);const{i18n:i}=a();return null===(o=l.onActionHandled)||void 0===o||o.call(l,{componentType:l.paymentMethodType,actionDescription:"voucher-presented"}),e("div",{className:r("adyen-checkout__voucher-result","adyen-checkout__voucher-result--bankTransfer",`adyen-checkout__voucher-result--${l.paymentMethodType}`,u)},e("div",{className:"adyen-checkout__voucher-result__top"},e("div",{className:"adyen-checkout__voucher-result__image"},!!l.imageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:l.paymentMethodType,className:"adyen-checkout__voucher-result__image__brand",src:l.imageUrl}))),l.amount&&e("div",{className:"adyen-checkout__voucher-result__amount"},l.amount),l.instructions&&e(t,null,e("div",{className:"adyen-checkout__voucher-result-title"},i.get("bankTransfer.instruction.title")),l.instructions)),e("div",{className:"adyen-checkout__voucher-result__bottom"},s&&e(t,null,e("div",{className:"adyen-checkout__voucher-result-title"},i.get("bankTransfer.details.title")),s)))}export{n as default};
2
+ //# sourceMappingURL=BankTransferVoucher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankTransferVoucher.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport classNames from 'classnames';\nimport { BankTransferVoucherProps } from './types';\nimport './BankTransferVoucher.scss';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\n\nexport default function BankTransferVoucher({ voucherDetails, className = '', ...props }: Readonly<BankTransferVoucherProps>) {\n const { i18n } = useCoreContext();\n props.onActionHandled?.({ componentType: props.paymentMethodType, actionDescription: 'voucher-presented' });\n\n return (\n <div\n className={classNames(\n 'adyen-checkout__voucher-result',\n 'adyen-checkout__voucher-result--bankTransfer',\n `adyen-checkout__voucher-result--${props.paymentMethodType}`,\n className\n )}\n >\n <div className=\"adyen-checkout__voucher-result__top\">\n <div className=\"adyen-checkout__voucher-result__image\">\n {!!props.imageUrl && (\n <span className=\"adyen-checkout__voucher-result__image__wrapper\">\n <img alt={props.paymentMethodType} className=\"adyen-checkout__voucher-result__image__brand\" src={props.imageUrl} />\n </span>\n )}\n </div>\n {props.amount && <div className=\"adyen-checkout__voucher-result__amount\">{props.amount}</div>}\n {props.instructions && (\n <Fragment>\n <div className=\"adyen-checkout__voucher-result-title\">{i18n.get('bankTransfer.instruction.title')}</div>\n {props.instructions}\n </Fragment>\n )}\n </div>\n\n <div className=\"adyen-checkout__voucher-result__bottom\">\n {voucherDetails && (\n <Fragment>\n <div className=\"adyen-checkout__voucher-result-title\">{i18n.get('bankTransfer.details.title')}</div>\n {voucherDetails}\n </Fragment>\n )}\n </div>\n </div>\n );\n}\n"],"names":["BankTransferVoucher","_param","props","voucherDetails","className","i18n","useCoreContext","onActionHandled","componentType","paymentMethodType","actionDescription","h","div","classNames","imageUrl","span","img","alt","src","amount","instructions","Fragment","get"],"mappings":"okBAMe,SAASA,EAAoBC,GAAA,IAExCC,GAFwCC,eAAEA,EAAcC,UAAEA,EAAY,IAA9BH,EAAqCC,EAAAA,EAArCD,EAAA,CAAEE,iBAAgBC,cAC1D,MAAMC,KAAEA,GAASC,IAGjB,OAFqB,QAArBJ,EAAAA,EAAMK,uBAANL,IAAAA,GAAAA,OAAAA,EAAwB,CAAEM,cAAeN,EAAMO,kBAAmBC,kBAAmB,sBAGjFC,EAACC,MAAAA,CACGR,UAAWS,EACP,iCACA,+CACA,mCAAmCX,EAAMO,oBACzCL,IAGJO,EAACC,MAAAA,CAAIR,UAAU,uCACXO,EAACC,MAAAA,CAAIR,UAAU,2CACRF,EAAMY,UACLH,EAACI,OAAAA,CAAKX,UAAU,kDACZO,EAACK,MAAAA,CAAIC,IAAKf,EAAMO,kBAAmBL,UAAU,+CAA+Cc,IAAKhB,EAAMY,aAIlHZ,EAAMiB,QAAUR,EAACC,MAAAA,CAAIR,UAAU,0CAA0CF,EAAMiB,QAC/EjB,EAAMkB,cACHT,EAACU,OACGV,EAACC,MAAAA,CAAIR,UAAU,wCAAwCC,EAAKiB,IAAI,mCAC/DpB,EAAMkB,eAKnBT,EAACC,MAAAA,CAAIR,UAAU,0CACVD,GACGQ,EAACU,OACGV,EAACC,MAAAA,CAAIR,UAAU,wCAAwCC,EAAKiB,IAAI,+BAC/DnB,IAMzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardFieldsWrapper.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFieldsWrapper.tsx"],"sourcesContent":["import { h } from 'preact';\nimport LoadingWrapper from '../../../../internal/LoadingWrapper';\nimport CardFields from './CardFields';\nimport KCPAuthentication from './KCPAuthentication';\nimport SocialSecurityNumberBrazil from '../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil';\nimport StoreDetails from '../../../../internal/StoreDetails';\nimport Address from '../../../../internal/Address';\nimport CardHolderName from './CardHolderName';\nimport Installments from './Installments';\nimport DisclaimerMessage from '../../../../internal/DisclaimerMessage';\nimport RadioGroupExtended from '../../../../internal/FormFields/RadioGroupExtended';\nimport { mapDualBrandButtons } from '../utils';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\n\nexport const CardFieldsWrapper = ({\n // vars created in CardInput:\n // base (shared)\n data,\n valid,\n errors,\n handleChangeFor,\n sfpState,\n setFocusOn,\n cvcPolicy,\n focusedElement,\n hasInstallments,\n handleInstallments,\n showAmountsInInstallments,\n // Card\n brandsIcons,\n formData,\n formErrors,\n formValid,\n expiryDatePolicy,\n dualBrandSelectElements,\n extensions,\n selectedBrandValue,\n // KCP\n showKCP,\n // SSN\n showBrazilianSSN,\n socialSecurityNumber,\n // Store details\n handleOnStoreDetails,\n // Address\n billingAddress,\n handleAddress,\n setAddressRef,\n partialAddressSchema,\n onAddressLookup,\n onAddressSelected,\n addressSearchDebounceMs,\n // For this comp (props passed through from CardInput)\n amount,\n billingAddressRequired,\n billingAddressRequiredFields,\n billingAddressAllowedCountries,\n billingAddressValidationRules = null,\n brandsConfiguration,\n showStoreDetailsCheckbox,\n hasCVC,\n hasHolderName,\n holderNameRequired,\n installmentOptions,\n placeholders,\n positionHolderNameOnTop,\n // For CardFields > CardNumber\n showBrandIcon,\n showContextualElement,\n //\n iOSFocusedField,\n disclaimerMessage,\n //\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}) => {\n const { i18n } = useCoreContext();\n\n const cardHolderField = (\n <CardHolderName\n required={holderNameRequired}\n placeholder={placeholders.holderName}\n value={formData.holderName}\n error={!!formErrors.holderName && holderNameRequired}\n isValid={!!formValid.holderName}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'holderName'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n );\n\n // Only if these brands are present in the binLookup response shguld we show the UI to choose between brands\n const dualBrandsThatNeedSelectionMechanism = ['cartebancaire', 'bcmc', 'dankort'];\n // If the filter array contains anything - then we need to show the choice UI\n const showDualBrandSelectElements = !!dualBrandSelectElements.filter(item => dualBrandsThatNeedSelectionMechanism.includes(item.id)).length;\n\n return (\n <LoadingWrapper status={sfpState.status}>\n {hasHolderName && positionHolderNameOnTop && cardHolderField}\n\n <CardFields\n showBrandIcon={showBrandIcon}\n showContextualElement={showContextualElement}\n brand={sfpState.brand}\n brandsIcons={brandsIcons}\n brandsConfiguration={brandsConfiguration}\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n hasCVC={hasCVC}\n cvcPolicy={cvcPolicy}\n expiryDatePolicy={expiryDatePolicy}\n errors={sfpState.errors}\n valid={sfpState.valid}\n dualBrandingElements={dualBrandSelectElements.length > 0 && dualBrandSelectElements}\n />\n\n {hasHolderName && !positionHolderNameOnTop && cardHolderField}\n\n {showDualBrandSelectElements && dualBrandSelectElements.length > 0 && dualBrandSelectElements && (\n <Fieldset classNameModifiers={['dual-brand-switcher']} label={i18n.get('creditCard.dualBrand.title')}>\n <p className={'adyen-checkout-form-instruction'}>{i18n.get('creditCard.dualBrand.description')}</p>\n <RadioGroupExtended\n name={'dualBrandSwitcher'}\n value={selectedBrandValue} // Set which button is in a selected (checked) state\n items={mapDualBrandButtons(dualBrandSelectElements, brandsConfiguration)}\n onChange={extensions.handleDualBrandSelection}\n required={true}\n showSelectedTick={true}\n />\n </Fieldset>\n )}\n\n {showKCP && (\n <KCPAuthentication\n onFocusField={setFocusOn}\n focusedElement={focusedElement}\n encryptedPasswordState={{\n data: sfpState.encryptedPassword,\n valid: sfpState.valid ? sfpState.valid.encryptedPassword : false,\n errors: sfpState.errors ? sfpState.errors.encryptedPassword : false\n }}\n value={data.taxNumber}\n error={!!errors.taxNumber}\n isValid={!!valid.taxNumber}\n onBlur={handleChangeFor('taxNumber', 'blur')}\n onInput={handleChangeFor('taxNumber', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'kcpTaxNumberOrDOB'}\n placeholder={placeholders.taxNumber}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {showBrazilianSSN && (\n <div className=\"adyen-checkout__card__socialSecurityNumber\">\n <SocialSecurityNumberBrazil\n onBlur={handleChangeFor('socialSecurityNumber', 'blur')}\n onInput={handleChangeFor('socialSecurityNumber', 'input')}\n error={errors?.socialSecurityNumber}\n valid={valid?.socialSecurityNumber}\n data={socialSecurityNumber}\n required={true}\n disabled={iOSFocusedField && iOSFocusedField !== 'socialSecurityNumber'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n\n {showStoreDetailsCheckbox && <StoreDetails onChange={handleOnStoreDetails} />}\n\n {hasInstallments && (\n <Installments\n amount={amount}\n brand={sfpState.brand}\n installmentOptions={installmentOptions}\n onChange={handleInstallments}\n type={showAmountsInInstallments ? 'amount' : 'months'}\n />\n )}\n\n {billingAddressRequired && (\n <Address\n label=\"billingAddress\"\n data={billingAddress}\n onChange={handleAddress}\n allowedCountries={billingAddressAllowedCountries}\n requiredFields={billingAddressRequiredFields}\n setComponentRef={setAddressRef}\n validationRules={billingAddressValidationRules}\n specifications={partialAddressSchema}\n iOSFocusedField={iOSFocusedField}\n onAddressLookup={onAddressLookup}\n showContextualElement={showContextualElement}\n onAddressSelected={onAddressSelected}\n addressSearchDebounceMs={addressSearchDebounceMs}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {disclaimerMessage && (\n <DisclaimerMessage\n message={disclaimerMessage.message.replace('%{linkText}', `%#${disclaimerMessage.linkText}%#`)}\n urls={[disclaimerMessage.link]}\n />\n )}\n </LoadingWrapper>\n );\n};\n"],"names":["CardFieldsWrapper","data","valid","errors","handleChangeFor","sfpState","setFocusOn","cvcPolicy","focusedElement","hasInstallments","handleInstallments","showAmountsInInstallments","brandsIcons","formData","formErrors","formValid","expiryDatePolicy","dualBrandSelectElements","extensions","selectedBrandValue","showKCP","showBrazilianSSN","socialSecurityNumber","handleOnStoreDetails","billingAddress","handleAddress","setAddressRef","partialAddressSchema","onAddressLookup","onAddressSelected","addressSearchDebounceMs","amount","billingAddressRequired","billingAddressRequiredFields","billingAddressAllowedCountries","billingAddressValidationRules","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","hasHolderName","holderNameRequired","installmentOptions","placeholders","positionHolderNameOnTop","showBrandIcon","showContextualElement","iOSFocusedField","disclaimerMessage","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","cardHolderField","h","CardHolderName","required","placeholder","holderName","value","error","isValid","onBlur","onInput","disabled","dualBrandsThatNeedSelectionMechanism","showDualBrandSelectElements","filter","item","includes","id","length","LoadingWrapper","status","CardFields","brand","onFocusField","dualBrandingElements","Fieldset","classNameModifiers","label","get","p","className","RadioGroupExtended","name","items","mapDualBrandButtons","onChange","handleDualBrandSelection","showSelectedTick","KCPAuthentication","encryptedPasswordState","encryptedPassword","taxNumber","div","SocialSecurityNumberBrazil","StoreDetails","Installments","type","Address","allowedCountries","requiredFields","setComponentRef","validationRules","specifications","DisclaimerMessage","message","replace","linkText","urls","link"],"mappings":"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"}
1
+ {"version":3,"file":"CardFieldsWrapper.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFieldsWrapper.tsx"],"sourcesContent":["import { h } from 'preact';\nimport LoadingWrapper from '../../../../internal/LoadingWrapper';\nimport CardFields from './CardFields';\nimport KCPAuthentication from './KCPAuthentication';\nimport SocialSecurityNumberBrazil from '../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil';\nimport StoreDetails from '../../../../internal/StoreDetails';\nimport Address from '../../../../internal/Address';\nimport CardHolderName from './CardHolderName';\nimport Installments from './Installments';\nimport DisclaimerMessage from '../../../../internal/DisclaimerMessage';\nimport RadioGroupExtended from '../../../../internal/FormFields/RadioGroupExtended';\nimport { mapDualBrandButtons } from '../utils';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\n\nexport const CardFieldsWrapper = ({\n // vars created in CardInput:\n // base (shared)\n data,\n valid,\n errors,\n handleChangeFor,\n sfpState,\n setFocusOn,\n cvcPolicy,\n focusedElement,\n hasInstallments,\n handleInstallments,\n showAmountsInInstallments,\n // Card\n brandsIcons,\n formData,\n formErrors,\n formValid,\n expiryDatePolicy,\n dualBrandSelectElements,\n extensions,\n selectedBrandValue,\n // KCP\n showKCP,\n // SSN\n showBrazilianSSN,\n socialSecurityNumber,\n // Store details\n handleOnStoreDetails,\n // Address\n billingAddress,\n handleAddress,\n setAddressRef,\n partialAddressSchema,\n onAddressLookup,\n onAddressSelected,\n addressSearchDebounceMs,\n // For this comp (props passed through from CardInput)\n amount,\n billingAddressRequired,\n billingAddressRequiredFields,\n billingAddressAllowedCountries,\n billingAddressValidationRules = null,\n brandsConfiguration,\n showStoreDetailsCheckbox,\n hasCVC,\n hasHolderName,\n holderNameRequired,\n installmentOptions,\n placeholders,\n positionHolderNameOnTop,\n // For CardFields > CardNumber\n showBrandIcon,\n showContextualElement,\n //\n iOSFocusedField,\n disclaimerMessage,\n //\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}) => {\n const { i18n } = useCoreContext();\n\n const cardHolderField = (\n <CardHolderName\n required={holderNameRequired}\n placeholder={placeholders.holderName}\n value={formData.holderName}\n error={!!formErrors.holderName && holderNameRequired}\n isValid={!!formValid.holderName}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'holderName'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n );\n\n // Only if these brands are present in the binLookup response should we show the UI to choose between brands\n const dualBrandsThatNeedSelectionMechanism = ['cartebancaire', 'bcmc', 'dankort'];\n // If the filter array contains anything - then we need to show the choice UI\n const showDualBrandSelectElements = !!dualBrandSelectElements.filter(item => dualBrandsThatNeedSelectionMechanism.includes(item.id)).length;\n\n return (\n <LoadingWrapper status={sfpState.status}>\n {hasHolderName && positionHolderNameOnTop && cardHolderField}\n\n <CardFields\n showBrandIcon={showBrandIcon}\n showContextualElement={showContextualElement}\n brand={sfpState.brand}\n brandsIcons={brandsIcons}\n brandsConfiguration={brandsConfiguration}\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n hasCVC={hasCVC}\n cvcPolicy={cvcPolicy}\n expiryDatePolicy={expiryDatePolicy}\n errors={sfpState.errors}\n valid={sfpState.valid}\n dualBrandingElements={dualBrandSelectElements.length > 0 && dualBrandSelectElements}\n />\n\n {hasHolderName && !positionHolderNameOnTop && cardHolderField}\n\n {showDualBrandSelectElements && dualBrandSelectElements.length > 0 && dualBrandSelectElements && (\n <Fieldset classNameModifiers={['dual-brand-switcher']} label={i18n.get('creditCard.dualBrand.title')}>\n <p className={'adyen-checkout-form-instruction'}>{i18n.get('creditCard.dualBrand.description')}</p>\n <RadioGroupExtended\n name={'dualBrandSwitcher'}\n value={selectedBrandValue} // Set which button is in a selected (checked) state\n items={mapDualBrandButtons(dualBrandSelectElements, brandsConfiguration)}\n onChange={extensions.handleDualBrandSelection}\n required={true}\n showSelectedTick={true}\n />\n </Fieldset>\n )}\n\n {showKCP && (\n <KCPAuthentication\n onFocusField={setFocusOn}\n focusedElement={focusedElement}\n encryptedPasswordState={{\n data: sfpState.encryptedPassword,\n valid: sfpState.valid ? sfpState.valid.encryptedPassword : false,\n errors: sfpState.errors ? sfpState.errors.encryptedPassword : false\n }}\n value={data.taxNumber}\n error={!!errors.taxNumber}\n isValid={!!valid.taxNumber}\n onBlur={handleChangeFor('taxNumber', 'blur')}\n onInput={handleChangeFor('taxNumber', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'kcpTaxNumberOrDOB'}\n placeholder={placeholders.taxNumber}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {showBrazilianSSN && (\n <div className=\"adyen-checkout__card__socialSecurityNumber\">\n <SocialSecurityNumberBrazil\n onBlur={handleChangeFor('socialSecurityNumber', 'blur')}\n onInput={handleChangeFor('socialSecurityNumber', 'input')}\n error={errors?.socialSecurityNumber}\n valid={valid?.socialSecurityNumber}\n data={socialSecurityNumber}\n required={true}\n disabled={iOSFocusedField && iOSFocusedField !== 'socialSecurityNumber'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n\n {showStoreDetailsCheckbox && <StoreDetails onChange={handleOnStoreDetails} />}\n\n {hasInstallments && (\n <Installments\n amount={amount}\n brand={sfpState.brand}\n installmentOptions={installmentOptions}\n onChange={handleInstallments}\n type={showAmountsInInstallments ? 'amount' : 'months'}\n />\n )}\n\n {billingAddressRequired && (\n <Address\n label=\"billingAddress\"\n data={billingAddress}\n onChange={handleAddress}\n allowedCountries={billingAddressAllowedCountries}\n requiredFields={billingAddressRequiredFields}\n setComponentRef={setAddressRef}\n validationRules={billingAddressValidationRules}\n specifications={partialAddressSchema}\n iOSFocusedField={iOSFocusedField}\n onAddressLookup={onAddressLookup}\n showContextualElement={showContextualElement}\n onAddressSelected={onAddressSelected}\n addressSearchDebounceMs={addressSearchDebounceMs}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {disclaimerMessage && (\n <DisclaimerMessage\n message={disclaimerMessage.message.replace('%{linkText}', `%#${disclaimerMessage.linkText}%#`)}\n urls={[disclaimerMessage.link]}\n />\n )}\n </LoadingWrapper>\n );\n};\n"],"names":["CardFieldsWrapper","data","valid","errors","handleChangeFor","sfpState","setFocusOn","cvcPolicy","focusedElement","hasInstallments","handleInstallments","showAmountsInInstallments","brandsIcons","formData","formErrors","formValid","expiryDatePolicy","dualBrandSelectElements","extensions","selectedBrandValue","showKCP","showBrazilianSSN","socialSecurityNumber","handleOnStoreDetails","billingAddress","handleAddress","setAddressRef","partialAddressSchema","onAddressLookup","onAddressSelected","addressSearchDebounceMs","amount","billingAddressRequired","billingAddressRequiredFields","billingAddressAllowedCountries","billingAddressValidationRules","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","hasHolderName","holderNameRequired","installmentOptions","placeholders","positionHolderNameOnTop","showBrandIcon","showContextualElement","iOSFocusedField","disclaimerMessage","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","cardHolderField","h","CardHolderName","required","placeholder","holderName","value","error","isValid","onBlur","onInput","disabled","dualBrandsThatNeedSelectionMechanism","showDualBrandSelectElements","filter","item","includes","id","length","LoadingWrapper","status","CardFields","brand","onFocusField","dualBrandingElements","Fieldset","classNameModifiers","label","get","p","className","RadioGroupExtended","name","items","mapDualBrandButtons","onChange","handleDualBrandSelection","showSelectedTick","KCPAuthentication","encryptedPasswordState","encryptedPassword","taxNumber","div","SocialSecurityNumberBrazil","StoreDetails","Installments","type","Address","allowedCountries","requiredFields","setComponentRef","validationRules","specifications","DisclaimerMessage","message","replace","linkText","urls","link"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../../../../_virtual/index.js";import n from"../PaymentMethodDetails.js";import a from"../PaymentMethodIcon.js";import i from"../DisableOneClickConfirmation.js";import s from"../PaymentMethodBrands/PaymentMethodBrands.js";import{BRAND_ICON_UI_EXCLUSION_LIST as r}from"../../../../internal/SecuredFields/lib/constants.js";import d from"../PaymentMethodName.js";import{useCoreContext as c}from"../../../../../core/Context/CoreProvider.js";import m from"../../../../internal/ExpandButton/ExpandButton.js";function p(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){p(e,t,o[t])})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}class y extends e{render({paymentMethod:e,isSelected:p,isDisablingPaymentMethod:y,isLoaded:u,isLoading:b,standalone:f,showRadioButton:_}){const{i18n:P}=c();if(!e)return null;const O="card"===e.props.type||"scheme"===e.props.type;var k;const g=o(h(l({"adyen-checkout__payment-method":!0,[`adyen-checkout__payment-method--${e.props.type}`]:!0},O&&{[`adyen-checkout__payment-method--${null!==(k=e.props.fundingSource)&&void 0!==k?k:"credit"}`]:!0}),{"adyen-checkout__payment-method--selected":p,"adyen-checkout__payment-method--loading":b,"adyen-checkout__payment-method--disabling":y,"adyen-checkout__payment-method--confirming":this.state.showDisableStoredPaymentMethodConfirmation,"adyen-checkout__payment-method--standalone":f,[e._id]:!0,[this.props.className]:!0})),C=this.props.showRemovePaymentMethodButton&&e.props.oneClick&&p,j=`remove-${e._id}`,M=`container-${e._id}`,w=`button-${e._id}`,D=!e.props.oneClick&&e.brands&&e.brands.length>0;return t("div",{key:e._id,className:g,onClick:this.handleOnListItemClick},t("div",{className:"adyen-checkout__payment-method__header"},t(m,{buttonId:w,showRadioButton:_,isSelected:p,expandContentId:M,standalone:f},t(a,h(l({},e.props.oneClick&&{altDescription:e.props.name}),{type:e.type,src:e.icon})),t(d,{displayName:e.displayName,isSelected:p,additionalInfo:e.additionalInfo})),C&&t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link",onClick:this.toggleDisableConfirmation,"aria-expanded":this.state.showDisableStoredPaymentMethodConfirmation,"aria-controls":j},P.get("storedPaymentMethod.disable.button")),D&&t(s,{showOtherInsteafOfNumber:e.props.showOtherInsteafOfNumber,keepBrandsVisible:e.props.keepBrandsVisible,brands:e.brands,excludedUIBrands:r,isPaymentMethodSelected:p})),t("div",{className:"adyen-checkout-pm-details-wrapper","aria-hidden":!p},t("div",{className:"adyen-checkout__payment-method__details",id:M},C&&t(i,{id:j,open:this.state.showDisableStoredPaymentMethodConfirmation,onDisable:this.onDisableStoredPaymentMethod,onCancel:this.toggleDisableConfirmation}),t(n,{paymentMethodComponent:e.render(),isLoaded:u}))))}constructor(...e){super(...e),p(this,"state",{showDisableStoredPaymentMethodConfirmation:!1}),p(this,"toggleDisableConfirmation",()=>{this.setState({showDisableStoredPaymentMethodConfirmation:!this.state.showDisableStoredPaymentMethodConfirmation})}),p(this,"onDisableStoredPaymentMethod",()=>{this.props.onDisableStoredPaymentMethod(this.props.paymentMethod),this.toggleDisableConfirmation()}),p(this,"handleOnListItemClick",()=>{const{onSelect:e,paymentMethod:t}=this.props;e(t)})}}p(y,"defaultProps",{paymentMethod:null,isSelected:!1,isLoaded:!1,isLoading:!1,showDisableStoredPaymentMethodConfirmation:!1,showRadioButton:!1});export{y as default};
1
+ import{Component as e,createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../../../../_virtual/index.js";import n from"../PaymentMethodDetails.js";import a from"../PaymentMethodIcon.js";import i from"../DisableOneClickConfirmation.js";import r from"../PaymentMethodBrands/PaymentMethodBrands.js";import{BRAND_ICON_UI_EXCLUSION_LIST as s}from"../../../../internal/SecuredFields/lib/constants.js";import d from"../PaymentMethodName.js";import{useCoreContext as c}from"../../../../../core/Context/CoreProvider.js";import m from"../../../../internal/ExpandButton/ExpandButton.js";import{getFullBrandName as p}from"../../../../Card/components/CardInput/utils.js";function l(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function h(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){l(e,t,o[t])})}return e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}class u extends e{render({paymentMethod:e,isSelected:l,isDisablingPaymentMethod:u,isLoaded:b,isLoading:f,standalone:_,showRadioButton:P}){const{i18n:O}=c();if(!e)return null;const k="card"===e.props.type||"scheme"===e.props.type;var C;const g=o(y(h({"adyen-checkout__payment-method":!0,[`adyen-checkout__payment-method--${e.props.type}`]:!0},k&&{[`adyen-checkout__payment-method--${null!==(C=e.props.fundingSource)&&void 0!==C?C:"credit"}`]:!0}),{"adyen-checkout__payment-method--selected":l,"adyen-checkout__payment-method--loading":f,"adyen-checkout__payment-method--disabling":u,"adyen-checkout__payment-method--confirming":this.state.showDisableStoredPaymentMethodConfirmation,"adyen-checkout__payment-method--standalone":_,[e._id]:!0,[this.props.className]:!0})),j=this.props.showRemovePaymentMethodButton&&e.props.oneClick&&l,M=`remove-${e._id}`,w=`container-${e._id}`,D=`button-${e._id}`,S=!e.props.oneClick&&e.brands&&e.brands.length>0;return t("div",{key:e._id,className:g,onClick:this.handleOnListItemClick},t("div",{className:"adyen-checkout__payment-method__header"},t(m,{buttonId:D,showRadioButton:P,isSelected:l,expandContentId:w,standalone:_},t(a,y(h({},e.props.oneClick&&{altDescription:p(e.props.brand)}),{type:e.type,src:e.icon})),t(d,{displayName:e.displayName,isSelected:l,additionalInfo:e.additionalInfo})),j&&t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link",onClick:this.toggleDisableConfirmation,"aria-expanded":this.state.showDisableStoredPaymentMethodConfirmation,"aria-controls":M},O.get("storedPaymentMethod.disable.button")),S&&t(r,{showOtherInsteafOfNumber:e.props.showOtherInsteafOfNumber,keepBrandsVisible:e.props.keepBrandsVisible,brands:e.brands,excludedUIBrands:s,isPaymentMethodSelected:l})),t("div",{className:"adyen-checkout-pm-details-wrapper","aria-hidden":!l},t("div",{className:"adyen-checkout__payment-method__details",id:w},j&&t(i,{id:M,open:this.state.showDisableStoredPaymentMethodConfirmation,onDisable:this.onDisableStoredPaymentMethod,onCancel:this.toggleDisableConfirmation}),t(n,{paymentMethodComponent:e.render(),isLoaded:b}))))}constructor(...e){super(...e),l(this,"state",{showDisableStoredPaymentMethodConfirmation:!1}),l(this,"toggleDisableConfirmation",()=>{this.setState({showDisableStoredPaymentMethodConfirmation:!this.state.showDisableStoredPaymentMethodConfirmation})}),l(this,"onDisableStoredPaymentMethod",()=>{this.props.onDisableStoredPaymentMethod(this.props.paymentMethod),this.toggleDisableConfirmation()}),l(this,"handleOnListItemClick",()=>{const{onSelect:e,paymentMethod:t}=this.props;e(t)})}}l(u,"defaultProps",{paymentMethod:null,isSelected:!1,isLoaded:!1,isLoading:!1,showDisableStoredPaymentMethodConfirmation:!1,showRadioButton:!1});export{u as default};
2
2
  //# sourceMappingURL=PaymentMethodItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton\n buttonId={buttonId}\n showRadioButton={showRadioButton}\n isSelected={isSelected}\n expandContentId={containerId}\n standalone={standalone}\n >\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: paymentMethod.props.name })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","_object_spread_props","_object_spread","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","name","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\nimport { getFullBrandName } from '../../../../Card/components/CardInput/utils';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton\n buttonId={buttonId}\n showRadioButton={showRadioButton}\n isSelected={isSelected}\n expandContentId={containerId}\n standalone={standalone}\n >\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: getFullBrandName(paymentMethod.props.brand) })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","_object_spread_props","_object_spread","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","getFullBrandName","brand","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import a from"../Spinner/Spinner.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class s extends e{render(){const{classNameModifiers:e=[],disabled:i,href:s,icon:r,inline:l,label:c,ariaLabel:d,status:p,variant:u,buttonRef:m}=this.props,{completed:_}=this.state,{i18n:h}=o(),b=r?t("img",{className:"adyen-checkout__button__icon",src:r,alt:"","aria-hidden":"true"}):"",f=[...e,..."primary"!==u?[u]:[],...l?["inline"]:[],..._?["completed"]:[],..."loading"===p||"redirect"===p?["loading"]:[]],y=n(["adyen-checkout__button",...f.map(e=>`adyen-checkout__button--${e}`)]),g={loading:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},h.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(a,{size:"medium",inline:!0}),h.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},b,t("span",{className:"adyen-checkout__button__text"},c))},k=g[p]||g.default;return s?t("a",{className:y,href:s,disabled:i,target:this.props.target,rel:this.props.rel},k):t("button",{ref:m,className:y,type:"button",disabled:i,onClick:this.onClick,onKeyDown:this.onKeyDown,"aria-label":d},k,"loading"!==p&&"redirect"!==p&&this.props.children)}constructor(...e){super(...e),i(this,"onClick",e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})}),i(this,"complete",(e=1e3)=>{this.setState({completed:!0}),setTimeout(()=>{this.setState({completed:!1})},e)}),i(this,"onKeyDown",e=>{var t,n;null===(t=(n=this.props).onKeyDown)||void 0===t||t.call(n,e)})}}i(s,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{}});export{s as default};
1
+ import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import o from"../Spinner/Spinner.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class r extends e{render(){const{classNameModifiers:e=[],disabled:s,href:r,icon:i,inline:l,label:c,ariaLabel:u,ariaDescribedBy:d,status:p,variant:m,buttonRef:_,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g}=this.props,{completed:k}=this.state,{i18n:v}=a(),N=i?t("img",{className:"adyen-checkout__button__icon",src:i,alt:"","aria-hidden":"true"}):"",C=[...e,..."primary"!==m?[m]:[],...l?["inline"]:[],...k?["completed"]:[],..."loading"===p||"redirect"===p?["loading"]:[]],x=n(["adyen-checkout__button",...C.map(e=>`adyen-checkout__button--${e}`)]),K={loading:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},v.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),v.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},N,t("span",{className:"adyen-checkout__button__text"},c))},M=K[p]||K.default;return r?t("a",{className:x,href:r,disabled:s,target:this.props.target,rel:this.props.rel},M):t("button",{ref:_,className:x,type:"button",disabled:s,onClick:this.onClick,onKeyDown:this.onKeyDown,"aria-label":u,"aria-describedby":d,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g},M,"loading"!==p&&"redirect"!==p&&this.props.children)}constructor(...e){super(...e),s(this,"onClick",e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})}),s(this,"complete",(e=1e3)=>{this.setState({completed:!0}),setTimeout(()=>{this.setState({completed:!1})},e)}),s(this,"onKeyDown",e=>{var t,n;null===(t=(n=this.props).onKeyDown)||void 0===t||t.call(n,e)})}}s(r,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{},onMouseEnter:()=>{},onMouseLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onKeyPress:()=>{}});export{r as default};
2
2
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render() {\n const { classNameModifiers = [], disabled, href, icon, inline, label, ariaLabel, status, variant, buttonRef }: ButtonProps = this.props;\n const { completed } = this.state;\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button\n ref={buttonRef}\n className={buttonClasses}\n type=\"button\"\n disabled={disabled}\n onClick={this.onClick}\n onKeyDown={this.onKeyDown}\n aria-label={ariaLabel}\n >\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","ariaLabel","status","variant","buttonRef","this","props","completed","state","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","rel","button","ref","type","onClick","onKeyDown","aria-label","children","super","args","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"qWAOA,MAAMA,UAAeC,EA8BjBC,MAAAA,GACI,MAAMC,mBAAEA,EAAqB,GAAEC,SAAEA,EAAQC,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,UAAEA,EAASC,OAAEA,EAAMC,QAAEA,EAAOC,UAAEA,GAA2BC,KAAKC,OAC5HC,UAAEA,GAAcF,KAAKG,OACrBC,KAAEA,GAASC,IAEXC,EAAab,EAAOc,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKjB,EAAMkB,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACXvB,KACa,YAAZQ,EAAwB,CAACA,GAAW,MACpCJ,EAAS,CAAC,UAAY,MACtBQ,EAAY,CAAC,aAAe,MACjB,YAAXL,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEiB,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,IAAIC,GAAK,2BAA2BA,OAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAAS5B,QAAAA,IACvBa,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAAS5B,QAAAA,IACtBU,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCd,KAKtD+B,EAAaR,EAAarB,IAAWqB,EAAaO,QAExD,OAAIjC,EAEIe,EAACoB,IAAAA,CAAElB,UAAWK,EAAetB,KAAMA,EAAMD,SAAUA,EAAUqC,OAAQ5B,KAAKC,MAAM2B,OAAQC,IAAK7B,KAAKC,MAAM4B,KACnGH,GAMTnB,EAACuB,SAAAA,CACGC,IAAKhC,EACLU,UAAWK,EACXkB,KAAK,SACLzC,SAAUA,EACV0C,QAASjC,KAAKiC,QACdC,UAAWlC,KAAKkC,UAChBC,aAAYvC,GAEX8B,EACW,YAAX7B,GAAmC,aAAXA,GAAyBG,KAAKC,MAAMmC,SAGzE,mBA5FJC,SAAAC,GAWIC,EAAAvC,KAAOiC,UAAUO,IACbA,EAAEC,iBAEGzC,KAAKC,MAAMV,UACZS,KAAKC,MAAMgC,QAAQO,EAAG,CAAEE,SAAU1C,KAAK0C,aAI/CH,EAAAvC,KAAO0C,WAAW,CAACC,EAAQ,OACvB3C,KAAK4C,SAAS,CAAE1C,WAAW,IAC3B2C,WAAW,KACP7C,KAAK4C,SAAS,CAAE1C,WAAW,KAC5ByC,KAGPJ,EAAAvC,KAAOkC,YAAaY,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAhD,KAAKC,OAAMiC,iBAAX,IAAAa,GAAAA,EAAAE,KAAAD,EAAuBF,MA1B3BP,EADEpD,EACY+D,eAAe,CACzBrD,OAAQ,UACRC,QAAS,UACTP,UAAU,EACVI,MAAO,GACPD,QAAQ,EACRkC,OAAQ,QACRK,QAAS"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {},\n onMouseEnter: () => {},\n onMouseLeave: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onKeyPress: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render() {\n const {\n classNameModifiers = [],\n disabled,\n href,\n icon,\n inline,\n label,\n ariaLabel,\n ariaDescribedBy,\n status,\n variant,\n buttonRef,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n onKeyPress\n }: ButtonProps = this.props;\n const { completed } = this.state;\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button\n ref={buttonRef}\n className={buttonClasses}\n type=\"button\"\n disabled={disabled}\n onClick={this.onClick}\n onKeyDown={this.onKeyDown}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyPress={onKeyPress}\n >\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","ariaLabel","ariaDescribedBy","status","variant","buttonRef","onMouseEnter","onMouseLeave","onFocus","onBlur","onKeyPress","this","props","completed","state","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","rel","button","ref","type","onClick","onKeyDown","aria-label","aria-describedby","children","super","args","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"qWAOA,MAAMA,UAAeC,EAmCjBC,MAAAA,GACI,MAAMC,mBACFA,EAAqB,GAAEC,SACvBA,EAAQC,KACRA,EAAIC,KACJA,EAAIC,OACJA,EAAMC,MACNA,EAAKC,UACLA,EAASC,gBACTA,EAAeC,OACfA,EAAMC,QACNA,EAAOC,UACPA,EAASC,aACTA,EAAYC,aACZA,EAAYC,QACZA,EAAOC,OACPA,EAAMC,WACNA,GACaC,KAAKC,OAChBC,UAAEA,GAAcF,KAAKG,OACrBC,KAAEA,GAASC,IAEXC,EAAanB,EAAOoB,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKvB,EAAMwB,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACX7B,KACa,YAAZS,EAAwB,CAACA,GAAW,MACpCL,EAAS,CAAC,UAAY,MACtBc,EAAY,CAAC,aAAe,MACjB,YAAXV,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEsB,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,IAAIC,GAAK,2BAA2BA,OAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASlC,QAAAA,IACvBmB,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASlC,QAAAA,IACtBgB,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCpB,KAKtDqC,EAAaR,EAAa1B,IAAW0B,EAAaO,QAExD,OAAIvC,EAEIqB,EAACoB,IAAAA,CAAElB,UAAWK,EAAe5B,KAAMA,EAAMD,SAAUA,EAAU2C,OAAQ5B,KAAKC,MAAM2B,OAAQC,IAAK7B,KAAKC,MAAM4B,KACnGH,GAMTnB,EAACuB,SAAAA,CACGC,IAAKrC,EACLe,UAAWK,EACXkB,KAAK,SACL/C,SAAUA,EACVgD,QAASjC,KAAKiC,QACdC,UAAWlC,KAAKkC,UAChBC,aAAY7C,EACZ8C,mBAAkB7C,EAClBI,aAAcA,EACdC,aAAcA,EACdC,QAASA,EACTC,OAAQA,EACRC,WAAYA,GAEX2B,EACW,YAAXlC,GAAmC,aAAXA,GAAyBQ,KAAKC,MAAMoC,SAGzE,mBAxHJC,SAAAC,GAgBIC,EAAAxC,KAAOiC,UAAUQ,IACbA,EAAEC,iBAEG1C,KAAKC,MAAMhB,UACZe,KAAKC,MAAMgC,QAAQQ,EAAG,CAAEE,SAAU3C,KAAK2C,aAI/CH,EAAAxC,KAAO2C,WAAW,CAACC,EAAQ,OACvB5C,KAAK6C,SAAS,CAAE3C,WAAW,IAC3B4C,WAAW,KACP9C,KAAK6C,SAAS,CAAE3C,WAAW,KAC5B0C,KAGPJ,EAAAxC,KAAOkC,YAAaa,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAjD,KAAKC,OAAMiC,iBAAX,IAAAc,GAAAA,EAAAE,KAAAD,EAAuBF,MA/B3BP,EADE3D,EACYsE,eAAe,CACzB3D,OAAQ,UACRC,QAAS,UACTR,UAAU,EACVI,MAAO,GACPD,QAAQ,EACRwC,OAAQ,QACRK,QAAS,OACTtC,aAAc,OACdC,aAAc,OACdC,QAAS,OACTC,OAAQ,OACRC,WAAY"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import r from"./Button.js";import{useCoreContext as n}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as c}from"../../../utils/clipboard.js";import{SingletonTooltipProvider as i,useTooltip as a}from"../Tooltip/SingletonTooltipProvider.js";function p(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}const l=i=>{const{i18n:l}=n(),u=t(null),{showTooltip:b,hideTooltip:y}=a(),f=o(()=>{c(i.text),b({anchorRef:u,text:l.get("button.copied")})},[i.text,l,b]),O=o(e=>{"Enter"!==e.key&&"Enter"!==e.code&&" "!==e.key&&"Space"!==e.code||e.stopPropagation()},[y]),g=o(e=>{"Enter"!==e.key&&"Enter"!==e.code&&" "!==e.key&&"Space"!==e.code||e.stopPropagation(),"Escape"!==e.key&&"Escape"!==e.code||(e.stopPropagation(),y())},[y]),m=o(()=>{b({anchorRef:u,text:l.get("button.copy")})},[u,l,b]);var j;return e(r,s(function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){p(e,t,o[t])})}return e}({},i),{variant:"iconOnly",buttonRef:u,ariaLabel:null!==(j=i.ariaLabel)&&void 0!==j?j:l.get("button.copy"),onMouseEnter:m,onMouseLeave:y,onFocus:m,onBlur:y,onClick:f,onKeyPress:O,onKeyDown:g}),e("svg",{className:"adyen-checkout__button--iconOnly__icon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e("path",{d:"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z"})))},u=t=>e(i,null,e(l,t));export{u as CopyIconButton};
2
+ //# sourceMappingURL=CopyIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyIconButton.js","sources":["../../../../../src/components/internal/Button/CopyIconButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport Button from './Button';\nimport { ButtonProps } from './types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport copyToClipboard from '../../../utils/clipboard';\nimport { SingletonTooltipProvider, useTooltip } from '../Tooltip/SingletonTooltipProvider';\nimport './CopyIconButton.scss';\n\nexport interface CopyIconButtonProps extends ButtonProps {\n /**\n * String that will get copied to the clipboard\n */\n text: string;\n}\n\nconst CopyIconButton = (props: CopyIconButtonProps) => {\n const { i18n } = useCoreContext();\n const anchorRef = useRef<HTMLButtonElement>(null);\n const { showTooltip, hideTooltip } = useTooltip();\n\n const onClick = useCallback(() => {\n void copyToClipboard(props.text);\n showTooltip({ anchorRef, text: i18n.get('button.copied') });\n }, [props.text, i18n, showTooltip]);\n\n // todo: remove it: onKeyPress is deprecated\n const onKeyPress = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.code === 'Enter' || event.key === ' ' || event.code === 'Space') {\n event.stopPropagation();\n }\n },\n [hideTooltip]\n );\n\n // We need it because onKeyPress does not trigger for Esc key\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.code === 'Enter' || event.key === ' ' || event.code === 'Space') {\n event.stopPropagation();\n }\n\n if (event.key === 'Escape' || event.code === 'Escape') {\n event.stopPropagation();\n hideTooltip();\n }\n },\n [hideTooltip]\n );\n\n const handleShowTooltip = useCallback(() => {\n showTooltip({ anchorRef, text: i18n.get('button.copy') });\n }, [anchorRef, i18n, showTooltip]);\n\n return (\n <Button\n {...props}\n variant=\"iconOnly\"\n buttonRef={anchorRef}\n ariaLabel={props.ariaLabel ?? i18n.get('button.copy')}\n onMouseEnter={handleShowTooltip}\n onMouseLeave={hideTooltip}\n onFocus={handleShowTooltip}\n onBlur={hideTooltip}\n onClick={onClick}\n // It's ok to have both, browsers will fire only one click event for enter/space key pressed.\n onKeyPress={onKeyPress}\n onKeyDown={onKeyDown}\n >\n <svg\n className=\"adyen-checkout__button--iconOnly__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\" />\n </svg>\n </Button>\n );\n};\n\nconst withTooltip = (props: CopyIconButtonProps) => {\n return (\n <SingletonTooltipProvider>\n <CopyIconButton {...props} />\n </SingletonTooltipProvider>\n );\n};\n\nexport { withTooltip as CopyIconButton };\n"],"names":["CopyIconButton","props","i18n","useCoreContext","anchorRef","useRef","showTooltip","hideTooltip","useTooltip","onClick","useCallback","copyToClipboard","text","get","onKeyPress","event","key","code","stopPropagation","onKeyDown","handleShowTooltip","h","Button","variant","buttonRef","ariaLabel","onMouseEnter","onMouseLeave","onFocus","onBlur","svg","className","xmlns","width","height","viewBox","fill","path","d","withTooltip","SingletonTooltipProvider"],"mappings":"s4BAgBA,MAAMA,EAAkBC,IACpB,MAAMC,KAAEA,GAASC,IACXC,EAAYC,EAA0B,OACtCC,YAAEA,EAAWC,YAAEA,GAAgBC,IAE/BC,EAAUC,EAAY,KACnBC,EAAgBV,EAAMW,MAC3BN,EAAY,CAAEF,YAAWQ,KAAMV,EAAKW,IAAI,oBACzC,CAACZ,EAAMW,KAAMV,EAAMI,IAGhBQ,EAAaJ,EACdK,IACqB,UAAdA,EAAMC,KAAkC,UAAfD,EAAME,MAAkC,MAAdF,EAAMC,KAA8B,UAAfD,EAAME,MAC9EF,EAAMG,mBAGd,CAACX,IAICY,EAAYT,EACbK,IACqB,UAAdA,EAAMC,KAAkC,UAAfD,EAAME,MAAkC,MAAdF,EAAMC,KAA8B,UAAfD,EAAME,MAC9EF,EAAMG,kBAGQ,WAAdH,EAAMC,KAAmC,WAAfD,EAAME,OAChCF,EAAMG,kBACNX,MAGR,CAACA,IAGCa,EAAoBV,EAAY,KAClCJ,EAAY,CAAEF,YAAWQ,KAAMV,EAAKW,IAAI,kBACzC,CAACT,EAAWF,EAAMI,IAOFL,IAAAA,EALnB,OACIoB,EAACC,EAAAA,oUAAAA,CAAAA,CAAAA,EACOrB,GAAAA,CACJsB,QAAQ,WACRC,UAAWpB,EACXqB,kBAAWxB,EAAAA,EAAMwB,iBAANxB,IAAAA,EAAAA,EAAmBC,EAAKW,IAAI,eACvCa,aAAcN,EACdO,aAAcpB,EACdqB,QAASR,EACTS,OAAQtB,EACRE,QAASA,EAETK,WAAYA,EACZK,UAAWA,IAEXE,EAACS,MAAAA,CACGC,UAAU,yCACVC,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,QAELf,EAACgB,OAAAA,CAAKC,EAAE,snBAMlBC,EAAetC,GAEboB,EAACmB,EAAAA,KACGnB,EAACrB,EAAmBC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";function a({tableFields:a}){return e("dl",{className:"adyen-checkout__voucher-result__details adyen-checkout__details-table"},a.filter(e=>!!e).filter(({label:e,value:a})=>!!e&&!!a).map(({label:a,value:t})=>e("div",{key:`${a+t}`,className:"adyen-checkout__voucher-result__details__item adyen-checkout__details-table__item"},e("dt",{className:"adyen-checkout__voucher-result__details__label adyen-checkout__details-table__label"},a),e("dd",{className:"adyen-checkout__voucher-result__details__value adyen-checkout__details-table__value"},t))))}export{a as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{CopyIconButton as t}from"../Button/CopyIconButton.js";function a({tableFields:a,shouldShowCopyButton:l}){return e("dl",{className:"adyen-checkout__voucher-result__details adyen-checkout__details-table"},a.filter(e=>!!e).filter(({label:e,value:t})=>!!e&&!!t).map(({label:a,value:_})=>e("div",{key:`${a+_}`,className:"adyen-checkout__voucher-result__details__item adyen-checkout__details-table__item"},e("dt",{className:"adyen-checkout__voucher-result__details__label adyen-checkout__details-table__label"},a),e("dd",{className:"adyen-checkout__voucher-result__details__value adyen-checkout__details-table__value"},_,l&&e(t,{text:_})))))}export{a as default};
2
2
  //# sourceMappingURL=DetailsTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsTable.js","sources":["../../../../../src/components/internal/DetailsTable/DetailsTable.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './DetailsTable.scss';\n\nexport interface DetailsTableData\n extends Array<{\n label: string;\n value: string;\n }> {}\n\nexport interface DetailsTableProps {\n tableFields: DetailsTableData;\n}\n\nexport default function DetailsTable({ tableFields }: DetailsTableProps) {\n // For context, this markup uses 2 classes for backwards compatibility\n // This was originally part of the voucher component and ported out\n // We can remove the voucher class names at point\n return (\n <dl className=\"adyen-checkout__voucher-result__details adyen-checkout__details-table\">\n {tableFields\n // first remove empty values\n .filter(item => !!item)\n // or objects without label and value\n .filter(({ label, value }) => !!label && !!value)\n .map(({ label, value }) => (\n <div key={`${label + value}`} className=\"adyen-checkout__voucher-result__details__item adyen-checkout__details-table__item\">\n <dt className=\"adyen-checkout__voucher-result__details__label adyen-checkout__details-table__label\">{label}</dt>\n <dd className=\"adyen-checkout__voucher-result__details__value adyen-checkout__details-table__value\">{value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n"],"names":["DetailsTable","tableFields","h","dl","className","filter","item","label","value","map","div","key","dt","dd"],"mappings":"wEAae,SAASA,GAAaC,YAAEA,IAInC,OACIC,EAACC,KAAAA,CAAGC,UAAU,yEACTH,EAEII,OAAOC,KAAUA,GAEjBD,OAAO,EAAGE,QAAOC,aAAcD,KAAWC,GAC1CC,IAAI,EAAGF,QAAOC,WACXN,EAACQ,MAAAA,CAAIC,IAAK,GAAGJ,EAAQC,IAASJ,UAAU,qFACpCF,EAACU,KAAAA,CAAGR,UAAU,uFAAuFG,GACrGL,EAACW,KAAAA,CAAGT,UAAU,uFAAuFI,KAK7H"}
1
+ {"version":3,"file":"DetailsTable.js","sources":["../../../../../src/components/internal/DetailsTable/DetailsTable.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './DetailsTable.scss';\nimport { CopyIconButton } from '../Button/CopyIconButton';\n\nexport interface DetailsTableData\n extends Array<{\n label: string;\n value: string;\n }> {}\n\nexport interface DetailsTableProps {\n tableFields: DetailsTableData;\n shouldShowCopyButton?: boolean;\n}\n\nexport default function DetailsTable({ tableFields, shouldShowCopyButton }: Readonly<DetailsTableProps>) {\n // For context, this markup uses 2 classes for backwards compatibility\n // This was originally part of the voucher component and ported out\n // We can remove the voucher class names at point\n return (\n <dl className=\"adyen-checkout__voucher-result__details adyen-checkout__details-table\">\n {tableFields\n // first remove empty values\n .filter(item => !!item)\n // or objects without label and value\n .filter(({ label, value }) => !!label && !!value)\n .map(({ label, value }) => (\n <div key={`${label + value}`} className=\"adyen-checkout__voucher-result__details__item adyen-checkout__details-table__item\">\n <dt className=\"adyen-checkout__voucher-result__details__label adyen-checkout__details-table__label\">{label}</dt>\n <dd className=\"adyen-checkout__voucher-result__details__value adyen-checkout__details-table__value\">\n {value}\n {shouldShowCopyButton && <CopyIconButton text={value}></CopyIconButton>}\n </dd>\n </div>\n ))}\n </dl>\n );\n}\n"],"names":["DetailsTable","tableFields","shouldShowCopyButton","h","dl","className","filter","item","label","value","map","div","key","dt","dd","CopyIconButton","text"],"mappings":"qIAee,SAASA,GAAaC,YAAEA,EAAWC,qBAAEA,IAIhD,OACIC,EAACC,KAAAA,CAAGC,UAAU,yEACTJ,EAEIK,OAAOC,KAAUA,GAEjBD,OAAO,EAAGE,QAAOC,aAAcD,KAAWC,GAC1CC,IAAI,EAAGF,QAAOC,WACXN,EAACQ,MAAAA,CAAIC,IAAK,GAAGJ,EAAQC,IAASJ,UAAU,qFACpCF,EAACU,KAAAA,CAAGR,UAAU,uFAAuFG,GACrGL,EAACW,KAAAA,CAAGT,UAAU,uFACTI,EACAP,GAAwBC,EAACY,EAAAA,CAAeC,KAAMP,OAM3E"}