@adyen/adyen-web 6.23.0 → 6.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/adyen.css +13 -10
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +238 -8
  7. package/dist/es/adyen.css +13 -10
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/ANCV/ANCV.js +1 -1
  10. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  11. package/dist/es/components/Blik/Blik.js +1 -1
  12. package/dist/es/components/Blik/Blik.js.map +1 -1
  13. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  14. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  15. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  16. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  17. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  18. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  19. package/dist/es/components/Dropin/Dropin.js +1 -1
  20. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  21. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  22. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  23. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  24. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  25. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  26. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  27. package/dist/es/components/MBWay/MBWay.js +1 -1
  28. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  29. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  30. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  31. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  32. package/dist/es/components/PayPal/defaultProps.js +1 -1
  33. package/dist/es/components/PayPal/defaultProps.js.map +1 -1
  34. package/dist/es/components/PayTo/PayTo.js +1 -1
  35. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  36. package/dist/es/components/Pix/Pix.js +1 -1
  37. package/dist/es/components/Pix/Pix.js.map +1 -1
  38. package/dist/es/components/PreAuthorizedDebitCanada/components/SettlementInfo.js +1 -1
  39. package/dist/es/components/PreAuthorizedDebitCanada/components/SettlementInfo.js.map +1 -1
  40. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  41. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  42. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  43. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  44. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  45. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  46. package/dist/es/components/ThreeDS2/components/utils.js +1 -1
  47. package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
  48. package/dist/es/components/UPI/UPI.js +1 -1
  49. package/dist/es/components/UPI/UPI.js.map +1 -1
  50. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  51. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  52. package/dist/es/components/internal/Address/Address.js +1 -1
  53. package/dist/es/components/internal/Address/Address.js.map +1 -1
  54. package/dist/es/components/internal/Await/Await.js +1 -1
  55. package/dist/es/components/internal/Await/Await.js.map +1 -1
  56. package/dist/es/components/internal/Button/Button.js.map +1 -1
  57. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  58. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  59. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  60. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  61. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  62. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  63. package/dist/es/components/internal/QRLoader/components/QRCountdown.js +1 -1
  64. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  65. package/dist/es/components/internal/QRLoader/components/QRFinalState.js +2 -0
  66. package/dist/es/components/internal/QRLoader/components/QRFinalState.js.map +1 -0
  67. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  68. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  69. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  70. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  71. package/dist/es/core/config.js +1 -1
  72. package/dist/es/index.d.ts +238 -8
  73. package/dist/es-legacy/adyen.css +13 -10
  74. package/dist/es-legacy/adyen.css.map +1 -1
  75. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  76. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  77. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  78. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  79. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  80. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  81. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  82. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  83. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  84. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  85. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  86. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  87. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  88. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  89. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  90. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  91. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  92. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  93. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  94. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  95. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  96. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  97. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  98. package/dist/es-legacy/components/PayPal/defaultProps.js +1 -1
  99. package/dist/es-legacy/components/PayPal/defaultProps.js.map +1 -1
  100. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  101. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  102. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  103. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  104. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/SettlementInfo.js +1 -1
  105. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/SettlementInfo.js.map +1 -1
  106. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  107. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  108. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  109. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  110. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  111. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  112. package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
  113. package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
  114. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  115. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  116. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  117. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  118. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  119. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  120. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  121. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  122. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  123. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  124. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  125. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  126. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  127. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  128. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  129. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js +1 -1
  130. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  131. package/dist/es-legacy/components/internal/QRLoader/components/QRFinalState.js +2 -0
  132. package/dist/es-legacy/components/internal/QRLoader/components/QRFinalState.js.map +1 -0
  133. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  134. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  135. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  136. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  137. package/dist/es-legacy/core/config.js +1 -1
  138. package/package.json +149 -157
  139. package/styles/adyen.css +13 -10
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/ANCVInput.js";import{CoreProvider as o}from"../../core/Context/CoreProvider.js";import s from"./components/ANCVAwait/config.js";import n from"../internal/Await/Await.js";import i from"../../core/Errors/SRPanelProvider.js";import a from"../../core/Errors/AdyenCheckoutError.js";import p from"../internal/PayButton/PayButton.js";import{sanitizeResponse as h,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class u extends e{formatData(){var t;return{paymentMethod:{type:u.type,beneficiaryId:null===(t=this.state.data)||void 0===t?void 0:t.beneficiaryId}}}submit(){if(!this.isValid)return this.showValidation(),!1;this.createOrder().then(this.makePaymentsCall).then(h).then(c).then(this.handleResponse).catch(this.handleFailedResult)}get isValid(){return!!this.state.isValid}get displayName(){return this.props.name}render(){return this.props.paymentData?t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(i,{srPanel:this.props.modules.srPanel},t(n,{ref:t=>{this.componentRef=t},clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:this.constructor.type,messageText:this.props.i18n.get("ancv.confirmPayment"),awaitText:this.props.i18n.get("await.waitForConfirmation"),showCountdownTimer:s.showCountdownTimer,throttleTime:s.THROTTLE_TIME,throttleInterval:s.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}))):t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(r,m(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),o.forEach(function(e){l(t,e,r[e])})}return t}({ref:t=>{this.componentRef=t}},this.props),{onSubmit:this.submit,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})))}constructor(...e){super(...e),l(this,"onOrderRequest",t=>this.props.onOrderRequest?new Promise((e,r)=>{this.props.onOrderRequest(e,r,t)}):this.props.session?this.props.session.createOrder():void 0),l(this,"createOrder",()=>(this.setStatus("loading"),this.props.order?Promise.resolve():this.onOrderRequest(this.data).then(t=>{const e={order:{orderData:t.orderData,pspReference:t.pspReference}};return this.setState(e),Promise.resolve()}).catch(t=>{this.setStatus((null==t?void 0:t.message)||"error"),this.props.onError&&(t instanceof a?this.handleError(t):this.handleError(new a("ERROR",t)))}))),l(this,"payButton",e=>t(p,e))}}l(u,"type","ancv");export{u as ANCVElement,u as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/ANCVInput.js";import{CoreProvider as o}from"../../core/Context/CoreProvider.js";import n from"./components/ANCVAwait/config.js";import s from"../internal/Await/Await.js";import i from"../../core/Errors/SRPanelProvider.js";import a from"../../core/Errors/AdyenCheckoutError.js";import p from"../internal/PayButton/PayButton.js";import{sanitizeResponse as c,verifyPaymentDidNotFail as h}from"../internal/UIElement/utils.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class u extends e{formatData(){var t;return{paymentMethod:{type:u.type,beneficiaryId:null===(t=this.state.data)||void 0===t?void 0:t.beneficiaryId}}}submit(){if(!this.isValid)return this.showValidation(),!1;this.createOrder().then(this.makePaymentsCall).then(c).then(h).then(this.handleResponse).catch(this.handleFailedResult)}get isValid(){return!!this.state.isValid}get displayName(){return this.props.name}render(){return this.props.paymentData?t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(i,{srPanel:this.props.modules.srPanel},t(s,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:this.constructor.type,messageText:this.props.i18n.get("ancv.confirmPayment"),awaitText:this.props.i18n.get("await.waitForConfirmation"),showCountdownTimer:n.showCountdownTimer,throttleTime:n.THROTTLE_TIME,throttleInterval:n.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}))):t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(r,m(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),o.forEach(function(e){l(t,e,r[e])})}return t}({ref:t=>{this.componentRef=t}},this.props),{onSubmit:this.submit,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})))}constructor(...e){super(...e),l(this,"onOrderRequest",t=>this.props.onOrderRequest?new Promise((e,r)=>{this.props.onOrderRequest(e,r,t)}):this.props.session?this.props.session.createOrder():void 0),l(this,"createOrder",()=>(this.setStatus("loading"),this.props.order?Promise.resolve():this.onOrderRequest(this.data).then(t=>{const e={order:{orderData:t.orderData,pspReference:t.pspReference}};return this.setState(e),Promise.resolve()}).catch(t=>{t instanceof a?this.handleError(t):this.handleError(new a("ERROR",t))}))),l(this,"payButton",e=>t(p,e))}}l(u,"type","ancv");export{u as ANCVElement,u as default};
2
2
  //# sourceMappingURL=ANCV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ANCV.js","sources":["../../../../src/components/ANCV/ANCV.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ANCVInput from './components/ANCVInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport config from './components/ANCVAwait/config';\nimport Await from '../../components/internal/Await';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport PayButton from '../internal/PayButton';\nimport { ANCVConfiguration } from './types';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\n\nexport class ANCVElement extends UIElement<ANCVConfiguration> {\n public static type = 'ancv';\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n paymentMethod: {\n type: ANCVElement.type,\n beneficiaryId: this.state.data?.beneficiaryId\n }\n };\n }\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n this.props.onOrderRequest(resolve, reject, data);\n });\n\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n /**\n * Check if order exists, if it does Resolve.\n * Otherwise createOrder and then Resolve.\n */\n public createOrder = (): Promise<void> => {\n this.setStatus('loading');\n\n // allow for multiple ANCV payments, follow giftcard logic and just use order if it exists\n if (this.props.order) {\n return Promise.resolve();\n }\n\n return this.onOrderRequest(this.data)\n .then((order: { orderData: string; pspReference: string }) => {\n const stateOrder = { order: { orderData: order.orderData, pspReference: order.pspReference } };\n this.setState(stateOrder);\n return Promise.resolve();\n })\n .catch(error => {\n this.setStatus(error?.message || 'error');\n if (this.props.onError) {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n }\n });\n };\n\n public submit() {\n if (!this.isValid) {\n this.showValidation();\n return false;\n }\n\n this.createOrder()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch(this.handleFailedResult);\n }\n\n // Reimplement payButton similar to GiftCard to allow to set onClick\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n get displayName(): string {\n return this.props.name;\n }\n\n render() {\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('ancv.confirmPayment')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <ANCVInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onSubmit={this.submit}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default ANCVElement;\n"],"names":["ANCVElement","UIElement","formatData","_this_state_data","paymentMethod","type","beneficiaryId","this","state","data","submit","isValid","showValidation","createOrder","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","handleFailedResult","displayName","props","name","render","paymentData","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","Await","ref","componentRef","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","config","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","ANCVInput","onSubmit","onChange","setState","payButton","showPayButton","super","args","_define_property","onOrderRequest","Promise","resolve","reject","session","setStatus","order","stateOrder","orderData","pspReference","error","message","AdyenCheckoutError","handleError","PayButton"],"mappings":"0iCAYO,MAAMA,UAAoBC,EAM7BC,UAAAA,GAI2B,IAAAC,EAHvB,MAAO,CACHC,cAAe,CACXC,KAAML,EAAYK,KAClBC,cAA8B,QAAfH,EAAAI,KAAKC,MAAMC,YAAX,IAAAN,OAAA,EAAAA,EAAiBG,eAG5C,CA2COI,MAAAA,GACH,IAAKH,KAAKI,QAEN,OADAJ,KAAKK,kBACE,EAGXL,KAAKM,cACAC,KAAKP,KAAKQ,kBACVD,KAAKE,GACLF,KAAKG,GACLH,KAAKP,KAAKW,gBACVC,MAAMZ,KAAKa,mBACpB,CAOA,WAAIT,GACA,QAASJ,KAAKC,MAAMG,OACxB,CAEA,eAAIU,GACA,OAAOd,KAAKe,MAAMC,IACtB,CAEAC,MAAAA,GACI,OAAIjB,KAAKe,MAAMG,YAEPC,EAACC,EAAAA,CAAaC,KAAMrB,KAAKe,MAAMM,KAAMC,eAAgBtB,KAAKe,MAAMO,eAAgBC,UAAWvB,KAAKuB,WAC5FJ,EAACK,EAAAA,CAAgBC,QAASzB,KAAKe,MAAMW,QAAQD,SACzCN,EAACQ,EAAAA,CACGC,IAAKA,IACD5B,KAAK6B,aAAeD,GAExBE,UAAW9B,KAAKe,MAAMe,UACtBZ,YAAalB,KAAKe,MAAMG,YACxBa,QAAS/B,KAAKe,MAAMgB,QACpBC,WAAYhC,KAAKgC,WACjBC,UAAWjC,KAAKkC,KAChBpC,KAAME,KAAKmC,YAAY,KACvBC,YAAapC,KAAKe,MAAMM,KAAKgB,IAAI,uBACjCC,UAAWtC,KAAKe,MAAMM,KAAKgB,IAAI,6BAC/BE,mBAAoBC,EAAOD,mBAC3BE,aAAcD,EAAOE,cACrBC,iBAAkBH,EAAOI,kBACzBC,gBAAiB7C,KAAK6C,oBAQtC1B,EAACC,EAAAA,CAAaC,KAAMrB,KAAKe,MAAMM,KAAMC,eAAgBtB,KAAKe,MAAMO,eAAgBC,UAAWvB,KAAKuB,WAC5FJ,EAAC2B,EAAAA,oUAAAA,CAAAA,CACGlB,IAAKA,IACD5B,KAAK6B,aAAeD,IAEpB5B,KAAKe,OAAK,CACdgC,SAAU/C,KAAKG,OACf6C,SAAUhD,KAAKiD,SACfC,UAAWlD,KAAKkD,UAChBC,cAAenD,KAAKe,MAAMoC,iBAI1C,mBA5HGC,SAAAC,GAeHC,EAAAtD,KAAQuD,iBAAiBrD,GACjBF,KAAKe,MAAMwC,eACJ,IAAIC,QAAQ,CAACC,EAASC,KACzB1D,KAAKe,MAAMwC,eAAeE,EAASC,EAAQxD,KAG/CF,KAAKe,MAAM4C,QACJ3D,KAAKe,MAAM4C,QAAQrD,mBAD9B,GASJgD,OAAOhD,cAAc,KACjBN,KAAK4D,UAAU,WAGX5D,KAAKe,MAAM8C,MACJL,QAAQC,UAGZzD,KAAKuD,eAAevD,KAAKE,MAC3BK,KAAMsD,IACH,MAAMC,EAAa,CAAED,MAAO,CAAEE,UAAWF,EAAME,UAAWC,aAAcH,EAAMG,eAE9E,OADAhE,KAAKiD,SAASa,GACPN,QAAQC,YAElB7C,MAAMqD,IACHjE,KAAK4D,WAAUK,aAAAA,EAAAA,EAAOC,UAAW,SAC7BlE,KAAKe,MAAMgB,UACPkC,aAAiBE,EACjBnE,KAAKoE,YAAYH,GAEjBjE,KAAKoE,YAAY,IAAID,EAAmB,QAASF,SAqBrEX,EAAAtD,KAAOkD,YAAYnC,GACRI,EAACkD,EAActD,KAvE1BuC,EADS7D,EACKK,OAAO"}
