@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 e}from"../../../external/preact/dist/preact.js";import{useCallback as t}from"../../../external/preact/hooks/dist/hooks.js";import o from"./Button.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as n}from"../../../utils/clipboard.js";import{PREFIX as c}from"../Icon/constants.js";import i from"../../../core/Context/useImage.js";import{stopPropagationForActionKeys as l}from"./stopPropagationForActionKeys.js";function p(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}const a=a=>{const{i18n:u}=r(),b=i(),m=t((e,{complete:t})=>{var o;n(a.text),t(),null===(o=a.onClick)||void 0===o||o.call(a,e)},[a.text,a.onClick]);var f,y,j;return e(o,s(function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){p(e,t,o[t])})}return e}({},a),{variant:"action",onClick:m,onKeyPress:l,onKeyDown:l,icon:null!==(f=a.icon)&&void 0!==f?f:b({imageFolder:"components/"})(`${c}copy`),label:null!==(y=a.label)&&void 0!==y?y:u.get("button.copy"),onClickCompletedLabel:null!==(j=a.copiedLabel)&&void 0!==j?j:u.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":"w8BAmBA,MAAMA,EAAcC,IAChB,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAUC,EACZ,CAACC,GAAKC,eAGFR,IAAAA,EAFKS,EAAgBT,EAAMU,MAC3BF,IACa,QAAbR,EAAAA,EAAMK,eAANL,IAAAA,GAAAA,OAAAA,EAAgBO,IAEpB,CAACP,EAAMU,KAAMV,EAAMK,UAWTL,IAAAA,EACCA,EACgBA,EAV/B,OACIW,EAACC,EAAAA,oUAAAA,CAAAA,CAAAA,EACOZ,GAAAA,CACJa,QAAQ,SACRR,QAASA,EAETS,WAAYC,EACZC,UAAWD,EACXE,KAAgB,QAAVjB,EAAAA,EAAMiB,YAANjB,IAAAA,EAAAA,EAAcG,EAAS,CAAEe,YAAa,eAAxBf,CAAyC,GAAGgB,SAChEC,cAAOpB,EAAAA,EAAMoB,aAANpB,IAAAA,EAAAA,EAAeC,EAAKoB,IAAI,eAC/BC,8BAAuBtB,EAAAA,EAAMuB,mBAANvB,IAAAA,EAAAA,EAAqBC,EAAKoB,IAAI"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import r from"./Button.js";import{useCoreContext as n}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as c}from"../../../utils/clipboard.js";import{SingletonTooltipProvider as i,useTooltip as a}from"../Tooltip/SingletonTooltipProvider.js";function p(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}const l=i=>{const{i18n:l}=n(),u=t(null),{showTooltip:b,hideTooltip:y}=a(),f=o(()=>{c(i.text),b({anchorRef:u,text:l.get("button.copied")})},[i.text,l,b]),O=o(e=>{"Enter"!==e.key&&"Enter"!==e.code&&" "!==e.key&&"Space"!==e.code||e.stopPropagation()},[y]),g=o(e=>{"Enter"!==e.key&&"Enter"!==e.code&&" "!==e.key&&"Space"!==e.code||e.stopPropagation(),"Escape"!==e.key&&"Escape"!==e.code||(e.stopPropagation(),y())},[y]),m=o(()=>{b({anchorRef:u,text:l.get("button.copy")})},[u,l,b]);var j;return e(r,s(function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){p(e,t,o[t])})}return e}({},i),{variant:"iconOnly",buttonRef:u,ariaLabel:null!==(j=i.ariaLabel)&&void 0!==j?j:l.get("button.copy"),onMouseEnter:m,onMouseLeave:y,onFocus:m,onBlur:y,onClick:f,onKeyPress:O,onKeyDown:g}),e("svg",{className:"adyen-checkout__button--iconOnly__icon",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e("path",{d:"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z"})))},u=t=>e(i,null,e(l,t));export{u as CopyIconButton};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{useRef as e,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import r from"./Button.js";import{useCoreContext as n}from"../../../core/Context/CoreProvider.js";import{copyToClipboard as c}from"../../../utils/clipboard.js";import{SingletonTooltipProvider as i,useTooltip as s}from"../Tooltip/SingletonTooltipProvider.js";import{stopPropagationForActionKeys as a}from"./stopPropagationForActionKeys.js";function p(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function l(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}const u=i=>{const{i18n:u}=n(),b=e(null),{showTooltip:f,hideTooltip:y}=s(),O=o(()=>{c(i.text),f({anchorRef:b,text:u.get("button.copied")})},[i.text,u,f]),m=o(t=>{a(t),"Escape"!==t.key&&"Escape"!==t.code||(t.stopPropagation(),y())},[y]),j=o(()=>{f({anchorRef:b,text:u.get("button.copy")})},[b,u,f]);var g;return t(r,l(function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){p(t,e,o[e])})}return t}({},i),{variant:"iconOnly",buttonRef:b,ariaLabel:null!==(g=i.ariaLabel)&&void 0!==g?g:u.get("button.copy"),onMouseEnter:j,onMouseLeave:y,onFocus:j,onBlur:y,onClick:O,onKeyPress:a,onKeyDown:m}),t("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"},t("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"})))},b=e=>t(i,null,t(u,e));export{b 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":"s4BAgBA,MAAMA,EAAkBC,IACpB,MAAMC,KAAEA,GAASC,IACXC,EAAYC,EAA0B,OACtCC,YAAEA,EAAWC,YAAEA,GAAgBC,IAE/BC,EAAUC,EAAY,KACnBC,EAAgBV,EAAMW,MAC3BN,EAAY,CAAEF,YAAWQ,KAAMV,EAAKW,IAAI,oBACzC,CAACZ,EAAMW,KAAMV,EAAMI,IAGhBQ,EAAaJ,EACdK,IACqB,UAAdA,EAAMC,KAAkC,UAAfD,EAAME,MAAkC,MAAdF,EAAMC,KAA8B,UAAfD,EAAME,MAC9EF,EAAMG,mBAGd,CAACX,IAICY,EAAYT,EACbK,IACqB,UAAdA,EAAMC,KAAkC,UAAfD,EAAME,MAAkC,MAAdF,EAAMC,KAA8B,UAAfD,EAAME,MAC9EF,EAAMG,kBAGQ,WAAdH,EAAMC,KAAmC,WAAfD,EAAME,OAChCF,EAAMG,kBACNX,MAGR,CAACA,IAGCa,EAAoBV,EAAY,KAClCJ,EAAY,CAAEF,YAAWQ,KAAMV,EAAKW,IAAI,kBACzC,CAACT,EAAWF,EAAMI,IAOFL,IAAAA,EALnB,OACIoB,EAACC,EAAAA,oUAAAA,CAAAA,CAAAA,EACOrB,GAAAA,CACJsB,QAAQ,WACRC,UAAWpB,EACXqB,kBAAWxB,EAAAA,EAAMwB,iBAANxB,IAAAA,EAAAA,EAAmBC,EAAKW,IAAI,eACvCa,aAAcN,EACdO,aAAcpB,EACdqB,QAASR,EACTS,OAAQtB,EACRE,QAASA,EAETK,WAAYA,EACZK,UAAWA,IAEXE,EAACS,MAAAA,CACGC,UAAU,yCACVC,MAAM,6BACNC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,QAELf,EAACgB,OAAAA,CAAKC,EAAE,snBAMlBC,EAAetC,GAEboB,EAACmB,EAAAA,KACGnB,EAACrB,EAAmBC"}
1
+ {"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":"u9BAiBA,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,IAOFL,IAAAA,EALnB,OACIoB,EAACC,EAAAA,oUAAAA,CAAAA,CAAAA,EACOrB,GAAAA,CACJsB,QAAQ,WACRC,UAAWpB,EACXqB,kBAAWxB,EAAAA,EAAMwB,iBAANxB,IAAAA,EAAAA,EAAmBC,EAAKW,IAAI,eACvCa,aAAcN,EACdO,aAAcpB,EACdqB,QAASR,EACTS,OAAQtB,EACRE,QAASA,EAETqB,WAAYd,EACZF,UAAWA,IAEXO,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){var k;const{i18n:v,loadingContext:C}=d(),[b,w]=t(!1),[j,N]=t(q.delay),[T,D]=t(!1),[R,E]=t(!0),[I,A]=t(100),[P,S]=t(0),x=o(null),$=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),E(!1);const t={data:{details:{payload:e.props.payload},paymentData:q.paymentData}};q.onComplete(t)})(e);break;case"error":(e=>{if(D(!0),E(!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:E(!1)}})};r(()=>{$()},[]),r(()=>{if(T||b||R)return;let e=j;return x.current=setTimeout(()=>{(async()=>{const t=performance.now();await $();const o=performance.now(),r=Math.round(o-t),a=P+r+e;S(a),a>=q.throttleTime&&e!==q.throttledInterval&&(N(q.throttledInterval),e=q.throttledInterval)})()},e),()=>{clearTimeout(x.current)}},[T,b,R,j,q.throttleTime,P]);const{amount:L,showAmount:B,url:M,brandLogo:Q,brandName:K,countdownTime:F,type:O,onActionHandled:H}=q,U=q.qrCodeData?`${C}utility/v1/barcode.png?type=qrCode&data=${q.qrCodeData}&clientKey=${q.clientKey}`:q.qrCodeImage,z=p();if(T)return e(g,{image:"error",message:v.get("error.subtitle.payment")});if(b)return e(g,{image:"success",message:v.get("creditCard.success")});if(R)return e("div",{className:"adyen-checkout__qr-loader"},Q&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{alt:K,src:Q,className:"adyen-checkout__qr-loader__brand-logo"})),e(n,null));const G=q.classNameModifiers.map(e=>`adyen-checkout__qr-loader--${e}`);return e("div",{className:`adyen-checkout__qr-loader adyen-checkout__qr-loader--${O} ${G.join(" ")}`},Q&&e("div",{className:"adyen-checkout__qr-loader__brand-logo-wrapper"},e("img",{src:Q,alt:K,className:"adyen-checkout__qr-loader__brand-logo"})),B&&L&&null!==L.value&&!!L.currency&&e("h1",{className:"adyen-checkout__qr-loader__payment_amount"},v.amount(L.value,L.currency)),M&&e("div",{className:"adyen-checkout__qr-loader__app-link"},q.redirectIntroduction&&e("p",{className:"adyen-checkout__qr-loader__subtitle"},v.get(q.redirectIntroduction)),e(a,{classNameModifiers:["qr-loader"],onClick:()=>(e=>{window.location.assign(e)})(M),label:v.get(q.buttonLabel)}),e(m,null)),e("p",{ref:z,tabIndex:0,className:"adyen-checkout__qr-loader__subtitle"},"string"==typeof q.introduction?v.get(q.introduction):null===(k=q.introduction)||void 0===k?void 0:k.call(q)),e(f,{qrCodeImage:U,qrCodeData:q.qrCodeData,percentage:I,timeToPay:q.timeToPay,copyBtn:q.copyBtn,instructions:q.instructions,countdownTime:F,onTick:e=>(e=>{A(e.percentage)})(e),onQRCodeLoad:()=>{null==H||H({componentType:q.type,actionDescription:"qr-code-loaded"})},onTimeUp:()=>(D(!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){var q;const{i18n:k,loadingContext:v}=l(),[w,C]=t(!1),[b,j]=t(g.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}=g;return s(e,t,v,o).then(c).catch(e=>({type:"network-error",props:e})).then(e=>{switch(e.type){case"success":(e=>{C(!0),R(!1);const t={data:{details:{payload:e.props.payload},paymentData:g.paymentData}};g.onComplete(t)})(e);break;case"error":(e=>{if(T(!0),R(!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:R(!1)}})};r(()=>{x()},[]),r(()=>{if(N||w||D)return;let e=b;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>=g.throttleTime&&e!==g.throttledInterval&&(j(g.throttledInterval),e=g.throttledInterval)})()},e),()=>{clearTimeout(S.current)}},[N,w,D,b,g.throttleTime,A]);const{amount:$,showAmount:L,url:B,brandLogo:M,brandName:Q,countdownTime:K,type:F,onActionHandled:O}=g,H=g.qrCodeData?`${v}utility/v1/barcode.png?type=qrCode&data=${g.qrCodeData}&clientKey=${g.clientKey}`:g.qrCodeImage,U=m();if(N)return e(f,{image:"error",message:k.get("error.subtitle.payment")});if(w)return e(f,{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=g.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"},g.redirectIntroduction&&e("p",{className:"adyen-checkout__qr-loader__subtitle"},k.get(g.redirectIntroduction)),e(a,{classNameModifiers:["qr-loader"],onClick:()=>(e=>{window.location.assign(e)})(B),label:k.get(g.buttonLabel)}),e(d,null)),e("p",{ref:U,tabIndex:0,className:"adyen-checkout__qr-loader__subtitle"},"string"==typeof g.introduction?k.get(g.introduction):null===(q=g.introduction)||void 0===q?void 0:q.call(g)),e(h,{qrCodeImage:H,qrCodeData:g.qrCodeData,percentage:E,timeToPay:g.timeToPay,copyBtn:g.copyBtn,instructions:g.instructions,countdownTime:K,onTick:e=>(e=>{I(e.percentage)})(e),onQRCodeLoad:()=>{null==O||O({componentType:g.type,actionDescription:"qr-code-loaded"})},onTimeUp:()=>(T(!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":"k9BAsBA,SAASA,EAASC,GAgLuEA,IAAAA,EA/KrF,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,KAC1BC,EAAWC,GAAgBC,GAAS,IACpCC,EAAOC,GAAYF,EAASN,EAAMO,QAClCE,EAASC,GAAcJ,GAAS,IAChCK,EAASC,GAAcN,GAAS,IAChCO,EAAYC,GAAiBR,EAAS,MACtCS,EAAYC,GAAiBV,EAAS,GACvCW,EAAaC,EAAuC,MA+CpDC,EAAcC,UAChB,MAAMC,YAAEA,EAAWC,UAAEA,EAASC,kBAAEA,GAAsBvB,EAEtD,OAAOwB,EAAmBH,EAAaC,EAAWpB,EAAgBqB,GAC7DE,KAAKC,GACLC,MAAMC,IAAAA,CAAeC,KAAM,gBAAiB7B,MAAO4B,KACnDH,KAAMK,IACH,OAAQA,EAAOD,MACX,IAAK,UAxCF,CAACC,IAChBzB,GAAa,GACbO,GAAW,GAEX,MAAMmB,EAAQ,CACVC,KAAM,CACFC,QAAS,CAAEC,QAASJ,EAAO9B,MAAMkC,SACjCb,YAAarB,EAAMqB,cAI3BrB,EAAMmC,WAAWJ,IA8BDI,CAAWL,GACX,MACJ,IAAK,QA7BL,CAACA,IAIb,GAHApB,GAAW,GACXE,GAAW,GAEPkB,EAAO9B,MAAMkC,QAAS,CACtB,MAAMH,EAAQ,CACVC,KAAM,CACFC,QAAS,CAAEC,QAASJ,EAAO9B,MAAMkC,SACjCb,YAAarB,EAAMqB,cAG3BrB,EAAMmC,WAAWJ,EACrB,CAEA,MAAMK,EAAQ,IAAIC,EAAmB,QAAS,4CAC9CrC,EAAMsC,QAAQF,IAeEE,CAAQR,GACR,MACJ,QACIlB,GAAW,OAK/B2B,EAAU,KACDpB,KACN,IAEHoB,EAAU,KACN,GAAI9B,GAAWL,GAAaO,EACxB,OAGJ,IAAI6B,EAAejC,EAqBnB,OAJAU,EAAWwB,QAAUC,WAAW,KAfTtB,WACnB,MAAMuB,EAAQC,YAAYC,YACpB1B,IACN,MAAM2B,EAAMF,YAAYC,MAClBE,EAAeC,KAAKC,MAAMH,EAAMH,GAEhCO,EAAmBnC,EAAagC,EAAeP,EACrDxB,EAAckC,GAEVA,GAAoBlD,EAAMmD,cAAgBX,IAAiBxC,EAAMuB,oBACjEf,EAASR,EAAMuB,mBACfiB,EAAexC,EAAMuB,oBAKpB6B,IACNZ,GAEI,KACHa,aAAapC,EAAWwB,WAE7B,CAAChC,EAASL,EAAWO,EAASJ,EAAOP,EAAMmD,aAAcpC,IAE5D,MAAMuC,OAAEA,EAAMC,WAAEA,EAAUC,IAAEA,EAAGC,UAAEA,EAASC,UAAEA,EAASC,cAAEA,EAAa9B,KAAEA,EAAI+B,gBAAEA,GAAoB5D,EAE1F6D,EAAc7D,EAAM8D,WAAa,GAAG5D,4CAA8BF,EAAM8D,wBAAwB9D,EAAMsB,YAActB,EAAM6D,YAiB1HE,EAAgBC,IAEtB,GAAIvD,EACA,OAAOwD,EAACC,EAAAA,CAAaC,MAAM,QAAQC,QAASnE,EAAKoE,IAAI,4BAGzD,GAAIjE,EACA,OAAO6D,EAACC,EAAAA,CAAaC,MAAM,UAAUC,QAASnE,EAAKoE,IAAI,wBAG3D,GAAI1D,EACA,OACIsD,EAACK,MAAAA,CAAIC,UAAU,6BACVd,GACGQ,EAACK,MAAAA,CAAIC,UAAU,iDACXN,EAACO,MAAAA,CAAIC,IAAKf,EAAWgB,IAAKjB,EAAWc,UAAU,2CAGvDN,EAACU,EAAAA,OAKb,MAAMC,EAAa5E,EAAM6E,mBAAmBC,IAAIC,GAAK,8BAA8BA,KAEnF,OACId,EAACK,MAAAA,CAAIC,UAAW,wDAAwD1C,KAAQ+C,EAAWI,KAAK,QAC3FvB,GACGQ,EAACK,MAAAA,CAAIC,UAAU,iDACXN,EAACO,MAAAA,CAAIE,IAAKjB,EAAWgB,IAAKf,EAAWa,UAAU,2CAItDhB,GAAcD,GAA2B,OAAjBA,EAAO2B,SAAoB3B,EAAO4B,UACvDjB,EAACkB,KAAAA,CAAGZ,UAAU,6CAA6CtE,EAAKqD,OAAOA,EAAO2B,MAAO3B,EAAO4B,WAG/F1B,GACGS,EAACK,MAAAA,CAAIC,UAAU,uCACVvE,EAAMoF,sBAAwBnB,EAACoB,IAAAA,CAAEd,UAAU,uCAAuCtE,EAAKoE,IAAIrE,EAAMoF,uBAClGnB,EAACqB,EAAAA,CAAOT,mBAAoB,CAAC,aAAcU,QAAS,IA/J9C,CAAC/B,IACnBgC,OAAOC,SAASC,OAAOlC,IA8J+CmC,CAAcnC,GAAMoC,MAAO3F,EAAKoE,IAAIrE,EAAM6F,eACpG5B,EAAC6B,SAKT7B,EAACoB,IAAAA,CAAEU,IAAKhC,EAAeiC,SAAU,EAAGzB,UAAU,uCACX,iBAAvBvE,EAAMiG,aAA4BhG,EAAKoE,IAAIrE,EAAMiG,sBAAgBjG,EAAAA,EAAMiG,oBAANjG,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,IAG7EiE,EAACiC,EAAAA,CACGrC,YAAaA,EACbC,WAAY9D,EAAM8D,WAClBjD,WAAYA,EACZsF,UAAWnG,EAAMmG,UACjBC,QAASpG,EAAMoG,QACfC,aAAcrG,EAAMqG,aACpB1C,cAAeA,EACf2C,OAASC,GA7KN,CAACA,IACZzF,EAAcyF,EAAK1F,aA4KsByF,CAAOC,GACxCC,aAlES,KACjB5C,SAAAA,EAAkB,CACd6C,cAAezG,EAAM6B,KACrB6E,kBAAmB,oBAgEfC,SAAU,KA1KlBjG,GAAW,QACXV,EAAMsC,QAAQ,IAAID,EAAmB,QAAS,qBA0KtCuE,WA5EO,KACf,MAAMC,EAAQ,IAAIC,EAAmB,CACjCjF,KAAMkF,EACNC,OAAQC,IAEZjH,EAAMkH,kBAAkBL,KAyEf7G,EAAMmH,SAAWnH,EAAMmH,SAAWlD,EAACmD,EAAAA,OAIpD,CAEArH,EAASsH,aAAe,CACpB9G,MAAO,IACPoD,cAAe,GACfrB,QAAS,OACTH,WAAY,OACZgB,aAAc,IACd0B,mBAAoB,GACpBtD,kBAAmB,IACnB0E,aAAc,uBACdE,UAAW,sBACXN,YAAa,UACbtC,YAAY"}
@@ -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","_param","children","props","h","Provider","value","_object_spread","useQRLoaderDetails","context","useContext","Error"],"mappings":"q9BAsBA,MAAMA,EAAyBC,OAAuDC,GAEhFC,EAA0BC,QAACC,SAAEA,GAAkDD,EAArCE,EAAAA,EAAAA,EAAAA,CAAbD,aAC/B,OAAOE,EAACP,EAAuBQ,SAAQ,CAACC,MAAOC,EAAA,CAAA,EAAKJ,IAAUD,IAG5DM,EAAqB,KACvB,MAAMC,EAAUC,EAAWb,GAE3B,QAAgBE,IAAZU,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","_param","children","props","h","Provider","value","_object_spread","useQRLoaderDetails","context","useContext","Error"],"mappings":"q9BAsBA,MAAMA,EAAyBC,OAAuDC,GAEhFC,EAA0BC,QAACC,SAAEA,GAAkDD,EAArCE,EAAAA,EAAAA,EAAAA,CAAbD,aAC/B,OAAOE,EAACP,EAAuBQ,SAAQ,CAACC,MAAOC,EAAA,CAAA,EAAKJ,IAAUD,IAG5DM,EAAqB,KACvB,MAAMC,EAAUC,EAAWb,GAE3B,QAAgBE,IAAZU,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:l,handleCopy:a})=>{const{i18n:m}=r(),p=n();return o(e,{variant:"action",onClick:(o,{complete:e})=>a(e),icon:p({imageFolder:"components/"})(`${t}copy`),onClickCompletedIcon:p({imageFolder:"components/"})(`${t}checkmark`),label:null!=c?c:m.get("button.copy"),onClickCompletedLabel:null!=l?l:m.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,QAAAA,EAAaG,EAAKe,IAAI,eAC7BC,sBAAuBlB,QAAAA,EAAeE,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 r from"../../../_virtual/index.js";import t from"../Button/Button.js";import{copyToClipboard as o}from"../../../utils/clipboard.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import c from"../../../core/Context/useImage.js";import{PREFIX as n}from"../Icon/constants.js";import s from"../DetailsTable/DetailsTable.js";function l(e,r){if(null==e)return{};var t,o,a=function(e,r){if(null==e)return{};var t,o,a={},c=Object.keys(e);for(o=0;o<c.length;o++)t=c[o],r.indexOf(t)>=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)t=c[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function u(u){var _,{voucherDetails:i=[],className:d=""}=u,m=l(u,["voucherDetails","className"]);const{i18n:h}=a(),p=c();return null===(_=m.onActionHandled)||void 0===_||_.call(m,{componentType:m.paymentMethodType,actionDescription:"voucher-presented"}),e("div",{className:r("adyen-checkout__voucher-result",`adyen-checkout__voucher-result--${m.paymentMethodType}`,d)},e("div",{className:"adyen-checkout__voucher-result__top"},e("div",{className:"adyen-checkout__voucher-result__image"},!!m.imageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:m.paymentMethodType,className:"adyen-checkout__voucher-result__image__brand",src:m.imageUrl})),!!m.issuerImageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:m.paymentMethodType,className:"adyen-checkout__voucher-result__image__issuer",src:m.issuerImageUrl}))),e("div",{className:"adyen-checkout__voucher-result__introduction"},m.introduction," ",m.instructionsUrl&&e("a",{className:"adyen-checkout-link adyen-checkout-link--voucher-result-instructions",href:m.instructionsUrl,target:"_blank",rel:"noopener noreferrer"},h.get("voucher.readInstructions")," ›")),m.amount&&e("div",{className:"adyen-checkout__voucher-result__amount"},m.amount,m.surcharge&&e("span",{className:"adyen-checkout__voucher-result__surcharge"},"(",h.get("voucher.surcharge").replace("%@",m.surcharge),")"))),m.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"},h.get("voucher.paymentReferenceLabel")))),e("div",{className:"adyen-checkout__voucher-result__bottom"},m.reference&&e("div",{className:"adyen-checkout__voucher-result__code"},m.barcode&&e("img",{alt:h.get("voucher.paymentReferenceLabel"),className:"adyen-checkout__voucher-result__code__barcode",src:m.barcode}),e("span",null,m.reference)),(!!m.downloadUrl||!!m.copyBtn)&&e("ul",{className:"adyen-checkout__voucher-result__actions"},!!m.copyBtn&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(t,{inline:!0,variant:"action",onClick:(e,{complete:r})=>{o(m.reference),r()},icon:p({imageFolder:"components/"})(`${n}copy`),label:h.get("button.copy")})),!!m.downloadUrl&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(t,{inline:!0,variant:"action",href:m.downloadUrl,icon:p({imageFolder:"components/"})(`${n}download`),label:m.downloadButtonText||h.get("button.download"),target:"_blank",rel:"noopener noreferrer"}))),e(s,{tableFields:i})))}export{u as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../../_virtual/index.js";import t from"../Button/Button.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import o from"../../../core/Context/useImage.js";import{PREFIX as c}from"../Icon/constants.js";import n from"../DetailsTable/DetailsTable.js";import{CopyButton as s}from"../Button/CopyButton.js";function l(e,r){if(null==e)return{};var t,a,o=function(e,r){if(null==e)return{};var t,a,o={},c=Object.keys(e);for(a=0;a<c.length;a++)t=c[a],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a<c.length;a++)t=c[a],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function u(u){var _,{voucherDetails:i=[],className:d=""}=u,m=l(u,["voucherDetails","className"]);const{i18n:h}=a(),p=o();return null===(_=m.onActionHandled)||void 0===_||_.call(m,{componentType:m.paymentMethodType,actionDescription:"voucher-presented"}),e("div",{className:r("adyen-checkout__voucher-result",`adyen-checkout__voucher-result--${m.paymentMethodType}`,d)},e("div",{className:"adyen-checkout__voucher-result__top"},e("div",{className:"adyen-checkout__voucher-result__image"},!!m.imageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:m.paymentMethodType,className:"adyen-checkout__voucher-result__image__brand",src:m.imageUrl})),!!m.issuerImageUrl&&e("span",{className:"adyen-checkout__voucher-result__image__wrapper"},e("img",{alt:m.paymentMethodType,className:"adyen-checkout__voucher-result__image__issuer",src:m.issuerImageUrl}))),e("div",{className:"adyen-checkout__voucher-result__introduction"},m.introduction," ",m.instructionsUrl&&e("a",{className:"adyen-checkout-link adyen-checkout-link--voucher-result-instructions",href:m.instructionsUrl,target:"_blank",rel:"noopener noreferrer"},h.get("voucher.readInstructions")," ›")),m.amount&&e("div",{className:"adyen-checkout__voucher-result__amount"},m.amount,m.surcharge&&e("span",{className:"adyen-checkout__voucher-result__surcharge"},"(",h.get("voucher.surcharge").replace("%@",m.surcharge),")"))),m.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"},h.get("voucher.paymentReferenceLabel")))),e("div",{className:"adyen-checkout__voucher-result__bottom"},m.reference&&e("div",{className:"adyen-checkout__voucher-result__code"},m.barcode&&e("img",{alt:h.get("voucher.paymentReferenceLabel"),className:"adyen-checkout__voucher-result__code__barcode",src:m.barcode}),e("span",null,m.reference)),(!!m.downloadUrl||!!m.copyBtn)&&e("ul",{className:"adyen-checkout__voucher-result__actions"},!!m.copyBtn&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(s,{inline:!0,text:m.reference})),!!m.downloadUrl&&e("li",{className:"adyen-checkout__voucher-result__actions__item"},e(t,{inline:!0,variant:"action",href:m.downloadUrl,icon:p({imageFolder:"components/"})(`${c}download`),label:m.downloadButtonText||h.get("button.download"),target:"_blank",rel:"noopener noreferrer"}))),e(n,{tableFields:i})))}export{u 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","_param","props","voucherDetails","className","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":"4xBAYe,SAASA,EAAQC,OAI5BC,GAJ4BC,eAAEA,EAAiB,GAAEC,UAAEA,EAAY,IAAnCH,EAA0CC,EAAAA,EAA1CD,EAAA,CAAEE,iBAAqBC,cACnD,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAIjB,OAFqB,QAArBN,EAAAA,EAAMO,uBAANP,IAAAA,GAAAA,OAAAA,EAAwB,CAAEQ,cAAeR,EAAMS,kBAAmBC,kBAAmB,sBAGjFC,EAACC,MAAAA,CAAIV,UAAWW,EAAW,iCAAkC,mCAAmCb,EAAMS,oBAAqBP,IACvHS,EAACC,MAAAA,CAAIV,UAAU,uCACXS,EAACC,MAAAA,CAAIV,UAAU,2CACRF,EAAMc,UACLH,EAACI,OAAAA,CAAKb,UAAU,kDACZS,EAACK,MAAAA,CAAIC,IAAKjB,EAAMS,kBAAmBP,UAAU,+CAA+CgB,IAAKlB,EAAMc,cAI5Gd,EAAMmB,gBACLR,EAACI,OAAAA,CAAKb,UAAU,kDACZS,EAACK,MAAAA,CAAIC,IAAKjB,EAAMS,kBAAmBP,UAAU,gDAAgDgB,IAAKlB,EAAMmB,mBAKpHR,EAACC,MAAAA,CAAIV,UAAU,gDACVF,EAAMoB,aAAc,IACpBpB,EAAMqB,iBACHV,EAACW,IAAAA,CACGpB,UAAU,uEACVqB,KAAMvB,EAAMqB,gBACZG,OAAO,SACPC,IAAI,uBAEHtB,EAAKuB,IAAI,4BAA4B,OAKjD1B,EAAM2B,QACHhB,EAACC,MAAAA,CAAIV,UAAU,0CACVF,EAAM2B,OAEN3B,EAAM4B,WACHjB,EAACI,OAAAA,CAAKb,UAAU,6CAA4C,IACtDC,EAAKuB,IAAI,qBAAqBG,QAAQ,KAAM7B,EAAM4B,WAAW,OAOlF5B,EAAM8B,WACHnB,EAACC,MAAAA,CAAIV,UAAU,6CACXS,EAACC,MAAAA,CAAIV,UAAU,qDACfS,EAACC,MAAAA,CAAIV,UAAU,+CACXS,EAACI,OAAAA,CAAKb,UAAU,qDAAqDC,EAAKuB,IAAI,oCAK1Ff,EAACC,MAAAA,CAAIV,UAAU,0CACVF,EAAM8B,WACHnB,EAACC,MAAAA,CAAIV,UAAU,wCACVF,EAAM+B,SACHpB,EAACK,MAAAA,CACGC,IAAKd,EAAKuB,IAAI,iCACdxB,UAAU,gDACVgB,IAAKlB,EAAM+B,UAGnBpB,EAACI,YAAMf,EAAM8B,eAIjB9B,EAAMgC,eAAiBhC,EAAMiC,UAC7BtB,EAACuB,KAAAA,CAAGhC,UAAU,6CACPF,EAAMiC,SACLtB,EAACwB,KAAAA,CAAGjC,UAAU,iDACVS,EAACyB,EAAAA,CACGC,QAAAA,EACAC,QAAQ,SACRC,QAAS,CAACC,GAAKC,eACNC,EAAgB1C,EAAM8B,WAC3BW,KAEJE,KAAMtC,EAAS,CAAEuC,YAAa,eAAxBvC,CAAyC,GAAGwC,SAClDC,MAAO3C,EAAKuB,IAAI,oBAKzB1B,EAAMgC,aACLrB,EAACwB,KAAAA,CAAGjC,UAAU,iDACVS,EAACyB,EAAAA,CACGC,QAAAA,EACAC,QAAQ,SACRf,KAAMvB,EAAMgC,YACZW,KAAMtC,EAAS,CAAEuC,YAAa,eAAxBvC,CAAyC,GAAGwC,aAClDC,MAAO9C,EAAM+C,oBAAsB5C,EAAKuB,IAAI,mBAC5CF,OAAO,SACPC,IAAI,0BAOxBd,EAACqC,EAAAA,CAAaC,YAAahD,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","_param","props","voucherDetails","className","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":"mxBAWe,SAASA,EAAQC,OAI5BC,GAJ4BC,eAAEA,EAAiB,GAAEC,UAAEA,EAAY,IAAnCH,EAA0CC,EAAAA,EAA1CD,EAAA,CAAEE,iBAAqBC,cACnD,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAIjB,OAFqB,QAArBN,EAAAA,EAAMO,uBAANP,IAAAA,GAAAA,OAAAA,EAAwB,CAAEQ,cAAeR,EAAMS,kBAAmBC,kBAAmB,sBAGjFC,EAACC,MAAAA,CAAIV,UAAWW,EAAW,iCAAkC,mCAAmCb,EAAMS,oBAAqBP,IACvHS,EAACC,MAAAA,CAAIV,UAAU,uCACXS,EAACC,MAAAA,CAAIV,UAAU,2CACRF,EAAMc,UACLH,EAACI,OAAAA,CAAKb,UAAU,kDACZS,EAACK,MAAAA,CAAIC,IAAKjB,EAAMS,kBAAmBP,UAAU,+CAA+CgB,IAAKlB,EAAMc,cAI5Gd,EAAMmB,gBACLR,EAACI,OAAAA,CAAKb,UAAU,kDACZS,EAACK,MAAAA,CAAIC,IAAKjB,EAAMS,kBAAmBP,UAAU,gDAAgDgB,IAAKlB,EAAMmB,mBAKpHR,EAACC,MAAAA,CAAIV,UAAU,gDACVF,EAAMoB,aAAc,IACpBpB,EAAMqB,iBACHV,EAACW,IAAAA,CACGpB,UAAU,uEACVqB,KAAMvB,EAAMqB,gBACZG,OAAO,SACPC,IAAI,uBAEHtB,EAAKuB,IAAI,4BAA4B,OAKjD1B,EAAM2B,QACHhB,EAACC,MAAAA,CAAIV,UAAU,0CACVF,EAAM2B,OAEN3B,EAAM4B,WACHjB,EAACI,OAAAA,CAAKb,UAAU,6CAA4C,IACtDC,EAAKuB,IAAI,qBAAqBG,QAAQ,KAAM7B,EAAM4B,WAAW,OAOlF5B,EAAM8B,WACHnB,EAACC,MAAAA,CAAIV,UAAU,6CACXS,EAACC,MAAAA,CAAIV,UAAU,qDACfS,EAACC,MAAAA,CAAIV,UAAU,+CACXS,EAACI,OAAAA,CAAKb,UAAU,qDAAqDC,EAAKuB,IAAI,oCAK1Ff,EAACC,MAAAA,CAAIV,UAAU,0CACVF,EAAM8B,WACHnB,EAACC,MAAAA,CAAIV,UAAU,wCACVF,EAAM+B,SACHpB,EAACK,MAAAA,CACGC,IAAKd,EAAKuB,IAAI,iCACdxB,UAAU,gDACVgB,IAAKlB,EAAM+B,UAGnBpB,EAACI,YAAMf,EAAM8B,eAIjB9B,EAAMgC,eAAiBhC,EAAMiC,UAC7BtB,EAACuB,KAAAA,CAAGhC,UAAU,6CACPF,EAAMiC,SACLtB,EAACwB,KAAAA,CAAGjC,UAAU,iDACVS,EAACyB,EAAAA,CAAWC,QAAAA,EAAOC,KAAMtC,EAAM8B,eAIpC9B,EAAMgC,aACLrB,EAACwB,KAAAA,CAAGjC,UAAU,iDACVS,EAAC4B,EAAAA,CACGF,QAAAA,EACAG,QAAQ,SACRjB,KAAMvB,EAAMgC,YACZS,KAAMpC,EAAS,CAAEqC,YAAa,eAAxBrC,CAAyC,GAAGsC,aAClDC,MAAO5C,EAAM6C,oBAAsB1C,EAAKuB,IAAI,mBAC5CF,OAAO,SACPC,IAAI,0BAOxBd,EAACmC,EAAAA,CAAaC,YAAa9C,KAI3C"}
@@ -1,2 +1,2 @@
1
- import{get3DS2FlowProps as e}from"../../../components/ThreeDS2/components/utils.js";import t from"../../../utils/uuid.js";function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){r(e,t,n[t])})}return e}function o(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}const i=(e,r,i,c)=>{const s=r.getComponent(i);if(!s)throw Error(`Action Element of type ${i} not found in the registry`);return new s(e,o(n({},c),{id:`${i}-${t()}`}))},c=e=>(t,r,c,s)=>{const u=o(n({},s,c),{onError:s.onError,statusType:e,originalAction:c});return i(t,r,c.paymentMethodType,u)},s={redirect:(e,t,r,c)=>{const s=o(n({},c,r),{statusType:"redirect",originalAction:r});return i(e,t,"redirect",s)},threeDS2:(t,r,o,c)=>{var s,u;const l="fingerprint"===o.subtype?"threeDS2DeviceFingerprint":"threeDS2Challenge",a="fingerprint"===o.subtype||c.isMDFlow?o.paymentData:o.authorisationToken,p=n({core:t,token:o.token,paymentData:a,onActionHandled:c.onActionHandled,onComplete:c.onComplete,onError:c.onError,isDropin:!!c.isDropin,loadingContext:c.loadingContext,clientKey:c.clientKey,paymentMethodType:c.paymentMethodType,challengeWindowSize:c.challengeWindowSize,isMDFlow:c.isMDFlow,modules:{analytics:null===(s=c.modules)||void 0===s?void 0:s.analytics,resources:null===(u=c.modules)||void 0===u?void 0:u.resources}},e(o.subtype,c));return i(t,r,l,p)},voucher:c("custom"),qrCode:c("custom"),await:c("custom"),bankTransfer:c("custom"),sdk:c("custom")};export{s as default};
1
+ import{get3DS2FlowProps as e}from"../../../components/ThreeDS2/components/utils.js";import t from"../../../utils/uuid.js";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){n(e,t,o[t])})}return e}function r(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const i=(e,n,i,c)=>{const s=n.getComponent(i);if(!s)throw Error(`Action Element of type ${i} not found in the registry`);return new s(e,r(o({},c),{id:`${i}-${t()}`}))},c=e=>(t,n,c,s)=>{const l=r(o({},s,c),{onError:s.onError,statusType:e,originalAction:c});return i(t,n,c.paymentMethodType,l)},s={redirect:(e,t,n,c)=>{const s=r(o({},c,n),{statusType:"redirect",originalAction:n});return i(e,t,"redirect",s)},threeDS2:(t,n,r,c)=>{var s,l;const a="fingerprint"===r.subtype?"threeDS2DeviceFingerprint":"threeDS2Challenge",u="fingerprint"===r.subtype||c.isMDFlow?r.paymentData:r.authorisationToken,p=o({core:t,token:r.token,paymentData:u,onActionHandled:c.onActionHandled,onComplete:c.onComplete,onAdditionalDetails:c.onAdditionalDetails,onError:c.onError,isDropin:!!c.isDropin,loadingContext:c.loadingContext,clientKey:c.clientKey,paymentMethodType:c.paymentMethodType,challengeWindowSize:c.challengeWindowSize,isMDFlow:c.isMDFlow,modules:{analytics:null===(s=c.modules)||void 0===s?void 0:s.analytics,resources:null===(l=c.modules)||void 0===l?void 0:l.resources}},e(r.subtype,c));return i(t,n,a,p)},voucher:c("custom"),qrCode:c("custom"),await:c("custom"),bankTransfer:c("custom"),sdk:c("custom")};export{s 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","_object_spread_props","_object_spread","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":"m6BAOA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAeC,KACtE,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAG1C,OAAO,IAAIE,EAAQJ,EAAMO,EAAAC,EAAA,CAAA,EAAKL,GAAAA,CAAOM,GAAI,GAAGP,KAAiBQ,UAG3DC,EAAmBC,GACd,CAACZ,EAAaC,EAAqBY,EAAuBV,KAC7D,MAAMW,EAASP,OACRJ,EACAU,GAAAA,CACHE,QAASZ,EAAMY,QACfH,aACAI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAUY,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACnB,EAAaC,EAAUY,EAAuBV,KACrD,MAAMW,EAASP,OACRJ,EACAU,GAAAA,CACHD,WAAY,WACZI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAU,WAAYa,IAGvDM,SAAU,CAACpB,EAAaC,EAAUY,EAAuBV,SAwBlCA,EACAA,EAxBnB,MAAMD,EAAmC,gBAAnBW,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BlB,EAAMoB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAASN,EAAA,CAEXR,KAAMA,EACNyB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBvB,EAAMuB,gBACvBC,WAAYxB,EAAMwB,WAClBZ,QAASZ,EAAMY,QACfa,WAAYzB,EAAMyB,SAClBC,eAAgB1B,EAAM0B,eACtBC,UAAW3B,EAAM2B,UACjBb,kBAAmBd,EAAMc,kBACzBc,oBAAqB5B,EAAM4B,oBAC3BR,SAAUpB,EAAMoB,SAChBS,QAAS,CACLC,UAAwB,QAAb9B,EAAAA,EAAM6B,eAAN7B,IAAAA,OAAAA,EAAAA,EAAe8B,UAC1BC,UAAwB,QAAb/B,EAAAA,EAAM6B,eAAN7B,IAAAA,OAAAA,EAAAA,EAAe+B,YAI3BC,EAAiBtB,EAAOQ,QAASlB,IAGxC,OAAOJ,EAAgBC,EAAMC,EAAUC,EAAeY,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","_object_spread_props","_object_spread","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":"m6BAOA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAeC,KACtE,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAG1C,OAAO,IAAIE,EAAQJ,EAAMO,EAAAC,EAAA,CAAA,EAAKL,GAAAA,CAAOM,GAAI,GAAGP,KAAiBQ,UAG3DC,EAAmBC,GACd,CAACZ,EAAaC,EAAqBY,EAAuBV,KAC7D,MAAMW,EAASP,OACRJ,EACAU,GAAAA,CACHE,QAASZ,EAAMY,QACfH,aACAI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAUY,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACnB,EAAaC,EAAUY,EAAuBV,KACrD,MAAMW,EAASP,OACRJ,EACAU,GAAAA,CACHD,WAAY,WACZI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAU,WAAYa,IAGvDM,SAAU,CAACpB,EAAaC,EAAUY,EAAuBV,SAyBlCA,EACAA,EAzBnB,MAAMD,EAAmC,gBAAnBW,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BlB,EAAMoB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAASN,EAAA,CAEXR,KAAMA,EACNyB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBvB,EAAMuB,gBACvBC,WAAYxB,EAAMwB,WAClBC,oBAAqBzB,EAAMyB,oBAC3Bb,QAASZ,EAAMY,QACfc,WAAY1B,EAAM0B,SAClBC,eAAgB3B,EAAM2B,eACtBC,UAAW5B,EAAM4B,UACjBd,kBAAmBd,EAAMc,kBACzBe,oBAAqB7B,EAAM6B,oBAC3BT,SAAUpB,EAAMoB,SAChBU,QAAS,CACLC,UAAwB,QAAb/B,EAAAA,EAAM8B,eAAN9B,IAAAA,OAAAA,EAAAA,EAAe+B,UAC1BC,UAAwB,QAAbhC,EAAAA,EAAM8B,eAAN9B,IAAAA,OAAAA,EAAAA,EAAegC,YAI3BC,EAAiBvB,EAAOQ,QAASlB,IAGxC,OAAOJ,EAAgBC,EAAMC,EAAUC,EAAeY,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="eslegacy",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="eslegacy",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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/adyen-web",
3
- "version": "6.25.0",
3
+ "version": "6.25.1",
4
4
  "license": "MIT",
5
5
  "homepage": "https://docs.adyen.com/checkout",
6
6
  "type": "module",
@@ -87,7 +87,7 @@
87
87
  "@rollup/plugin-commonjs": "28.0.6",
88
88
  "@rollup/plugin-eslint": "9.0.5",
89
89
  "@rollup/plugin-json": "6.1.0",
90
- "@rollup/plugin-node-resolve": "16.0.1",
90
+ "@rollup/plugin-node-resolve": "16.0.3",
91
91
  "@rollup/plugin-replace": "6.0.2",
92
92
  "@rollup/plugin-terser": "0.4.4",
93
93
  "@size-limit/preset-big-lib": "11.2.0",
@@ -97,7 +97,7 @@
97
97
  "@storybook/preact": "8.6.12",
98
98
  "@storybook/preact-vite": "8.6.12",
99
99
  "@swc/core": "1.13.5",
100
- "@testing-library/jest-dom": "6.8.0",
100
+ "@testing-library/jest-dom": "6.9.1",
101
101
  "@testing-library/preact": "3.2.4",
102
102
  "@testing-library/preact-hooks": "1.1.0",
103
103
  "@testing-library/user-event": "14.6.1",
@@ -112,7 +112,7 @@
112
112
  "eslint-plugin-jsx-a11y": "6.10.2",
113
113
  "eslint-plugin-react": "7.37.5",
114
114
  "eslint-plugin-storybook": "0.12.0",
115
- "eslint-plugin-testing-library": "7.8.0",
115
+ "eslint-plugin-testing-library": "7.13.3",
116
116
  "globals": "16.4.0",
117
117
  "jest": "29.7.0",
118
118
  "jest-environment-jsdom": "29.7.0",
package/styles/adyen.css CHANGED
@@ -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}