@adyen/adyen-web 6.25.0 → 6.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cjs/adyen.css +2 -2
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +1 -1
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/es/adyen.css +2 -2
  6. package/dist/es/adyen.css.map +1 -1
  7. package/dist/es/components/Pix/components/PixQRDetails.js +1 -1
  8. package/dist/es/components/Pix/components/PixQRDetails.js.map +1 -1
  9. package/dist/es/components/internal/Button/CopyButton.js +2 -0
  10. package/dist/es/components/internal/Button/CopyButton.js.map +1 -0
  11. package/dist/es/components/internal/Button/CopyIconButton.js +1 -1
  12. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -1
  13. package/dist/es/components/internal/Button/stopPropagationForActionKeys.js +2 -0
  14. package/dist/es/components/internal/Button/stopPropagationForActionKeys.js.map +1 -0
  15. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  16. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  17. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  18. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js +1 -1
  19. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  20. package/dist/es/components/internal/QRLoader/components/QRDetails.js +1 -1
  21. package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -1
  22. package/dist/es/components/internal/Voucher/Voucher.js +1 -1
  23. package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
  24. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  25. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  26. package/dist/es/core/config.js +1 -1
  27. package/dist/es-legacy/adyen.css +2 -2
  28. package/dist/es-legacy/adyen.css.map +1 -1
  29. package/dist/es-legacy/components/Pix/components/PixQRDetails.js +1 -1
  30. package/dist/es-legacy/components/Pix/components/PixQRDetails.js.map +1 -1
  31. package/dist/es-legacy/components/internal/Button/CopyButton.js +2 -0
  32. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -0
  33. package/dist/es-legacy/components/internal/Button/CopyIconButton.js +1 -1
  34. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
  35. package/dist/es-legacy/components/internal/Button/stopPropagationForActionKeys.js +2 -0
  36. package/dist/es-legacy/components/internal/Button/stopPropagationForActionKeys.js.map +1 -0
  37. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  38. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  39. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  40. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js +1 -1
  41. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  42. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +1 -1
  43. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -1
  44. package/dist/es-legacy/components/internal/Voucher/Voucher.js +1 -1
  45. package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
  46. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  47. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  48. package/dist/es-legacy/core/config.js +1 -1
  49. package/package.json +4 -4
  50. package/styles/adyen.css +2 -2
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import o from"../../internal/QRLoader/components/QRImage.js";import r from"../../internal/QRLoader/components/QRProgressbar.js";import a from"../../internal/QRLoader/components/QRCountdown.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import n from"../../internal/QRLoader/components/QRCodeCopyButton.js";import"../../internal/QRLoader/QRLoader.js";import{useQRLoaderDetails as i}from"../../internal/QRLoader/QRLoaderDetailsProvider.js";import d from"../../internal/FormFields/Field/Field.js";import l from"../../internal/FormFields/InputText.js";const m=()=>{const{i18n:m}=t(),{qrCodeData:p,qrCodeImage:c,percentage:s,timeToPay:_,onTick:L,countdownTime:Q,onQRCodeLoad:R,onTimeUp:u,handleCopy:x}=i();return e("div",{className:"adyen-checkout__qr-loader--pix__qr_details"},e(o,{src:c,onLoad:R}),e("div",{className:"adyen-checkout__qr-loader--pix__qr_details__timer"},e(r,{percentage:s}),e(a,{countdownTime:Q,timeToPay:_,onTick:L,onCompleted:u})),e(d,{name:"pix-code",useLabelElement:!1},e(l,{className:"adyen-checkout__qr-loader--pix__qr_details__code",value:p,readonly:!0,"aria-label":m.get("pix.code.label")})),e(n,{copyLabel:m.get("pix.code.copy.label"),copiedLabel:m.get("pix.code.copied.label"),handleCopy:x}))};export{m as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import o from"../../internal/QRLoader/components/QRImage.js";import r from"../../internal/QRLoader/components/QRProgressbar.js";import a from"../../internal/QRLoader/components/QRCountdown.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import n from"../../internal/QRLoader/components/QRCodeCopyButton.js";import"../../internal/QRLoader/QRLoader.js";import{useQRLoaderDetails as i}from"../../internal/QRLoader/QRLoaderDetailsProvider.js";import d from"../../internal/FormFields/Field/Field.js";import l from"../../internal/FormFields/InputText.js";const m=()=>{const{i18n:m}=t(),{qrCodeData:p,qrCodeImage:c,percentage:s,timeToPay:_,onTick:L,countdownTime:Q,onQRCodeLoad:R,onTimeUp:u,handleCopy:x}=i();return e("div",{className:"adyen-checkout__qr-loader--pix__qr_details"},e(o,{src:c,onLoad:R}),e("div",{className:"adyen-checkout__qr-loader--pix__qr_details__timer"},e(r,{percentage:s}),e(a,{countdownTime:Q,timeToPay:_,onTick:L,onCompleted:u})),e(d,{name:"pix-code",useLabelElement:!1},e(l,{className:"adyen-checkout__qr-loader--pix__qr_details__code",value:p,readonly:!0,"aria-label":m.get("pix.code.label")})),e(n,{text:p,copyLabel:m.get("pix.code.copy.label"),copiedLabel:m.get("pix.code.copied.label"),handleCopy:x}))};export{m as default};
2
2
  //# sourceMappingURL=PixQRDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixQRDetails.js","sources":["../../../../../src/components/Pix/components/PixQRDetails.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { QRImage, QRProgressbar, QRCountdown, QRCodeCopyButton, useQRLoaderDetails } from '../../internal/QRLoader';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\n\nconst PixQRDetails = () => {\n const { i18n } = useCoreContext();\n const { qrCodeData, qrCodeImage, percentage, timeToPay, onTick, countdownTime, onQRCodeLoad, onTimeUp, handleCopy } = useQRLoaderDetails();\n\n return (\n <div className=\"adyen-checkout__qr-loader--pix__qr_details\">\n <QRImage src={qrCodeImage} onLoad={onQRCodeLoad} />\n <div className=\"adyen-checkout__qr-loader--pix__qr_details__timer\">\n <QRProgressbar percentage={percentage} />\n <QRCountdown countdownTime={countdownTime} timeToPay={timeToPay} onTick={onTick} onCompleted={onTimeUp} />\n </div>\n <Field name=\"pix-code\" useLabelElement={false}>\n <InputText\n className=\"adyen-checkout__qr-loader--pix__qr_details__code\"\n value={qrCodeData}\n readonly\n aria-label={i18n.get('pix.code.label')}\n />\n </Field>\n <QRCodeCopyButton copyLabel={i18n.get('pix.code.copy.label')} copiedLabel={i18n.get('pix.code.copied.label')} handleCopy={handleCopy} />\n </div>\n );\n};\n\nexport default PixQRDetails;\n"],"names":["PixQRDetails","i18n","useCoreContext","qrCodeData","qrCodeImage","percentage","timeToPay","onTick","countdownTime","onQRCodeLoad","onTimeUp","handleCopy","useQRLoaderDetails","h","div","className","QRImage","src","onLoad","QRProgressbar","QRCountdown","onCompleted","Field","name","useLabelElement","InputText","value","readonly","aria-label","get","QRCodeCopyButton","copyLabel","copiedLabel"],"mappings":"woBAMA,MAAMA,EAAe,KACjB,MAAMC,KAAEA,GAASC,KACXC,WAAEA,EAAUC,YAAEA,EAAWC,WAAEA,EAAUC,UAAEA,EAASC,OAAEA,EAAMC,cAAEA,EAAaC,aAAEA,EAAYC,SAAEA,EAAQC,WAAEA,GAAeC,IAEtH,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACG,EAAAA,CAAQC,IAAKb,EAAac,OAAQT,IACnCI,EAACC,MAAAA,CAAIC,UAAU,qDACXF,EAACM,EAAAA,CAAcd,WAAYA,IAC3BQ,EAACO,EAAAA,CAAYZ,cAAeA,EAAeF,UAAWA,EAAWC,OAAQA,EAAQc,YAAaX,KAElGG,EAACS,EAAAA,CAAMC,KAAK,WAAWC,iBAAiB,GACpCX,EAACY,EAAAA,CACGV,UAAU,mDACVW,MAAOvB,EACPwB,UAAAA,EACAC,aAAY3B,EAAK4B,IAAI,qBAG7BhB,EAACiB,EAAAA,CAAiBC,UAAW9B,EAAK4B,IAAI,uBAAwBG,YAAa/B,EAAK4B,IAAI,yBAA0BlB,WAAYA"}
1
+ {"version":3,"file":"PixQRDetails.js","sources":["../../../../../src/components/Pix/components/PixQRDetails.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { QRImage, QRProgressbar, QRCountdown, QRCodeCopyButton, useQRLoaderDetails } from '../../internal/QRLoader';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\n\nconst PixQRDetails = () => {\n const { i18n } = useCoreContext();\n const { qrCodeData, qrCodeImage, percentage, timeToPay, onTick, countdownTime, onQRCodeLoad, onTimeUp, handleCopy } = useQRLoaderDetails();\n\n return (\n <div className=\"adyen-checkout__qr-loader--pix__qr_details\">\n <QRImage src={qrCodeImage} onLoad={onQRCodeLoad} />\n <div className=\"adyen-checkout__qr-loader--pix__qr_details__timer\">\n <QRProgressbar percentage={percentage} />\n <QRCountdown countdownTime={countdownTime} timeToPay={timeToPay} onTick={onTick} onCompleted={onTimeUp} />\n </div>\n <Field name=\"pix-code\" useLabelElement={false}>\n <InputText\n className=\"adyen-checkout__qr-loader--pix__qr_details__code\"\n value={qrCodeData}\n readonly\n aria-label={i18n.get('pix.code.label')}\n />\n </Field>\n <QRCodeCopyButton\n text={qrCodeData}\n copyLabel={i18n.get('pix.code.copy.label')}\n copiedLabel={i18n.get('pix.code.copied.label')}\n handleCopy={handleCopy}\n />\n </div>\n );\n};\n\nexport default PixQRDetails;\n"],"names":["PixQRDetails","i18n","useCoreContext","qrCodeData","qrCodeImage","percentage","timeToPay","onTick","countdownTime","onQRCodeLoad","onTimeUp","handleCopy","useQRLoaderDetails","h","div","className","QRImage","src","onLoad","QRProgressbar","QRCountdown","onCompleted","Field","name","useLabelElement","InputText","value","readonly","aria-label","get","QRCodeCopyButton","text","copyLabel","copiedLabel"],"mappings":"woBAMA,MAAMA,EAAe,KACjB,MAAMC,KAAEA,GAASC,KACXC,WAAEA,EAAUC,YAAEA,EAAWC,WAAEA,EAAUC,UAAEA,EAASC,OAAEA,EAAMC,cAAEA,EAAaC,aAAEA,EAAYC,SAAEA,EAAQC,WAAEA,GAAeC,IAEtH,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACG,EAAAA,CAAQC,IAAKb,EAAac,OAAQT,IACnCI,EAACC,MAAAA,CAAIC,UAAU,qDACXF,EAACM,EAAAA,CAAcd,WAAYA,IAC3BQ,EAACO,EAAAA,CAAYZ,cAAeA,EAAeF,UAAWA,EAAWC,OAAQA,EAAQc,YAAaX,KAElGG,EAACS,EAAAA,CAAMC,KAAK,WAAWC,iBAAiB,GACpCX,EAACY,EAAAA,CACGV,UAAU,mDACVW,MAAOvB,EACPwB,UAAAA,EACAC,aAAY3B,EAAK4B,IAAI,qBAG7BhB,EAACiB,EAAAA,CACGC,KAAM5B,EACN6B,UAAW/B,EAAK4B,IAAI,uBACpBI,YAAahC,EAAK4B,IAAI,yBACtBlB,WAAYA"}
@@ -0,0 +1,2 @@
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{useCallback as t}from"../../../external/preact/hooks/dist/hooks.js";import e from"./Button.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as n}from"../../../utils/clipboard.js";import{PREFIX as i}from"../Icon/constants.js";import c from"../../../core/Context/useImage.js";import{stopPropagationForActionKeys as s}from"./stopPropagationForActionKeys.js";const a=a=>{const{i18n:m}=r(),p=c(),l=t((o,{complete:t})=>{n(a.text),t(),a.onClick?.(o)},[a.text,a.onClick]);return o(e,{...a,variant:"action",onClick:l,onKeyPress:s,onKeyDown:s,icon:a.icon??p({imageFolder:"components/"})(`${i}copy`),label:a.label??m.get("button.copy"),onClickCompletedLabel:a.copiedLabel??m.get("button.copied")})};export{a as CopyButton};
2
+ //# sourceMappingURL=CopyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyButton.js","sources":["../../../../../src/components/internal/Button/CopyButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport Button from './Button';\nimport { ButtonProps } from './types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport copyToClipboard from '../../../utils/clipboard';\nimport { PREFIX } from '../Icon/constants';\nimport useImage from '../../../core/Context/useImage';\nimport { stopPropagationForActionKeys } from './stopPropagationForActionKeys';\n\nexport interface CopyButtonProps extends Omit<ButtonProps, 'variant' | 'onClickCompletedLabel'> {\n /**\n * String that will get copied to the clipboard\n */\n text: string;\n copiedLabel?: string;\n onClick?: (e: h.JSX.TargetedMouseEvent<HTMLButtonElement>) => void;\n}\n\nconst CopyButton = (props: CopyButtonProps) => {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const onClick = useCallback(\n (e, { complete }) => {\n void copyToClipboard(props.text);\n complete();\n props.onClick?.(e);\n },\n [props.text, props.onClick]\n );\n\n return (\n <Button\n {...props}\n variant=\"action\"\n onClick={onClick}\n // It's ok to have both, browsers will fire only one click event for enter key pressed.\n onKeyPress={stopPropagationForActionKeys}\n onKeyDown={stopPropagationForActionKeys}\n icon={props.icon ?? getImage({ imageFolder: 'components/' })(`${PREFIX}copy`)}\n label={props.label ?? i18n.get('button.copy')}\n onClickCompletedLabel={props.copiedLabel ?? i18n.get('button.copied')}\n />\n );\n};\n\nexport { CopyButton };\n"],"names":["CopyButton","props","i18n","useCoreContext","getImage","useImage","onClick","useCallback","e","complete","copyToClipboard","text","h","Button","variant","onKeyPress","stopPropagationForActionKeys","onKeyDown","icon","imageFolder","PREFIX","label","get","onClickCompletedLabel","copiedLabel"],"mappings":"meAmBA,MAAMA,EAAcC,IAChB,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAUC,EACZ,CAACC,GAAKC,eACGC,EAAgBT,EAAMU,MAC3BF,IACAR,EAAMK,UAAUE,IAEpB,CAACP,EAAMU,KAAMV,EAAMK,UAGvB,OACIM,EAACC,EAAAA,IACOZ,EACJa,QAAQ,SACRR,QAASA,EAETS,WAAYC,EACZC,UAAWD,EACXE,KAAMjB,EAAMiB,MAAQd,EAAS,CAAEe,YAAa,eAAxBf,CAAyC,GAAGgB,SAChEC,MAAOpB,EAAMoB,OAASnB,EAAKoB,IAAI,eAC/BC,sBAAuBtB,EAAMuB,aAAetB,EAAKoB,IAAI"}
@@ -1,2 +1,2 @@
1
- import{createElement as o}from"../../../external/preact/dist/preact.js";import{useRef as t,useCallback as e}from"../../../external/preact/hooks/dist/hooks.js";import n from"./Button.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as a}from"../../../utils/clipboard.js";import{SingletonTooltipProvider as s,useTooltip as i}from"../Tooltip/SingletonTooltipProvider.js";const c=s=>{const{i18n:c}=r(),p=t(null),{showTooltip:l,hideTooltip:C}=i(),u=e(()=>{a(s.text),l({anchorRef:p,text:c.get("button.copied")})},[s.text,c,l]),d=e(o=>{"Enter"!==o.key&&"Enter"!==o.code&&" "!==o.key&&"Space"!==o.code||o.stopPropagation()},[C]),m=e(o=>{"Enter"!==o.key&&"Enter"!==o.code&&" "!==o.key&&"Space"!==o.code||o.stopPropagation(),"Escape"!==o.key&&"Escape"!==o.code||(o.stopPropagation(),C())},[C]),y=e(()=>{l({anchorRef:p,text:c.get("button.copy")})},[p,c,l]);return o(n,{...s,variant:"iconOnly",buttonRef:p,ariaLabel:s.ariaLabel??c.get("button.copy"),onMouseEnter:y,onMouseLeave:C,onFocus:y,onBlur:C,onClick:u,onKeyPress:d,onKeyDown:m},o("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"},o("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"})))},p=t=>o(s,null,o(c,t));export{p as CopyIconButton};
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{useRef as t,useCallback as e}from"../../../external/preact/hooks/dist/hooks.js";import n from"./Button.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as s}from"../../../utils/clipboard.js";import{SingletonTooltipProvider as i,useTooltip as a}from"../Tooltip/SingletonTooltipProvider.js";import{stopPropagationForActionKeys as p}from"./stopPropagationForActionKeys.js";const c=i=>{const{i18n:c}=r(),l=t(null),{showTooltip:C,hideTooltip:u}=a(),m=e(()=>{s(i.text),C({anchorRef:l,text:c.get("button.copied")})},[i.text,c,C]),f=e(o=>{p(o),"Escape"!==o.key&&"Escape"!==o.code||(o.stopPropagation(),u())},[u]),h=e(()=>{C({anchorRef:l,text:c.get("button.copy")})},[l,c,C]);return o(n,{...i,variant:"iconOnly",buttonRef:l,ariaLabel:i.ariaLabel??c.get("button.copy"),onMouseEnter:h,onMouseLeave:u,onFocus:h,onBlur:u,onClick:m,onKeyPress:p,onKeyDown:f},o("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"},o("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"})))},l=t=>o(i,null,o(c,t));export{l as CopyIconButton};
2
2
  //# sourceMappingURL=CopyIconButton.js.map