1
+ {"version":3,"file":"ANCV.js","sources":["../../../../src/components/ANCV/ANCV.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ANCVInput from './components/ANCVInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport config from './components/ANCVAwait/config';\nimport Await from '../../components/internal/Await';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport PayButton from '../internal/PayButton';\nimport { ANCVConfiguration } from './types';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\n\nexport class ANCVElement extends UIElement<ANCVConfiguration> {\n public static type = 'ancv';\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n paymentMethod: {\n type: ANCVElement.type,\n beneficiaryId: this.state.data?.beneficiaryId\n }\n };\n }\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n this.props.onOrderRequest(resolve, reject, data);\n });\n\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n /**\n * Check if order exists, if it does Resolve.\n * Otherwise createOrder and then Resolve.\n */\n public createOrder = (): Promise<void> => {\n this.setStatus('loading');\n\n // allow for multiple ANCV payments, follow giftcard logic and just use order if it exists\n if (this.props.order) {\n return Promise.resolve();\n }\n\n return this.onOrderRequest(this.data)\n .then((order: { orderData: string; pspReference: string }) => {\n const stateOrder = { order: { orderData: order.orderData, pspReference: order.pspReference } };\n this.setState(stateOrder);\n return Promise.resolve();\n })\n .catch(error => {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n public submit() {\n if (!this.isValid) {\n this.showValidation();\n return false;\n }\n\n this.createOrder()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch(this.handleFailedResult);\n }\n\n // Reimplement payButton similar to GiftCard to allow to set onClick\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n get displayName(): string {\n return this.props.name;\n }\n\n render() {\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('ancv.confirmPayment')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <ANCVInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onSubmit={this.submit}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default ANCVElement;\n"],"names":["ANCVElement","UIElement","formatData","_this_state_data","paymentMethod","type","beneficiaryId","this","state","data","submit","isValid","showValidation","createOrder","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","handleFailedResult","displayName","props","name","render","paymentData","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","Await","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","config","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","ANCVInput","ref","componentRef","onSubmit","onChange","setState","payButton","showPayButton","super","args","_define_property","onOrderRequest","Promise","resolve","reject","session","setStatus","order","stateOrder","orderData","pspReference","error","AdyenCheckoutError","handleError","PayButton"],"mappings":"0iCAYO,MAAMA,UAAoBC,EAM7BC,UAAAA,GAI2B,IAAAC,EAHvB,MAAO,CACHC,cAAe,CACXC,KAAML,EAAYK,KAClBC,cAA8B,QAAfH,EAAAI,KAAKC,MAAMC,YAAX,IAAAN,OAAA,EAAAA,EAAiBG,eAG5C,CAwCOI,MAAAA,GACH,IAAKH,KAAKI,QAEN,OADAJ,KAAKK,kBACE,EAGXL,KAAKM,cACAC,KAAKP,KAAKQ,kBACVD,KAAKE,GACLF,KAAKG,GACLH,KAAKP,KAAKW,gBACVC,MAAMZ,KAAKa,mBACpB,CAOA,WAAIT,GACA,QAASJ,KAAKC,MAAMG,OACxB,CAEA,eAAIU,GACA,OAAOd,KAAKe,MAAMC,IACtB,CAEAC,MAAAA,GACI,OAAIjB,KAAKe,MAAMG,YAEPC,EAACC,EAAAA,CAAaC,KAAMrB,KAAKe,MAAMM,KAAMC,eAAgBtB,KAAKe,MAAMO,eAAgBC,UAAWvB,KAAKuB,WAC5FJ,EAACK,EAAAA,CAAgBC,QAASzB,KAAKe,MAAMW,QAAQD,SACzCN,EAACQ,EAAAA,CACGC,UAAW5B,KAAKe,MAAMa,UACtBV,YAAalB,KAAKe,MAAMG,YACxBW,QAAS7B,KAAKe,MAAMc,QACpBC,WAAY9B,KAAK8B,WACjBC,UAAW/B,KAAKgC,KAChBlC,KAAME,KAAKiC,YAAY,KACvBC,YAAalC,KAAKe,MAAMM,KAAKc,IAAI,uBACjCC,UAAWpC,KAAKe,MAAMM,KAAKc,IAAI,6BAC/BE,mBAAoBC,EAAOD,mBAC3BE,aAAcD,EAAOE,cACrBC,iBAAkBH,EAAOI,kBACzBC,gBAAiB3C,KAAK2C,oBAQtCxB,EAACC,EAAAA,CAAaC,KAAMrB,KAAKe,MAAMM,KAAMC,eAAgBtB,KAAKe,MAAMO,eAAgBC,UAAWvB,KAAKuB,WAC5FJ,EAACyB,EAAAA,oUAAAA,CAAAA,CACGC,IAAKA,IACD7C,KAAK8C,aAAeD,IAEpB7C,KAAKe,OAAK,CACdgC,SAAU/C,KAAKG,OACf6C,SAAUhD,KAAKiD,SACfC,UAAWlD,KAAKkD,UAChBC,cAAenD,KAAKe,MAAMoC,iBAI1C,mBAtHGC,SAAAC,GAeHC,EAAAtD,KAAQuD,iBAAiBrD,GACjBF,KAAKe,MAAMwC,eACJ,IAAIC,QAAQ,CAACC,EAASC,KACzB1D,KAAKe,MAAMwC,eAAeE,EAASC,EAAQxD,KAG/CF,KAAKe,MAAM4C,QACJ3D,KAAKe,MAAM4C,QAAQrD,mBAD9B,GASJgD,OAAOhD,cAAc,KACjBN,KAAK4D,UAAU,WAGX5D,KAAKe,MAAM8C,MACJL,QAAQC,UAGZzD,KAAKuD,eAAevD,KAAKE,MAC3BK,KAAMsD,IACH,MAAMC,EAAa,CAAED,MAAO,CAAEE,UAAWF,EAAME,UAAWC,aAAcH,EAAMG,eAE9E,OADAhE,KAAKiD,SAASa,GACPN,QAAQC,YAElB7C,MAAMqD,IACCA,aAAiBC,EACjBlE,KAAKmE,YAAYF,GAEjBjE,KAAKmE,YAAY,IAAID,EAAmB,QAASD,QAoBjEX,EAAAtD,KAAOkD,YAAYnC,GACRI,EAACiD,EAAcrD,KApE1BuC,EADS7D,EACKK,OAAO"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import r from"../internal/Await/Await.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import s from"./config.js";import i from"../internal/RedirectButton/RedirectButton.js";import p from"../../core/Errors/SRPanelProvider.js";import{TxVariants as a}from"../tx-variants.js";function l(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function m(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){l(t,e,o[e])})}return t}function d(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class h extends e{formatData(){var t,e;const o=!!this.props.storedPaymentMethodId;return{paymentMethod:m({type:h.type},!o&&{blikCode:null===(e=this.state)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.blikCode},o&&{storedPaymentMethodId:this.props.storedPaymentMethodId})}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId&&this.props.label?this.props.name:null}render(){return this.props.paymentData?t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(p,{srPanel:this.props.modules.srPanel},t(r,{ref:t=>{this.componentRef=t},clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.handleError,onComplete:this.onComplete,brandLogo:this.icon,type:s.type,messageText:this.props.i18n.get(s.messageTextId),awaitText:this.props.i18n.get(s.awaitTextId),showCountdownTimer:s.showCountdownTimer,delay:s.STATUS_INTERVAL,countdownTime:s.COUNTDOWN_MINUTES,throttleTime:s.THROTTLE_TIME,throttleInterval:s.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}))):t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.storedPaymentMethodId?t(i,{showPayButton:this.props.showPayButton,name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,d(m({ref:t=>{this.componentRef=t}},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton})))}}l(h,"type",a.blik);export{h as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import r from"../internal/Await/Await.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import s from"./config.js";import i from"../internal/RedirectButton/RedirectButton.js";import p from"../../core/Errors/SRPanelProvider.js";import{TxVariants as a}from"../tx-variants.js";function l(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function d(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){l(t,e,o[e])})}return t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class h extends e{formatData(){var t,e;const o=!!this.props.storedPaymentMethodId;return{paymentMethod:d({type:h.type},!o&&{blikCode:null===(e=this.state)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.blikCode},o&&{storedPaymentMethodId:this.props.storedPaymentMethodId})}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId&&this.props.label?this.props.name:null}render(){return this.props.paymentData?t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(p,{srPanel:this.props.modules.srPanel},t(r,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.handleError,onComplete:this.onComplete,brandLogo:this.icon,type:s.type,messageText:this.props.i18n.get(s.messageTextId),awaitText:this.props.i18n.get(s.awaitTextId),showCountdownTimer:s.showCountdownTimer,delay:s.STATUS_INTERVAL,countdownTime:s.COUNTDOWN_MINUTES,throttleTime:s.THROTTLE_TIME,throttleInterval:s.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}))):t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.storedPaymentMethodId?t(i,{showPayButton:this.props.showPayButton,name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,m(d({ref:t=>{this.componentRef=t}},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton})))}}l(h,"type",a.blik);export{h as default};
2
2
  //# sourceMappingURL=Blik.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport Await from '../internal/Await';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n render() {\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <BlikInput\n // @ts-ignore Ref is used by preact component\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default BlikElement;\n"],"names":["BlikElement","UIElement","formatData","_this_state_data","_this_state","recurringPayment","this","props","storedPaymentMethodId","paymentMethod","_object_spread","type","blikCode","state","data","isValid","displayName","label","name","additionalInfo","render","paymentData","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","Await","ref","componentRef","clientKey","onError","handleError","onComplete","brandLogo","icon","config","messageText","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","RedirectButton","showPayButton","amount","payButton","onSubmit","submit","BlikInput","onChange","setState","_define_property","TxVariants","blik"],"mappings":"4vCAkBA,MAAMA,UAAoBC,EAGtBC,UAAAA,OAMiDC,EAAAC,EAL7C,MAAMC,IAAqBC,KAAKC,MAAMC,sBAEtC,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMX,EAAYW,OACbN,GAAoB,CAAEO,SAAoB,QAAVR,EAAAE,KAAKO,aAAL,IAAAT,GAAgB,QAAhBD,EAAAC,EAAYU,YAAZ,IAAAX,OAAA,EAAAA,EAAkBS,UACnDP,GAAoB,CAAEG,sBAAuBF,KAAKC,MAAMC,wBAGxE,CAEA,WAAIO,GACA,QAAIT,KAAKC,MAAMC,yBAINF,KAAKO,MAAME,OACxB,CAEA,eAAIC,GACA,OAAIV,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMU,MAEfX,KAAKC,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAIb,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMW,KAEf,IACX,CAOAE,MAAAA,GACI,OAAId,KAAKC,MAAMc,YAEPC,EAACC,EAAAA,CAAaC,KAAMlB,KAAKC,MAAMiB,KAAMC,eAAgBnB,KAAKC,MAAMkB,eAAgBC,UAAWpB,KAAKoB,WAC5FJ,EAACK,EAAAA,CAAgBC,QAAStB,KAAKC,MAAMsB,QAAQD,SACzCN,EAACQ,EAAAA,CACGC,IAAKA,IACDzB,KAAK0B,aAAeD,GAExBE,UAAW3B,KAAKC,MAAM0B,UACtBZ,YAAaf,KAAKC,MAAMc,YACxBa,QAAS5B,KAAK6B,YACdC,WAAY9B,KAAK8B,WACjBC,UAAW/B,KAAKgC,KAChB3B,KAAM4B,EAAO5B,KACb6B,YAAalC,KAAKC,MAAMiB,KAAKiB,IAAIF,EAAOG,eACxCC,UAAWrC,KAAKC,MAAMiB,KAAKiB,IAAIF,EAAOK,aACtCC,mBAAoBN,EAAOM,mBAC3BC,MAAOP,EAAOQ,gBACdC,cAAeT,EAAOU,kBACtBC,aAAcX,EAAOY,cACrBC,iBAAkBb,EAAOc,kBACzBC,gBAAiBhD,KAAKgD,oBAQtChC,EAACC,EAAAA,CAAaC,KAAMlB,KAAKC,MAAMiB,KAAMC,eAAgBnB,KAAKC,MAAMkB,eAAgBC,UAAWpB,KAAKoB,WAC3FpB,KAAKC,MAAMC,sBACRc,EAACiC,EAAAA,CACGC,cAAelD,KAAKC,MAAMiD,cAC1BtC,KAAMZ,KAAKU,YACXyC,OAAQnD,KAAKC,MAAMkD,OACnBC,UAAWpD,KAAKoD,UAChBC,SAAUrD,KAAKsD,OACf7B,IAAKA,IACDzB,KAAK0B,aAAeD,KAI5BT,EAACuC,EAAAA,EAAAA,EAAAA,CAEG9B,IAAKA,IACDzB,KAAK0B,aAAeD,IAEpBzB,KAAKC,OAAK,CACduD,SAAUxD,KAAKyD,SACfJ,SAAUrD,KAAKsD,OACfF,UAAWpD,KAAKoD,aAKpC,EAjGAM,EADEhE,EACYW,OAAOsD,EAAWC"}
1
+ {"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport Await from '../internal/Await';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n render() {\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <BlikInput\n // @ts-ignore Ref is used by preact component\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default BlikElement;\n"],"names":["BlikElement","UIElement","formatData","_this_state_data","_this_state","recurringPayment","this","props","storedPaymentMethodId","paymentMethod","_object_spread","type","blikCode","state","data","isValid","displayName","label","name","additionalInfo","render","paymentData","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","Await","clientKey","onError","handleError","onComplete","brandLogo","icon","config","messageText","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","RedirectButton","showPayButton","amount","payButton","onSubmit","submit","ref","componentRef","BlikInput","onChange","setState","_define_property","TxVariants","blik"],"mappings":"4vCAkBA,MAAMA,UAAoBC,EAGtBC,UAAAA,OAMiDC,EAAAC,EAL7C,MAAMC,IAAqBC,KAAKC,MAAMC,sBAEtC,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMX,EAAYW,OACbN,GAAoB,CAAEO,SAAoB,QAAVR,EAAAE,KAAKO,aAAL,IAAAT,GAAgB,QAAhBD,EAAAC,EAAYU,YAAZ,IAAAX,OAAA,EAAAA,EAAkBS,UACnDP,GAAoB,CAAEG,sBAAuBF,KAAKC,MAAMC,wBAGxE,CAEA,WAAIO,GACA,QAAIT,KAAKC,MAAMC,yBAINF,KAAKO,MAAME,OACxB,CAEA,eAAIC,GACA,OAAIV,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMU,MAEfX,KAAKC,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAIb,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMW,KAEf,IACX,CAOAE,MAAAA,GACI,OAAId,KAAKC,MAAMc,YAEPC,EAACC,EAAAA,CAAaC,KAAMlB,KAAKC,MAAMiB,KAAMC,eAAgBnB,KAAKC,MAAMkB,eAAgBC,UAAWpB,KAAKoB,WAC5FJ,EAACK,EAAAA,CAAgBC,QAAStB,KAAKC,MAAMsB,QAAQD,SACzCN,EAACQ,EAAAA,CACGC,UAAWzB,KAAKC,MAAMwB,UACtBV,YAAaf,KAAKC,MAAMc,YACxBW,QAAS1B,KAAK2B,YACdC,WAAY5B,KAAK4B,WACjBC,UAAW7B,KAAK8B,KAChBzB,KAAM0B,EAAO1B,KACb2B,YAAahC,KAAKC,MAAMiB,KAAKe,IAAIF,EAAOG,eACxCC,UAAWnC,KAAKC,MAAMiB,KAAKe,IAAIF,EAAOK,aACtCC,mBAAoBN,EAAOM,mBAC3BC,MAAOP,EAAOQ,gBACdC,cAAeT,EAAOU,kBACtBC,aAAcX,EAAOY,cACrBC,iBAAkBb,EAAOc,kBACzBC,gBAAiB9C,KAAK8C,oBAQtC9B,EAACC,EAAAA,CAAaC,KAAMlB,KAAKC,MAAMiB,KAAMC,eAAgBnB,KAAKC,MAAMkB,eAAgBC,UAAWpB,KAAKoB,WAC3FpB,KAAKC,MAAMC,sBACRc,EAAC+B,EAAAA,CACGC,cAAehD,KAAKC,MAAM+C,cAC1BpC,KAAMZ,KAAKU,YACXuC,OAAQjD,KAAKC,MAAMgD,OACnBC,UAAWlD,KAAKkD,UAChBC,SAAUnD,KAAKoD,OACfC,IAAKA,IACDrD,KAAKsD,aAAeD,KAI5BrC,EAACuC,EAAAA,EAAAA,EAAAA,CAEGF,IAAKA,IACDrD,KAAKsD,aAAeD,IAEpBrD,KAAKC,OAAK,CACduD,SAAUxD,KAAKyD,SACfN,SAAUnD,KAAKoD,OACfF,UAAWlD,KAAKkD,aAKpC,EA9FAQ,EADEhE,EACYW,OAAOsD,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import r from"./CardNumber.js";import t from"./CVC.js";import a from"./ExpirationDate.js";import{useCoreContext as d}from"../../../../../core/Context/CoreProvider.js";import o from"../../../../../_virtual/index.js";import{BRAND_ICON_UI_EXCLUSION_LIST as i,ENCRYPTED_CARD_NUMBER as c,DATE_POLICY_HIDDEN as n,ENCRYPTED_EXPIRY_DATE as l,ENCRYPTED_SECURITY_CODE as s}from"../../../../internal/SecuredFields/lib/constants.js";import u from"./AvailableBrands/AvailableBrands.js";function p({brand:p,brandsIcons:m,brandsConfiguration:y,dualBrandingElements:x,errors:C,focusedElement:f,hasCVC:_,cvcPolicy:b,expiryDatePolicy:h,onFocusField:v,showBrandIcon:g,valid:E,showContextualElement:F}){const{i18n:N}=d(),j=(e,r)=>e[r]?N.get(e[r]):null,B=null==m?void 0:m.filter(e=>!(null==i?void 0:i.includes(e.name))),k="amex"===p,w=k?N.get("creditCard.securityCode.contextualText.4digits"):N.get("creditCard.securityCode.contextualText.3digits");return e("div",{className:"adyen-checkout__card__form"},e(r,{brand:p,brandsConfiguration:y,error:j(C,c),focused:f===c,isValid:!!E.encryptedCardNumber,label:N.get("creditCard.cardNumber.label"),onFocusField:v,filled:!!C.encryptedCardNumber||!!E.encryptedCardNumber,showBrandIcon:g,dualBrandingElements:x}),e(u,{activeBrand:p,brands:B}),e("div",{className:o("adyen-checkout__card__exp-cvc adyen-checkout__field-wrapper",{"adyen-checkout__card__exp-cvc__exp-date__input--hidden":h===n})},e(a,{error:j(C,l),focused:f===l,isValid:!!E.encryptedExpiryMonth&&!!E.encryptedExpiryYear,filled:!!C.encryptedExpiryDate||!!E.encryptedExpiryYear,label:N.get("creditCard.expiryDate.label"),onFocusField:v,className:"adyen-checkout__field--50",expiryDatePolicy:h,showContextualElement:F,contextualText:N.get("creditCard.expiryDate.contextualText")}),_&&e(t,{error:j(C,s),focused:f===s,cvcPolicy:b,isValid:!!E.encryptedSecurityCode,filled:!!C.encryptedSecurityCode||!!E.encryptedSecurityCode,label:N.get("creditCard.securityCode.label"),onFocusField:v,className:"adyen-checkout__field--50",frontCVC:k,showContextualElement:F,contextualText:w})))}export{p as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import r from"./CardNumber.js";import t from"./CVC.js";import a from"./ExpirationDate.js";import{useCoreContext as d}from"../../../../../core/Context/CoreProvider.js";import o from"../../../../../_virtual/index.js";import{BRAND_ICON_UI_EXCLUSION_LIST as i,ENCRYPTED_CARD_NUMBER as c,DATE_POLICY_HIDDEN as n,ENCRYPTED_EXPIRY_DATE as l,ENCRYPTED_SECURITY_CODE as s}from"../../../../internal/SecuredFields/lib/constants.js";import u from"./AvailableBrands/AvailableBrands.js";function m({brand:m,brandsIcons:p,brandsConfiguration:y,dualBrandingElements:x,errors:C,focusedElement:f,hasCVC:b,cvcPolicy:_,expiryDatePolicy:v,onFocusField:g,showBrandIcon:E,valid:h,showContextualElement:F}){const{i18n:N}=d(),j=(e,r)=>e[r]?N.get(e[r]):null,B=null==p?void 0:p.filter(e=>!(null==i?void 0:i.includes(e.name))),D="amex"===m,V=D?N.get("creditCard.securityCode.contextualText.4digits"):N.get("creditCard.securityCode.contextualText.3digits");return e("div",{className:"adyen-checkout__card__form"},e(r,{brand:m,brandsConfiguration:y,error:j(C,c),focused:f===c,isValid:!!h.encryptedCardNumber,label:N.get("creditCard.cardNumber.label"),onFocusField:g,filled:!!C.encryptedCardNumber||!!h.encryptedCardNumber,showBrandIcon:E,dualBrandingElements:x}),e(u,{activeBrand:m,brands:B}),e("div",{className:o("adyen-checkout__card__exp-cvc",{"adyen-checkout__card__exp-cvc__exp-date__input--hidden":v===n})},e(a,{classNameModifiers:["col-50"],error:j(C,l),focused:f===l,isValid:!!h.encryptedExpiryMonth&&!!h.encryptedExpiryYear,filled:!!C.encryptedExpiryDate||!!h.encryptedExpiryYear,label:N.get("creditCard.expiryDate.label"),onFocusField:g,expiryDatePolicy:v,showContextualElement:F,contextualText:N.get("creditCard.expiryDate.contextualText")}),b&&e(t,{classNameModifiers:["col-50"],error:j(C,s),focused:f===s,cvcPolicy:_,isValid:!!h.encryptedSecurityCode,filled:!!C.encryptedSecurityCode||!!h.encryptedSecurityCode,label:N.get("creditCard.securityCode.label"),onFocusField:g,frontCVC:D,showContextualElement:F,contextualText:V})))}export{m as default};
2
2
  //# sourceMappingURL=CardFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardNumber from './CardNumber';\nimport CVC from './CVC';\nimport ExpirationDate from './ExpirationDate';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardFieldsProps } from './types';\nimport classNames from 'classnames';\nimport {\n BRAND_ICON_UI_EXCLUSION_LIST,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport AvailableBrands from './AvailableBrands';\n\nexport default function CardFields({\n brand,\n brandsIcons,\n brandsConfiguration,\n dualBrandingElements,\n errors,\n focusedElement,\n hasCVC,\n cvcPolicy,\n expiryDatePolicy,\n onFocusField,\n showBrandIcon,\n valid,\n showContextualElement\n}: CardFieldsProps) {\n const { i18n } = useCoreContext();\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n // A set of brands filtered to exclude those that can never appear in the UI\n const allowedBrands = brandsIcons?.filter(brandsIcons => !BRAND_ICON_UI_EXCLUSION_LIST?.includes(brandsIcons.name));\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n return (\n <div className=\"adyen-checkout__card__form\">\n <CardNumber\n brand={brand}\n brandsConfiguration={brandsConfiguration}\n error={getError(errors, ENCRYPTED_CARD_NUMBER)}\n focused={focusedElement === ENCRYPTED_CARD_NUMBER}\n isValid={!!valid.encryptedCardNumber}\n label={i18n.get('creditCard.cardNumber.label')}\n onFocusField={onFocusField}\n filled={!!errors.encryptedCardNumber || !!valid.encryptedCardNumber}\n showBrandIcon={showBrandIcon}\n dualBrandingElements={dualBrandingElements}\n />\n\n <AvailableBrands activeBrand={brand} brands={allowedBrands} />\n\n <div\n className={classNames('adyen-checkout__card__exp-cvc adyen-checkout__field-wrapper', {\n 'adyen-checkout__card__exp-cvc__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN\n })}\n >\n <ExpirationDate\n error={getError(errors, ENCRYPTED_EXPIRY_DATE)}\n focused={focusedElement === ENCRYPTED_EXPIRY_DATE}\n isValid={!!valid.encryptedExpiryMonth && !!valid.encryptedExpiryYear}\n filled={!!errors.encryptedExpiryDate || !!valid.encryptedExpiryYear}\n label={i18n.get('creditCard.expiryDate.label')}\n onFocusField={onFocusField}\n className={'adyen-checkout__field--50'}\n expiryDatePolicy={expiryDatePolicy}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('creditCard.expiryDate.contextualText')}\n />\n\n {hasCVC && (\n <CVC\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === ENCRYPTED_SECURITY_CODE}\n cvcPolicy={cvcPolicy}\n isValid={!!valid.encryptedSecurityCode}\n filled={!!errors.encryptedSecurityCode || !!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n className={'adyen-checkout__field--50'}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["CardFields","brand","brandsIcons","brandsConfiguration","dualBrandingElements","errors","focusedElement","hasCVC","cvcPolicy","expiryDatePolicy","onFocusField","showBrandIcon","valid","showContextualElement","i18n","useCoreContext","getError","fieldType","get","allowedBrands","filter","BRAND_ICON_UI_EXCLUSION_LIST","includes","name","isAmex","cvcContextualText","h","div","className","CardNumber","error","ENCRYPTED_CARD_NUMBER","focused","isValid","encryptedCardNumber","label","filled","AvailableBrands","activeBrand","brands","classNames","DATE_POLICY_HIDDEN","ExpirationDate","ENCRYPTED_EXPIRY_DATE","encryptedExpiryMonth","encryptedExpiryYear","encryptedExpiryDate","contextualText","CVC","ENCRYPTED_SECURITY_CODE","encryptedSecurityCode","frontCVC"],"mappings":"uiBAgBe,SAASA,GAAWC,MAC/BA,EAAKC,YACLA,EAAWC,oBACXA,EAAmBC,qBACnBA,EAAoBC,OACpBA,EAAMC,eACNA,EAAcC,OACdA,EAAMC,UACNA,EAASC,iBACTA,EAAgBC,aAChBA,EAAYC,cACZA,EAAaC,MACbA,EAAKC,sBACLA,IAEA,MAAMC,KAAEA,GAASC,IAEXC,EAAW,CAACX,EAAQY,IACfZ,EAAOY,GAAaH,EAAKI,IAAIb,EAAOY,IAAc,KAIvDE,EAAgBjB,aAAAA,EAAAA,EAAakB,OAAOlB,KAAgBmB,aAAAA,EAAAA,EAA8BC,SAASpB,EAAYqB,QACvGC,EAAmB,SAAVvB,EACTwB,EAAoBD,EACpBV,EAAKI,IAAI,kDACTJ,EAAKI,IAAI,kDAEf,OACIQ,EAACC,MAAAA,CAAIC,UAAU,8BACXF,EAACG,EAAAA,CACG5B,MAAOA,EACPE,oBAAqBA,EACrB2B,MAAOd,EAASX,EAAQ0B,GACxBC,QAAS1B,IAAmByB,EAC5BE,UAAWrB,EAAMsB,oBACjBC,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACd0B,SAAU/B,EAAO6B,uBAAyBtB,EAAMsB,oBAChDvB,cAAeA,EACfP,qBAAsBA,IAG1BsB,EAACW,EAAAA,CAAgBC,YAAarC,EAAOsC,OAAQpB,IAE7CO,EAACC,MAAAA,CACGC,UAAWY,EAAW,8DAA+D,CACjF,yDAA0D/B,IAAqBgC,KAGnFf,EAACgB,EAAAA,CACGZ,MAAOd,EAASX,EAAQsC,GACxBX,QAAS1B,IAAmBqC,EAC5BV,UAAWrB,EAAMgC,wBAA0BhC,EAAMiC,oBACjDT,SAAU/B,EAAOyC,uBAAyBlC,EAAMiC,oBAChDV,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACdkB,UAAW,4BACXnB,iBAAkBA,EAClBI,sBAAuBA,EACvBkC,eAAgBjC,EAAKI,IAAI,0CAG5BX,GACGmB,EAACsB,EAAAA,CACGlB,MAAOd,EAASX,EAAQ4C,GACxBjB,QAAS1B,IAAmB2C,EAC5BzC,UAAWA,EACXyB,UAAWrB,EAAMsC,sBACjBd,SAAU/B,EAAO6C,yBAA2BtC,EAAMsC,sBAClDf,MAAOrB,EAAKI,IAAI,iCAChBR,aAAcA,EACdkB,UAAW,4BACXuB,SAAU3B,EACVX,sBAAuBA,EACvBkC,eAAgBtB,KAMxC"}