@@ -1 +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":"iaAgBA,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,IAErB,OACIe,EAACC,EAAAA,IACOrB,EACJsB,QAAQ,WACRC,UAAWpB,EACXqB,UAAWxB,EAAMwB,WAAavB,EAAKW,IAAI,eACvCa,aAAcN,EACdO,aAAcpB,EACdqB,QAASR,EACTS,OAAQtB,EACRE,QAASA,EAETK,WAAYA,EACZK,UAAWA,GAEXE,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
+ {"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';\nimport { stopPropagationForActionKeys } from './stopPropagationForActionKeys';\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 // We need it because onKeyPress does not trigger for Esc key\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n stopPropagationForActionKeys(event);\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={stopPropagationForActionKeys}\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","onKeyDown","event","stopPropagationForActionKeys","key","code","stopPropagation","handleShowTooltip","h","Button","variant","buttonRef","ariaLabel","onMouseEnter","onMouseLeave","onFocus","onBlur","onKeyPress","svg","className","xmlns","width","height","viewBox","fill","path","d","withTooltip","SingletonTooltipProvider"],"mappings":"kfAiBA,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,EAAYJ,EACbK,IACGC,EAA6BD,GAEX,WAAdA,EAAME,KAAmC,WAAfF,EAAMG,OAChCH,EAAMI,kBACNZ,MAGR,CAACA,IAGCa,EAAoBV,EAAY,KAClCJ,EAAY,CAAEF,YAAWQ,KAAMV,EAAKW,IAAI,kBACzC,CAACT,EAAWF,EAAMI,IAErB,OACIe,EAACC,EAAAA,IACOrB,EACJsB,QAAQ,WACRC,UAAWpB,EACXqB,UAAWxB,EAAMwB,WAAavB,EAAKW,IAAI,eACvCa,aAAcN,EACdO,aAAcpB,EACdqB,QAASR,EACTS,OAAQtB,EACRE,QAASA,EAETqB,WAAYd,EACZF,UAAWA,GAEXO,EAACU,MAAAA,CACGC,UAAU,yCACVC,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,QAELhB,EAACiB,OAAAA,CAAKC,EAAE,snBAMlBC,EAAevC,GAEboB,EAACoB,EAAAA,KACGpB,EAACrB,EAAmBC"}
@@ -0,0 +1,2 @@
1
+ const e=e=>{"Enter"!==e.key&&"Enter"!==e.code&&" "!==e.key&&"Space"!==e.code||e.stopPropagation()};export{e as stopPropagationForActionKeys};
2
+ //# sourceMappingURL=stopPropagationForActionKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopPropagationForActionKeys.js","sources":["../../../../../src/components/internal/Button/stopPropagationForActionKeys.ts"],"sourcesContent":["export const stopPropagationForActionKeys = (event: KeyboardEvent): void => {\n if (event.key === 'Enter' || event.code === 'Enter' || event.key === ' ' || event.code === 'Space') {\n event.stopPropagation();\n }\n};\n"],"names":["stopPropagationForActionKeys","event","key","code","stopPropagation"],"mappings":"AAAO,MAAMA,EAAgCC,IACvB,UAAdA,EAAMC,KAAkC,UAAfD,EAAME,MAAkC,MAAdF,EAAMC,KAA8B,UAAfD,EAAME,MAC9EF,EAAMG"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as t,useRef as o,useEffect as r}from"../../../external/preact/hooks/dist/hooks.js";import a from"../Button/Button.js";import n from"../Spinner/Spinner.js";import s from"../../../core/Services/payment-status.js";import{processResponse as c}from"../../../core/ProcessResponse/process-response.js";import{copyToClipboard as i}from"../../../utils/clipboard.js";import l from"../../../core/Errors/AdyenCheckoutError.js";import{useCoreContext as d}from"../../../core/Context/CoreProvider.js";import m from"../ContentSeparator/ContentSeparator.js";import p from"../../../utils/useAutoFocus.js";import{ANALYTICS_QR_CODE_DOWNLOAD as u,ANALYTICS_DOWNLOAD_STR as y}from"../../../core/Analytics/constants.js";import{AnalyticsInfoEvent as _}from"../../../core/Analytics/AnalyticsInfoEvent.js";import h from"./components/QRDetails.js";import{QRLoaderDetailsProvider as f}from"./QRLoaderDetailsProvider.js";import{QRFinalState as g}from"./components/QRFinalState.js";function q(q){const{i18n:k,loadingContext:C}=d(),[b,w]=t(!1),[v,j]=t(q.delay),[N,T]=t(!1),[D,R]=t(!0),[E,I]=t(100),[A,P]=t(0),S=o(null),x=async()=>{const{paymentData:e,clientKey:t,throttledInterval:o}=q;return s(e,t,C,o).then(c).catch(e=>({type:"network-error",props:e})).then(e=>{switch(e.type){case"success":(e=>{w(!0),R(!1);const t={data:{details:{payload:e.props.payload},paymentData:q.paymentData}};q.onComplete(t)})(e);break;case"error":(e=>{if(T(!0),R(!1),e.props.payload){const t={data:{details:{payload:e.props.payload},paymentData:q.paymentData}};q.onComplete(t)}const t=new l("ERROR","error result with no payload in response");q.onError(t)})(e);break;default:R(!1)}})};r(()=>{x()},[]),r(()=>{if(N||b||D)return;let e=v;return S.current=setTimeout(()=>{(async()=>{const t=performance.now();await x();const o=performance.now(),r=Math.round(o-t),a=A+r+e;P(a),a>=q.throttleTime&&e!==q.throttledInterval&&(j(q.throttledInterval),e=q.throttledInterval)})()},e),()=>{clearTimeout(S.current)}},[N,b,D,v,q.throttleTime,A]);const{amount:$,showAmount:L,url:B,brandLogo:M,brandName:Q,countdownTime:K,type:F,onActionHandled:O}=q,H=q.qrCodeData?`${C}utility/v1/barcode.png?type=qrCode&data=${q.qrCodeData}&clientKey=${q.clientKey}`:q.qrCodeImage,U=p();if(N)return e(g,{image:"error",message:k.get("error.subtitle.payment")});if(b)return e(g,{image:"success",message:k.get("creditCard.success")});if(D)return e("div",{className:"adyen-checkout__qr-loader"},M&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{alt:Q,src:M,className:"adyen-checkout__qr-loader__brand-logo"})),e(n,null));const z=q.classNameModifiers.map(e=>`adyen-checkout__qr-loader--${e}`);return e("div",{className:`adyen-checkout__qr-loader adyen-checkout__qr-loader--${F} ${z.join(" ")}`},M&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{src:M,alt:Q,className:"adyen-checkout__qr-loader__brand-logo"})),L&&$&&null!==$.value&&!!$.currency&&e("h1",{className:"adyen-checkout__qr-loader__payment_amount"},k.amount($.value,$.currency)),B&&e("div",{className:"adyen-checkout__qr-loader__app-link"},q.redirectIntroduction&&e("p",{className:"adyen-checkout__qr-loader__subtitle"},k.get(q.redirectIntroduction)),e(a,{classNameModifiers:["qr-loader"],onClick:()=>(e=>{window.location.assign(e)})(B),label:k.get(q.buttonLabel)}),e(m,null)),e("p",{ref:U,tabIndex:0,className:"adyen-checkout__qr-loader__subtitle"},"string"==typeof q.introduction?k.get(q.introduction):q.introduction?.()),e(f,{qrCodeImage:H,qrCodeData:q.qrCodeData,percentage:E,timeToPay:q.timeToPay,copyBtn:q.copyBtn,instructions:q.instructions,countdownTime:K,onTick:e=>(e=>{I(e.percentage)})(e),onQRCodeLoad:()=>{O?.({componentType:q.type,actionDescription:"qr-code-loaded"})},onTimeUp:()=>(T(!0),void q.onError(new l("ERROR","Payment Expired"))),handleCopy:e=>{i(q.qrCodeData);const t=new _({type:y,target:u});q.onSubmitAnalytics(t),e()}},q.children?q.children:e(h,null)))}q.defaultProps={delay:2e3,countdownTime:15,onError:()=>{},onComplete:()=>{},throttleTime:6e4,classNameModifiers:[],throttledInterval:1e4,introduction:"wechatpay.scanqrcode",timeToPay:"wechatpay.timetopay",buttonLabel:"openApp",showAmount:!0};export{q as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as t,useRef as o,useEffect as r}from"../../../external/preact/hooks/dist/hooks.js";import a from"../Button/Button.js";import n from"../Spinner/Spinner.js";import s from"../../../core/Services/payment-status.js";import{processResponse as c}from"../../../core/ProcessResponse/process-response.js";import i from"../../../core/Errors/AdyenCheckoutError.js";import{useCoreContext as l}from"../../../core/Context/CoreProvider.js";import d from"../ContentSeparator/ContentSeparator.js";import m from"../../../utils/useAutoFocus.js";import{ANALYTICS_QR_CODE_DOWNLOAD as p,ANALYTICS_DOWNLOAD_STR as u}from"../../../core/Analytics/constants.js";import{AnalyticsInfoEvent as y}from"../../../core/Analytics/AnalyticsInfoEvent.js";import _ from"./components/QRDetails.js";import{QRLoaderDetailsProvider as h}from"./QRLoaderDetailsProvider.js";import{QRFinalState as f}from"./components/QRFinalState.js";function g(g){const{i18n:q,loadingContext:k}=l(),[w,C]=t(!1),[b,v]=t(g.delay),[j,N]=t(!1),[T,D]=t(!0),[R,E]=t(100),[I,A]=t(0),P=o(null),S=async()=>{const{paymentData:e,clientKey:t,throttledInterval:o}=g;return s(e,t,k,o).then(c).catch(e=>({type:"network-error",props:e})).then(e=>{switch(e.type){case"success":(e=>{C(!0),D(!1);const t={data:{details:{payload:e.props.payload},paymentData:g.paymentData}};g.onComplete(t)})(e);break;case"error":(e=>{if(N(!0),D(!1),e.props.payload){const t={data:{details:{payload:e.props.payload},paymentData:g.paymentData}};g.onComplete(t)}const t=new i("ERROR","error result with no payload in response");g.onError(t)})(e);break;default:D(!1)}})};r(()=>{S()},[]),r(()=>{if(j||w||T)return;let e=b;return P.current=setTimeout(()=>{(async()=>{const t=performance.now();await S();const o=performance.now(),r=Math.round(o-t),a=I+r+e;A(a),a>=g.throttleTime&&e!==g.throttledInterval&&(v(g.throttledInterval),e=g.throttledInterval)})()},e),()=>{clearTimeout(P.current)}},[j,w,T,b,g.throttleTime,I]);const{amount:x,showAmount:$,url:L,brandLogo:B,brandName:M,countdownTime:Q,type:K,onActionHandled:F}=g,O=g.qrCodeData?`${k}utility/v1/barcode.png?type=qrCode&data=${g.qrCodeData}&clientKey=${g.clientKey}`:g.qrCodeImage,H=m();if(j)return e(f,{image:"error",message:q.get("error.subtitle.payment")});if(w)return e(f,{image:"success",message:q.get("creditCard.success")});if(T)return e("div",{className:"adyen-checkout__qr-loader"},B&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{alt:M,src:B,className:"adyen-checkout__qr-loader__brand-logo"})),e(n,null));const U=g.classNameModifiers.map(e=>`adyen-checkout__qr-loader--${e}`);return e("div",{className:`adyen-checkout__qr-loader adyen-checkout__qr-loader--${K} ${U.join(" ")}`},B&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{src:B,alt:M,className:"adyen-checkout__qr-loader__brand-logo"})),$&&x&&null!==x.value&&!!x.currency&&e("h1",{className:"adyen-checkout__qr-loader__payment_amount"},q.amount(x.value,x.currency)),L&&e("div",{className:"adyen-checkout__qr-loader__app-link"},g.redirectIntroduction&&e("p",{className:"adyen-checkout__qr-loader__subtitle"},q.get(g.redirectIntroduction)),e(a,{classNameModifiers:["qr-loader"],onClick:()=>(e=>{window.location.assign(e)})(L),label:q.get(g.buttonLabel)}),e(d,null)),e("p",{ref:H,tabIndex:0,className:"adyen-checkout__qr-loader__subtitle"},"string"==typeof g.introduction?q.get(g.introduction):g.introduction?.()),e(h,{qrCodeImage:O,qrCodeData:g.qrCodeData,percentage:R,timeToPay:g.timeToPay,copyBtn:g.copyBtn,instructions:g.instructions,countdownTime:Q,onTick:e=>(e=>{E(e.percentage)})(e),onQRCodeLoad:()=>{F?.({componentType:g.type,actionDescription:"qr-code-loaded"})},onTimeUp:()=>(N(!0),void g.onError(new i("ERROR","Payment Expired"))),handleCopy:()=>{const e=new y({type:u,target:p});g.onSubmitAnalytics(e)}},g.children?g.children:e(_,null)))}g.defaultProps={delay:2e3,countdownTime:15,onError:()=>{},onComplete:()=>{},throttleTime:6e4,classNameModifiers:[],throttledInterval:1e4,introduction:"wechatpay.scanqrcode",timeToPay:"wechatpay.timetopay",buttonLabel:"openApp",showAmount:!0};export{g as default};
2
2
  //# sourceMappingURL=QRLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QRLoader.js","sources":["../../../../../src/components/internal/QRLoader/QRLoader.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Button from '../Button';\nimport Spinner from '../Spinner';\nimport checkPaymentStatus from '../../../core/Services/payment-status';\nimport processResponse from '../../../core/ProcessResponse';\nimport { QRLoaderProps } from './types';\nimport copyToClipboard from '../../../utils/clipboard';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport ContentSeparator from '../ContentSeparator';\nimport { StatusObject } from '../Await/types';\nimport useAutoFocus from '../../../utils/useAutoFocus';\nimport { ANALYTICS_DOWNLOAD_STR, ANALYTICS_QR_CODE_DOWNLOAD } from '../../../core/Analytics/constants';\nimport { AnalyticsInfoEvent } from '../../../core/Analytics/AnalyticsInfoEvent';\nimport { CountdownTime } from '../Countdown/types';\nimport QRDetails from './components/QRDetails';\nimport { QRLoaderDetailsProvider } from './QRLoaderDetailsProvider';\nimport { QRFinalState } from './components/QRFinalState';\nimport './QRLoader.scss';\n\nconst QRCODE_URL = 'utility/v1/barcode.png?type=qrCode&data=';\n\nfunction QRLoader(props: QRLoaderProps) {\n const { i18n, loadingContext } = useCoreContext();\n const [completed, setCompleted] = useState(false);\n const [delay, setDelay] = useState(props.delay);\n const [expired, setExpired] = useState(false);\n const [loading, setLoading] = useState(true);\n const [percentage, setPercentage] = useState(100);\n const [timePassed, setTimePassed] = useState(0);\n const timeoutRef = useRef<NodeJS.Timeout | number | null>(null);\n\n const redirectToApp = (url: string | URL): void => {\n window.location.assign(url);\n };\n\n const onTick = (time: CountdownTime): void => {\n setPercentage(time.percentage);\n };\n\n const onTimeUp = (): void => {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'Payment Expired'));\n };\n\n const onComplete = (status: StatusObject): void => {\n setCompleted(true);\n setLoading(false);\n\n const state = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n\n props.onComplete(state);\n };\n\n const onError = (status: StatusObject): void => {\n setExpired(true);\n setLoading(false);\n\n if (status.props.payload) {\n const state = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(state);\n }\n\n const error = new AdyenCheckoutError('ERROR', 'error result with no payload in response');\n props.onError(error);\n };\n\n const checkStatus = async (): Promise<void> => {\n const { paymentData, clientKey, throttledInterval } = props;\n\n return checkPaymentStatus(paymentData, clientKey, loadingContext, throttledInterval)\n .then(processResponse)\n .catch(response => ({ type: 'network-error', props: response }))\n .then((status: StatusObject) => {\n switch (status.type) {\n case 'success':\n onComplete(status);\n break;\n case 'error':\n onError(status);\n break;\n default:\n setLoading(false);\n }\n });\n };\n\n useEffect(() => {\n void checkStatus();\n }, []);\n\n useEffect(() => {\n if (expired || completed || loading) {\n return;\n }\n\n let currentDelay = delay;\n\n const statusInterval = async (): Promise<void> => {\n const start = performance.now();\n await checkStatus();\n const end = performance.now();\n const responseTime = Math.round(end - start);\n\n const actualTimePassed = timePassed + responseTime + currentDelay;\n setTimePassed(actualTimePassed);\n\n if (actualTimePassed >= props.throttleTime && currentDelay !== props.throttledInterval) {\n setDelay(props.throttledInterval);\n currentDelay = props.throttledInterval;\n }\n };\n\n timeoutRef.current = setTimeout(() => {\n void statusInterval();\n }, currentDelay);\n\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, [expired, completed, loading, delay, props.throttleTime, timePassed]);\n\n const { amount, showAmount, url, brandLogo, brandName, countdownTime, type, onActionHandled } = props;\n\n const qrCodeImage = props.qrCodeData ? `${loadingContext}${QRCODE_URL}${props.qrCodeData}&clientKey=${props.clientKey}` : props.qrCodeImage;\n\n const handleCopy = (complete: () => void) => {\n void copyToClipboard(props.qrCodeData);\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_DOWNLOAD_STR,\n target: ANALYTICS_QR_CODE_DOWNLOAD\n });\n props.onSubmitAnalytics(event);\n complete();\n };\n\n const onQrCodeLoad = () => {\n onActionHandled?.({\n componentType: props.type,\n actionDescription: 'qr-code-loaded'\n });\n };\n\n const qrSubtitleRef = useAutoFocus();\n\n if (expired) {\n return <QRFinalState image=\"error\" message={i18n.get('error.subtitle.payment')} />;\n }\n\n if (completed) {\n return <QRFinalState image=\"success\" message={i18n.get('creditCard.success')} />;\n }\n\n if (loading) {\n return (\n <div className=\"adyen-checkout__qr-loader\">\n {brandLogo && (\n <div className=\"adyen-checkout__qr-loader__brand-logo-wrapper\">\n <img alt={brandName} src={brandLogo} className=\"adyen-checkout__qr-loader__brand-logo\" />\n </div>\n )}\n <Spinner />\n </div>\n );\n }\n\n const classnames = props.classNameModifiers.map(m => `adyen-checkout__qr-loader--${m}`);\n\n return (\n <div className={`adyen-checkout__qr-loader adyen-checkout__qr-loader--${type} ${classnames.join(' ')}`}>\n {brandLogo && (\n <div className=\"adyen-checkout__qr-loader__brand-logo-wrapper\">\n <img src={brandLogo} alt={brandName} className=\"adyen-checkout__qr-loader__brand-logo\" />\n </div>\n )}\n\n {showAmount && amount && amount.value !== null && !!amount.currency && (\n <h1 className=\"adyen-checkout__qr-loader__payment_amount\">{i18n.amount(amount.value, amount.currency)}</h1>\n )}\n\n {url && (\n <div className=\"adyen-checkout__qr-loader__app-link\">\n {props.redirectIntroduction && <p className=\"adyen-checkout__qr-loader__subtitle\">{i18n.get(props.redirectIntroduction)}</p>}\n <Button classNameModifiers={['qr-loader']} onClick={() => redirectToApp(url)} label={i18n.get(props.buttonLabel)} />\n <ContentSeparator />\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <p ref={qrSubtitleRef} tabIndex={0} className=\"adyen-checkout__qr-loader__subtitle\">\n {typeof props.introduction === 'string' ? i18n.get(props.introduction) : props.introduction?.()}\n </p>\n\n <QRLoaderDetailsProvider\n qrCodeImage={qrCodeImage}\n qrCodeData={props.qrCodeData}\n percentage={percentage}\n timeToPay={props.timeToPay}\n copyBtn={props.copyBtn}\n instructions={props.instructions}\n countdownTime={countdownTime}\n onTick={(time: CountdownTime) => onTick(time)}\n onQRCodeLoad={onQrCodeLoad}\n onTimeUp={() => onTimeUp()}\n handleCopy={handleCopy}\n >\n {props.children ? props.children : <QRDetails />}\n </QRLoaderDetailsProvider>\n </div>\n );\n}\n\nQRLoader.defaultProps = {\n delay: 2000,\n countdownTime: 15,\n onError: () => {},\n onComplete: () => {},\n throttleTime: 60000,\n classNameModifiers: [],\n throttledInterval: 10000,\n introduction: 'wechatpay.scanqrcode',\n timeToPay: 'wechatpay.timetopay',\n buttonLabel: 'openApp',\n showAmount: true\n};\n\nexport default QRLoader;\n"],"names":["QRLoader","props","i18n","loadingContext","useCoreContext","completed","setCompleted","useState","delay","setDelay","expired","setExpired","loading","setLoading","percentage","setPercentage","timePassed","setTimePassed","timeoutRef","useRef","checkStatus","async","paymentData","clientKey","throttledInterval","checkPaymentStatus","then","processResponse","catch","response","type","status","state","data","details","payload","onComplete","error","AdyenCheckoutError","onError","useEffect","currentDelay","current","setTimeout","start","performance","now","end","responseTime","Math","round","actualTimePassed","throttleTime","statusInterval","clearTimeout","amount","showAmount","url","brandLogo","brandName","countdownTime","onActionHandled","qrCodeImage","qrCodeData","qrSubtitleRef","useAutoFocus","h","QRFinalState","image","message","get","div","className","img","alt","src","Spinner","classnames","classNameModifiers","map","m","join","value","currency","h1","redirectIntroduction","p","Button","onClick","window","location","assign","redirectToApp","label","buttonLabel","ContentSeparator","ref","tabIndex","introduction","QRLoaderDetailsProvider","timeToPay","copyBtn","instructions","onTick","time","onQRCodeLoad","componentType","actionDescription","onTimeUp","handleCopy","complete","copyToClipboard","event","AnalyticsInfoEvent","ANALYTICS_DOWNLOAD_STR","target","ANALYTICS_QR_CODE_DOWNLOAD","onSubmitAnalytics","children","QRDetails","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"QRLoader.js","sources":["../../../../../src/components/internal/QRLoader/QRLoader.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Button from '../Button';\nimport Spinner from '../Spinner';\nimport checkPaymentStatus from '../../../core/Services/payment-status';\nimport processResponse from '../../../core/ProcessResponse';\nimport { QRLoaderProps } from './types';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport ContentSeparator from '../ContentSeparator';\nimport { StatusObject } from '../Await/types';\nimport useAutoFocus from '../../../utils/useAutoFocus';\nimport { ANALYTICS_DOWNLOAD_STR, ANALYTICS_QR_CODE_DOWNLOAD } from '../../../core/Analytics/constants';\nimport { AnalyticsInfoEvent } from '../../../core/Analytics/AnalyticsInfoEvent';\nimport { CountdownTime } from '../Countdown/types';\nimport QRDetails from './components/QRDetails';\nimport { QRLoaderDetailsProvider } from './QRLoaderDetailsProvider';\nimport { QRFinalState } from './components/QRFinalState';\nimport './QRLoader.scss';\n\nconst QRCODE_URL = 'utility/v1/barcode.png?type=qrCode&data=';\n\nfunction QRLoader(props: QRLoaderProps) {\n const { i18n, loadingContext } = useCoreContext();\n const [completed, setCompleted] = useState(false);\n const [delay, setDelay] = useState(props.delay);\n const [expired, setExpired] = useState(false);\n const [loading, setLoading] = useState(true);\n const [percentage, setPercentage] = useState(100);\n const [timePassed, setTimePassed] = useState(0);\n const timeoutRef = useRef<NodeJS.Timeout | number | null>(null);\n\n const redirectToApp = (url: string | URL): void => {\n window.location.assign(url);\n };\n\n const onTick = (time: CountdownTime): void => {\n setPercentage(time.percentage);\n };\n\n const onTimeUp = (): void => {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'Payment Expired'));\n };\n\n const onComplete = (status: StatusObject): void => {\n setCompleted(true);\n setLoading(false);\n\n const state = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n\n props.onComplete(state);\n };\n\n const onError = (status: StatusObject): void => {\n setExpired(true);\n setLoading(false);\n\n if (status.props.payload) {\n const state = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(state);\n }\n\n const error = new AdyenCheckoutError('ERROR', 'error result with no payload in response');\n props.onError(error);\n };\n\n const checkStatus = async (): Promise<void> => {\n const { paymentData, clientKey, throttledInterval } = props;\n\n return checkPaymentStatus(paymentData, clientKey, loadingContext, throttledInterval)\n .then(processResponse)\n .catch(response => ({ type: 'network-error', props: response }))\n .then((status: StatusObject) => {\n switch (status.type) {\n case 'success':\n onComplete(status);\n break;\n case 'error':\n onError(status);\n break;\n default:\n setLoading(false);\n }\n });\n };\n\n useEffect(() => {\n void checkStatus();\n }, []);\n\n useEffect(() => {\n if (expired || completed || loading) {\n return;\n }\n\n let currentDelay = delay;\n\n const statusInterval = async (): Promise<void> => {\n const start = performance.now();\n await checkStatus();\n const end = performance.now();\n const responseTime = Math.round(end - start);\n\n const actualTimePassed = timePassed + responseTime + currentDelay;\n setTimePassed(actualTimePassed);\n\n if (actualTimePassed >= props.throttleTime && currentDelay !== props.throttledInterval) {\n setDelay(props.throttledInterval);\n currentDelay = props.throttledInterval;\n }\n };\n\n timeoutRef.current = setTimeout(() => {\n void statusInterval();\n }, currentDelay);\n\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, [expired, completed, loading, delay, props.throttleTime, timePassed]);\n\n const { amount, showAmount, url, brandLogo, brandName, countdownTime, type, onActionHandled } = props;\n\n const qrCodeImage = props.qrCodeData ? `${loadingContext}${QRCODE_URL}${props.qrCodeData}&clientKey=${props.clientKey}` : props.qrCodeImage;\n\n const handleCopy = () => {\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_DOWNLOAD_STR,\n target: ANALYTICS_QR_CODE_DOWNLOAD\n });\n props.onSubmitAnalytics(event);\n };\n\n const onQrCodeLoad = () => {\n onActionHandled?.({\n componentType: props.type,\n actionDescription: 'qr-code-loaded'\n });\n };\n\n const qrSubtitleRef = useAutoFocus();\n\n if (expired) {\n return <QRFinalState image=\"error\" message={i18n.get('error.subtitle.payment')} />;\n }\n\n if (completed) {\n return <QRFinalState image=\"success\" message={i18n.get('creditCard.success')} />;\n }\n\n if (loading) {\n return (\n <div className=\"adyen-checkout__qr-loader\">\n {brandLogo && (\n <div className=\"adyen-checkout__qr-loader__brand-logo-wrapper\">\n <img alt={brandName} src={brandLogo} className=\"adyen-checkout__qr-loader__brand-logo\" />\n </div>\n )}\n <Spinner />\n </div>\n );\n }\n\n const classnames = props.classNameModifiers.map(m => `adyen-checkout__qr-loader--${m}`);\n\n return (\n <div className={`adyen-checkout__qr-loader adyen-checkout__qr-loader--${type} ${classnames.join(' ')}`}>\n {brandLogo && (\n <div className=\"adyen-checkout__qr-loader__brand-logo-wrapper\">\n <img src={brandLogo} alt={brandName} className=\"adyen-checkout__qr-loader__brand-logo\" />\n </div>\n )}\n\n {showAmount && amount && amount.value !== null && !!amount.currency && (\n <h1 className=\"adyen-checkout__qr-loader__payment_amount\">{i18n.amount(amount.value, amount.currency)}</h1>\n )}\n\n {url && (\n <div className=\"adyen-checkout__qr-loader__app-link\">\n {props.redirectIntroduction && <p className=\"adyen-checkout__qr-loader__subtitle\">{i18n.get(props.redirectIntroduction)}</p>}\n <Button classNameModifiers={['qr-loader']} onClick={() => redirectToApp(url)} label={i18n.get(props.buttonLabel)} />\n <ContentSeparator />\n </div>\n )}\n\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <p ref={qrSubtitleRef} tabIndex={0} className=\"adyen-checkout__qr-loader__subtitle\">\n {typeof props.introduction === 'string' ? i18n.get(props.introduction) : props.introduction?.()}\n </p>\n\n <QRLoaderDetailsProvider\n qrCodeImage={qrCodeImage}\n qrCodeData={props.qrCodeData}\n percentage={percentage}\n timeToPay={props.timeToPay}\n copyBtn={props.copyBtn}\n instructions={props.instructions}\n countdownTime={countdownTime}\n onTick={(time: CountdownTime) => onTick(time)}\n onQRCodeLoad={onQrCodeLoad}\n onTimeUp={() => onTimeUp()}\n handleCopy={handleCopy}\n >\n {props.children ? props.children : <QRDetails />}\n </QRLoaderDetailsProvider>\n </div>\n );\n}\n\nQRLoader.defaultProps = {\n delay: 2000,\n countdownTime: 15,\n onError: () => {},\n onComplete: () => {},\n throttleTime: 60000,\n classNameModifiers: [],\n throttledInterval: 10000,\n introduction: 'wechatpay.scanqrcode',\n timeToPay: 'wechatpay.timetopay',\n buttonLabel: 'openApp',\n showAmount: true\n};\n\nexport default QRLoader;\n"],"names":["QRLoader","props","i18n","loadingContext","useCoreContext","completed","setCompleted","useState","delay","setDelay","expired","setExpired","loading","setLoading","percentage","setPercentage","timePassed","setTimePassed","timeoutRef","useRef","checkStatus","async","paymentData","clientKey","throttledInterval","checkPaymentStatus","then","processResponse","catch","response","type","status","state","data","details","payload","onComplete","error","AdyenCheckoutError","onError","useEffect","currentDelay","current","setTimeout","start","performance","now","end","responseTime","Math","round","actualTimePassed","throttleTime","statusInterval","clearTimeout","amount","showAmount","url","brandLogo","brandName","countdownTime","onActionHandled","qrCodeImage","qrCodeData","qrSubtitleRef","useAutoFocus","h","QRFinalState","image","message","get","div","className","img","alt","src","Spinner","classnames","classNameModifiers","map","m","join","value","currency","h1","redirectIntroduction","p","Button","onClick","window","location","assign","redirectToApp","label","buttonLabel","ContentSeparator","ref","tabIndex","introduction","QRLoaderDetailsProvider","timeToPay","copyBtn","instructions","onTick","time","onQRCodeLoad","componentType","actionDescription","onTimeUp","handleCopy","event","AnalyticsInfoEvent","ANALYTICS_DOWNLOAD_STR","target","ANALYTICS_QR_CODE_DOWNLOAD","onSubmitAnalytics","children","QRDetails","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"QRLoaderDetailsProvider.js","sources":["../../../../../src/components/internal/QRLoader/QRLoaderDetailsProvider.tsx"],"sourcesContent":["import { h, createContext } from 'preact';\nimport type { ComponentChildren } from 'preact';\nimport { useContext } from 'preact/hooks';\nimport { CountdownTime } from '../Countdown/types';\n\ninterface QRLoaderDetailsProviderProps {\n qrCodeImage: string;\n qrCodeData: string;\n countdownTime: number;\n percentage: number;\n timeToPay: string;\n instructions?: string | (() => h.JSX.Element);\n copyBtn: boolean;\n onTick: (time: CountdownTime) => void;\n onQRCodeLoad: () => void;\n onTimeUp: () => void;\n handleCopy: (onComplete: () => void) => void;\n children: ComponentChildren;\n}\n\ntype QRLoaderDetailsContextValue = Omit<QRLoaderDetailsProviderProps, 'children'>;\n\nconst QRLoaderDetailsContext = createContext<QRLoaderDetailsContextValue | undefined>(undefined);\n\nconst QRLoaderDetailsProvider = ({ children, ...props }: QRLoaderDetailsProviderProps) => {\n return <QRLoaderDetailsContext.Provider value={{ ...props }}>{children}</QRLoaderDetailsContext.Provider>;\n};\n\nconst useQRLoaderDetails = (): QRLoaderDetailsContextValue => {\n const context = useContext(QRLoaderDetailsContext);\n\n if (context === undefined) {\n throw new Error('\"useQRLoaderDetails\" must be used within a QRLoaderDetailsContext');\n }\n\n return context;\n};\n\nexport { QRLoaderDetailsProvider, useQRLoaderDetails };\n"],"names":["QRLoaderDetailsContext","createContext","undefined","QRLoaderDetailsProvider","children","props","h","Provider","value","useQRLoaderDetails","context","useContext","Error"],"mappings":"qKAsBA,MAAMA,EAAyBC,OAAuDC,GAEhFC,EAA0B,EAAGC,cAAaC,KACrCC,EAACN,EAAuBO,SAAQ,CAACC,MAAO,IAAKH,IAAUD,GAG5DK,EAAqB,KACvB,MAAMC,EAAUC,EAAWX,GAE3B,QAAgBE,IAAZQ,EACA,MAAM,IAAIE,MAAM,qEAGpB,OAAOF"}