1
+ {"version":3,"file":"CardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardNumber from './CardNumber';\nimport CVC from './CVC';\nimport ExpirationDate from './ExpirationDate';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardFieldsProps } from './types';\nimport classNames from 'classnames';\nimport {\n BRAND_ICON_UI_EXCLUSION_LIST,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport AvailableBrands from './AvailableBrands';\nimport './CardFields.scss';\n\nexport default function CardFields({\n brand,\n brandsIcons,\n brandsConfiguration,\n dualBrandingElements,\n errors,\n focusedElement,\n hasCVC,\n cvcPolicy,\n expiryDatePolicy,\n onFocusField,\n showBrandIcon,\n valid,\n showContextualElement\n}: CardFieldsProps) {\n const { i18n } = useCoreContext();\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n // A set of brands filtered to exclude those that can never appear in the UI\n const allowedBrands = brandsIcons?.filter(brandsIcons => !BRAND_ICON_UI_EXCLUSION_LIST?.includes(brandsIcons.name));\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n return (\n <div className=\"adyen-checkout__card__form\">\n <CardNumber\n brand={brand}\n brandsConfiguration={brandsConfiguration}\n error={getError(errors, ENCRYPTED_CARD_NUMBER)}\n focused={focusedElement === ENCRYPTED_CARD_NUMBER}\n isValid={!!valid.encryptedCardNumber}\n label={i18n.get('creditCard.cardNumber.label')}\n onFocusField={onFocusField}\n filled={!!errors.encryptedCardNumber || !!valid.encryptedCardNumber}\n showBrandIcon={showBrandIcon}\n dualBrandingElements={dualBrandingElements}\n />\n\n <AvailableBrands activeBrand={brand} brands={allowedBrands} />\n\n <div\n className={classNames('adyen-checkout__card__exp-cvc', {\n 'adyen-checkout__card__exp-cvc__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN\n })}\n >\n <ExpirationDate\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_EXPIRY_DATE)}\n focused={focusedElement === ENCRYPTED_EXPIRY_DATE}\n isValid={!!valid.encryptedExpiryMonth && !!valid.encryptedExpiryYear}\n filled={!!errors.encryptedExpiryDate || !!valid.encryptedExpiryYear}\n label={i18n.get('creditCard.expiryDate.label')}\n onFocusField={onFocusField}\n expiryDatePolicy={expiryDatePolicy}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('creditCard.expiryDate.contextualText')}\n />\n\n {hasCVC && (\n <CVC\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === ENCRYPTED_SECURITY_CODE}\n cvcPolicy={cvcPolicy}\n isValid={!!valid.encryptedSecurityCode}\n filled={!!errors.encryptedSecurityCode || !!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["CardFields","brand","brandsIcons","brandsConfiguration","dualBrandingElements","errors","focusedElement","hasCVC","cvcPolicy","expiryDatePolicy","onFocusField","showBrandIcon","valid","showContextualElement","i18n","useCoreContext","getError","fieldType","get","allowedBrands","filter","BRAND_ICON_UI_EXCLUSION_LIST","includes","name","isAmex","cvcContextualText","h","div","className","CardNumber","error","ENCRYPTED_CARD_NUMBER","focused","isValid","encryptedCardNumber","label","filled","AvailableBrands","activeBrand","brands","classNames","DATE_POLICY_HIDDEN","ExpirationDate","classNameModifiers","ENCRYPTED_EXPIRY_DATE","encryptedExpiryMonth","encryptedExpiryYear","encryptedExpiryDate","contextualText","CVC","ENCRYPTED_SECURITY_CODE","encryptedSecurityCode","frontCVC"],"mappings":"uiBAiBe,SAASA,GAAWC,MAC/BA,EAAKC,YACLA,EAAWC,oBACXA,EAAmBC,qBACnBA,EAAoBC,OACpBA,EAAMC,eACNA,EAAcC,OACdA,EAAMC,UACNA,EAASC,iBACTA,EAAgBC,aAChBA,EAAYC,cACZA,EAAaC,MACbA,EAAKC,sBACLA,IAEA,MAAMC,KAAEA,GAASC,IAEXC,EAAW,CAACX,EAAQY,IACfZ,EAAOY,GAAaH,EAAKI,IAAIb,EAAOY,IAAc,KAIvDE,EAAgBjB,aAAAA,EAAAA,EAAakB,OAAOlB,KAAgBmB,aAAAA,EAAAA,EAA8BC,SAASpB,EAAYqB,QACvGC,EAAmB,SAAVvB,EACTwB,EAAoBD,EACpBV,EAAKI,IAAI,kDACTJ,EAAKI,IAAI,kDAEf,OACIQ,EAACC,MAAAA,CAAIC,UAAU,8BACXF,EAACG,EAAAA,CACG5B,MAAOA,EACPE,oBAAqBA,EACrB2B,MAAOd,EAASX,EAAQ0B,GACxBC,QAAS1B,IAAmByB,EAC5BE,UAAWrB,EAAMsB,oBACjBC,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACd0B,SAAU/B,EAAO6B,uBAAyBtB,EAAMsB,oBAChDvB,cAAeA,EACfP,qBAAsBA,IAG1BsB,EAACW,EAAAA,CAAgBC,YAAarC,EAAOsC,OAAQpB,IAE7CO,EAACC,MAAAA,CACGC,UAAWY,EAAW,gCAAiC,CACnD,yDAA0D/B,IAAqBgC,KAGnFf,EAACgB,EAAAA,CACGC,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQuC,GACxBZ,QAAS1B,IAAmBsC,EAC5BX,UAAWrB,EAAMiC,wBAA0BjC,EAAMkC,oBACjDV,SAAU/B,EAAO0C,uBAAyBnC,EAAMkC,oBAChDX,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACdD,iBAAkBA,EAClBI,sBAAuBA,EACvBmC,eAAgBlC,EAAKI,IAAI,0CAG5BX,GACGmB,EAACuB,EAAAA,CACGN,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQ6C,GACxBlB,QAAS1B,IAAmB4C,EAC5B1C,UAAWA,EACXyB,UAAWrB,EAAMuC,sBACjBf,SAAU/B,EAAO8C,yBAA2BvC,EAAMuC,sBAClDhB,MAAOrB,EAAKI,IAAI,iCAChBR,aAAcA,EACd0C,SAAU5B,EACVX,sBAAuBA,EACvBmC,eAAgBvB,KAMxC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as i}from"../../../../../core/Context/CoreProvider.js";import o from"./DataSfSpan.js";import{DATE_POLICY_REQUIRED as n,DATE_POLICY_OPTIONAL as r,DATE_POLICY_HIDDEN as l,ENCRYPTED_EXPIRY_DATE as d}from"../../../../internal/SecuredFields/lib/constants.js";import c from"../../../../../core/Context/useImage.js";import{alternativeLabelContent as _}from"./FieldLabelAlternative.js";function s(s){const{label:p,focused:u,filled:m,onFocusField:f,className:x="",error:h="",isValid:y=!1,expiryDatePolicy:k=n,showContextualElement:F,contextualText:j}=s,{i18n:b}=i(),C=c(),N=t(x,{"adyen-checkout__field__exp-date":!0,"adyen-checkout__card__exp-date__input--hidden":k===l,"adyen-checkout__field__exp-date--optional":k===r}),g=k!==r?p:`${p} ${b.get("field.title.optional")}`,v=`${g} ${j}`;return e(a,{label:g,classNameModifiers:["expiryDate"],className:N,focused:u,filled:m,onFocusField:()=>f(d),errorMessage:h,isValid:y,dir:"ltr",name:"encryptedExpiryDate",i18n:b,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:_,showContextualElement:F,contextualText:j},e(o,{encryptedFieldType:d,className:t("adyen-checkout__input","adyen-checkout__input--small","adyen-checkout__card__exp-date__input",{"adyen-checkout__input--error":h,"adyen-checkout__input--focus":u,"adyen-checkout__input--valid":y})}),e("span",{className:t("adyen-checkout__field__exp-date_hint_wrapper",{"adyen-checkout__field__exp-date_hint_wrapper--hidden":h||y})},e("img",{src:C({imageFolder:"components/"})("expiry_date_hint"),className:"adyen-checkout__field__exp-date_hint",alt:v,onClick:()=>{f(d)}})))}export{s as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as i}from"../../../../../core/Context/CoreProvider.js";import o from"./DataSfSpan.js";import{DATE_POLICY_REQUIRED as n,DATE_POLICY_OPTIONAL as r,DATE_POLICY_HIDDEN as l,ENCRYPTED_EXPIRY_DATE as d}from"../../../../internal/SecuredFields/lib/constants.js";import c from"../../../../../core/Context/useImage.js";import{alternativeLabelContent as s}from"./FieldLabelAlternative.js";function _(_){const{label:p,focused:u,filled:m,onFocusField:f,className:x="",classNameModifiers:h=[],error:y="",isValid:k=!1,expiryDatePolicy:F=n,showContextualElement:j,contextualText:b}=_,{i18n:N}=i(),C=c(),g=t(x,{"adyen-checkout__field__exp-date":!0,"adyen-checkout__card__exp-date__input--hidden":F===l,"adyen-checkout__field__exp-date--optional":F===r}),v=F!==r?p:`${p} ${N.get("field.title.optional")}`,E=`${v} ${b}`;return e(a,{label:v,classNameModifiers:[...h,"expiryDate"],className:g,focused:u,filled:m,onFocusField:()=>f(d),errorMessage:y,isValid:k,dir:"ltr",name:"encryptedExpiryDate",i18n:N,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:s,showContextualElement:j,contextualText:b},e(o,{encryptedFieldType:d,className:t("adyen-checkout__input","adyen-checkout__input--small","adyen-checkout__card__exp-date__input",{"adyen-checkout__input--error":y,"adyen-checkout__input--focus":u,"adyen-checkout__input--valid":k})}),e("span",{className:t("adyen-checkout__field__exp-date_hint_wrapper",{"adyen-checkout__field__exp-date_hint_wrapper--hidden":y||k})},e("img",{src:C({imageFolder:"components/"})("expiry_date_hint"),className:"adyen-checkout__field__exp-date_hint",alt:E,onClick:()=>{f(d)}})))}export{_ as default};
2
2
  //# sourceMappingURL=ExpirationDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpirationDate.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/ExpirationDate.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { ExpirationDateProps } from './types';\nimport DataSfSpan from './DataSfSpan';\n\nimport {\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n DATE_POLICY_REQUIRED,\n ENCRYPTED_EXPIRY_DATE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport useImage from '../../../../../core/Context/useImage';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\n\nexport default function ExpirationDate(props: ExpirationDateProps) {\n const {\n label,\n focused,\n filled,\n onFocusField,\n className = '',\n error = '',\n isValid = false,\n expiryDatePolicy = DATE_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__exp-date': true,\n 'adyen-checkout__card__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN,\n 'adyen-checkout__field__exp-date--optional': expiryDatePolicy === DATE_POLICY_OPTIONAL\n });\n\n const fieldLabel = expiryDatePolicy !== DATE_POLICY_OPTIONAL ? label : `${label} ${i18n.get('field.title.optional')}`;\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_EXPIRY_DATE);\n };\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n classNameModifiers={['expiryDate']}\n className={fieldClassnames}\n focused={focused}\n filled={filled}\n onFocusField={() => onFocusField(ENCRYPTED_EXPIRY_DATE)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_EXPIRY_DATE}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n <span\n className={classNames('adyen-checkout__field__exp-date_hint_wrapper', {\n 'adyen-checkout__field__exp-date_hint_wrapper--hidden': error || isValid\n })}\n >\n {/*eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions*/}\n <img\n src={getImage({ imageFolder: 'components/' })('expiry_date_hint')}\n className=\"adyen-checkout__field__exp-date_hint\"\n alt={imageDescription}\n onClick={handleIconClick}\n />\n </span>\n </Field>\n );\n}\n"],"names":["ExpirationDate","props","label","focused","filled","onFocusField","className","error","isValid","expiryDatePolicy","DATE_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","getImage","useImage","fieldClassnames","classNames","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","fieldLabel","get","imageDescription","h","Field","classNameModifiers","ENCRYPTED_EXPIRY_DATE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","span","img","src","imageFolder","alt","onClick"],"mappings":"4kBAgBe,SAASA,EAAeC,GACnC,MAAMC,MACFA,EAAKC,QACLA,EAAOC,OACPA,EAAMC,aACNA,EAAYC,UACZA,EAAY,GAAEC,MACdA,EAAQ,GAAEC,QACVA,GAAU,EAAKC,iBACfA,EAAmBC,EAAoBC,sBACvCA,EAAqBC,eACrBA,GACAX,GACEY,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAkBC,EAAWZ,EAAW,CAC1C,mCAAmC,EACnC,gDAAiDG,IAAqBU,EACtE,4CAA6CV,IAAqBW,IAGhEC,EAAaZ,IAAqBW,EAAuBlB,EAAQ,GAAGA,KAASW,EAAKS,IAAI,0BAMtFC,EAAmB,GAAGF,KAAcT,IAE1C,OACIY,EAACC,EAAAA,CACGvB,MAAOmB,EACPK,mBAAoB,CAAC,cACrBpB,UAAWW,EACXd,QAASA,EACTC,OAAQA,EACRC,aAAc,IAAMA,EAAasB,GACjCC,aAAcrB,EACdC,QAASA,EACTqB,IAAK,MACLC,KAAM,sBACNjB,KAAMA,EACNkB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BvB,sBAAuBA,EACvBC,eAAgBA,GAEhBY,EAACW,EAAAA,CACGC,mBAAoBT,EACpBrB,UAAWY,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCX,EAChC,+BAAgCJ,EAChC,+BAAgCK,MAGxCgB,EAACa,OAAAA,CACG/B,UAAWY,EAAW,+CAAgD,CAClE,uDAAwDX,GAASC,KAIrEgB,EAACc,MAAAA,CACGC,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyC,oBAC9CT,UAAU,uCACVmC,IAAKlB,EACLmB,QA3CQ,KACpBrC,EAAasB,OA+CrB"}
1
+ {"version":3,"file":"ExpirationDate.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/ExpirationDate.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { ExpirationDateProps } from './types';\nimport DataSfSpan from './DataSfSpan';\n\nimport {\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n DATE_POLICY_REQUIRED,\n ENCRYPTED_EXPIRY_DATE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport useImage from '../../../../../core/Context/useImage';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\n\nexport default function ExpirationDate(props: ExpirationDateProps) {\n const {\n label,\n focused,\n filled,\n onFocusField,\n className = '',\n classNameModifiers = [],\n error = '',\n isValid = false,\n expiryDatePolicy = DATE_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__exp-date': true,\n 'adyen-checkout__card__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN,\n 'adyen-checkout__field__exp-date--optional': expiryDatePolicy === DATE_POLICY_OPTIONAL\n });\n\n const fieldLabel = expiryDatePolicy !== DATE_POLICY_OPTIONAL ? label : `${label} ${i18n.get('field.title.optional')}`;\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_EXPIRY_DATE);\n };\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n classNameModifiers={[...classNameModifiers, 'expiryDate']}\n className={fieldClassnames}\n focused={focused}\n filled={filled}\n onFocusField={() => onFocusField(ENCRYPTED_EXPIRY_DATE)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_EXPIRY_DATE}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n <span\n className={classNames('adyen-checkout__field__exp-date_hint_wrapper', {\n 'adyen-checkout__field__exp-date_hint_wrapper--hidden': error || isValid\n })}\n >\n {/*eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions*/}\n <img\n src={getImage({ imageFolder: 'components/' })('expiry_date_hint')}\n className=\"adyen-checkout__field__exp-date_hint\"\n alt={imageDescription}\n onClick={handleIconClick}\n />\n </span>\n </Field>\n );\n}\n"],"names":["ExpirationDate","props","label","focused","filled","onFocusField","className","classNameModifiers","error","isValid","expiryDatePolicy","DATE_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","getImage","useImage","fieldClassnames","classNames","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","fieldLabel","get","imageDescription","h","Field","ENCRYPTED_EXPIRY_DATE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","span","img","src","imageFolder","alt","onClick"],"mappings":"4kBAgBe,SAASA,EAAeC,GACnC,MAAMC,MACFA,EAAKC,QACLA,EAAOC,OACPA,EAAMC,aACNA,EAAYC,UACZA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,MACvBA,EAAQ,GAAEC,QACVA,GAAU,EAAKC,iBACfA,EAAmBC,EAAoBC,sBACvCA,EAAqBC,eACrBA,GACAZ,GACEa,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAkBC,EAAWb,EAAW,CAC1C,mCAAmC,EACnC,gDAAiDI,IAAqBU,EACtE,4CAA6CV,IAAqBW,IAGhEC,EAAaZ,IAAqBW,EAAuBnB,EAAQ,GAAGA,KAASY,EAAKS,IAAI,0BAMtFC,EAAmB,GAAGF,KAAcT,IAE1C,OACIY,EAACC,EAAAA,CACGxB,MAAOoB,EACPf,mBAAoB,IAAIA,EAAoB,cAC5CD,UAAWY,EACXf,QAASA,EACTC,OAAQA,EACRC,aAAc,IAAMA,EAAasB,GACjCC,aAAcpB,EACdC,QAASA,EACToB,IAAK,MACLC,KAAM,sBACNhB,KAAMA,EACNiB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BtB,sBAAuBA,EACvBC,eAAgBA,GAEhBY,EAACU,EAAAA,CACGC,mBAAoBT,EACpBrB,UAAWa,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCX,EAChC,+BAAgCL,EAChC,+BAAgCM,MAGxCgB,EAACY,OAAAA,CACG/B,UAAWa,EAAW,+CAAgD,CAClE,uDAAwDX,GAASC,KAIrEgB,EAACa,MAAAA,CACGC,IAAKvB,EAAS,CAAEwB,YAAa,eAAxBxB,CAAyC,oBAC9CV,UAAU,uCACVmC,IAAKjB,EACLkB,QA3CQ,KACpBrC,EAAasB,OA+CrB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"./CVC.js";import r from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as c}from"../../../../../core/Context/CoreProvider.js";import{ENCRYPTED_SECURITY_CODE as o}from"../../../../internal/SecuredFields/lib/constants.js";import a from"../../../../internal/FormFields/InputText.js";function i(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,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}function d({brand:d,hasCVC:l,onFocusField:s,errors:u,valid:p,cvcPolicy:y,focusedElement:f,lastFour:m,expiryMonth:b,expiryYear:_,showContextualElement:C}){const{i18n:O}=c(),x=`${O.get("creditCard.storedCard.description.ariaLabel").replace("%@",m)}${b&&_?` ${O.get("creditCard.expiryDate.label")} ${b}/${_}`:""}`,j="amex"===d,g=j?O.get("creditCard.securityCode.contextualText.4digits"):O.get("creditCard.securityCode.contextualText.3digits");return e("div",{className:"adyen-checkout__card__form adyen-checkout__card__form--oneClick","aria-label":x},e("div",{className:"adyen-checkout__card__exp-cvc adyen-checkout__field-wrapper"},b&&_&&e(r,{label:O.get("creditCard.expiryDate.label"),className:"adyen-checkout__field--50",classNameModifiers:["storedCard"],name:"expiryDateField",disabled:!0},e(a,{name:"expiryDateField",className:"adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick",value:`${b} / ${_}`,disabled:!0,dir:"ltr"})),l&&e(t,n(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},c=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(c=c.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),c.forEach(function(t){i(e,t,r[t])})}return e}({cvcPolicy:y,error:((e,t)=>e[t]?O.get(e[t]):null)(u,o),focused:"encryptedSecurityCode"===f,filled:!!p.encryptedSecurityCode||!!u.encryptedSecurityCode,isValid:!!p.encryptedSecurityCode,label:O.get("creditCard.securityCode.label"),onFocusField:s},b&&_&&{className:"adyen-checkout__field--50"}),{classNameModifiers:["storedCard"],frontCVC:j,showContextualElement:C,contextualText:g}))))}export{d as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"./CVC.js";import r from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as d}from"../../../../../core/Context/CoreProvider.js";import{ENCRYPTED_SECURITY_CODE as a}from"../../../../internal/SecuredFields/lib/constants.js";import i from"../../../../internal/FormFields/InputText.js";import o from"../../../../internal/FormFields/Fieldset/Fieldset.js";function c({brand:c,hasCVC:l,onFocusField:s,errors:n,valid:u,cvcPolicy:m,focusedElement:p,lastFour:C,expiryMonth:y,expiryYear:_,showContextualElement:x}){const{i18n:F}=d(),f=`${F.get("creditCard.storedCard.description.ariaLabel").replace("%@",C)}${y&&_?` ${F.get("creditCard.expiryDate.label")} ${y}/${_}`:""}`,b="amex"===c,h=b?F.get("creditCard.securityCode.contextualText.4digits"):F.get("creditCard.securityCode.contextualText.3digits");return e("div",{className:"adyen-checkout__card__form adyen-checkout__card__form--oneClick","aria-label":f},e(o,{classNamesFields:["adyen-checkout__card__exp-cvc"]},y&&_&&e(r,{label:F.get("creditCard.expiryDate.label"),classNameModifiers:["col-50","storedCard"],name:"expiryDateField",disabled:!0},e(i,{name:"expiryDateField",className:"adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick",value:`${y} / ${_}`,disabled:!0,dir:"ltr"})),l&&e(t,{cvcPolicy:m,error:((e,t)=>e[t]?F.get(e[t]):null)(n,a),focused:"encryptedSecurityCode"===p,filled:!!u.encryptedSecurityCode||!!n.encryptedSecurityCode,isValid:!!u.encryptedSecurityCode,label:F.get("creditCard.securityCode.label"),onFocusField:s,classNameModifiers:[...y&&_?["col-50","storedCard"]:["storedCard"]],frontCVC:b,showContextualElement:x,contextualText:h})))}export{c as default};
2
2
  //# sourceMappingURL=StoredCardFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StoredCardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/StoredCardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CVC from './CVC';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { StoredCardFieldsProps } from './types';\nimport { ENCRYPTED_SECURITY_CODE } from '../../../../internal/SecuredFields/lib/constants';\nimport InputText from '../../../../internal/FormFields/InputText';\n\nexport default function StoredCardFields({\n brand,\n hasCVC,\n onFocusField,\n errors,\n valid,\n cvcPolicy,\n focusedElement,\n lastFour,\n expiryMonth,\n expiryYear,\n showContextualElement\n}: StoredCardFieldsProps) {\n const { i18n } = useCoreContext();\n const storedCardDescription = i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', lastFour);\n const storedCardDescriptionSuffix = expiryMonth && expiryYear ? ` ${i18n.get('creditCard.expiryDate.label')} ${expiryMonth}/${expiryYear}` : '';\n const ariaLabel = `${storedCardDescription}${storedCardDescriptionSuffix}`;\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n return (\n <div className=\"adyen-checkout__card__form adyen-checkout__card__form--oneClick\" aria-label={ariaLabel}>\n <div className=\"adyen-checkout__card__exp-cvc adyen-checkout__field-wrapper\">\n {expiryMonth && expiryYear && (\n <Field\n label={i18n.get('creditCard.expiryDate.label')}\n className=\"adyen-checkout__field--50\"\n classNameModifiers={['storedCard']}\n name={'expiryDateField'}\n disabled\n >\n <InputText\n name={'expiryDateField'}\n className={'adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick'}\n value={`${expiryMonth} / ${expiryYear}`}\n disabled={true}\n dir={'ltr'}\n />\n </Field>\n )}\n\n {hasCVC && (\n <CVC\n cvcPolicy={cvcPolicy}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === 'encryptedSecurityCode'}\n filled={!!valid.encryptedSecurityCode || !!errors.encryptedSecurityCode}\n isValid={!!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n {...(expiryMonth && expiryYear && { className: 'adyen-checkout__field--50' })}\n classNameModifiers={['storedCard']}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["StoredCardFields","brand","hasCVC","onFocusField","errors","valid","cvcPolicy","focusedElement","lastFour","expiryMonth","expiryYear","showContextualElement","i18n","useCoreContext","ariaLabel","get","replace","isAmex","cvcContextualText","h","div","className","aria-label","Field","label","classNameModifiers","name","disabled","InputText","value","dir","CVC","error","fieldType","getError","ENCRYPTED_SECURITY_CODE","focused","filled","encryptedSecurityCode","isValid","frontCVC","contextualText"],"mappings":"g3BAQe,SAASA,GAAiBC,MACrCA,EAAKC,OACLA,EAAMC,aACNA,EAAYC,OACZA,EAAMC,MACNA,EAAKC,UACLA,EAASC,eACTA,EAAcC,SACdA,EAAQC,YACRA,EAAWC,WACXA,EAAUC,sBACVA,IAEA,MAAMC,KAAEA,GAASC,IAGXC,EAAY,GAFYF,EAAKG,IAAI,+CAA+CC,QAAQ,KAAMR,KAChEC,GAAeC,EAAa,IAAIE,EAAKG,IAAI,kCAAkCN,KAAeC,IAAe,KAEvIO,EAAmB,SAAVhB,EACTiB,EAAoBD,EACpBL,EAAKG,IAAI,kDACTH,EAAKG,IAAI,kDAMf,OACII,EAACC,MAAAA,CAAIC,UAAU,kEAAkEC,aAAYR,GACzFK,EAACC,MAAAA,CAAIC,UAAU,+DACVZ,GAAeC,GACZS,EAACI,EAAAA,CACGC,MAAOZ,EAAKG,IAAI,+BAChBM,UAAU,4BACVI,mBAAoB,CAAC,cACrBC,KAAM,kBACNC,UAAAA,GAEAR,EAACS,EAAAA,CACGF,KAAM,kBACNL,UAAW,wGACXQ,MAAO,GAAGpB,OAAiBC,IAC3BiB,UAAU,EACVG,IAAK,SAKhB5B,GACGiB,EAACY,EAAAA,oUAAAA,CAAAA,CACGzB,UAAWA,EACX0B,MA5BH,EAAC5B,EAAQ6B,IACf7B,EAAO6B,GAAarB,EAAKG,IAAIX,EAAO6B,IAAc,KA2BlCC,CAAS9B,EAAQ+B,GACxBC,QAA4B,0BAAnB7B,EACT8B,SAAUhC,EAAMiC,yBAA2BlC,EAAOkC,sBAClDC,UAAWlC,EAAMiC,sBACjBd,MAAOZ,EAAKG,IAAI,iCAChBZ,aAAcA,GACTM,GAAeC,GAAc,CAAEW,UAAW,8BAA4B,CAC3EI,mBAAoB,CAAC,cACrBe,SAAUvB,EACVN,sBAAuBA,EACvB8B,eAAgBvB,MAMxC"}