1
+ {"version":3,"file":"QRLoaderDetailsProvider.js","sources":["../../../../../src/components/internal/QRLoader/QRLoaderDetailsProvider.tsx"],"sourcesContent":["import { h, createContext } from 'preact';\nimport type { ComponentChildren } from 'preact';\nimport { useContext } from 'preact/hooks';\nimport { CountdownTime } from '../Countdown/types';\n\ninterface QRLoaderDetailsProviderProps {\n qrCodeImage: string;\n qrCodeData: string;\n countdownTime: number;\n percentage: number;\n timeToPay: string;\n instructions?: string | (() => h.JSX.Element);\n copyBtn: boolean;\n onTick: (time: CountdownTime) => void;\n onQRCodeLoad: () => void;\n onTimeUp: () => void;\n handleCopy?: (e: h.JSX.TargetedMouseEvent<HTMLButtonElement>) => void;\n children: ComponentChildren;\n}\n\ntype QRLoaderDetailsContextValue = Omit<QRLoaderDetailsProviderProps, 'children'>;\n\nconst QRLoaderDetailsContext = createContext<QRLoaderDetailsContextValue | undefined>(undefined);\n\nconst QRLoaderDetailsProvider = ({ children, ...props }: QRLoaderDetailsProviderProps) => {\n return <QRLoaderDetailsContext.Provider value={{ ...props }}>{children}</QRLoaderDetailsContext.Provider>;\n};\n\nconst useQRLoaderDetails = (): QRLoaderDetailsContextValue => {\n const context = useContext(QRLoaderDetailsContext);\n\n if (context === undefined) {\n throw new Error('\"useQRLoaderDetails\" must be used within a QRLoaderDetailsContext');\n }\n\n return context;\n};\n\nexport { QRLoaderDetailsProvider, useQRLoaderDetails };\n"],"names":["QRLoaderDetailsContext","createContext","undefined","QRLoaderDetailsProvider","children","props","h","Provider","value","useQRLoaderDetails","context","useContext","Error"],"mappings":"qKAsBA,MAAMA,EAAyBC,OAAuDC,GAEhFC,EAA0B,EAAGC,cAAaC,KACrCC,EAACN,EAAuBO,SAAQ,CAACC,MAAO,IAAKH,IAAUD,GAG5DK,EAAqB,KACvB,MAAMC,EAAUC,EAAWX,GAE3B,QAAgBE,IAAZQ,EACA,MAAM,IAAIE,MAAM,qEAGpB,OAAOF"}
@@ -1,2 +1,2 @@
1
- import{createElement as o}from"../../../../external/preact/dist/preact.js";import e from"../../Button/Button.js";import{PREFIX as t}from"../../Icon/constants.js";import n from"../../../../core/Context/useImage.js";import{useCoreContext as r}from"../../../../core/Context/CoreProvider.js";const c=({copyLabel:c,copiedLabel:a,handleCopy:m})=>{const{i18n:p}=r(),i=n();return o(e,{variant:"action",onClick:(o,{complete:e})=>m(e),icon:i({imageFolder:"components/"})(`${t}copy`),onClickCompletedIcon:i({imageFolder:"components/"})(`${t}checkmark`),label:c??p.get("button.copy"),onClickCompletedLabel:a??p.get("button.copied")})};export{c as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{CopyButton as t}from"../../Button/CopyButton.js";const o=({text:o,copyLabel:a,copiedLabel:l,handleCopy:p})=>e(t,{onClick:p,text:o,label:a,copiedLabel:l});export{o as default};
2
2
  //# sourceMappingURL=QRCodeCopyButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QRCodeCopyButton.js","sources":["../../../../../../src/components/internal/QRLoader/components/QRCodeCopyButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Button from '../../Button';\nimport { PREFIX } from '../../Icon/constants';\nimport useImage from '../../../../core/Context/useImage';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\n\ninterface QRCodeCopyButtonProps {\n copyLabel?: string;\n copiedLabel?: string;\n handleCopy: (onComplete: () => void) => void;\n}\n\nconst QRCodeCopyButton = ({ copyLabel, copiedLabel, handleCopy }: QRCodeCopyButtonProps) => {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n return (\n <Button\n variant=\"action\"\n onClick={(_, { complete }) => handleCopy(complete)}\n icon={getImage({ imageFolder: 'components/' })(`${PREFIX}copy`)}\n onClickCompletedIcon={getImage({ imageFolder: 'components/' })(`${PREFIX}checkmark`)}\n label={copyLabel ?? i18n.get('button.copy')}\n onClickCompletedLabel={copiedLabel ?? i18n.get('button.copied')}\n />\n );\n};\n\nexport default QRCodeCopyButton;\n"],"names":["QRCodeCopyButton","copyLabel","copiedLabel","handleCopy","i18n","useCoreContext","getImage","useImage","h","Button","variant","onClick","_","complete","icon","imageFolder","PREFIX","onClickCompletedIcon","label","get","onClickCompletedLabel"],"mappings":"gSAYA,MAAMA,EAAmB,EAAGC,YAAWC,cAAaC,iBAChD,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAEjB,OACIC,EAACC,EAAAA,CACGC,QAAQ,SACRC,QAAS,CAACC,GAAKC,cAAeV,EAAWU,GACzCC,KAAMR,EAAS,CAAES,YAAa,eAAxBT,CAAyC,GAAGU,SAClDC,qBAAsBX,EAAS,CAAES,YAAa,eAAxBT,CAAyC,GAAGU,cAClEE,MAAOjB,GAAaG,EAAKe,IAAI,eAC7BC,sBAAuBlB,GAAeE,EAAKe,IAAI"}
1
+ {"version":3,"file":"QRCodeCopyButton.js","sources":["../../../../../../src/components/internal/QRLoader/components/QRCodeCopyButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { CopyButton } from '../../Button/CopyButton';\n\ninterface QRCodeCopyButtonProps {\n text: string;\n copyLabel?: string;\n copiedLabel?: string;\n handleCopy?: (e: h.JSX.TargetedMouseEvent<HTMLButtonElement>) => void;\n}\n\nconst QRCodeCopyButton = ({ text, copyLabel, copiedLabel, handleCopy }: QRCodeCopyButtonProps) => {\n return <CopyButton onClick={handleCopy} text={text} label={copyLabel} copiedLabel={copiedLabel} />;\n};\n\nexport default QRCodeCopyButton;\n"],"names":["QRCodeCopyButton","text","copyLabel","copiedLabel","handleCopy","h","CopyButton","onClick","label"],"mappings":"mIAUA,MAAMA,EAAmB,EAAGC,OAAMC,YAAWC,cAAaC,gBAC/CC,EAACC,EAAAA,CAAWC,QAASH,EAAYH,KAAMA,EAAMO,MAAON,EAAWC,YAAaA"}
@@ -1,2 +1,2 @@
1
- import{createElement as o,Fragment as e}from"../../../../external/preact/dist/preact.js";import t from"./QRImage.js";import r from"./QRProgressbar.js";import n from"./QRCountdown.js";import a from"./QRIntructions.js";import m from"./QRCodeCopyButton.js";import{useQRLoaderDetails as s}from"../QRLoaderDetailsProvider.js";const i=()=>{const{qrCodeImage:i,percentage:c,timeToPay:d,copyBtn:p,instructions:l,onTick:u,countdownTime:f,onQRCodeLoad:C,onTimeUp:j,handleCopy:y}=s();return o(e,null,o(t,{src:i,onLoad:C}),o(r,{percentage:c}),o(n,{countdownTime:f,timeToPay:d,onTick:u,onCompleted:j}),l&&o(a,{instructions:l}),p&&o("div",{className:"adyen-checkout__qr-loader__actions"},o(m,{handleCopy:y})))};export{i as default};
1
+ import{createElement as o,Fragment as e}from"../../../../external/preact/dist/preact.js";import t from"./QRImage.js";import r from"./QRProgressbar.js";import n from"./QRCountdown.js";import a from"./QRIntructions.js";import m from"./QRCodeCopyButton.js";import{useQRLoaderDetails as s}from"../QRLoaderDetailsProvider.js";const i=()=>{const{qrCodeData:i,qrCodeImage:c,percentage:d,timeToPay:p,copyBtn:l,instructions:u,onTick:C,countdownTime:f,onQRCodeLoad:j,onTimeUp:y,handleCopy:Q}=s();return o(e,null,o(t,{src:c,onLoad:j}),o(r,{percentage:d}),o(n,{countdownTime:f,timeToPay:p,onTick:C,onCompleted:y}),u&&o(a,{instructions:u}),l&&o("div",{className:"adyen-checkout__qr-loader__actions"},o(m,{text:i,handleCopy:Q})))};export{i as default};
2
2
  //# sourceMappingURL=QRDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QRDetails.js","sources":["../../../../../../src/components/internal/QRLoader/components/QRDetails.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport QRImage from './QRImage';\nimport QRProgressbar from './QRProgressbar';\nimport QRCountdown from './QRCountdown';\nimport QRInstructions from './QRIntructions';\nimport QRCodeCopyButton from './QRCodeCopyButton';\nimport { useQRLoaderDetails } from '../QRLoaderDetailsProvider';\n\nconst QRDetails = () => {\n const { qrCodeImage, percentage, timeToPay, copyBtn, instructions, onTick, countdownTime, onQRCodeLoad, onTimeUp, handleCopy } =\n useQRLoaderDetails();\n\n return (\n <Fragment>\n <QRImage src={qrCodeImage} onLoad={onQRCodeLoad} />\n\n <QRProgressbar percentage={percentage} />\n\n <QRCountdown countdownTime={countdownTime} timeToPay={timeToPay} onTick={onTick} onCompleted={onTimeUp} />\n\n {instructions && <QRInstructions instructions={instructions} />}\n\n {copyBtn && (\n <div className=\"adyen-checkout__qr-loader__actions\">\n <QRCodeCopyButton handleCopy={handleCopy} />\n </div>\n )}\n </Fragment>\n );\n};\n\nexport default QRDetails;\n"],"names":["QRDetails","qrCodeImage","percentage","timeToPay","copyBtn","instructions","onTick","countdownTime","onQRCodeLoad","onTimeUp","handleCopy","useQRLoaderDetails","h","Fragment","QRImage","src","onLoad","QRProgressbar","QRCountdown","onCompleted","QRInstructions","div","className","QRCodeCopyButton"],"mappings":"iUAQA,MAAMA,EAAY,KACd,MAAMC,YAAEA,EAAWC,WAAEA,EAAUC,UAAEA,EAASC,QAAEA,EAAOC,aAAEA,EAAYC,OAAEA,EAAMC,cAAEA,EAAaC,aAAEA,EAAYC,SAAEA,EAAQC,WAAEA,GAC9GC,IAEJ,OACIC,EAACC,OACGD,EAACE,EAAAA,CAAQC,IAAKd,EAAae,OAAQR,IAEnCI,EAACK,EAAAA,CAAcf,WAAYA,IAE3BU,EAACM,EAAAA,CAAYX,cAAeA,EAAeJ,UAAWA,EAAWG,OAAQA,EAAQa,YAAaV,IAE7FJ,GAAgBO,EAACQ,EAAAA,CAAef,aAAcA,IAE9CD,GACGQ,EAACS,MAAAA,CAAIC,UAAU,sCACXV,EAACW,EAAAA,CAAiBb,WAAYA"}
1
+ {"version":3,"file":"QRDetails.js","sources":["../../../../../../src/components/internal/QRLoader/components/QRDetails.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport QRImage from './QRImage';\nimport QRProgressbar from './QRProgressbar';\nimport QRCountdown from './QRCountdown';\nimport QRInstructions from './QRIntructions';\nimport QRCodeCopyButton from './QRCodeCopyButton';\nimport { useQRLoaderDetails } from '../QRLoaderDetailsProvider';\n\nconst QRDetails = () => {\n const { qrCodeData, qrCodeImage, percentage, timeToPay, copyBtn, instructions, onTick, countdownTime, onQRCodeLoad, onTimeUp, handleCopy } =\n useQRLoaderDetails();\n\n return (\n <Fragment>\n <QRImage src={qrCodeImage} onLoad={onQRCodeLoad} />\n\n <QRProgressbar percentage={percentage} />\n\n <QRCountdown countdownTime={countdownTime} timeToPay={timeToPay} onTick={onTick} onCompleted={onTimeUp} />\n\n {instructions && <QRInstructions instructions={instructions} />}\n\n {copyBtn && (\n <div className=\"adyen-checkout__qr-loader__actions\">\n <QRCodeCopyButton text={qrCodeData} handleCopy={handleCopy} />\n </div>\n )}\n </Fragment>\n );\n};\n\nexport default QRDetails;\n"],"names":["QRDetails","qrCodeData","qrCodeImage","percentage","timeToPay","copyBtn","instructions","onTick","countdownTime","onQRCodeLoad","onTimeUp","handleCopy","useQRLoaderDetails","h","Fragment","QRImage","src","onLoad","QRProgressbar","QRCountdown","onCompleted","QRInstructions","div","className","QRCodeCopyButton","text"],"mappings":"iUAQA,MAAMA,EAAY,KACd,MAAMC,WAAEA,EAAUC,YAAEA,EAAWC,WAAEA,EAAUC,UAAEA,EAASC,QAAEA,EAAOC,aAAEA,EAAYC,OAAEA,EAAMC,cAAEA,EAAaC,aAAEA,EAAYC,SAAEA,EAAQC,WAAEA,GAC1HC,IAEJ,OACIC,EAACC,OACGD,EAACE,EAAAA,CAAQC,IAAKd,EAAae,OAAQR,IAEnCI,EAACK,EAAAA,CAAcf,WAAYA,IAE3BU,EAACM,EAAAA,CAAYX,cAAeA,EAAeJ,UAAWA,EAAWG,OAAQA,EAAQa,YAAaV,IAE7FJ,GAAgBO,EAACQ,EAAAA,CAAef,aAAcA,IAE9CD,GACGQ,EAACS,MAAAA,CAAIC,UAAU,sCACXV,EAACW,EAAAA,CAAiBC,KAAMxB,EAAYU,WAAYA"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import a from"../../../_virtual/index.js";import r from"../Button/Button.js";import{copyToClipboard as o}from"../../../utils/clipboard.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";import t from"../../../core/Context/useImage.js";import{PREFIX as n}from"../Icon/constants.js";import s from"../DetailsTable/DetailsTable.js";function _({voucherDetails:_=[],className:l="",...u}){const{i18n:i}=c(),d=t();return u.onActionHandled?.({componentType:u.paymentMethodType,actionDescription:"voucher-presented"}),e("div",{className:a("adyen-checkout__voucher-result",`adyen-checkout__voucher-result--${u.paymentMethodType}`,l)},e("div",{className:"adyen-checkout__voucher-result__top"},e("div",{className:"adyen-checkout__voucher-result__image"},!!u.imageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:u.paymentMethodType,className:"adyen-checkout__voucher-result__image__brand",src:u.imageUrl})),!!u.issuerImageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:u.paymentMethodType,className:"adyen-checkout__voucher-result__image__issuer",src:u.issuerImageUrl}))),e("div",{className:"adyen-checkout__voucher-result__introduction"},u.introduction," ",u.instructionsUrl&&e("a",{className:"adyen-checkout-link adyen-checkout-link--voucher-result-instructions",href:u.instructionsUrl,target:"_blank",rel:"noopener noreferrer"},i.get("voucher.readInstructions")," ›")),u.amount&&e("div",{className:"adyen-checkout__voucher-result__amount"},u.amount,u.surcharge&&e("span",{className:"adyen-checkout__voucher-result__surcharge"},"(",i.get("voucher.surcharge").replace("%@",u.surcharge),")"))),u.reference&&e("div",{className:"adyen-checkout__voucher-result__separator"},e("div",{className:"adyen-checkout__voucher-result__separator__inner"}),e("div",{className:"adyen-checkout__voucher-result__code__label"},e("span",{className:"adyen-checkout__voucher-result__code__label__text"},i.get("voucher.paymentReferenceLabel")))),e("div",{className:"adyen-checkout__voucher-result__bottom"},u.reference&&e("div",{className:"adyen-checkout__voucher-result__code"},u.barcode&&e("img",{alt:i.get("voucher.paymentReferenceLabel"),className:"adyen-checkout__voucher-result__code__barcode",src:u.barcode}),e("span",null,u.reference)),(!!u.downloadUrl||!!u.copyBtn)&&e("ul",{className:"adyen-checkout__voucher-result__actions"},!!u.copyBtn&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(r,{inline:!0,variant:"action",onClick:(e,{complete:a})=>{o(u.reference),a()},icon:d({imageFolder:"components/"})(`${n}copy`),label:i.get("button.copy")})),!!u.downloadUrl&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(r,{inline:!0,variant:"action",href:u.downloadUrl,icon:d({imageFolder:"components/"})(`${n}download`),label:u.downloadButtonText||i.get("button.download"),target:"_blank",rel:"noopener noreferrer"}))),e(s,{tableFields:_})))}export{_ as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../../_virtual/index.js";import a from"../Button/Button.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import o from"../../../core/Context/useImage.js";import{PREFIX as c}from"../Icon/constants.js";import s from"../DetailsTable/DetailsTable.js";import{CopyButton as n}from"../Button/CopyButton.js";function _({voucherDetails:_=[],className:u="",...l}){const{i18n:i}=t(),d=o();return l.onActionHandled?.({componentType:l.paymentMethodType,actionDescription:"voucher-presented"}),e("div",{className:r("adyen-checkout__voucher-result",`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.issuerImageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:l.paymentMethodType,className:"adyen-checkout__voucher-result__image__issuer",src:l.issuerImageUrl}))),e("div",{className:"adyen-checkout__voucher-result__introduction"},l.introduction," ",l.instructionsUrl&&e("a",{className:"adyen-checkout-link adyen-checkout-link--voucher-result-instructions",href:l.instructionsUrl,target:"_blank",rel:"noopener noreferrer"},i.get("voucher.readInstructions")," ›")),l.amount&&e("div",{className:"adyen-checkout__voucher-result__amount"},l.amount,l.surcharge&&e("span",{className:"adyen-checkout__voucher-result__surcharge"},"(",i.get("voucher.surcharge").replace("%@",l.surcharge),")"))),l.reference&&e("div",{className:"adyen-checkout__voucher-result__separator"},e("div",{className:"adyen-checkout__voucher-result__separator__inner"}),e("div",{className:"adyen-checkout__voucher-result__code__label"},e("span",{className:"adyen-checkout__voucher-result__code__label__text"},i.get("voucher.paymentReferenceLabel")))),e("div",{className:"adyen-checkout__voucher-result__bottom"},l.reference&&e("div",{className:"adyen-checkout__voucher-result__code"},l.barcode&&e("img",{alt:i.get("voucher.paymentReferenceLabel"),className:"adyen-checkout__voucher-result__code__barcode",src:l.barcode}),e("span",null,l.reference)),(!!l.downloadUrl||!!l.copyBtn)&&e("ul",{className:"adyen-checkout__voucher-result__actions"},!!l.copyBtn&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(n,{inline:!0,text:l.reference})),!!l.downloadUrl&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(a,{inline:!0,variant:"action",href:l.downloadUrl,icon:d({imageFolder:"components/"})(`${c}download`),label:l.downloadButtonText||i.get("button.download"),target:"_blank",rel:"noopener noreferrer"}))),e(s,{tableFields:_})))}export{_ as default};
2
2
  //# sourceMappingURL=Voucher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Voucher.js","sources":["../../../../../src/components/internal/Voucher/Voucher.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Button from '../Button';\nimport { copyToClipboard } from '../../../utils/clipboard';\n\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Voucher.scss';\nimport { VoucherProps } from './types';\nimport useImage from '../../../core/Context/useImage';\nimport { PREFIX } from '../Icon/constants';\nimport DetailsTable from '../DetailsTable';\n\nexport default function Voucher({ voucherDetails = [], className = '', ...props }: VoucherProps) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n props.onActionHandled?.({ componentType: props.paymentMethodType, actionDescription: 'voucher-presented' });\n\n return (\n <div className={classNames('adyen-checkout__voucher-result', `adyen-checkout__voucher-result--${props.paymentMethodType}`, className)}>\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\n {!!props.issuerImageUrl && (\n <span className=\"adyen-checkout__voucher-result__image__wrapper\">\n <img alt={props.paymentMethodType} className=\"adyen-checkout__voucher-result__image__issuer\" src={props.issuerImageUrl} />\n </span>\n )}\n </div>\n\n <div className=\"adyen-checkout__voucher-result__introduction\">\n {props.introduction}{' '}\n {props.instructionsUrl && (\n <a\n className=\"adyen-checkout-link adyen-checkout-link--voucher-result-instructions\"\n href={props.instructionsUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {i18n.get('voucher.readInstructions')} ›\n </a>\n )}\n </div>\n\n {props.amount && (\n <div className=\"adyen-checkout__voucher-result__amount\">\n {props.amount}\n\n {props.surcharge && (\n <span className=\"adyen-checkout__voucher-result__surcharge\">\n ({i18n.get('voucher.surcharge').replace('%@', props.surcharge)})\n </span>\n )}\n </div>\n )}\n </div>\n\n {props.reference && (\n <div className=\"adyen-checkout__voucher-result__separator\">\n <div className=\"adyen-checkout__voucher-result__separator__inner\" />\n <div className=\"adyen-checkout__voucher-result__code__label\">\n <span className=\"adyen-checkout__voucher-result__code__label__text\">{i18n.get('voucher.paymentReferenceLabel')}</span>\n </div>\n </div>\n )}\n\n <div className=\"adyen-checkout__voucher-result__bottom\">\n {props.reference && (\n <div className=\"adyen-checkout__voucher-result__code\">\n {props.barcode && (\n <img\n alt={i18n.get('voucher.paymentReferenceLabel')}\n className=\"adyen-checkout__voucher-result__code__barcode\"\n src={props.barcode}\n />\n )}\n <span>{props.reference}</span>\n </div>\n )}\n\n {(!!props.downloadUrl || !!props.copyBtn) && (\n <ul className=\"adyen-checkout__voucher-result__actions\">\n {!!props.copyBtn && (\n <li className=\"adyen-checkout__voucher-result__actions__item\">\n <Button\n inline\n variant=\"action\"\n onClick={(e, { complete }) => {\n void copyToClipboard(props.reference);\n complete();\n }}\n icon={getImage({ imageFolder: 'components/' })(`${PREFIX}copy`)}\n label={i18n.get('button.copy')}\n />\n </li>\n )}\n\n {!!props.downloadUrl && (\n <li className=\"adyen-checkout__voucher-result__actions__item\">\n <Button\n inline\n variant=\"action\"\n href={props.downloadUrl}\n icon={getImage({ imageFolder: 'components/' })(`${PREFIX}download`)}\n label={props.downloadButtonText || i18n.get('button.download')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n </li>\n )}\n </ul>\n )}\n\n <DetailsTable tableFields={voucherDetails} />\n </div>\n </div>\n );\n}\n"],"names":["Voucher","voucherDetails","className","props","i18n","useCoreContext","getImage","useImage","onActionHandled","componentType","paymentMethodType","actionDescription","h","div","classNames","imageUrl","span","img","alt","src","issuerImageUrl","introduction","instructionsUrl","a","href","target","rel","get","amount","surcharge","replace","reference","barcode","downloadUrl","copyBtn","ul","li","Button","inline","variant","onClick","e","complete","copyToClipboard","icon","imageFolder","PREFIX","label","downloadButtonText","DetailsTable","tableFields"],"mappings":"waAYe,SAASA,GAAQC,eAAEA,EAAiB,GAAEC,UAAEA,EAAY,MAAOC,IACtE,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAIjB,OAFAJ,EAAMK,kBAAkB,CAAEC,cAAeN,EAAMO,kBAAmBC,kBAAmB,sBAGjFC,EAACC,MAAAA,CAAIX,UAAWY,EAAW,iCAAkC,mCAAmCX,EAAMO,oBAAqBR,IACvHU,EAACC,MAAAA,CAAIX,UAAU,uCACXU,EAACC,MAAAA,CAAIX,UAAU,2CACRC,EAAMY,UACLH,EAACI,OAAAA,CAAKd,UAAU,kDACZU,EAACK,MAAAA,CAAIC,IAAKf,EAAMO,kBAAmBR,UAAU,+CAA+CiB,IAAKhB,EAAMY,cAI5GZ,EAAMiB,gBACLR,EAACI,OAAAA,CAAKd,UAAU,kDACZU,EAACK,MAAAA,CAAIC,IAAKf,EAAMO,kBAAmBR,UAAU,gDAAgDiB,IAAKhB,EAAMiB,mBAKpHR,EAACC,MAAAA,CAAIX,UAAU,gDACVC,EAAMkB,aAAc,IACpBlB,EAAMmB,iBACHV,EAACW,IAAAA,CACGrB,UAAU,uEACVsB,KAAMrB,EAAMmB,gBACZG,OAAO,SACPC,IAAI,uBAEHtB,EAAKuB,IAAI,4BAA4B,OAKjDxB,EAAMyB,QACHhB,EAACC,MAAAA,CAAIX,UAAU,0CACVC,EAAMyB,OAENzB,EAAM0B,WACHjB,EAACI,OAAAA,CAAKd,UAAU,6CAA4C,IACtDE,EAAKuB,IAAI,qBAAqBG,QAAQ,KAAM3B,EAAM0B,WAAW,OAOlF1B,EAAM4B,WACHnB,EAACC,MAAAA,CAAIX,UAAU,6CACXU,EAACC,MAAAA,CAAIX,UAAU,qDACfU,EAACC,MAAAA,CAAIX,UAAU,+CACXU,EAACI,OAAAA,CAAKd,UAAU,qDAAqDE,EAAKuB,IAAI,oCAK1Ff,EAACC,MAAAA,CAAIX,UAAU,0CACVC,EAAM4B,WACHnB,EAACC,MAAAA,CAAIX,UAAU,wCACVC,EAAM6B,SACHpB,EAACK,MAAAA,CACGC,IAAKd,EAAKuB,IAAI,iCACdzB,UAAU,gDACViB,IAAKhB,EAAM6B,UAGnBpB,EAACI,YAAMb,EAAM4B,eAIjB5B,EAAM8B,eAAiB9B,EAAM+B,UAC7BtB,EAACuB,KAAAA,CAAGjC,UAAU,6CACPC,EAAM+B,SACLtB,EAACwB,KAAAA,CAAGlC,UAAU,iDACVU,EAACyB,EAAAA,CACGC,QAAAA,EACAC,QAAQ,SACRC,QAAS,CAACC,GAAKC,eACNC,EAAgBxC,EAAM4B,WAC3BW,KAEJE,KAAMtC,EAAS,CAAEuC,YAAa,eAAxBvC,CAAyC,GAAGwC,SAClDC,MAAO3C,EAAKuB,IAAI,oBAKzBxB,EAAM8B,aACLrB,EAACwB,KAAAA,CAAGlC,UAAU,iDACVU,EAACyB,EAAAA,CACGC,QAAAA,EACAC,QAAQ,SACRf,KAAMrB,EAAM8B,YACZW,KAAMtC,EAAS,CAAEuC,YAAa,eAAxBvC,CAAyC,GAAGwC,aAClDC,MAAO5C,EAAM6C,oBAAsB5C,EAAKuB,IAAI,mBAC5CF,OAAO,SACPC,IAAI,0BAOxBd,EAACqC,EAAAA,CAAaC,YAAajD,KAI3C"}
1
+ {"version":3,"file":"Voucher.js","sources":["../../../../../src/components/internal/Voucher/Voucher.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Button from '../Button';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Voucher.scss';\nimport { VoucherProps } from './types';\nimport useImage from '../../../core/Context/useImage';\nimport { PREFIX } from '../Icon/constants';\nimport DetailsTable from '../DetailsTable';\nimport { CopyButton } from '../Button/CopyButton';\n\nexport default function Voucher({ voucherDetails = [], className = '', ...props }: VoucherProps) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n props.onActionHandled?.({ componentType: props.paymentMethodType, actionDescription: 'voucher-presented' });\n\n return (\n <div className={classNames('adyen-checkout__voucher-result', `adyen-checkout__voucher-result--${props.paymentMethodType}`, className)}>\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\n {!!props.issuerImageUrl && (\n <span className=\"adyen-checkout__voucher-result__image__wrapper\">\n <img alt={props.paymentMethodType} className=\"adyen-checkout__voucher-result__image__issuer\" src={props.issuerImageUrl} />\n </span>\n )}\n </div>\n\n <div className=\"adyen-checkout__voucher-result__introduction\">\n {props.introduction}{' '}\n {props.instructionsUrl && (\n <a\n className=\"adyen-checkout-link adyen-checkout-link--voucher-result-instructions\"\n href={props.instructionsUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {i18n.get('voucher.readInstructions')} ›\n </a>\n )}\n </div>\n\n {props.amount && (\n <div className=\"adyen-checkout__voucher-result__amount\">\n {props.amount}\n\n {props.surcharge && (\n <span className=\"adyen-checkout__voucher-result__surcharge\">\n ({i18n.get('voucher.surcharge').replace('%@', props.surcharge)})\n </span>\n )}\n </div>\n )}\n </div>\n\n {props.reference && (\n <div className=\"adyen-checkout__voucher-result__separator\">\n <div className=\"adyen-checkout__voucher-result__separator__inner\" />\n <div className=\"adyen-checkout__voucher-result__code__label\">\n <span className=\"adyen-checkout__voucher-result__code__label__text\">{i18n.get('voucher.paymentReferenceLabel')}</span>\n </div>\n </div>\n )}\n\n <div className=\"adyen-checkout__voucher-result__bottom\">\n {props.reference && (\n <div className=\"adyen-checkout__voucher-result__code\">\n {props.barcode && (\n <img\n alt={i18n.get('voucher.paymentReferenceLabel')}\n className=\"adyen-checkout__voucher-result__code__barcode\"\n src={props.barcode}\n />\n )}\n <span>{props.reference}</span>\n </div>\n )}\n\n {(!!props.downloadUrl || !!props.copyBtn) && (\n <ul className=\"adyen-checkout__voucher-result__actions\">\n {!!props.copyBtn && (\n <li className=\"adyen-checkout__voucher-result__actions__item\">\n <CopyButton inline text={props.reference} />\n </li>\n )}\n\n {!!props.downloadUrl && (\n <li className=\"adyen-checkout__voucher-result__actions__item\">\n <Button\n inline\n variant=\"action\"\n href={props.downloadUrl}\n icon={getImage({ imageFolder: 'components/' })(`${PREFIX}download`)}\n label={props.downloadButtonText || i18n.get('button.download')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n />\n </li>\n )}\n </ul>\n )}\n\n <DetailsTable tableFields={voucherDetails} />\n </div>\n </div>\n );\n}\n"],"names":["Voucher","voucherDetails","className","props","i18n","useCoreContext","getImage","useImage","onActionHandled","componentType","paymentMethodType","actionDescription","h","div","classNames","imageUrl","span","img","alt","src","issuerImageUrl","introduction","instructionsUrl","a","href","target","rel","get","amount","surcharge","replace","reference","barcode","downloadUrl","copyBtn","ul","li","CopyButton","inline","text","Button","variant","icon","imageFolder","PREFIX","label","downloadButtonText","DetailsTable","tableFields"],"mappings":"+ZAWe,SAASA,GAAQC,eAAEA,EAAiB,GAAEC,UAAEA,EAAY,MAAOC,IACtE,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAIjB,OAFAJ,EAAMK,kBAAkB,CAAEC,cAAeN,EAAMO,kBAAmBC,kBAAmB,sBAGjFC,EAACC,MAAAA,CAAIX,UAAWY,EAAW,iCAAkC,mCAAmCX,EAAMO,oBAAqBR,IACvHU,EAACC,MAAAA,CAAIX,UAAU,uCACXU,EAACC,MAAAA,CAAIX,UAAU,2CACRC,EAAMY,UACLH,EAACI,OAAAA,CAAKd,UAAU,kDACZU,EAACK,MAAAA,CAAIC,IAAKf,EAAMO,kBAAmBR,UAAU,+CAA+CiB,IAAKhB,EAAMY,cAI5GZ,EAAMiB,gBACLR,EAACI,OAAAA,CAAKd,UAAU,kDACZU,EAACK,MAAAA,CAAIC,IAAKf,EAAMO,kBAAmBR,UAAU,gDAAgDiB,IAAKhB,EAAMiB,mBAKpHR,EAACC,MAAAA,CAAIX,UAAU,gDACVC,EAAMkB,aAAc,IACpBlB,EAAMmB,iBACHV,EAACW,IAAAA,CACGrB,UAAU,uEACVsB,KAAMrB,EAAMmB,gBACZG,OAAO,SACPC,IAAI,uBAEHtB,EAAKuB,IAAI,4BAA4B,OAKjDxB,EAAMyB,QACHhB,EAACC,MAAAA,CAAIX,UAAU,0CACVC,EAAMyB,OAENzB,EAAM0B,WACHjB,EAACI,OAAAA,CAAKd,UAAU,6CAA4C,IACtDE,EAAKuB,IAAI,qBAAqBG,QAAQ,KAAM3B,EAAM0B,WAAW,OAOlF1B,EAAM4B,WACHnB,EAACC,MAAAA,CAAIX,UAAU,6CACXU,EAACC,MAAAA,CAAIX,UAAU,qDACfU,EAACC,MAAAA,CAAIX,UAAU,+CACXU,EAACI,OAAAA,CAAKd,UAAU,qDAAqDE,EAAKuB,IAAI,oCAK1Ff,EAACC,MAAAA,CAAIX,UAAU,0CACVC,EAAM4B,WACHnB,EAACC,MAAAA,CAAIX,UAAU,wCACVC,EAAM6B,SACHpB,EAACK,MAAAA,CACGC,IAAKd,EAAKuB,IAAI,iCACdzB,UAAU,gDACViB,IAAKhB,EAAM6B,UAGnBpB,EAACI,YAAMb,EAAM4B,eAIjB5B,EAAM8B,eAAiB9B,EAAM+B,UAC7BtB,EAACuB,KAAAA,CAAGjC,UAAU,6CACPC,EAAM+B,SACLtB,EAACwB,KAAAA,CAAGlC,UAAU,iDACVU,EAACyB,EAAAA,CAAWC,QAAAA,EAAOC,KAAMpC,EAAM4B,eAIpC5B,EAAM8B,aACLrB,EAACwB,KAAAA,CAAGlC,UAAU,iDACVU,EAAC4B,EAAAA,CACGF,QAAAA,EACAG,QAAQ,SACRjB,KAAMrB,EAAM8B,YACZS,KAAMpC,EAAS,CAAEqC,YAAa,eAAxBrC,CAAyC,GAAGsC,aAClDC,MAAO1C,EAAM2C,oBAAsB1C,EAAKuB,IAAI,mBAC5CF,OAAO,SACPC,IAAI,0BAOxBd,EAACmC,EAAAA,CAAaC,YAAa/C,KAI3C"}
@@ -1,2 +1,2 @@
1
- import{get3DS2FlowProps as e}from"../../../components/ThreeDS2/components/utils.js";import t from"../../../utils/uuid.js";const o=(e,o,n,r)=>{const i=o.getComponent(n);if(!i)throw Error(`Action Element of type ${n} not found in the registry`);return new i(e,{...r,id:`${n}-${t()}`})},n=e=>(t,n,r,i)=>{const s={...i,...r,onError:i.onError,statusType:e,originalAction:r};return o(t,n,r.paymentMethodType,s)},r={redirect:(e,t,n,r)=>{const i={...r,...n,statusType:"redirect",originalAction:n};return o(e,t,"redirect",i)},threeDS2:(t,n,r,i)=>{const s="fingerprint"===r.subtype?"threeDS2DeviceFingerprint":"threeDS2Challenge",a="fingerprint"===r.subtype||i.isMDFlow?r.paymentData:r.authorisationToken,c={core:t,token:r.token,paymentData:a,onActionHandled:i.onActionHandled,onComplete:i.onComplete,onError:i.onError,isDropin:!!i.isDropin,loadingContext:i.loadingContext,clientKey:i.clientKey,paymentMethodType:i.paymentMethodType,challengeWindowSize:i.challengeWindowSize,isMDFlow:i.isMDFlow,modules:{analytics:i.modules?.analytics,resources:i.modules?.resources},...e(r.subtype,i)};return o(t,n,s,c)},voucher:n("custom"),qrCode:n("custom"),await:n("custom"),bankTransfer:n("custom"),sdk:n("custom")};export{r as default};
1
+ import{get3DS2FlowProps as e}from"../../../components/ThreeDS2/components/utils.js";import t from"../../../utils/uuid.js";const o=(e,o,n,r)=>{const i=o.getComponent(n);if(!i)throw Error(`Action Element of type ${n} not found in the registry`);return new i(e,{...r,id:`${n}-${t()}`})},n=e=>(t,n,r,i)=>{const s={...i,...r,onError:i.onError,statusType:e,originalAction:r};return o(t,n,r.paymentMethodType,s)},r={redirect:(e,t,n,r)=>{const i={...r,...n,statusType:"redirect",originalAction:n};return o(e,t,"redirect",i)},threeDS2:(t,n,r,i)=>{const s="fingerprint"===r.subtype?"threeDS2DeviceFingerprint":"threeDS2Challenge",a="fingerprint"===r.subtype||i.isMDFlow?r.paymentData:r.authorisationToken,l={core:t,token:r.token,paymentData:a,onActionHandled:i.onActionHandled,onComplete:i.onComplete,onAdditionalDetails:i.onAdditionalDetails,onError:i.onError,isDropin:!!i.isDropin,loadingContext:i.loadingContext,clientKey:i.clientKey,paymentMethodType:i.paymentMethodType,challengeWindowSize:i.challengeWindowSize,isMDFlow:i.isMDFlow,modules:{analytics:i.modules?.analytics,resources:i.modules?.resources},...e(r.subtype,i)};return o(t,n,s,l)},voucher:n("custom"),qrCode:n("custom"),await:n("custom"),bankTransfer:n("custom"),sdk:n("custom")};export{r as default};
2
2
  //# sourceMappingURL=actionTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionTypes.js","sources":["../../../../../src/core/ProcessResponse/PaymentAction/actionTypes.ts"],"sourcesContent":["import { get3DS2FlowProps } from '../../../components/ThreeDS2/components/utils';\nimport uuid from '../../../utils/uuid';\nimport UIElement from '../../../components/internal/UIElement';\nimport type { PaymentAction } from '../../../types/global-types';\nimport type { IRegistry } from '../../core.registry';\nimport type { ICore } from '../../types';\n\nconst createComponent = (core: ICore, registry: IRegistry, componentType, props): UIElement => {\n const Element = registry.getComponent(componentType);\n\n if (!Element) {\n throw Error(`Action Element of type ${componentType} not found in the registry`);\n }\n\n return new Element(core, { ...props, id: `${componentType}-${uuid()}` });\n};\n\nconst getActionHandler = statusType => {\n return (core: ICore, registry: IRegistry, action: PaymentAction, props) => {\n const config = {\n ...props,\n ...action,\n onError: props.onError,\n statusType,\n originalAction: action\n };\n\n return createComponent(core, registry, action.paymentMethodType, config);\n };\n};\n\nconst actionTypes = {\n redirect: (core: ICore, registry, action: PaymentAction, props) => {\n const config = {\n ...props,\n ...action,\n statusType: 'redirect',\n originalAction: action\n };\n\n return createComponent(core, registry, 'redirect', config);\n },\n\n threeDS2: (core: ICore, registry, action: PaymentAction, props) => {\n const componentType = action.subtype === 'fingerprint' ? 'threeDS2DeviceFingerprint' : 'threeDS2Challenge';\n\n /**\n * NOTE: the isMDFlow prop comes from the options object, added within the MDFlow when it calls createFromAction(action, options) to initiate a 3DS2 component\n * It replaces the useOriginalFlow config prop that the MDFlow used to pass when directly initiating the threeDS2Fingerprint or threeDS2Challenge components\n */\n const paymentData = action.subtype === 'fingerprint' || props.isMDFlow ? action.paymentData : action.authorisationToken;\n\n const config = {\n // Props common to both flows\n core: core,\n token: action.token,\n paymentData,\n onActionHandled: props.onActionHandled,\n onComplete: props.onComplete, // NOTE: We only ever expect props.onComplete to be defined for the MDFlow\n onError: props.onError,\n isDropin: !!props.isDropin,\n loadingContext: props.loadingContext,\n clientKey: props.clientKey,\n paymentMethodType: props.paymentMethodType,\n challengeWindowSize: props.challengeWindowSize, // always pass challengeWindowSize in case it's been set directly in the handleAction config object\n isMDFlow: props.isMDFlow,\n modules: {\n analytics: props.modules?.analytics,\n resources: props.modules?.resources\n },\n\n // Props unique to a particular flow\n ...get3DS2FlowProps(action.subtype, props)\n };\n\n return createComponent(core, registry, componentType, config);\n },\n\n voucher: getActionHandler('custom'),\n qrCode: getActionHandler('custom'),\n await: getActionHandler('custom'),\n bankTransfer: getActionHandler('custom'),\n sdk: getActionHandler('custom')\n} as const;\n\nexport default actionTypes;\n"],"names":["createComponent","core","registry","componentType","props","Element","getComponent","Error","id","uuid","getActionHandler","statusType","action","config","onError","originalAction","paymentMethodType","actionTypes","redirect","threeDS2","subtype","paymentData","isMDFlow","authorisationToken","token","onActionHandled","onComplete","isDropin","loadingContext","clientKey","challengeWindowSize","modules","analytics","resources","get3DS2FlowProps","voucher","qrCode","await","bankTransfer","sdk"],"mappings":"0HAOA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAeC,KACtE,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAG1C,OAAO,IAAIE,EAAQJ,EAAM,IAAKG,EAAOI,GAAI,GAAGL,KAAiBM,SAG3DC,EAAmBC,GACd,CAACV,EAAaC,EAAqBU,EAAuBR,KAC7D,MAAMS,EAAS,IACRT,KACAQ,EACHE,QAASV,EAAMU,QACfH,aACAI,eAAgBH,GAGpB,OAAOZ,EAAgBC,EAAMC,EAAUU,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACjB,EAAaC,EAAUU,EAAuBR,KACrD,MAAMS,EAAS,IACRT,KACAQ,EACHD,WAAY,WACZI,eAAgBH,GAGpB,OAAOZ,EAAgBC,EAAMC,EAAU,WAAYW,IAGvDM,SAAU,CAAClB,EAAaC,EAAUU,EAAuBR,KACrD,MAAMD,EAAmC,gBAAnBS,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BhB,EAAMkB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAAS,CAEXZ,KAAMA,EACNuB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBrB,EAAMqB,gBACvBC,WAAYtB,EAAMsB,WAClBZ,QAASV,EAAMU,QACfa,WAAYvB,EAAMuB,SAClBC,eAAgBxB,EAAMwB,eACtBC,UAAWzB,EAAMyB,UACjBb,kBAAmBZ,EAAMY,kBACzBc,oBAAqB1B,EAAM0B,oBAC3BR,SAAUlB,EAAMkB,SAChBS,QAAS,CACLC,UAAW5B,EAAM2B,SAASC,UAC1BC,UAAW7B,EAAM2B,SAASE,cAI3BC,EAAiBtB,EAAOQ,QAAShB,IAGxC,OAAOJ,EAAgBC,EAAMC,EAAUC,EAAeU,IAG1DsB,QAASzB,EAAiB,UAC1B0B,OAAQ1B,EAAiB,UACzB2B,MAAO3B,EAAiB,UACxB4B,aAAc5B,EAAiB,UAC/B6B,IAAK7B,EAAiB"}
1
+ {"version":3,"file":"actionTypes.js","sources":["../../../../../src/core/ProcessResponse/PaymentAction/actionTypes.ts"],"sourcesContent":["import { get3DS2FlowProps } from '../../../components/ThreeDS2/components/utils';\nimport uuid from '../../../utils/uuid';\nimport UIElement from '../../../components/internal/UIElement';\nimport type { PaymentAction } from '../../../types/global-types';\nimport type { IRegistry } from '../../core.registry';\nimport type { ICore } from '../../types';\n\nconst createComponent = (core: ICore, registry: IRegistry, componentType, props): UIElement => {\n const Element = registry.getComponent(componentType);\n\n if (!Element) {\n throw Error(`Action Element of type ${componentType} not found in the registry`);\n }\n\n return new Element(core, { ...props, id: `${componentType}-${uuid()}` });\n};\n\nconst getActionHandler = statusType => {\n return (core: ICore, registry: IRegistry, action: PaymentAction, props) => {\n const config = {\n ...props,\n ...action,\n onError: props.onError,\n statusType,\n originalAction: action\n };\n\n return createComponent(core, registry, action.paymentMethodType, config);\n };\n};\n\nconst actionTypes = {\n redirect: (core: ICore, registry, action: PaymentAction, props) => {\n const config = {\n ...props,\n ...action,\n statusType: 'redirect',\n originalAction: action\n };\n\n return createComponent(core, registry, 'redirect', config);\n },\n\n threeDS2: (core: ICore, registry, action: PaymentAction, props) => {\n const componentType = action.subtype === 'fingerprint' ? 'threeDS2DeviceFingerprint' : 'threeDS2Challenge';\n\n /**\n * NOTE: the isMDFlow prop comes from the options object, added within the MDFlow when it calls createFromAction(action, options) to initiate a 3DS2 component\n * It replaces the useOriginalFlow config prop that the MDFlow used to pass when directly initiating the threeDS2Fingerprint or threeDS2Challenge components\n */\n const paymentData = action.subtype === 'fingerprint' || props.isMDFlow ? action.paymentData : action.authorisationToken;\n\n const config = {\n // Props common to both flows\n core: core,\n token: action.token,\n paymentData,\n onActionHandled: props.onActionHandled,\n onComplete: props.onComplete, // NOTE: We only ever expect props.onComplete to be defined for the MDFlow\n onAdditionalDetails: props.onAdditionalDetails, // Needed to prevent regression in v6.24.0 re. supporting onAdditionalDetails being directly set on Card component (in v7 we will *not* allow this, & this line can be removed)\n onError: props.onError,\n isDropin: !!props.isDropin,\n loadingContext: props.loadingContext,\n clientKey: props.clientKey,\n paymentMethodType: props.paymentMethodType,\n challengeWindowSize: props.challengeWindowSize, // always pass challengeWindowSize in case it's been set directly in the handleAction config object\n isMDFlow: props.isMDFlow,\n modules: {\n analytics: props.modules?.analytics,\n resources: props.modules?.resources\n },\n\n // Props unique to a particular flow\n ...get3DS2FlowProps(action.subtype, props)\n };\n\n return createComponent(core, registry, componentType, config);\n },\n\n voucher: getActionHandler('custom'),\n qrCode: getActionHandler('custom'),\n await: getActionHandler('custom'),\n bankTransfer: getActionHandler('custom'),\n sdk: getActionHandler('custom')\n} as const;\n\nexport default actionTypes;\n"],"names":["createComponent","core","registry","componentType","props","Element","getComponent","Error","id","uuid","getActionHandler","statusType","action","config","onError","originalAction","paymentMethodType","actionTypes","redirect","threeDS2","subtype","paymentData","isMDFlow","authorisationToken","token","onActionHandled","onComplete","onAdditionalDetails","isDropin","loadingContext","clientKey","challengeWindowSize","modules","analytics","resources","get3DS2FlowProps","voucher","qrCode","await","bankTransfer","sdk"],"mappings":"0HAOA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAeC,KACtE,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAG1C,OAAO,IAAIE,EAAQJ,EAAM,IAAKG,EAAOI,GAAI,GAAGL,KAAiBM,SAG3DC,EAAmBC,GACd,CAACV,EAAaC,EAAqBU,EAAuBR,KAC7D,MAAMS,EAAS,IACRT,KACAQ,EACHE,QAASV,EAAMU,QACfH,aACAI,eAAgBH,GAGpB,OAAOZ,EAAgBC,EAAMC,EAAUU,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACjB,EAAaC,EAAUU,EAAuBR,KACrD,MAAMS,EAAS,IACRT,KACAQ,EACHD,WAAY,WACZI,eAAgBH,GAGpB,OAAOZ,EAAgBC,EAAMC,EAAU,WAAYW,IAGvDM,SAAU,CAAClB,EAAaC,EAAUU,EAAuBR,KACrD,MAAMD,EAAmC,gBAAnBS,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BhB,EAAMkB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAAS,CAEXZ,KAAMA,EACNuB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBrB,EAAMqB,gBACvBC,WAAYtB,EAAMsB,WAClBC,oBAAqBvB,EAAMuB,oBAC3Bb,QAASV,EAAMU,QACfc,WAAYxB,EAAMwB,SAClBC,eAAgBzB,EAAMyB,eACtBC,UAAW1B,EAAM0B,UACjBd,kBAAmBZ,EAAMY,kBACzBe,oBAAqB3B,EAAM2B,oBAC3BT,SAAUlB,EAAMkB,SAChBU,QAAS,CACLC,UAAW7B,EAAM4B,SAASC,UAC1BC,UAAW9B,EAAM4B,SAASE,cAI3BC,EAAiBvB,EAAOQ,QAAShB,IAGxC,OAAOJ,EAAgBC,EAAMC,EAAUC,EAAeU,IAG1DuB,QAAS1B,EAAiB,UAC1B2B,OAAQ3B,EAAiB,UACzB4B,MAAO5B,EAAiB,UACxB6B,aAAc7B,EAAiB,UAC/B8B,IAAK9B,EAAiB"}
@@ -1,2 +1,2 @@
1
- const e="https://checkoutshopper-live.adyen.com/checkoutshopper/",n="6.25.0",o="esm",t=["amount","secondaryAmount","countryCode","environment","_environmentUrls","loadingContext","i18n","modules","order","session","clientKey","showPayButton","redirectFromTopWhenInIframe","onPaymentCompleted","onPaymentFailed","beforeRedirect","beforeSubmit","onSubmit","onActionHandled","onAdditionalDetails","onChange","onEnterKeyPressed","onError","onBalanceCheck","onOrderCancel","onOrderRequest","onOrderUpdated","onPaymentMethodsRequest"],r=6e4;export{r as DEFAULT_HTTP_TIMEOUT,e as FALLBACK_CONTEXT,t as GENERIC_OPTIONS,o as LIBRARY_BUNDLE_TYPE,n as LIBRARY_VERSION};
1
+ const e="https://checkoutshopper-live.adyen.com/checkoutshopper/",n="6.25.1",o="esm",t=["amount","secondaryAmount","countryCode","environment","_environmentUrls","loadingContext","i18n","modules","order","session","clientKey","showPayButton","redirectFromTopWhenInIframe","onPaymentCompleted","onPaymentFailed","beforeRedirect","beforeSubmit","onSubmit","onActionHandled","onAdditionalDetails","onChange","onEnterKeyPressed","onError","onBalanceCheck","onOrderCancel","onOrderRequest","onOrderUpdated","onPaymentMethodsRequest"],r=6e4;export{r as DEFAULT_HTTP_TIMEOUT,e as FALLBACK_CONTEXT,t as GENERIC_OPTIONS,o as LIBRARY_BUNDLE_TYPE,n as LIBRARY_VERSION};
2
2
  //# sourceMappingURL=config.js.map
@@ -46,7 +46,7 @@
46
46
  .adyen-checkout__threeds2__challenge,.adyen-checkout__threeds2__challenge-container{background-color:transparent;display:block;height:inherit;min-height:400px;overflow:hidden;position:relative;width:100%}.adyen-checkout__threeds2__challenge--01,.adyen-checkout__threeds2__challenge--01 .adyen-checkout__iframe--threeDSIframe{height:400px;width:250px}.adyen-checkout__threeds2__challenge--02,.adyen-checkout__threeds2__challenge--02 .adyen-checkout__iframe--threeDSIframe{height:400px;width:390px}.adyen-checkout__threeds2__challenge--03,.adyen-checkout__threeds2__challenge--03 .adyen-checkout__iframe--threeDSIframe{height:600px;width:500px}.adyen-checkout__threeds2__challenge--04,.adyen-checkout__threeds2__challenge--04 .adyen-checkout__iframe--threeDSIframe{height:400px;width:600px}.adyen-checkout__threeds2__challenge--05,.adyen-checkout__threeds2__challenge--05 .adyen-checkout__iframe--threeDSIframe{height:100%;width:100%}.adyen-checkout__iframe--threeDSIframe{border:0;left:0;position:absolute;top:0}
47
47
  .adyen-checkout__threeds2-challenge-error .adyen-checkout__status__icon{display:block;margin:var(--adyen-sdk-spacer-130,56px) auto var(--adyen-sdk-spacer-100,32px)}.adyen-checkout__threeds2-challenge-error .adyen-checkout__status__text{color:var(--adyen-sdk-color-label-critical,#c72727);font-size:var(--adyen-sdk-text-title-font-size,1rem);margin-bottom:var(--adyen-sdk-spacer-130,56px);text-align:center}
48
48
  .adyen-checkout__bacs--confirm{position:relative}.adyen-checkout__bacs--confirm .adyen-checkout-input__inline-validation--valid{display:none}.adyen-checkout__bacs .adyen-checkout__field--inactive{pointer-events:none}.adyen-checkout__bacs .adyen-checkout__bacs--edit{cursor:pointer;position:absolute;right:0;top:0}.adyen-checkout__bacs .adyen-checkout__bacs--edit-dropin{top:-50px}.adyen-checkout__bacs .adyen-checkout__bacs--edit .adyen-checkout__bacs--edit-button{background:none;border:none;color:var(--adyen-sdk-color-label-primary,#00112c);cursor:pointer;padding:0;text-align:end;text-decoration:underline}
49
- .adyen-checkout__voucher-result{border-radius:var(--adyen-sdk-border-radius-m,8px);position:relative;text-align:center}.adyen-checkout__voucher-result__bottom,.adyen-checkout__voucher-result__top{background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-separator-primary,#dbdee2)}.adyen-checkout__voucher-result__bottom .adyen-checkout__details-table,.adyen-checkout__voucher-result__top .adyen-checkout__details-table{background:var(--adyen-sdk-color-background-secondary,#f7f7f8);border-radius:var(--adyen-sdk-border-radius-m,8px);margin:0 var(--adyen-sdk-spacer-090,24px) var(--adyen-sdk-spacer-100,32px)}.adyen-checkout__voucher-result__bottom .adyen-checkout__details-table__item:first-child,.adyen-checkout__voucher-result__top .adyen-checkout__details-table__item:first-child{border-top:none}.adyen-checkout__voucher-result__top{border-bottom:0;border-radius:var(--adyen-sdk-border-radius-m,8px) var(--adyen-sdk-border-radius-m,8px) 0 0;padding:var(--adyen-sdk-spacer-110,40px) 0 var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__voucher-result__bottom{border-radius:0 0 var(--adyen-sdk-border-radius-m,8px) var(--adyen-sdk-border-radius-m,8px);border-top:0}.adyen-checkout__voucher-result__separator{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);display:flex;margin:0 auto;position:relative}.adyen-checkout__voucher-result__separator__inner{border-top:1px solid var(--adyen-sdk-color-separator-primary,#dbdee2);width:100%}.adyen-checkout__voucher-result__image{align-items:center;display:flex;justify-content:center;margin-bottom:var(--adyen-sdk-spacer-110,40px);width:100%}.adyen-checkout-link--voucher-result-instructions{display:inline-block}.adyen-checkout__voucher-result__image__wrapper{display:block;height:var(--adyen-sdk-spacer-120,48px);margin:0 var(--adyen-sdk-spacer-090,24px);position:relative}.adyen-checkout__voucher-result__image__wrapper:after{border-radius:var(--adyen-sdk-border-radius-m,8px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02));content:"";height:100%;left:0;position:absolute;top:0;width:100%}.adyen-checkout__voucher-result__image__wrapper:nth-child(2){margin-left:0}.adyen-checkout__voucher-result__image__brand,.adyen-checkout__voucher-result__image__issuer{border-radius:var(--adyen-sdk-border-radius-m,8px);height:var(--adyen-sdk-spacer-120,48px)}.adyen-checkout__voucher-result__introduction{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin:0 auto;max-width:400px;text-align:center}.adyen-checkout__voucher-result__amount{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-subtitle-font-size,1rem);font-weight:700;margin:var(--adyen-sdk-spacer-090,24px) auto 0;text-align:center}.adyen-checkout__voucher-result__surcharge{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);text-align:center}.adyen-checkout__voucher-result__code__label,.adyen-checkout__voucher-result__surcharge{display:block;font-weight:400;line-height:var(--adyen-sdk-text-caption-line-height,18px)}.adyen-checkout__voucher-result__code__label{left:0;margin:0 auto;position:absolute;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto}.adyen-checkout__voucher-result__code__label:before{content:"";position:absolute}.adyen-checkout__voucher-result__code__label__text{background:var(--adyen-sdk-color-background-primary,#ffffff);color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);letter-spacing:normal;line-height:1;padding:0 var(--adyen-sdk-spacer-040,8px)}.adyen-checkout__voucher-result__code__barcode{display:block;height:var(--adyen-sdk-spacer-130,56px);margin:0 auto var(--adyen-sdk-spacer-040,8px);max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.adyen-checkout__voucher-result__code{border-width:1px 0;color:var(--adyen-sdk-color-label-primary,#00112c);display:inline-block;font-size:var(--adyen-sdk-text-title-l-font-size,1.5rem);font-weight:700;letter-spacing:1px;line-height:1.2;margin:0 auto;padding:var(--adyen-sdk-spacer-070,16px) var(--adyen-sdk-spacer-120,48px);position:relative;text-align:center;-webkit-user-select:all;-moz-user-select:all;user-select:all;width:100%;word-break:break-word}.adyen-checkout__voucher-result__actions{align-items:center;display:flex;justify-content:center;list-style:none;margin:0 auto var(--adyen-sdk-spacer-100,32px);max-width:100%;min-width:200px;padding:0;width:300px}.adyen-checkout__voucher-result__actions__item{margin:0 var(--adyen-sdk-spacer-020,4px)}
49
+ .adyen-checkout__voucher-result{border-radius:var(--adyen-sdk-border-radius-m,8px);position:relative;text-align:center}.adyen-checkout__voucher-result__bottom,.adyen-checkout__voucher-result__top{background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-separator-primary,#dbdee2)}.adyen-checkout__voucher-result__bottom .adyen-checkout__details-table,.adyen-checkout__voucher-result__top .adyen-checkout__details-table{background:var(--adyen-sdk-color-background-secondary,#f7f7f8);border-radius:var(--adyen-sdk-border-radius-m,8px);margin:0 var(--adyen-sdk-spacer-090,24px) var(--adyen-sdk-spacer-100,32px)}.adyen-checkout__voucher-result__bottom .adyen-checkout__details-table__item:first-child,.adyen-checkout__voucher-result__top .adyen-checkout__details-table__item:first-child{border-top:none}.adyen-checkout__voucher-result__top{border-bottom:0;border-radius:var(--adyen-sdk-border-radius-m,8px) var(--adyen-sdk-border-radius-m,8px) 0 0;padding:var(--adyen-sdk-spacer-110,40px) 0 var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__voucher-result__bottom{border-radius:0 0 var(--adyen-sdk-border-radius-m,8px) var(--adyen-sdk-border-radius-m,8px);border-top:0}.adyen-checkout__voucher-result__separator{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);display:flex;margin:0 auto;position:relative}.adyen-checkout__voucher-result__separator__inner{border-top:1px solid var(--adyen-sdk-color-separator-primary,#dbdee2);width:100%}.adyen-checkout__voucher-result__image{align-items:center;display:flex;justify-content:center;margin-bottom:var(--adyen-sdk-spacer-110,40px);width:100%}.adyen-checkout-link--voucher-result-instructions{display:inline-block}.adyen-checkout__voucher-result__image__wrapper{display:block;height:var(--adyen-sdk-spacer-120,48px);margin:0 var(--adyen-sdk-spacer-090,24px);position:relative}.adyen-checkout__voucher-result__image__wrapper:after{border-radius:var(--adyen-sdk-border-radius-m,8px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02));content:"";height:100%;left:0;position:absolute;top:0;width:100%}.adyen-checkout__voucher-result__image__wrapper:nth-child(2){margin-left:0}.adyen-checkout__voucher-result__image__brand,.adyen-checkout__voucher-result__image__issuer{border-radius:var(--adyen-sdk-border-radius-m,8px);height:var(--adyen-sdk-spacer-120,48px)}.adyen-checkout__voucher-result__introduction{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin:0 auto;max-width:400px;text-align:center}.adyen-checkout__voucher-result__amount{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-subtitle-font-size,1rem);font-weight:700;margin:var(--adyen-sdk-spacer-090,24px) auto 0;text-align:center}.adyen-checkout__voucher-result__surcharge{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);text-align:center}.adyen-checkout__voucher-result__code__label,.adyen-checkout__voucher-result__surcharge{display:block;font-weight:400;line-height:var(--adyen-sdk-text-caption-line-height,18px)}.adyen-checkout__voucher-result__code__label{left:0;margin:0 auto;position:absolute;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:auto}.adyen-checkout__voucher-result__code__label:before{content:"";position:absolute}.adyen-checkout__voucher-result__code__label__text{background:var(--adyen-sdk-color-background-primary,#ffffff);color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);letter-spacing:normal;line-height:1;padding:0 var(--adyen-sdk-spacer-040,8px)}.adyen-checkout__voucher-result__code__barcode{display:block;height:var(--adyen-sdk-spacer-130,56px);margin:0 auto var(--adyen-sdk-spacer-040,8px);max-width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.adyen-checkout__voucher-result__code{border-width:1px 0;color:var(--adyen-sdk-color-label-primary,#00112c);display:inline-block;font-size:var(--adyen-sdk-text-title-l-font-size,1.5rem);font-weight:700;letter-spacing:1px;line-height:1.2;margin:0 auto;padding:var(--adyen-sdk-spacer-070,16px) var(--adyen-sdk-spacer-120,48px);position:relative;text-align:center;-webkit-user-select:all;-moz-user-select:all;user-select:all;width:100%;word-break:break-word}.adyen-checkout__voucher-result__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--adyen-sdk-spacer-040,8px);justify-content:center;list-style:none;margin:0 auto var(--adyen-sdk-spacer-100,32px);max-width:300px;min-width:200px;padding:0 var(--adyen-sdk-spacer-090,24px);width:100%}.adyen-checkout__voucher-result__actions__item{flex:1 1 0;min-width:100px}.adyen-checkout__voucher-result__actions__item .adyen-checkout__button--inline{width:100%}
50
50
  .adyen-checkout__details-table{list-style:none;margin:-1px auto 0;padding:0}.adyen-checkout__details-table__item{align-items:center;border-top:1px solid var(--adyen-sdk-color-separator-primary,#dbdee2);color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;font-size:var(--adyen-sdk-text-body-font-size,.875rem);justify-content:space-between;padding:var(--adyen-sdk-spacer-070,16px) var(--adyen-sdk-spacer-090,24px);word-break:break-word}.adyen-checkout__details-table__item:last-child{margin-bottom:0}.adyen-checkout__details-table__label{font-weight:var(--adyen-sdk-text-body-font-weight,400);text-align:left}.adyen-checkout__details-table__label,.adyen-checkout__details-table__value{font-size:var(--adyen-sdk-text-body-font-size,.875rem);line-height:var(--adyen-sdk-text-body-line-height,20px);max-width:50%}.adyen-checkout__details-table__value{align-items:center;display:flex;font-weight:var(--adyen-sdk-text-body-strongest-font-weight,600);gap:var(--adyen-sdk-spacer-070,16px);text-align:right}
51
51
  .adyen-checkout-tooltip{background:var(--adyen-sdk-tooltip-background-color,#00112c);border-radius:var(--adyen-sdk-tooltip-border-radius,4px);color:var(--adyen-sdk-tooltip-color,#ffffff);display:inline-block;font-size:var(--adyen-sdk-text-body-font-size,.875rem);padding:var(--adyen-sdk-tooltip-padding,4px 8px);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;z-index:var(--adyen-sdk-tooltip-z-index,5)}.adyen-checkout-tooltip--hidden{height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;clip:rect(0 0 0 0);border:0;clip-path:inset(50%);white-space:nowrap}.adyen-checkout-tooltip-arrow{border-style:solid;height:0;position:absolute;width:0}.adyen-checkout-tooltip-arrow.adyen-checkout-tooltip-arrow--top{border-color:var(--adyen-sdk-tooltip-background-color,#00112c) transparent transparent;border-width:6px 6px 0;bottom:-4px;left:50%;transform:translateX(-50%)}.adyen-checkout-tooltip-arrow.adyen-checkout-tooltip-arrow--bottom{border-color:transparent transparent var(--adyen-sdk-tooltip-background-color,#00112c);border-width:0 6px 6px;left:50%;top:-4px;transform:translateX(-50%)}
52
52
  .adyen-checkout__button--iconOnly__icon{fill:currentcolor;transition:fill .3s ease}
@@ -77,7 +77,7 @@ apple-pay-button{--apple-pay-button-width:100%;--apple-pay-button-height:48px;--
77
77
  .adyen-checkout-issuer-list-introduction-logo-container{border-radius:var(--adyen-sdk-border-radius-m,8px);padding:var(--adyen-sdk-spacer-070,16px) var(--adyen-sdk-spacer-070,16px) 0;text-align:center}.adyen-checkout-issuer-list-introduction-logo-container__title{font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-caption-font-weight,400);font-weight:var(--adyen-sdk-text-caption-stronger-font-weight,500);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin:0}.adyen-checkout-issuer-list-introduction-logo-container__logo{height:auto;width:8em}
78
78
  .adyen-checkout-pix-enrollment-issuer-list{display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout-pix-enrollment-issuer-list .adyen-checkout-disclaimer__label{color:var(--adyen-sdk-color-label-secondary,#5c687c);display:inline-block;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-caption-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin:0}.adyen-checkout-await-logo-open-finance{height:auto;width:8em}.adyen-checkout-await-logo-arrow-down{height:auto;width:1em}.adyen-checkout-await-logo-bank{height:auto;width:3em}
79
79
  .adyen-checkout__klarna-widget{pointer-events:all}
80
- .adyen-checkout__qr-loader{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-secondary,#c9cdd3);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;flex-direction:column;padding:16px}.adyen-checkout__qr-loader--result{gap:var(--adyen-sdk-spacer-090,24px);padding:100px}.adyen-checkout__qr-loader__brand-logo-wrapper{border-radius:var(--adyen-sdk-border-radius-s,4px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02));margin-bottom:var(--adyen-sdk-spacer-090,24px);overflow:hidden}.adyen-checkout__qr-loader__brand-logo{display:block;width:80px}.adyen-checkout__qr-loader__subtitle{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);max-width:400px;text-align:center}.adyen-checkout__qr-loader__icon{height:88px;width:88px}.adyen-checkout__qr-loader__payment_amount{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-title-l-font-size,1.5rem);font-weight:var(--adyen-sdk-text-title-l-font-weight,600);line-height:var(--adyen-sdk-text-body-wide-line-height,24px);margin-bottom:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__qr-loader__progress{background:var(--adyen-sdk-color-outline-secondary,#c9cdd3);border-radius:var(--adyen-sdk-border-radius-l,12px);height:var(--adyen-sdk-spacer-020,4px);margin-bottom:var(--adyen-sdk-spacer-060,12px);padding-right:3%;width:152px}[dir=rtl] .adyen-checkout__qr-loader__progress{padding-left:3%;padding-right:0}.adyen-checkout__qr-loader__percentage{background:var(--adyen-sdk-color-label-primary,#00112c);border-radius:var(--adyen-sdk-border-radius-l,12px);display:block;height:100%}.adyen-checkout__qr-loader__countdown{font-size:var(--adyen-sdk-text-caption-font-size,.75rem);text-align:center}.adyen-checkout__qr-loader>.adyen-checkout__spinner__wrapper{margin:60px 0}.adyen-checkout__qr-loader__app-link{display:none}.adyen-checkout__button.adyen-checkout__button--qr-loader{margin-top:var(--adyen-sdk-spacer-090,24px);text-decoration:none}.adyen-checkout__qr-loader__instructions{color:var(--adyen-sdk-color-label-tertiary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);line-height:1.5;margin-top:var(--adyen-sdk-spacer-090,24px);max-width:300px;text-align:center}.adyen-checkout__qr-loader__actions{margin-top:var(--adyen-sdk-spacer-100,32px);max-width:400px;width:100%}@media (max-width:1024px){.adyen-checkout__qr-loader__app-link{display:block;min-width:220px}}
80
+ .adyen-checkout__qr-loader{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-secondary,#c9cdd3);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;flex-direction:column;padding:16px}.adyen-checkout__qr-loader--result{gap:var(--adyen-sdk-spacer-090,24px);padding:100px}.adyen-checkout__qr-loader__brand-logo-wrapper{border-radius:var(--adyen-sdk-border-radius-s,4px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02));margin-bottom:var(--adyen-sdk-spacer-090,24px);overflow:hidden}.adyen-checkout__qr-loader__brand-logo{display:block;width:80px}.adyen-checkout__qr-loader__subtitle{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);max-width:400px;text-align:center}.adyen-checkout__qr-loader__icon{height:88px;width:88px}.adyen-checkout__qr-loader__payment_amount{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-title-l-font-size,1.5rem);font-weight:var(--adyen-sdk-text-title-l-font-weight,600);line-height:var(--adyen-sdk-text-body-wide-line-height,24px);margin-bottom:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__qr-loader__progress{background:var(--adyen-sdk-color-outline-secondary,#c9cdd3);border-radius:var(--adyen-sdk-border-radius-l,12px);height:var(--adyen-sdk-spacer-020,4px);margin-bottom:var(--adyen-sdk-spacer-060,12px);padding-right:3%;width:152px}[dir=rtl] .adyen-checkout__qr-loader__progress{padding-left:3%;padding-right:0}.adyen-checkout__qr-loader__percentage{background:var(--adyen-sdk-color-label-primary,#00112c);border-radius:var(--adyen-sdk-border-radius-l,12px);display:block;height:100%}.adyen-checkout__qr-loader__countdown{font-size:var(--adyen-sdk-text-caption-font-size,.75rem);text-align:center}.adyen-checkout__qr-loader>.adyen-checkout__spinner__wrapper{margin:60px 0}.adyen-checkout__qr-loader__app-link{display:none}.adyen-checkout__button.adyen-checkout__button--qr-loader{margin-top:var(--adyen-sdk-spacer-090,24px);text-decoration:none}.adyen-checkout__qr-loader__instructions{color:var(--adyen-sdk-color-label-tertiary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);line-height:1.5;margin-top:var(--adyen-sdk-spacer-090,24px);max-width:300px;text-align:center}.adyen-checkout__qr-loader__actions{align-items:center;display:flex;justify-content:center;margin-top:var(--adyen-sdk-spacer-100,32px);max-width:400px;width:100%}@media (max-width:1024px){.adyen-checkout__qr-loader__app-link{display:block;min-width:220px}}
81
81
  .adyen-checkout__qr-loader--pix{padding-bottom:var(--adyen-sdk-spacer-110,40px)}.adyen-checkout__qr-loader--pix__qr_details{align-items:center;display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-070,16px);max-width:318px;width:100%}.adyen-checkout__qr-loader--pix__qr_details__timer{align-items:center;display:flex;flex-direction:column;margin-bottom:var(--adyen-sdk-spacer-040,8px)}.adyen-checkout__qr-loader--pix__qr_details__code{font-size:var(--adyen-sdk-text-body-font-size,.875rem);text-align:center}
82
82
  .adyen-checkout__qr-loader--swish>.adyen-checkout__qr-loader__instructions{text-align:center}
83
83
  .adyen-checkout-paynow__introduction{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);text-align:center}