1
+ {"version":3,"file":"StoredCardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/StoredCardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CVC from './CVC';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { StoredCardFieldsProps } from './types';\nimport { ENCRYPTED_SECURITY_CODE } from '../../../../internal/SecuredFields/lib/constants';\nimport InputText from '../../../../internal/FormFields/InputText';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport './StoredCardFields.scss';\n\nexport default function StoredCardFields({\n brand,\n hasCVC,\n onFocusField,\n errors,\n valid,\n cvcPolicy,\n focusedElement,\n lastFour,\n expiryMonth,\n expiryYear,\n showContextualElement\n}: StoredCardFieldsProps) {\n const { i18n } = useCoreContext();\n const storedCardDescription = i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', lastFour);\n const storedCardDescriptionSuffix = expiryMonth && expiryYear ? ` ${i18n.get('creditCard.expiryDate.label')} ${expiryMonth}/${expiryYear}` : '';\n const ariaLabel = `${storedCardDescription}${storedCardDescriptionSuffix}`;\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n return (\n <div className=\"adyen-checkout__card__form adyen-checkout__card__form--oneClick\" aria-label={ariaLabel}>\n <Fieldset classNamesFields={['adyen-checkout__card__exp-cvc']}>\n {expiryMonth && expiryYear && (\n <Field\n label={i18n.get('creditCard.expiryDate.label')}\n classNameModifiers={['col-50', 'storedCard']}\n name={'expiryDateField'}\n disabled\n >\n <InputText\n name={'expiryDateField'}\n className={'adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick'}\n value={`${expiryMonth} / ${expiryYear}`}\n disabled={true}\n dir={'ltr'}\n />\n </Field>\n )}\n\n {hasCVC && (\n <CVC\n cvcPolicy={cvcPolicy}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === 'encryptedSecurityCode'}\n filled={!!valid.encryptedSecurityCode || !!errors.encryptedSecurityCode}\n isValid={!!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n classNameModifiers={[...(expiryMonth && expiryYear ? ['col-50', 'storedCard'] : ['storedCard'])]}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </Fieldset>\n </div>\n );\n}\n"],"names":["StoredCardFields","brand","hasCVC","onFocusField","errors","valid","cvcPolicy","focusedElement","lastFour","expiryMonth","expiryYear","showContextualElement","i18n","useCoreContext","ariaLabel","get","replace","isAmex","cvcContextualText","h","div","className","aria-label","Fieldset","classNamesFields","Field","label","classNameModifiers","name","disabled","InputText","value","dir","CVC","error","fieldType","getError","ENCRYPTED_SECURITY_CODE","focused","filled","encryptedSecurityCode","isValid","frontCVC","contextualText"],"mappings":"+cAUe,SAASA,GAAiBC,MACrCA,EAAKC,OACLA,EAAMC,aACNA,EAAYC,OACZA,EAAMC,MACNA,EAAKC,UACLA,EAASC,eACTA,EAAcC,SACdA,EAAQC,YACRA,EAAWC,WACXA,EAAUC,sBACVA,IAEA,MAAMC,KAAEA,GAASC,IAGXC,EAAY,GAFYF,EAAKG,IAAI,+CAA+CC,QAAQ,KAAMR,KAChEC,GAAeC,EAAa,IAAIE,EAAKG,IAAI,kCAAkCN,KAAeC,IAAe,KAEvIO,EAAmB,SAAVhB,EACTiB,EAAoBD,EACpBL,EAAKG,IAAI,kDACTH,EAAKG,IAAI,kDAMf,OACII,EAACC,MAAAA,CAAIC,UAAU,kEAAkEC,aAAYR,GACzFK,EAACI,EAAAA,CAASC,iBAAkB,CAAC,kCACxBf,GAAeC,GACZS,EAACM,EAAAA,CACGC,MAAOd,EAAKG,IAAI,+BAChBY,mBAAoB,CAAC,SAAU,cAC/BC,KAAM,kBACNC,UAAAA,GAEAV,EAACW,EAAAA,CACGF,KAAM,kBACNP,UAAW,wGACXU,MAAO,GAAGtB,OAAiBC,IAC3BmB,UAAU,EACVG,IAAK,SAKhB9B,GACGiB,EAACc,EAAAA,CACG3B,UAAWA,EACX4B,MA3BH,EAAC9B,EAAQ+B,IACf/B,EAAO+B,GAAavB,EAAKG,IAAIX,EAAO+B,IAAc,KA0BlCC,CAAShC,EAAQiC,GACxBC,QAA4B,0BAAnB/B,EACTgC,SAAUlC,EAAMmC,yBAA2BpC,EAAOoC,sBAClDC,UAAWpC,EAAMmC,sBACjBd,MAAOd,EAAKG,IAAI,iCAChBZ,aAAcA,EACdwB,mBAAoB,IAAKlB,GAAeC,EAAa,CAAC,SAAU,cAAgB,CAAC,eACjFgC,SAAUzB,EACVN,sBAAuBA,EACvBgC,eAAgBzB,KAMxC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./defaultProps.js";import{DropinComponent as n}from"./components/DropinComponent.js";import{CoreProvider as i}from"../../core/Context/CoreProvider.js";import{getCommonProps as r}from"./components/utils.js";import s from"./elements/createElements.js";import a from"./elements/createStoredElements.js";import h from"./elements/createInstantPaymentElements.js";import{hasOwnProperty as d}from"../../utils/hasOwnProperty.js";import l from"../../core/Errors/SRPanelProvider.js";import p from"./elements/splitPaymentMethods.js";import{TxVariants as m}from"../tx-variants.js";function c(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function y(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),n.forEach(function(e){c(t,e,o[e])})}return t}function u(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 f=["paywithgoogle","googlepay","applepay"];class v extends e{storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(t){return u(y({type:"dropin"},super.formatProps(t)),{instantPaymentTypes:Array.from(new Set(t.instantPaymentTypes)).filter(t=>f.includes(t))})}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setStatus(t,e={}){var o;return null===(o=this.dropinRef)||void 0===o||o.setStatus(t,e),this}get activePaymentMethod(){var t,e;return(null===(t=this.dropinRef)||void 0===t?void 0:t.state)||(null===(e=this.dropinRef)||void 0===e?void 0:e.state.activePaymentMethod)?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(t){var e;this.props.disableFinalAnimation||null===(e=this.dropinRef)||void 0===e||e.setStatus(t)}submit(){if(!this.activePaymentMethod)throw new Error("No active payment method.");this.activePaymentMethod.isValid||this.activePaymentMethod.showValidation(),this.activePaymentMethod.isInstantPayment&&this.closeActivePaymentMethod(),this.activePaymentMethod.submit()}handleAction(t,e={}){var o,n;if(!t||!t.type){if(d(t,"action")&&d(t,"resultCode"))throw new Error('handleAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('handleAction::Invalid Action - the passed action object does not have a "type" property')}if("redirect"!==t.type&&(null===(o=this.activePaymentMethod)||void 0===o?void 0:o.updateWithAction))return this.activePaymentMethod.updateWithAction(t);this.elementRef instanceof v&&(e=y({},null===(n=this.elementRef.activePaymentMethod)||void 0===n?void 0:n.props,e));const i=this.core.createFromAction(t,u(y({},e),{elementRef:this.elementRef,onAdditionalDetails:this.handleAdditionalDetails,isDropin:!0}));return i?(this.setStatus(i.props.statusType,{component:i}),this.componentFromAction=i,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyPress(t){if("Enter"===t.key||"Enter"===t.code){var e,o;if("radio"===(null===(o=document)||void 0===o||null===(e=o.activeElement)||void 0===e?void 0:e.getAttribute("role")))return;super.handleKeyPress(t)}}onEnterKeyPressed(t,e){var o,n;const i=null!==(n=this.activePaymentMethod)&&void 0!==n?n:e;null===(o=this.activePaymentMethod)||void 0===o||o.onEnterKeyPressed(t,i)}render(){return t(i,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(l,{srPanel:this.props.modules.srPanel},t(n,u(y({},this.props),{core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,ref:t=>{this.dropinRef=t}}))))}constructor(t,e){super(t,e),c(this,"dropinRef",null),c(this,"paymentMethodsConfiguration",void 0),c(this,"componentFromAction",void 0),c(this,"handleCreate",()=>{var t,e;const{paymentMethodsConfiguration:o,showStoredPaymentMethods:n,showPaymentMethods:i,instantPaymentTypes:d}=this.props,{paymentMethods:l,storedPaymentMethods:m,instantPaymentMethods:c,fastlanePaymentMethod:f}=p(this.core.paymentMethodsResponse,d),v=r(u(y({},this.props),{elementRef:this.elementRef})),P=i?s(l,o,v,this.core):[],M=h(c,o,v,this.core);var b;return[n?a(null!==(b=null===(t=(e=this.props).filterStoredPaymentMethods)||void 0===t?void 0:t.call(e,m))&&void 0!==b?b:m,o,v,this.core):[],P,M,f?s([f],o,v,this.core):[]]}),c(this,"handleOrder",({order:t})=>{this.updateParent({order:t})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.props.paymentMethodComponents.forEach(t=>this.core.register(t)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}c(v,"type",m.dropin),c(v,"defaultProps",o);export{v as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./defaultProps.js";import{DropinComponent as n}from"./components/DropinComponent.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import{getCommonProps as i}from"./components/utils.js";import s from"./elements/createElements.js";import a from"./elements/createStoredElements.js";import h from"./elements/createInstantPaymentElements.js";import{hasOwnProperty as d}from"../../utils/hasOwnProperty.js";import p from"../../core/Errors/SRPanelProvider.js";import l from"./elements/splitPaymentMethods.js";import{TxVariants as m}from"../tx-variants.js";function c(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function y(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),n.forEach(function(e){c(t,e,o[e])})}return t}function u(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 f=["paywithgoogle","googlepay","applepay"];class v extends e{storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(t){return u(y({type:"dropin"},super.formatProps(t)),{instantPaymentTypes:Array.from(new Set(t.instantPaymentTypes)).filter(t=>f.includes(t))})}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setStatus(t,e={}){var o;return null===(o=this.dropinRef)||void 0===o||o.setStatus(t,e),this}get activePaymentMethod(){var t,e;return(null===(t=this.dropinRef)||void 0===t?void 0:t.state)||(null===(e=this.dropinRef)||void 0===e?void 0:e.state.activePaymentMethod)?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(t){var e;this.props.disableFinalAnimation||null===(e=this.dropinRef)||void 0===e||e.setStatus(t)}submit(){if(!this.activePaymentMethod)throw new Error("No active payment method.");this.activePaymentMethod.isValid||this.activePaymentMethod.showValidation(),this.activePaymentMethod.isInstantPayment&&this.closeActivePaymentMethod(),this.activePaymentMethod.submit()}handleAction(t,e={}){var o,n;if(!t||!t.type){if(d(t,"action")&&d(t,"resultCode"))throw new Error('handleAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('handleAction::Invalid Action - the passed action object does not have a "type" property')}if("redirect"!==t.type&&(null===(o=this.activePaymentMethod)||void 0===o?void 0:o.updateWithAction))return this.activePaymentMethod.updateWithAction(t);this.elementRef instanceof v&&(e=y({},null===(n=this.elementRef.activePaymentMethod)||void 0===n?void 0:n.props,e));const r=this.core.createFromAction(t,u(y({},e),{elementRef:this.elementRef,isDropin:!0}));return r?(this.setStatus(r.props.statusType,{component:r}),this.componentFromAction=r,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyPress(t){if("Enter"===t.key||"Enter"===t.code){var e,o;if("radio"===(null===(o=document)||void 0===o||null===(e=o.activeElement)||void 0===e?void 0:e.getAttribute("role")))return;super.handleKeyPress(t)}}onEnterKeyPressed(t,e){var o,n;const r=null!==(n=this.activePaymentMethod)&&void 0!==n?n:e;null===(o=this.activePaymentMethod)||void 0===o||o.onEnterKeyPressed(t,r)}render(){return t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(p,{srPanel:this.props.modules.srPanel},t(n,u(y({},this.props),{core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,ref:t=>{this.dropinRef=t}}))))}constructor(t,e){super(t,e),c(this,"dropinRef",null),c(this,"paymentMethodsConfiguration",void 0),c(this,"componentFromAction",void 0),c(this,"handleCreate",()=>{var t,e;const{paymentMethodsConfiguration:o,showStoredPaymentMethods:n,showPaymentMethods:r,instantPaymentTypes:d}=this.props,{paymentMethods:p,storedPaymentMethods:m,instantPaymentMethods:c,fastlanePaymentMethod:f}=l(this.core.paymentMethodsResponse,d),v=i(u(y({},this.props),{elementRef:this.elementRef})),P=r?s(p,o,v,this.core):[],M=h(c,o,v,this.core);var b;return[n?a(null!==(b=null===(t=(e=this.props).filterStoredPaymentMethods)||void 0===t?void 0:t.call(e,m))&&void 0!==b?b:m,o,v,this.core):[],P,M,f?s([f],o,v,this.core):[]]}),c(this,"handleOrder",({order:t})=>{this.updateParent({order:t})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.props.paymentMethodComponents.forEach(t=>this.core.register(t)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}c(v,"type",m.dropin),c(v,"defaultProps",o);export{v as default};
2
2
  //# sourceMappingURL=Dropin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { getCommonProps } from './components/utils';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n type: 'dropin', // for analytics\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef?.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const commonProps = getCommonProps({ ...this.props, elementRef: this.elementRef });\n\n const elements = showPaymentMethods ? createElements(paymentMethods, paymentMethodsConfiguration, commonProps, this.core) : [];\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, commonProps, this.core);\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(\n this.props.filterStoredPaymentMethods?.(storedPaymentMethods) ?? storedPaymentMethods,\n paymentMethodsConfiguration,\n commonProps,\n this.core\n )\n : [];\n const fastlanePaymentElement = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, commonProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n onAdditionalDetails: this.handleAdditionalDetails,\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","storeElementRefOnCore","this","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","type","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","onAdditionalDetails","handleAdditionalDetails","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","render","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","DropinComponent","onCreateElements","handleCreate","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","_this_props_filterStoredPaymentMethods","_this_props","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","commonProps","getCommonProps","elements","createElements","instantPaymentElements","createInstantPaymentElements","_this_props_filterStoredPaymentMethods1","createStoredElements","filterStoredPaymentMethods","call","handleOrder","order","updateParent","bind","paymentMethodComponents","forEach","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { getCommonProps } from './components/utils';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n type: 'dropin', // for analytics\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef?.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const commonProps = getCommonProps({ ...this.props, elementRef: this.elementRef });\n\n const elements = showPaymentMethods ? createElements(paymentMethods, paymentMethodsConfiguration, commonProps, this.core) : [];\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, commonProps, this.core);\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(\n this.props.filterStoredPaymentMethods?.(storedPaymentMethods) ?? storedPaymentMethods,\n paymentMethodsConfiguration,\n commonProps,\n this.core\n )\n : [];\n const fastlanePaymentElement = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, commonProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","storeElementRefOnCore","this","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","type","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","render","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","DropinComponent","onCreateElements","handleCreate","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","_this_props_filterStoredPaymentMethods","_this_props","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","commonProps","getCommonProps","elements","createElements","instantPaymentElements","createInstantPaymentElements","_this_props_filterStoredPaymentMethods1","createStoredElements","filterStoredPaymentMethods","call","handleOrder","order","updateParent","bind","paymentMethodComponents","forEach","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";function t({paymentMethods:t,onSelect:a}){return e("ul",{className:"adyen-checkout__instant-payment-methods-list"},t.map(t=>e("li",{key:t._id,"data-testid":t.type,onClick:()=>a(t)},t.render())))}export{t as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";function t({paymentMethods:t,onSelect:a}){return e("ul",{className:"adyen-checkout__instant-payment-methods-list"},t.map(t=>e("li",{key:t._id,"data-testid":t.type,onClickCapture:()=>a(t)},t.render())))}export{t as default};
2
2
  //# sourceMappingURL=InstantPaymentMethods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstantPaymentMethods.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/InstantPaymentMethods.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../../internal/UIElement/UIElement';\nimport './InstantPaymentMethods.scss';\n\ninterface InstantPaymentMethodsProps {\n paymentMethods: UIElement[];\n onSelect: (paymentMethod: UIElement) => void;\n}\n\nfunction InstantPaymentMethods({ paymentMethods, onSelect }: InstantPaymentMethodsProps) {\n return (\n <ul className=\"adyen-checkout__instant-payment-methods-list\">\n {paymentMethods.map(pm => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <li key={pm._id} data-testid={pm.type} onClick={() => onSelect(pm)}>\n {pm.render()}\n </li>\n ))}\n </ul>\n );\n}\n\nexport default InstantPaymentMethods;\n"],"names":["InstantPaymentMethods","paymentMethods","onSelect","h","ul","className","map","pm","li","key","_id","data-testid","type","onClick","render"],"mappings":"2EASA,SAASA,GAAsBC,eAAEA,EAAcC,SAAEA,IAC7C,OACIC,EAACC,KAAAA,CAAGC,UAAU,gDACTJ,EAAeK,IAAIC,GAEhBJ,EAACK,KAAAA,CAAGC,IAAKF,EAAGG,IAAKC,cAAaJ,EAAGK,KAAMC,QAAS,IAAMX,EAASK,IAC1DA,EAAGO,WAKxB"}
1
+ {"version":3,"file":"InstantPaymentMethods.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/InstantPaymentMethods.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../../internal/UIElement/UIElement';\nimport './InstantPaymentMethods.scss';\n\ninterface InstantPaymentMethodsProps {\n paymentMethods: UIElement[];\n onSelect: (paymentMethod: UIElement) => void;\n}\n\nfunction InstantPaymentMethods({ paymentMethods, onSelect }: InstantPaymentMethodsProps) {\n return (\n <ul className=\"adyen-checkout__instant-payment-methods-list\">\n {paymentMethods.map(pm => (\n /**\n * Apple Pay button click event does not bubble up, therefore we need to use 'onClickCapture' here\n * to capture the button interaction\n */\n <li key={pm._id} data-testid={pm.type} onClickCapture={() => onSelect(pm)}>\n {pm.render()}\n </li>\n ))}\n </ul>\n );\n}\n\nexport default InstantPaymentMethods;\n"],"names":["InstantPaymentMethods","paymentMethods","onSelect","h","ul","className","map","pm","li","key","_id","data-testid","type","onClickCapture","render"],"mappings":"2EASA,SAASA,GAAsBC,eAAEA,EAAcC,SAAEA,IAC7C,OACIC,EAACC,KAAAA,CAAGC,UAAU,gDACTJ,EAAeK,IAAIC,GAKhBJ,EAACK,KAAAA,CAAGC,IAAKF,EAAGG,IAAKC,cAAaJ,EAAGK,KAAMC,eAAgB,IAAMX,EAASK,IACjEA,EAAGO,WAKxB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/GiftcardComponent.js";import{CoreProvider as o}from"../../core/Context/CoreProvider.js";import n from"../internal/PayButton/PayButton.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as i}from"../tx-variants.js";import a from"../../core/Errors/SRPanelProvider.js";function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){p(e,t,r[t])})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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}class u extends t{formatProps(e){return c({},null==e?void 0:e.configuration,e)}formatData(){var e,t;return{paymentMethod:{type:this.constructor.type,brand:this.props.brand,encryptedCardNumber:null===(e=this.state.data)||void 0===e?void 0:e.encryptedCardNumber,encryptedSecurityCode:null===(t=this.state.data)||void 0===t?void 0:t.encryptedSecurityCode}}}get isValid(){return!!this.state.isValid}get icon(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.icon)||this.props.icon||this.resources.getImage()(this.props.brand)}get displayName(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.name)||this.props.name}balanceCheck(){return this.onBalanceCheck()}submit(){this.balanceCheck()}makeSubmitCall(){super.submit()}render(){return e(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(a,{srPanel:this.props.modules.srPanel},e(r,h(c({ref:e=>{this.componentRef=e}},this.props),{handleKeyPress:this.handleKeyPress,showPayButton:this.props.showPayButton,onChange:this.setState,makeBalanceCheck:()=>this.onBalanceCheck(),makePayment:()=>this.makeSubmitCall(),payButton:this.payButton}))))}constructor(...t){super(...t),p(this,"handleBalanceCheck",e=>this.props.onBalanceCheck?new Promise((t,r)=>{this.props.onBalanceCheck(t,r,e)}):this.props.session?this.props.session.checkBalance(e):void 0),p(this,"onOrderRequest",e=>this.props.onOrderRequest?new Promise((t,r)=>{this.props.onOrderRequest(t,r,e)}):this.props.session?this.props.session.createOrder():void 0),p(this,"onBalanceCheck",()=>{if(!this.isValid)return void this.showValidation();if(!(this.props.session||this.props.onBalanceCheck))return super.submit();this.setStatus("loading"),this.handleBalanceCheck(this.formatData()).then(({balance:e,transactionLimit:t={}})=>{var r;if(!e)throw new Error("card-error");if((null==e?void 0:e.currency)!==(null===(r=this.props.amount)||void 0===r?void 0:r.currency))throw new Error("currency-error");if((null==e?void 0:e.value)<=0)throw new Error("no-balance");return this.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?this.makeSubmitCall():this.onOrderRequest(this.data).then(e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),this.makeSubmitCall())):this.handleOnRequiringConfirmation(e,t)}).catch(e=>{this.setStatus((null==e?void 0:e.message)||"error"),this.props.onError&&(e instanceof s?this.handleError(e):this.handleError(new s("ERROR",e)))})}),p(this,"handleOnRequiringConfirmation",(e,t)=>{if(this.componentRef.setBalance({balance:e,transactionLimit:t}),this.setStatus("ready"),!this.props.showPayButton){if(!this.props.onRequiringConfirmation)throw new s("IMPLEMENTATION_ERROR","onRequiringConfirmation must be provided");return new Promise((e,t)=>{this.props.onRequiringConfirmation(e,t)}).then(()=>this.makeSubmitCall()).catch(()=>{})}}),p(this,"payButton",t=>e(n,t))}}p(u,"type",i.giftcard),p(u,"defaultProps",{brandsConfiguration:{}});export{u as GiftcardElement,u as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/GiftcardComponent.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import o from"../internal/PayButton/PayButton.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as i}from"../tx-variants.js";import a from"../../core/Errors/SRPanelProvider.js";function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){c(e,t,r[t])})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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}class l extends t{formatProps(e){return p({},null==e?void 0:e.configuration,e)}formatData(){var e,t;return{paymentMethod:{type:this.constructor.type,brand:this.props.brand,encryptedCardNumber:null===(e=this.state.data)||void 0===e?void 0:e.encryptedCardNumber,encryptedSecurityCode:null===(t=this.state.data)||void 0===t?void 0:t.encryptedSecurityCode}}}get isValid(){return!!this.state.isValid}get icon(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.icon)||this.props.icon||this.resources.getImage()(this.props.brand)}get displayName(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.name)||this.props.name}setBalanceCheckError(e){var t,r;null===(r=this.componentRef)||void 0===r||null===(t=r.setBalanceCheckErrors)||void 0===t||t.call(r,e)}balanceCheck(){return this.onBalanceCheck()}submit(){this.balanceCheck()}makeSubmitCall(){super.submit()}render(){return e(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(a,{srPanel:this.props.modules.srPanel},e(r,h(p({ref:e=>{this.componentRef=e}},this.props),{handleKeyPress:this.handleKeyPress,showPayButton:this.props.showPayButton,onChange:this.setState,makeBalanceCheck:()=>this.onBalanceCheck(),makePayment:()=>this.makeSubmitCall(),payButton:this.payButton}))))}constructor(...t){super(...t),c(this,"componentRef",void 0),c(this,"handleBalanceCheck",e=>this.props.onBalanceCheck?new Promise((t,r)=>{this.props.onBalanceCheck(t,r,e)}):this.props.session?this.props.session.checkBalance(e):void 0),c(this,"onOrderRequest",e=>this.props.onOrderRequest?new Promise((t,r)=>{this.props.onOrderRequest(t,r,e)}):this.props.session?this.props.session.createOrder():void 0),c(this,"onBalanceCheck",()=>{if(!this.isValid)return void this.showValidation();if(!(this.props.session||this.props.onBalanceCheck))return super.submit();this.setStatus("loading"),this.handleBalanceCheck(this.formatData()).then(({balance:e,transactionLimit:t={}})=>{var r;if(this.setBalanceCheckError(null),!e)throw new Error("card-error");if((null==e?void 0:e.currency)!==(null===(r=this.props.amount)||void 0===r?void 0:r.currency))throw new Error("currency-error");if((null==e?void 0:e.value)<=0)throw new Error("no-balance");return this.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?this.makeSubmitCall():this.onOrderRequest(this.data).then(e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),this.makeSubmitCall())):this.handleOnRequiringConfirmation(e,t)}).catch(e=>{this.setBalanceCheckError(null==e?void 0:e.message),e instanceof s?this.handleError(e):this.handleError(new s("ERROR",e))})}),c(this,"handleOnRequiringConfirmation",(e,t)=>{if(this.componentRef.setBalance({balance:e,transactionLimit:t}),this.setStatus("ready"),!this.props.showPayButton){if(!this.props.onRequiringConfirmation)throw new s("IMPLEMENTATION_ERROR","onRequiringConfirmation must be provided");return new Promise((e,t)=>{this.props.onRequiringConfirmation(e,t)}).then(()=>this.makeSubmitCall()).catch(()=>{})}}),c(this,"payButton",t=>e(o,t))}}c(l,"type",i.giftcard),c(l,"defaultProps",{brandsConfiguration:{}});export{l as GiftcardElement,l as default};
2
2
  //# sourceMappingURL=Giftcard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Giftcard.js","sources":["../../../../src/components/Giftcard/Giftcard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GiftcardComponent from './components/GiftcardComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static type = TxVariants.giftcard;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.makeSubmitCall();\n }\n\n return this.onOrderRequest(this.data).then((order: { orderData: string; pspReference: string }) => {\n this.setState({ order: { orderData: order.orderData, pspReference: order.pspReference } });\n return this.makeSubmitCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n this.setStatus(error?.message || 'error');\n if (this.props.onError) {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private handleOnRequiringConfirmation = (balance, transactionLimit): Promise<any> => {\n this.componentRef.setBalance({ balance, transactionLimit });\n this.setStatus('ready');\n\n // 1. if we show pay button we don't need to ask for confirmation\n if (this.props.showPayButton) {\n return;\n }\n // 2. there's no callback, we throw error\n if (!this.props.onRequiringConfirmation) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'onRequiringConfirmation must be provided');\n }\n // 3. success case if in case of custom pay button\n return (\n new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n })\n //when this resolve passed to onRequiringConfirmation gets resolved make payments call\n .then(() => this.makeSubmitCall())\n //when it gets rejected handle cancellation\n .catch(() => {})\n );\n };\n\n public submit() {\n // for simplicity of the merchant we always only expose .submit()\n // however to make the actual payment call we call makeSubmitCall\n this.balanceCheck();\n }\n\n // this makes the payment, as .submit is used by the merchant to trigger the payButton action\n private makeSubmitCall() {\n super.submit();\n }\n\n // Giftcards override the regular payButton flow\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyPress={this.handleKeyPress}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n makeBalanceCheck={() => this.onBalanceCheck()}\n makePayment={() => this.makeSubmitCall()}\n payButton={this.payButton}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default GiftcardElement;\n"],"names":["GiftcardElement","UIElement","formatProps","props","_object_spread","configuration","formatData","_this_state_data","_this_state_data1","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","_this_props_brandsConfiguration_this_props_brand","brandsConfiguration","resources","getImage","displayName","name","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","render","h","CoreProvider","i18n","loadingContext","SRPanelProvider","srPanel","modules","GiftcardComponent","ref","componentRef","handleKeyPress","showPayButton","onChange","setState","makeBalanceCheck","makePayment","payButton","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","onError","AdyenCheckoutError","handleError","setBalance","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"4uCAWO,MAAMA,UAAwBC,EAOjCC,WAAAA,CAAYC,GACR,OAAOC,EAAA,CAAA,EACAD,aAAAA,EAAAA,EAAOE,cACPF,EAEX,CAEAG,UAAAA,OAKiCC,EACEC,EAL/B,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKC,YAAY,KACvBC,MAAOF,KAAKR,MAAMU,MAClBC,oBAAoC,QAAfP,EAAAI,KAAKI,MAAMC,YAAX,IAAAT,OAAA,EAAAA,EAAiBO,oBACtCG,sBAAsC,QAAfT,EAAAG,KAAKI,MAAMC,YAAX,IAAAR,OAAA,EAAAA,EAAiBS,uBAGpD,CAEA,WAAIC,GACA,QAASP,KAAKI,MAAMG,OACxB,CAEA,QAAIC,GACO,IAAAC,EAAP,eAAOA,EAAAT,KAAKR,MAAMkB,oBAAoBV,KAAKR,MAAMU,cAA1C,IAAAO,OAAA,EAAAA,EAAkDD,OAAQR,KAAKR,MAAMgB,MAAQR,KAAKW,UAAUC,UAAfZ,CAA0BA,KAAKR,MAAMU,MAC7H,CAEA,eAAIW,GACO,IAAAJ,EAAP,OAAuD,QAAhDA,EAAAT,KAAKR,MAAMkB,oBAAoBV,KAAKR,MAAMU,cAA1C,IAAAO,OAAA,EAAAA,EAAkDK,OAAQd,KAAKR,MAAMsB,IAChF,CAwBOC,YAAAA,GACH,OAAOf,KAAKgB,gBAChB,CAwEOC,MAAAA,GAGHjB,KAAKe,cACT,CAGQG,cAAAA,GACJC,MAAMF,QACV,CAOAG,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMvB,KAAKR,MAAM+B,KAAMC,eAAgBxB,KAAKR,MAAMgC,eAAgBb,UAAWX,KAAKW,WAC5FU,EAACI,EAAAA,CAAgBC,QAAS1B,KAAKR,MAAMmC,QAAQD,SACzCL,EAACO,EAAAA,EAAAA,EAAAA,CACGC,IAAKA,IACD7B,KAAK8B,aAAeD,IAEpB7B,KAAKR,OAAK,CACduC,eAAgB/B,KAAK+B,eACrBC,cAAehC,KAAKR,MAAMwC,cAC1BC,SAAUjC,KAAKkC,SACfC,iBAAkB,IAAMnC,KAAKgB,iBAC7BoB,YAAa,IAAMpC,KAAKkB,iBACxBmB,UAAWrC,KAAKqC,cAKpC,mBAxKGlB,SAAAmB,GAqCHC,EAAAvC,KAAQwC,qBAAsBnC,GACtBL,KAAKR,MAAMwB,eACJ,IAAIyB,QAAQ,CAACC,EAASC,KACpB3C,KAAKR,MAAMwB,eAAe0B,EAASC,EAAQtC,KAIpDL,KAAKR,MAAMoD,QACJ5C,KAAKR,MAAMoD,QAAQC,aAAaxC,QAD3C,GAKJkC,EAAAvC,KAAQ8C,iBAAiBzC,GACjBL,KAAKR,MAAMsD,eACJ,IAAIL,QAAQ,CAACC,EAASC,KACpB3C,KAAKR,MAAMsD,eAAeJ,EAASC,EAAQtC,KAEpDL,KAAKR,MAAMoD,QACJ5C,KAAKR,MAAMoD,QAAQG,mBAD9B,GASJR,OAAQvB,iBAAiB,KACrB,IAAKhB,KAAKO,QAEN,YADAP,KAAKgD,iBAMT,KADwBhD,KAAKR,MAAMoD,SAAW5C,KAAKR,MAAMwB,gBACnC,OAAOG,MAAMF,SAEnCjB,KAAKiD,UAAU,WAEfjD,KAAKwC,mBAAmBxC,KAAKL,cACxBuD,KAAK,EAAGC,UAASC,mBAAmB,CAAA,MAEP,IAAAC,EAD1B,IAAKF,EAAS,MAAM,IAAIG,MAAM,cAC9B,IAAIH,aAAAA,EAAAA,EAASI,qBAAaF,EAAArD,KAAKR,MAAMgE,cAAX,IAAAH,OAAA,EAAAA,EAAmBE,UAAU,MAAM,IAAID,MAAM,kBACvE,IAAIH,aAAAA,EAAAA,EAASM,QAAS,EAAG,MAAM,IAAIH,MAAM,cAEzC,OAAItD,KAAKR,MAAMgE,OAAOC,MAAQN,EAAQM,OAASzD,KAAKR,MAAMgE,OAAOC,MAAQL,EAAiBK,MAClFzD,KAAKR,MAAMkE,MACJ1D,KAAKkB,iBAGTlB,KAAK8C,eAAe9C,KAAKK,MAAM6C,KAAMQ,IACxC1D,KAAKkC,SAAS,CAAEwB,MAAO,CAAEC,UAAWD,EAAMC,UAAWC,aAAcF,EAAME,gBAClE5D,KAAKkB,mBAGTlB,KAAK6D,8BAA8BV,EAASC,KAG1DU,MAAMC,IACH/D,KAAKiD,WAAUc,aAAAA,EAAAA,EAAOC,UAAW,SAC7BhE,KAAKR,MAAMyE,UACPF,aAAiBG,EACjBlE,KAAKmE,YAAYJ,GAEjB/D,KAAKmE,YAAY,IAAID,EAAmB,QAASH,SASrExB,EAAAvC,KAAQ6D,gCAAgC,CAACV,EAASC,KAK9C,GAJApD,KAAK8B,aAAasC,WAAW,CAAEjB,UAASC,qBACxCpD,KAAKiD,UAAU,UAGXjD,KAAKR,MAAMwC,cAAf,CAIA,IAAKhC,KAAKR,MAAM6E,wBACZ,MAAM,IAAIH,EAAmB,uBAAwB,4CAGzD,OACI,IAAIzB,QAAc,CAACC,EAASC,KACnB3C,KAAKR,MAAM6E,wBAAwB3B,EAASC,KAGhDO,KAAK,IAAMlD,KAAKkB,kBAEhB4C,MAAM,OAbf,IA6BJvB,EAAAvC,KAAOqC,YAAY7C,GACR6B,EAACiD,EAAc9E,KAjJ1B+C,EADSlD,EACKU,OAAOwE,EAAWC,UAEhCjC,EAHSlD,EAGQoF,eAAe,CAC5B/D,oBAAqB,CAAA"}
1
+ {"version":3,"file":"Giftcard.js","sources":["../../../../src/components/Giftcard/Giftcard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GiftcardComponent from './components/GiftcardComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType, GiftCardBalanceCheckErrorType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static type = TxVariants.giftcard;\n\n protected componentRef: GiftcardComponent | undefined;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private setBalanceCheckError(errorMessage: GiftCardBalanceCheckErrorType | null): void {\n this.componentRef?.setBalanceCheckErrors?.(errorMessage);\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n // Clear any previous balance check errors on success\n this.setBalanceCheckError(null);\n\n // We still need to throw these errors, otherwise it would be a breaking changing\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.makeSubmitCall();\n }\n\n return this.onOrderRequest(this.data).then((order: { orderData: string; pspReference: string }) => {\n this.setState({ order: { orderData: order.orderData, pspReference: order.pspReference } });\n return this.makeSubmitCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n // Simply pass the raw error message to setBalanceCheckError\n this.setBalanceCheckError(error?.message);\n\n // Still call handleError for other side effects (analytics, onError callback)\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private handleOnRequiringConfirmation = (balance, transactionLimit): Promise<any> => {\n this.componentRef.setBalance({ balance, transactionLimit });\n this.setStatus('ready');\n\n // 1. if we show pay button we don't need to ask for confirmation\n if (this.props.showPayButton) {\n return;\n }\n // 2. there's no callback, we throw error\n if (!this.props.onRequiringConfirmation) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'onRequiringConfirmation must be provided');\n }\n // 3. success case if in case of custom pay button\n return (\n new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n })\n //when this resolve passed to onRequiringConfirmation gets resolved make payments call\n .then(() => this.makeSubmitCall())\n //when it gets rejected handle cancellation\n .catch(() => {})\n );\n };\n\n public submit() {\n // for simplicity of the merchant we always only expose .submit()\n // however to make the actual payment call we call makeSubmitCall\n this.balanceCheck();\n }\n\n // this makes the payment, as .submit is used by the merchant to trigger the payButton action\n private makeSubmitCall() {\n super.submit();\n }\n\n // Giftcards override the regular payButton flow\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyPress={this.handleKeyPress}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n makeBalanceCheck={() => this.onBalanceCheck()}\n makePayment={() => this.makeSubmitCall()}\n payButton={this.payButton}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default GiftcardElement;\n"],"names":["GiftcardElement","UIElement","formatProps","props","_object_spread","configuration","formatData","_this_state_data","_this_state_data1","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","_this_props_brandsConfiguration_this_props_brand","brandsConfiguration","resources","getImage","displayName","name","setBalanceCheckError","errorMessage","_this_componentRef_setBalanceCheckErrors","_this_componentRef","componentRef","setBalanceCheckErrors","call","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","render","h","CoreProvider","i18n","loadingContext","SRPanelProvider","srPanel","modules","GiftcardComponent","ref","handleKeyPress","showPayButton","onChange","setState","makeBalanceCheck","makePayment","payButton","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","AdyenCheckoutError","handleError","setBalance","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import o from"./GiftcardResult.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class p extends t{render(t,{focusedElement:i,balance:p,transactionLimit:d,isValidating:f,transformedErrors:h}){var m;const{i18n:y}=a();c({errors:h,isValidating:f,sfp:this.sfp});const b=(null==d?void 0:d.value)<(null==p?void 0:p.value)?d:p,g=(null==b?void 0:b.value)>=(null===(m=this.props.amount)||void 0===m?void 0:m.value);if(b&&g)return e(o,{amount:this.props.amount,balance:p,transactionLimit:d,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,showPayButton:this.props.showPayButton,payButton:this.props.payButton});const O=t=>{if(t.errors.encryptedCardNumber)return y.get(t.errors.encryptedCardNumber);switch(this.state.status){case"no-balance":return y.get("error.giftcard.no-balance");case"card-error":return y.get("error.giftcard.card-error");case"currency-error":return y.get("error.giftcard.currency-error");default:return null}};return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},y.get("error.message.unknown")),e(r,l(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),s.forEach(function(e){u(t,e,r[e])})}return t}({},this.props),{ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,type:n,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:y,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:O,setRootNode:t,setFocusOn:e,sfpState:r})})),this.props.showPayButton&&this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:y.get("applyGiftcard")}))}constructor(...t){super(...t),u(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),u(this,"sfp",void 0),u(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),u(this,"onChange",t=>{const e=this.mapErrorsToValidationObjects();this.setState({sfpState:t,transformedErrors:e}),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),u(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),u(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),u(this,"showValidation",()=>{var t;this.setState({isValidating:!0}),null===(t=this.sfp)||void 0===t||t.showValidation()})}}u(p,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});export{p as default};
1
+ import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import o from"./GiftcardResult.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function u(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),s.forEach(function(e){l(t,e,r[e])})}return t}function p(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class d extends t{generateBalanceCheckErrors(t){const e={};return null===t||(e.encryptedCardNumber={isValid:!1,errorMessage:`error.giftcard.${t}`,error:t}),e}isBalanceCheckError(t){return["no-balance","card-error","currency-error"].includes(t)}render(t,{focusedElement:i,balance:l,transactionLimit:d,isValidating:h,transformedErrors:f}){var m;const{i18n:y}=a();c({errors:f,isValidating:h,sfp:this.sfp});const b=(null==d?void 0:d.value)<(null==l?void 0:l.value)?d:l,g=(null==b?void 0:b.value)>=(null===(m=this.props.amount)||void 0===m?void 0:m.value);if(b&&g)return e(o,{amount:this.props.amount,balance:l,transactionLimit:d,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,showPayButton:this.props.showPayButton,payButton:this.props.payButton});const O=t=>t.errors.encryptedCardNumber?y.get(t.errors.encryptedCardNumber):f.encryptedCardNumber?y.get(f.encryptedCardNumber.errorMessage):null;return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},y.get("error.message.unknown")),e(r,p(u({},this.props),{ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,type:n,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:y,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:O,setRootNode:t,setFocusOn:e,sfpState:r})})),this.props.showPayButton&&this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:y.get("applyGiftcard")}))}constructor(...t){super(...t),l(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),l(this,"sfp",void 0),l(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),l(this,"updateTransformedErrors",t=>{const e=u({},this.mapErrorsToValidationObjects(),t);this.setState({transformedErrors:e})}),l(this,"onChange",t=>{this.setState({sfpState:t},()=>this.updateTransformedErrors()),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),l(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),l(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),l(this,"setBalanceCheckErrors",t=>{if(this.isBalanceCheckError(t)){const e=this.generateBalanceCheckErrors(t);this.updateTransformedErrors(e)}}),l(this,"showValidation",()=>{var t;this.setState({isValidating:!0}),null===(t=this.sfp)||void 0===t||t.showValidation()})}}l(d,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});export{d as default};
2
2
  //# sourceMappingURL=GiftcardComponent.js.map