@adyen/adyen-web 6.34.0 → 6.35.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 (208) hide show
  1. package/dist/cjs/adyen.css +4 -5
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +86 -44
  6. package/dist/es/adyen.css +4 -5
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  9. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  10. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  11. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  12. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  13. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  14. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  15. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  16. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  17. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  18. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  19. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  20. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  21. package/dist/es/components/Card/components/CardInput/components/DualBrandSelector.js +2 -0
  22. package/dist/es/components/Card/components/CardInput/components/DualBrandSelector.js.map +1 -0
  23. package/dist/es/components/Card/components/CardInput/components/DualBrandSelector.module.scss.js +2 -0
  24. package/dist/es/components/Card/components/CardInput/components/DualBrandSelector.module.scss.js.map +1 -0
  25. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  26. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js +1 -1
  27. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  28. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  29. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  30. package/dist/es/components/Card/constants.js.map +1 -1
  31. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  32. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  33. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  34. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  35. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  36. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  37. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  38. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  39. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  40. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  41. package/dist/es/components/Econtext/Econtext.js +1 -1
  42. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  43. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  44. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  45. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  46. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  47. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  48. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  49. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  50. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  51. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  52. package/dist/es/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  53. package/dist/es/components/internal/Address/validate.formats.js +1 -1
  54. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  55. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  56. package/dist/es/components/internal/BaseElement/BaseElement.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/InputDate/utils.js +1 -1
  60. package/dist/es/components/internal/FormFields/InputDate/utils.js.map +1 -1
  61. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  62. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  63. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  64. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  65. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  66. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  67. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  68. package/dist/es/components/internal/SecuredFields/lib/CSF/initCSF.js.map +1 -1
  69. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js +1 -1
  70. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  71. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  72. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  73. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js +1 -1
  74. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js.map +1 -1
  75. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  76. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  77. package/dist/es/core/Analytics/Analytics.js +1 -1
  78. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  79. package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
  80. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  81. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  82. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  83. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  84. package/dist/es/core/config.js +1 -1
  85. package/dist/es/core/config.js.map +1 -1
  86. package/dist/es/core/core.js +1 -1
  87. package/dist/es/core/core.js.map +1 -1
  88. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  89. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  90. package/dist/es/external/preact/dist/preact.js +1 -1
  91. package/dist/es/external/preact/dist/preact.js.map +1 -1
  92. package/dist/es/index.d.ts +86 -44
  93. package/dist/es/language/utils.js +1 -1
  94. package/dist/es/language/utils.js.map +1 -1
  95. package/dist/es/utils/Script.js.map +1 -1
  96. package/dist/es/utils/createSdkData.js +1 -1
  97. package/dist/es/utils/createSdkData.js.map +1 -1
  98. package/dist/es/utils/debounce.js.map +1 -1
  99. package/dist/es/utils/getErrorMessage.js +1 -1
  100. package/dist/es/utils/getErrorMessage.js.map +1 -1
  101. package/dist/es/utils/hookUtils.js.map +1 -1
  102. package/dist/es/utils/promiseTimeout.js.map +1 -1
  103. package/dist/es-legacy/adyen.css +4 -5
  104. package/dist/es-legacy/adyen.css.map +1 -1
  105. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  106. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  107. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  108. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  109. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  110. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  111. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  112. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  113. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  114. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  115. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  116. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  117. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  118. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandSelector.js +2 -0
  119. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandSelector.js.map +1 -0
  120. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandSelector.module.scss.js +2 -0
  121. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandSelector.module.scss.js.map +1 -0
  122. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  123. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js +1 -1
  124. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  125. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  126. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  127. package/dist/es-legacy/components/Card/constants.js.map +1 -1
  128. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  129. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  130. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  131. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  132. package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
  133. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  134. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  135. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  136. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  137. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  138. package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
  139. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  140. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  141. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  142. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  143. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  144. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  145. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  146. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  147. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  148. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  149. package/dist/es-legacy/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  150. package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
  151. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  152. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  153. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  154. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  155. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  156. package/dist/es-legacy/components/internal/FormFields/InputDate/utils.js +1 -1
  157. package/dist/es-legacy/components/internal/FormFields/InputDate/utils.js.map +1 -1
  158. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  159. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  160. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  161. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  162. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  163. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  164. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  165. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/initCSF.js.map +1 -1
  166. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js +1 -1
  167. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  168. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  169. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  170. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js +1 -1
  171. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js.map +1 -1
  172. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  173. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  174. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  175. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  176. package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
  177. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  178. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  179. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  180. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  181. package/dist/es-legacy/core/config.js +1 -1
  182. package/dist/es-legacy/core/config.js.map +1 -1
  183. package/dist/es-legacy/core/core.js +1 -1
  184. package/dist/es-legacy/core/core.js.map +1 -1
  185. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  186. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  187. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  188. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  189. package/dist/es-legacy/language/utils.js +1 -1
  190. package/dist/es-legacy/language/utils.js.map +1 -1
  191. package/dist/es-legacy/utils/Script.js.map +1 -1
  192. package/dist/es-legacy/utils/createSdkData.js +1 -1
  193. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  194. package/dist/es-legacy/utils/debounce.js.map +1 -1
  195. package/dist/es-legacy/utils/getErrorMessage.js +1 -1
  196. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  197. package/dist/es-legacy/utils/hookUtils.js.map +1 -1
  198. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  199. package/package.json +27 -27
  200. package/styles/adyen.css +4 -5
  201. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +0 -2
  202. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +0 -1
  203. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +0 -2
  204. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +0 -1
  205. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +0 -2
  206. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +0 -1
  207. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +0 -2
  208. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{DEFAULT_LOCALE as t,LOCALE_NAME_MIN_LENGTH as n,LOCALE_NAME_MAX_LENGTH as e}from"./constants.js";const r=t=>t.toLowerCase().substring(0,2),o=t=>Boolean(t)&&t.length>=n&&t.length<=e;function l(t,n){return t&&"string"==typeof t&&n.find(n=>r(n)===r(t))||null}function s(t){const n=t.replace("_","-");if(/^([a-z]{2})(-)([A-Z]{2})$/.test(n))return n;const[e,r]=n.split("-");if(!e||!r)return null;const o=[e.toLowerCase(),r.toUpperCase()].join("-");return 5===o.length?o:null}function u(n,e){if(!o(n))return t;const r=s(n);return r&&e.includes(r)?r:l(r||n,e)||t}function c(t={}){return Object.keys(t).reduce((n,e)=>{if(!o(e))return n;return n[s(e)||r(e)]=t[e],n},{})}const a=(t,n)=>t.replace(/%{(\w+)}/g,(t,e)=>n[e]||""),i=(t,n,e={values:{},count:0})=>{const r=`${n}__plural`,o=t=>`${n}__${t}`;return Object.prototype.hasOwnProperty.call(t,o(e.count))?a(t[o(e.count)],e.values):Object.prototype.hasOwnProperty.call(t,r)&&e.count>1?a(t[r],e.values):Object.prototype.hasOwnProperty.call(t,n)?a(t[n],e.values):null},p=(t,n)=>{const e=t.split(/%#(.*?)%#/gm);if(n.length!==Math.floor(e.length/2))throw Error("The number of functions provided does not match the number of elements in the translation string.");return e.map((t,e)=>{const r=Math.floor(e/2);return e%2==0?t:n[r](t)})};export{c as formatCustomTranslations,s as formatLocaleToLanguageCountryLocale,i as getTranslation,p as interpolateElement,l as matchLocale,u as parseLocale};
1
+ import{DEFAULT_LOCALE as t,LOCALE_NAME_MIN_LENGTH as n,LOCALE_NAME_MAX_LENGTH as e}from"./constants.js";const r=t=>t.toLowerCase().substring(0,2),o=t=>Boolean(t)&&t.length>=n&&t.length<=e;function l(t,n){return t&&"string"==typeof t&&n.find(n=>r(n)===r(t))||null}function s(t){const n=t.replace("_","-");if(/^([a-z]{2})(-)([A-Z]{2})$/.test(n))return n;const[e,r]=n.split("-");if(!e||!r)return null;const o=[e.toLowerCase(),r.toUpperCase()].join("-");return 5===o.length?o:null}function u(n,e){if(!o(n))return t;const r=s(n);return r&&e.includes(r)?r:l(r||n,e)||t}function c(t={}){return Object.keys(t).reduce((n,e)=>{if(!o(e))return n;return n[s(e)||r(e)]=t[e],n},{})}const a=(t,n)=>t.replace(/%{(\w+)}/g,(t,e)=>n[e]||""),i=(t,n,e={})=>{const{values:r={},count:o=0}=e,l=`${n}__plural`,s=t=>`${n}__${t}`;return Object.prototype.hasOwnProperty.call(t,s(o))?a(t[s(o)],r):Object.prototype.hasOwnProperty.call(t,l)&&o>1?a(t[l],r):Object.prototype.hasOwnProperty.call(t,n)?a(t[n],r):null},p=(t,n)=>{const e=t.split(/%#(.*?)%#/gm);if(n.length!==Math.floor(e.length/2))throw Error("The number of functions provided does not match the number of elements in the translation string.");return e.map((t,e)=>{const r=Math.floor(e/2);return e%2==0?t:n[r](t)})};export{c as formatCustomTranslations,s as formatLocaleToLanguageCountryLocale,i as getTranslation,p as interpolateElement,l as matchLocale,u as parseLocale};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/language/utils.ts"],"sourcesContent":["import { h } from 'preact';\nimport { CustomTranslations } from './types';\nimport { DEFAULT_LOCALE, LOCALE_NAME_MAX_LENGTH, LOCALE_NAME_MIN_LENGTH } from './constants';\n\n/**\n * @description Convert to ISO 639-1\n */\nconst toTwoLetterCode = (locale: string): string => locale.toLowerCase().substring(0, 2);\n\n/**\n * @description Checks if the locale length is valid\n * @param locale - The locale to check\n * @returns true if the locale length is valid, false otherwise\n */\nconst isLocaleLenghtValid = (locale: string): boolean =>\n Boolean(locale) && locale.length >= LOCALE_NAME_MIN_LENGTH && locale.length <= LOCALE_NAME_MAX_LENGTH;\n\n/**\n * Matches a string with one of the locales\n *\n * @param locale - The locale to match\n * @param supportedLocales - Array of possible locales\n *\n * @example\n * matchLocale('en-GB', ['en-US', 'es-ES']);\n * // returns 'en-US'\n */\nexport function matchLocale(locale: string, supportedLocales: readonly string[]): string | null {\n if (!locale || typeof locale !== 'string') return null;\n return supportedLocales.find(supLoc => toTwoLetterCode(supLoc) === toTwoLetterCode(locale)) || null;\n}\n\n/**\n * Returns a locale with the proper format.\n *\n * @param localeParam - Locale example: 'En_us' or 'en-US'\n *\n * @example\n * formatLocaleToLanguageCountryLocale('En_us');\n * // returns 'en-US'\n */\nexport function formatLocaleToLanguageCountryLocale(localeParam: string): string | null {\n const locale = localeParam.replace('_', '-');\n const format = /^([a-z]{2})(-)([A-Z]{2})$/;\n\n // If it's already formatted, return the locale\n if (format.test(locale)) return locale;\n\n // Split the string in two\n const [languageCode, countryCode] = locale.split('-');\n\n // If the locale or the country codes are missing, return null\n if (!languageCode || !countryCode) return null;\n\n // Ensure correct format and join the strings back together\n const fullLocale = [languageCode.toLowerCase(), countryCode.toUpperCase()].join('-');\n\n return fullLocale.length === 5 ? fullLocale : null;\n}\n\nexport function parseLocale(locale: string, supportedLocales: readonly string[]): string {\n if (!isLocaleLenghtValid(locale)) return DEFAULT_LOCALE;\n\n const formattedLocale = formatLocaleToLanguageCountryLocale(locale);\n const hasMatch = formattedLocale && supportedLocales.includes(formattedLocale);\n\n if (hasMatch) return formattedLocale;\n\n return matchLocale(formattedLocale || locale, supportedLocales) || DEFAULT_LOCALE;\n}\n\n/**\n * @description Makes sure that if custom translation is defined using not properly formatted locale keys, then it gets formatted correctly\n *\n * @example { en_US: { ... }} will be adjusted to { 'en-US': { ... }} . { ar: { ... }} is kept as is.\n */\nexport function formatCustomTranslations(customTranslations: CustomTranslations = {}): CustomTranslations {\n return Object.keys(customTranslations).reduce<CustomTranslations>((memo, localeKey) => {\n if (!isLocaleLenghtValid(localeKey)) return memo;\n\n const locale = formatLocaleToLanguageCountryLocale(localeKey) || toTwoLetterCode(localeKey);\n memo[locale] = customTranslations[localeKey];\n return memo;\n }, {});\n}\n\nconst replaceTranslationValues = (translation: string, values: Record<string, string>) => {\n return translation.replace(/%{(\\w+)}/g, (_, k) => values[k] || '');\n};\n\n/**\n * Returns a translation string by key\n * @param translations -\n * @param key -\n * @param options -\n *\n * @internal\n */\nexport const getTranslation = (translations: object, key: string, options: { [key: string]: any } = { values: {}, count: 0 }): string => {\n const keyPlural = `${key}__plural`;\n const keyForCount = count => `${key}__${count}`;\n\n if (Object.prototype.hasOwnProperty.call(translations, keyForCount(options.count))) {\n // Find key__count translation key\n return replaceTranslationValues(translations[keyForCount(options.count)], options.values);\n } else if (Object.prototype.hasOwnProperty.call(translations, keyPlural) && options.count > 1) {\n // Find key__plural translation key, if count greater than 1 (e.g. myTranslation__plural)\n return replaceTranslationValues(translations[keyPlural], options.values);\n } else if (Object.prototype.hasOwnProperty.call(translations, key)) {\n // Find key translation key (e.g. myTranslation)\n return replaceTranslationValues(translations[key], options.values);\n }\n\n return null;\n};\n\n/**\n * Injects JSX elements in a middle of a translation and returns a JSX array\n * The input string should use %# as the token to know where to insert the component\n * @param translation - Translation string\n * @param renderFunctions - An array function that renders JSX elements\n */\nexport const interpolateElement = (translation: string, renderFunctions: Array<(translation: string) => h.JSX.Element | string>) => {\n // splits by regex group, it guarantees that it only splits with 2 tokens (%#)\n const matches = translation.split(/%#(.*?)%#/gm);\n\n if (renderFunctions.length !== Math.floor(matches.length / 2)) {\n throw Error('The number of functions provided does not match the number of elements in the translation string.');\n }\n\n // the map will create an array of JSX / string elements, this syntax in accepted in JSX/react to render elements\n return matches.map((term, index) => {\n // math to get the index of the renderFunction that should be used\n // since we split on tokens, that means the index of the render function is half of the index of the string\n const indexInFunctionArray = Math.floor(index / 2);\n return index % 2 === 0 ? term : renderFunctions[indexInFunctionArray](term);\n });\n};\n"],"names":["toTwoLetterCode","locale","toLowerCase","substring","isLocaleLenghtValid","Boolean","length","LOCALE_NAME_MIN_LENGTH","LOCALE_NAME_MAX_LENGTH","matchLocale","supportedLocales","find","supLoc","formatLocaleToLanguageCountryLocale","localeParam","replace","test","languageCode","countryCode","split","fullLocale","toUpperCase","join","parseLocale","DEFAULT_LOCALE","formattedLocale","includes","formatCustomTranslations","customTranslations","Object","keys","reduce","memo","localeKey","replaceTranslationValues","translation","values","_","k","getTranslation","translations","key","options","count","keyPlural","keyForCount","prototype","hasOwnProperty","call","interpolateElement","renderFunctions","matches","Math","floor","Error","map","term","index","indexInFunctionArray"],"mappings":"wGAOA,MAAMA,EAAmBC,GAA2BA,EAAOC,cAAcC,UAAU,EAAG,GAOhFC,EAAuBH,GACzBI,QAAQJ,IAAWA,EAAOK,QAAUC,GAA0BN,EAAOK,QAAUE,EAY5E,SAASC,EAAYR,EAAgBS,GACxC,OAAKT,GAA4B,iBAAXA,GACfS,EAAiBC,KAAKC,GAAUZ,EAAgBY,KAAYZ,EAAgBC,KADjC,IAEtD,CAWO,SAASY,EAAoCC,GAChD,MAAMb,EAASa,EAAYC,QAAQ,IAAK,KAIxC,GAHe,4BAGJC,KAAKf,GAAS,OAAOA,EAGhC,MAAOgB,EAAcC,GAAejB,EAAOkB,MAAM,KAGjD,IAAKF,IAAiBC,EAAa,OAAO,KAG1C,MAAME,EAAa,CAACH,EAAaf,cAAegB,EAAYG,eAAeC,KAAK,KAEhF,OAA6B,IAAtBF,EAAWd,OAAec,EAAa,IAClD,CAEO,SAASG,EAAYtB,EAAgBS,GACxC,IAAKN,EAAoBH,GAAS,OAAOuB,EAEzC,MAAMC,EAAkBZ,EAAoCZ,GAG5D,OAFiBwB,GAAmBf,EAAiBgB,SAASD,GAEzCA,EAEdhB,EAAYgB,GAAmBxB,EAAQS,IAAqBc,CACvE,CAOO,SAASG,EAAyBC,EAAyC,IAC9E,OAAOC,OAAOC,KAAKF,GAAoBG,OAA2B,CAACC,EAAMC,KACrE,IAAK7B,EAAoB6B,GAAY,OAAOD,EAI5C,OADAA,EADenB,EAAoCoB,IAAcjC,EAAgBiC,IAClEL,EAAmBK,GAC3BD,GACR,CAAA,EACP,CAEA,MAAME,EAA2B,CAACC,EAAqBC,IAC5CD,EAAYpB,QAAQ,YAAa,CAACsB,EAAGC,IAAMF,EAAOE,IAAM,IAWtDC,EAAiB,CAACC,EAAsBC,EAAaC,EAAkC,CAAEN,OAAQ,CAAA,EAAIO,MAAO,MACrH,MAAMC,EAAY,GAAGH,YACfI,EAAcF,GAAS,GAAGF,MAAQE,IAExC,OAAId,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcK,EAAYH,EAAQC,QAEhET,EAAyBM,EAAaK,EAAYH,EAAQC,QAASD,EAAQN,QAC3EP,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcI,IAAcF,EAAQC,MAAQ,EAEjFT,EAAyBM,EAAaI,GAAYF,EAAQN,QAC1DP,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcC,GAEnDP,EAAyBM,EAAaC,GAAMC,EAAQN,QAGxD,MASEa,EAAqB,CAACd,EAAqBe,KAEpD,MAAMC,EAAUhB,EAAYhB,MAAM,eAElC,GAAI+B,EAAgB5C,SAAW8C,KAAKC,MAAMF,EAAQ7C,OAAS,GACvD,MAAMgD,MAAM,qGAIhB,OAAOH,EAAQI,IAAI,CAACC,EAAMC,KAGtB,MAAMC,EAAuBN,KAAKC,MAAMI,EAAQ,GAChD,OAAOA,EAAQ,GAAM,EAAID,EAAON,EAAgBQ,GAAsBF"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/language/utils.ts"],"sourcesContent":["import { h } from 'preact';\nimport { CustomTranslations } from './types';\nimport { DEFAULT_LOCALE, LOCALE_NAME_MAX_LENGTH, LOCALE_NAME_MIN_LENGTH } from './constants';\n\n/**\n * @description Convert to ISO 639-1\n */\nconst toTwoLetterCode = (locale: string): string => locale.toLowerCase().substring(0, 2);\n\n/**\n * @description Checks if the locale length is valid\n * @param locale - The locale to check\n * @returns true if the locale length is valid, false otherwise\n */\nconst isLocaleLenghtValid = (locale: string): boolean =>\n Boolean(locale) && locale.length >= LOCALE_NAME_MIN_LENGTH && locale.length <= LOCALE_NAME_MAX_LENGTH;\n\n/**\n * Matches a string with one of the locales\n *\n * @param locale - The locale to match\n * @param supportedLocales - Array of possible locales\n *\n * @example\n * matchLocale('en-GB', ['en-US', 'es-ES']);\n * // returns 'en-US'\n */\nexport function matchLocale(locale: string, supportedLocales: readonly string[]): string | null {\n if (!locale || typeof locale !== 'string') return null;\n return supportedLocales.find(supLoc => toTwoLetterCode(supLoc) === toTwoLetterCode(locale)) || null;\n}\n\n/**\n * Returns a locale with the proper format.\n *\n * @param localeParam - Locale example: 'En_us' or 'en-US'\n *\n * @example\n * formatLocaleToLanguageCountryLocale('En_us');\n * // returns 'en-US'\n */\nexport function formatLocaleToLanguageCountryLocale(localeParam: string): string | null {\n const locale = localeParam.replace('_', '-');\n const format = /^([a-z]{2})(-)([A-Z]{2})$/;\n\n // If it's already formatted, return the locale\n if (format.test(locale)) return locale;\n\n // Split the string in two\n const [languageCode, countryCode] = locale.split('-');\n\n // If the locale or the country codes are missing, return null\n if (!languageCode || !countryCode) return null;\n\n // Ensure correct format and join the strings back together\n const fullLocale = [languageCode.toLowerCase(), countryCode.toUpperCase()].join('-');\n\n return fullLocale.length === 5 ? fullLocale : null;\n}\n\nexport function parseLocale(locale: string, supportedLocales: readonly string[]): string {\n if (!isLocaleLenghtValid(locale)) return DEFAULT_LOCALE;\n\n const formattedLocale = formatLocaleToLanguageCountryLocale(locale);\n const hasMatch = formattedLocale && supportedLocales.includes(formattedLocale);\n\n if (hasMatch) return formattedLocale;\n\n return matchLocale(formattedLocale || locale, supportedLocales) || DEFAULT_LOCALE;\n}\n\n/**\n * @description Makes sure that if custom translation is defined using not properly formatted locale keys, then it gets formatted correctly\n *\n * @example { en_US: { ... }} will be adjusted to { 'en-US': { ... }} . { ar: { ... }} is kept as is.\n */\nexport function formatCustomTranslations(customTranslations: CustomTranslations = {}): CustomTranslations {\n return Object.keys(customTranslations).reduce<CustomTranslations>((memo, localeKey) => {\n if (!isLocaleLenghtValid(localeKey)) return memo;\n\n const locale = formatLocaleToLanguageCountryLocale(localeKey) || toTwoLetterCode(localeKey);\n memo[locale] = customTranslations[localeKey];\n return memo;\n }, {});\n}\n\nconst replaceTranslationValues = (translation: string, values: Record<string, string>) => {\n return translation.replace(/%{(\\w+)}/g, (_, k) => values[k] || '');\n};\n\n/**\n * Returns a translation string by key\n * @param translations -\n * @param key -\n * @param options -\n *\n * @internal\n */\nexport const getTranslation = (\n translations: Record<string, string>,\n key: string,\n options: { values?: Record<string, string>; count?: number } = {}\n): string | null => {\n const { values = {}, count = 0 } = options;\n const keyPlural = `${key}__plural`;\n const keyForCount = (count: number) => `${key}__${count}`;\n\n if (Object.prototype.hasOwnProperty.call(translations, keyForCount(count))) {\n // Find key__count translation key\n return replaceTranslationValues(translations[keyForCount(count)], values);\n } else if (Object.prototype.hasOwnProperty.call(translations, keyPlural) && count > 1) {\n // Find key__plural translation key, if count greater than 1 (e.g. myTranslation__plural)\n return replaceTranslationValues(translations[keyPlural], values);\n } else if (Object.prototype.hasOwnProperty.call(translations, key)) {\n // Find key translation key (e.g. myTranslation)\n return replaceTranslationValues(translations[key], values);\n }\n\n return null;\n};\n\n/**\n * Injects JSX elements in a middle of a translation and returns a JSX array\n * The input string should use %# as the token to know where to insert the component\n * @param translation - Translation string\n * @param renderFunctions - An array function that renders JSX elements\n */\nexport const interpolateElement = (translation: string, renderFunctions: Array<(translation: string) => h.JSX.Element | string>) => {\n // splits by regex group, it guarantees that it only splits with 2 tokens (%#)\n const matches = translation.split(/%#(.*?)%#/gm);\n\n if (renderFunctions.length !== Math.floor(matches.length / 2)) {\n throw Error('The number of functions provided does not match the number of elements in the translation string.');\n }\n\n // the map will create an array of JSX / string elements, this syntax in accepted in JSX/react to render elements\n return matches.map((term, index) => {\n // math to get the index of the renderFunction that should be used\n // since we split on tokens, that means the index of the render function is half of the index of the string\n const indexInFunctionArray = Math.floor(index / 2);\n return index % 2 === 0 ? term : renderFunctions[indexInFunctionArray](term);\n });\n};\n"],"names":["toTwoLetterCode","locale","toLowerCase","substring","isLocaleLenghtValid","Boolean","length","LOCALE_NAME_MIN_LENGTH","LOCALE_NAME_MAX_LENGTH","matchLocale","supportedLocales","find","supLoc","formatLocaleToLanguageCountryLocale","localeParam","replace","test","languageCode","countryCode","split","fullLocale","toUpperCase","join","parseLocale","DEFAULT_LOCALE","formattedLocale","includes","formatCustomTranslations","customTranslations","Object","keys","reduce","memo","localeKey","replaceTranslationValues","translation","values","_","k","getTranslation","translations","key","options","count","keyPlural","keyForCount","prototype","hasOwnProperty","call","interpolateElement","renderFunctions","matches","Math","floor","Error","map","term","index","indexInFunctionArray"],"mappings":"wGAOA,MAAMA,EAAmBC,GAA2BA,EAAOC,cAAcC,UAAU,EAAG,GAOhFC,EAAuBH,GACzBI,QAAQJ,IAAWA,EAAOK,QAAUC,GAA0BN,EAAOK,QAAUE,EAY5E,SAASC,EAAYR,EAAgBS,GACxC,OAAKT,GAA4B,iBAAXA,GACfS,EAAiBC,KAAKC,GAAUZ,EAAgBY,KAAYZ,EAAgBC,KADjC,IAEtD,CAWO,SAASY,EAAoCC,GAChD,MAAMb,EAASa,EAAYC,QAAQ,IAAK,KAIxC,GAHe,4BAGJC,KAAKf,GAAS,OAAOA,EAGhC,MAAOgB,EAAcC,GAAejB,EAAOkB,MAAM,KAGjD,IAAKF,IAAiBC,EAAa,OAAO,KAG1C,MAAME,EAAa,CAACH,EAAaf,cAAegB,EAAYG,eAAeC,KAAK,KAEhF,OAA6B,IAAtBF,EAAWd,OAAec,EAAa,IAClD,CAEO,SAASG,EAAYtB,EAAgBS,GACxC,IAAKN,EAAoBH,GAAS,OAAOuB,EAEzC,MAAMC,EAAkBZ,EAAoCZ,GAG5D,OAFiBwB,GAAmBf,EAAiBgB,SAASD,GAEzCA,EAEdhB,EAAYgB,GAAmBxB,EAAQS,IAAqBc,CACvE,CAOO,SAASG,EAAyBC,EAAyC,IAC9E,OAAOC,OAAOC,KAAKF,GAAoBG,OAA2B,CAACC,EAAMC,KACrE,IAAK7B,EAAoB6B,GAAY,OAAOD,EAI5C,OADAA,EADenB,EAAoCoB,IAAcjC,EAAgBiC,IAClEL,EAAmBK,GAC3BD,GACR,CAAA,EACP,CAEA,MAAME,EAA2B,CAACC,EAAqBC,IAC5CD,EAAYpB,QAAQ,YAAa,CAACsB,EAAGC,IAAMF,EAAOE,IAAM,IAWtDC,EAAiB,CAC1BC,EACAC,EACAC,EAA+D,CAAA,KAE/D,MAAMN,OAAEA,EAAS,CAAA,EAAEO,MAAEA,EAAQ,GAAMD,EAC7BE,EAAY,GAAGH,YACfI,EAAeF,GAAkB,GAAGF,MAAQE,IAElD,OAAId,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcK,EAAYF,IAExDT,EAAyBM,EAAaK,EAAYF,IAASP,GAC3DP,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcI,IAAcD,EAAQ,EAEzET,EAAyBM,EAAaI,GAAYR,GAClDP,OAAOiB,UAAUC,eAAeC,KAAKR,EAAcC,GAEnDP,EAAyBM,EAAaC,GAAML,GAGhD,MASEa,EAAqB,CAACd,EAAqBe,KAEpD,MAAMC,EAAUhB,EAAYhB,MAAM,eAElC,GAAI+B,EAAgB5C,SAAW8C,KAAKC,MAAMF,EAAQ7C,OAAS,GACvD,MAAMgD,MAAM,qGAIhB,OAAOH,EAAQI,IAAI,CAACC,EAAMC,KAGtB,MAAMC,EAAuBN,KAAKC,MAAMI,EAAQ,GAChD,OAAOA,EAAQ,GAAM,EAAID,EAAON,EAAgBQ,GAAsBF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Script.js","sources":["../../../src/utils/Script.ts"],"sourcesContent":["import AdyenCheckoutError from '../core/Errors/AdyenCheckoutError';\nimport { AnalyticsInfoEvent, InfoEventType } from '../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../core/Analytics/Analytics';\n\ninterface IScript {\n load(): Promise<void>;\n remove(): void;\n}\n\ninterface IScriptProps {\n src: string;\n component: string;\n analytics: IAnalytics;\n node?: string;\n attributes?: Partial<HTMLScriptElement>;\n dataAttributes?: Record<string, string | undefined>;\n}\n\n// Returns Base URL of the resource without any query parameters (e.g. merchant ID, token, etc). Used for Analytics\nfunction getBaseURL(src: string): string {\n const url = new URL(src);\n return url.origin + url.pathname;\n}\n\nclass Script implements IScript {\n private readonly src: string;\n private readonly component: string;\n private readonly node: string;\n private readonly attributes: Partial<HTMLScriptElement>;\n private readonly dataAttributes: Record<string, string | undefined>;\n private readonly analytics: IAnalytics;\n private readonly baseUrl: string;\n\n private script: HTMLScriptElement;\n private loadPromise: Promise<void> | null = null;\n private rejectLoadPromise: (reason?: any) => void | null = null;\n private resolveLoadScript: (() => void) | null = null;\n private rejectLoadScript: ((reason?: any) => void) | null = null;\n\n private readonly handleOnLoad = () => {\n this.script?.setAttribute('data-script-loaded', 'true');\n this.cleanupListeners();\n this.resolveLoadScript?.();\n };\n\n private readonly handleOnError = (errorEvent: ErrorEvent) => {\n this.cleanupListeners();\n const error = new AdyenCheckoutError(\n 'SCRIPT_ERROR',\n `Unable to load script ${this.src}.${errorEvent?.message && `Message: ${errorEvent.message}`}`,\n {\n cause: errorEvent?.error || errorEvent\n }\n );\n this.rejectLoadScript?.(error);\n };\n\n public static readonly RETRY_DELAY = 1000;\n public static readonly MAX_NUMBER_OF_RETRIES = 3;\n\n constructor({ src, component, node = 'body', attributes, dataAttributes, analytics }: IScriptProps) {\n this.src = src;\n this.component = component;\n this.node = node;\n this.attributes = attributes;\n this.dataAttributes = dataAttributes;\n this.analytics = analytics;\n this.baseUrl = getBaseURL(this.src);\n }\n\n public load = (): Promise<void> => {\n if (this.loadPromise !== null) {\n if (process.env.NODE_ENV === 'development') console.warn(`[Warning] script.load called more than once for ${this.src}`);\n return this.loadPromise;\n }\n\n this.loadPromise = new Promise((resolve, reject) => {\n this.rejectLoadPromise = reject;\n let attempts = 0;\n\n this.trackEvent(InfoEventType.sdkDownloadInitiated);\n\n const loadScriptWithRetry = async (): Promise<void> => {\n try {\n attempts++;\n await this.loadScript();\n this.trackEvent(InfoEventType.sdkDownloadCompleted);\n resolve();\n } catch (error: unknown) {\n if (this.loadPromise === null) {\n return;\n }\n\n this.trackEvent(InfoEventType.sdkDownloadFailed);\n\n this.removeScript();\n\n if (attempts < Script.MAX_NUMBER_OF_RETRIES) {\n setTimeout(() => void loadScriptWithRetry(), Script.RETRY_DELAY);\n } else {\n this.trackEvent(InfoEventType.sdkDownloadAborted);\n this.loadPromise = null;\n this.rejectLoadPromise = null;\n reject(error);\n }\n }\n };\n\n void loadScriptWithRetry();\n });\n\n return this.loadPromise;\n };\n\n public remove = () => {\n this.rejectLoadPromise?.(new AdyenCheckoutError('CANCEL', 'Script loading cancelled.'));\n this.removeScript();\n this.loadPromise = null;\n };\n\n private removeScript() {\n this.cleanupListeners();\n this.script?.parentNode?.removeChild(this.script);\n this.script = null;\n }\n\n private cleanupListeners() {\n if (!this.script) return;\n this.script.removeEventListener('load', this.handleOnLoad);\n this.script.removeEventListener('error', this.handleOnError);\n }\n\n private attachListeners() {\n if (!this.script) return;\n this.cleanupListeners();\n this.script.addEventListener('load', this.handleOnLoad);\n this.script.addEventListener('error', this.handleOnError);\n }\n\n private loadScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n const scriptContainer = document.querySelector(this.node);\n\n if (!scriptContainer) {\n reject(new AdyenCheckoutError('SCRIPT_ERROR', `Unable to find script container node: ${this.node}`));\n return;\n }\n\n this.resolveLoadScript = resolve;\n this.rejectLoadScript = reject;\n\n this.script = scriptContainer.querySelector(`script[src=\"${this.src}\"]`);\n\n // Script element exists in the browser and is already loaded\n if (this.script?.getAttribute('data-script-loaded')) {\n this.resolveLoadScript();\n return;\n }\n\n // Script element exists in the browser, but it is not loaded yet\n // Use-case: Multiple PayPal standalone components being loaded in different parts of the screen.\n if (this.script) {\n this.attachListeners();\n return;\n }\n\n // Script element doesn't exist in the browser, so we create it and append to the DOM tree\n this.script = document.createElement('script');\n\n Object.assign(this.script, this.attributes);\n Object.assign(this.script.dataset, this.dataAttributes);\n\n this.script.src = this.src;\n this.script.async = true;\n\n this.attachListeners();\n\n scriptContainer.appendChild(this.script);\n });\n }\n\n private trackEvent(eventType: InfoEventType) {\n const event = new AnalyticsInfoEvent({\n type: eventType,\n component: this.component,\n cdnUrl: this.baseUrl\n });\n this.analytics?.sendAnalytics(event);\n }\n}\n\nexport default Script;\n"],"names":["Script","removeScript","this","cleanupListeners","script","parentNode","removeChild","removeEventListener","handleOnLoad","handleOnError","attachListeners","addEventListener","loadScript","Promise","resolve","reject","scriptContainer","document","querySelector","node","resolveLoadScript","rejectLoadScript","src","getAttribute","createElement","Object","assign","attributes","dataset","dataAttributes","async","appendChild","AdyenCheckoutError","trackEvent","eventType","event","AnalyticsInfoEvent","type","component","cdnUrl","baseUrl","analytics","sendAnalytics","constructor","_define_property","loadPromise","rejectLoadPromise","setAttribute","errorEvent","error","message","cause","load","attempts","InfoEventType","sdkDownloadInitiated","loadScriptWithRetry","sdkDownloadCompleted","sdkDownloadFailed","MAX_NUMBER_OF_RETRIES","setTimeout","RETRY_DELAY","sdkDownloadAborted","remove","url","URL","origin","pathname","getBaseURL"],"mappings":"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"}
1
+ {"version":3,"file":"Script.js","sources":["../../../src/utils/Script.ts"],"sourcesContent":["import AdyenCheckoutError from '../core/Errors/AdyenCheckoutError';\nimport { AnalyticsInfoEvent, InfoEventType } from '../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../core/Analytics/Analytics';\n\ninterface IScript {\n load(): Promise<void>;\n remove(): void;\n}\n\ninterface IScriptProps {\n src: string;\n component: string;\n analytics: IAnalytics;\n node?: string;\n attributes?: Partial<HTMLScriptElement>;\n dataAttributes?: Record<string, string | undefined>;\n}\n\n// Returns Base URL of the resource without any query parameters (e.g. merchant ID, token, etc). Used for Analytics\nfunction getBaseURL(src: string): string {\n const url = new URL(src);\n return url.origin + url.pathname;\n}\n\nclass Script implements IScript {\n private readonly src: string;\n private readonly component: string;\n private readonly node: string;\n private readonly attributes: Partial<HTMLScriptElement>;\n private readonly dataAttributes: Record<string, string | undefined>;\n private readonly analytics: IAnalytics;\n private readonly baseUrl: string;\n\n private script: HTMLScriptElement;\n private loadPromise: Promise<void> | null = null;\n private rejectLoadPromise: (reason?: unknown) => void | null = null;\n private resolveLoadScript: (() => void) | null = null;\n private rejectLoadScript: ((reason?: unknown) => void) | null = null;\n\n private readonly handleOnLoad = () => {\n this.script?.setAttribute('data-script-loaded', 'true');\n this.cleanupListeners();\n this.resolveLoadScript?.();\n };\n\n private readonly handleOnError = (errorEvent: ErrorEvent) => {\n this.cleanupListeners();\n const error = new AdyenCheckoutError(\n 'SCRIPT_ERROR',\n `Unable to load script ${this.src}.${errorEvent?.message && `Message: ${errorEvent.message}`}`,\n {\n cause: errorEvent?.error || errorEvent\n }\n );\n this.rejectLoadScript?.(error);\n };\n\n public static readonly RETRY_DELAY = 1000;\n public static readonly MAX_NUMBER_OF_RETRIES = 3;\n\n constructor({ src, component, node = 'body', attributes, dataAttributes, analytics }: IScriptProps) {\n this.src = src;\n this.component = component;\n this.node = node;\n this.attributes = attributes;\n this.dataAttributes = dataAttributes;\n this.analytics = analytics;\n this.baseUrl = getBaseURL(this.src);\n }\n\n public load = (): Promise<void> => {\n if (this.loadPromise !== null) {\n if (process.env.NODE_ENV === 'development') console.warn(`[Warning] script.load called more than once for ${this.src}`);\n return this.loadPromise;\n }\n\n this.loadPromise = new Promise((resolve, reject) => {\n this.rejectLoadPromise = reject;\n let attempts = 0;\n\n this.trackEvent(InfoEventType.sdkDownloadInitiated);\n\n const loadScriptWithRetry = async (): Promise<void> => {\n try {\n attempts++;\n await this.loadScript();\n this.trackEvent(InfoEventType.sdkDownloadCompleted);\n resolve();\n } catch (error: unknown) {\n if (this.loadPromise === null) {\n return;\n }\n\n this.trackEvent(InfoEventType.sdkDownloadFailed);\n\n this.removeScript();\n\n if (attempts < Script.MAX_NUMBER_OF_RETRIES) {\n setTimeout(() => void loadScriptWithRetry(), Script.RETRY_DELAY);\n } else {\n this.trackEvent(InfoEventType.sdkDownloadAborted);\n this.loadPromise = null;\n this.rejectLoadPromise = null;\n reject(error);\n }\n }\n };\n\n void loadScriptWithRetry();\n });\n\n return this.loadPromise;\n };\n\n public remove = () => {\n this.rejectLoadPromise?.(new AdyenCheckoutError('CANCEL', 'Script loading cancelled.'));\n this.removeScript();\n this.loadPromise = null;\n };\n\n private removeScript() {\n this.cleanupListeners();\n this.script?.parentNode?.removeChild(this.script);\n this.script = null;\n }\n\n private cleanupListeners() {\n if (!this.script) return;\n this.script.removeEventListener('load', this.handleOnLoad);\n this.script.removeEventListener('error', this.handleOnError);\n }\n\n private attachListeners() {\n if (!this.script) return;\n this.cleanupListeners();\n this.script.addEventListener('load', this.handleOnLoad);\n this.script.addEventListener('error', this.handleOnError);\n }\n\n private loadScript(): Promise<void> {\n return new Promise((resolve, reject) => {\n const scriptContainer = document.querySelector(this.node);\n\n if (!scriptContainer) {\n reject(new AdyenCheckoutError('SCRIPT_ERROR', `Unable to find script container node: ${this.node}`));\n return;\n }\n\n this.resolveLoadScript = resolve;\n this.rejectLoadScript = reject;\n\n this.script = scriptContainer.querySelector(`script[src=\"${this.src}\"]`);\n\n // Script element exists in the browser and is already loaded\n if (this.script?.getAttribute('data-script-loaded')) {\n this.resolveLoadScript();\n return;\n }\n\n // Script element exists in the browser, but it is not loaded yet\n // Use-case: Multiple PayPal standalone components being loaded in different parts of the screen.\n if (this.script) {\n this.attachListeners();\n return;\n }\n\n // Script element doesn't exist in the browser, so we create it and append to the DOM tree\n this.script = document.createElement('script');\n\n Object.assign(this.script, this.attributes);\n Object.assign(this.script.dataset, this.dataAttributes);\n\n this.script.src = this.src;\n this.script.async = true;\n\n this.attachListeners();\n\n scriptContainer.appendChild(this.script);\n });\n }\n\n private trackEvent(eventType: InfoEventType) {\n const event = new AnalyticsInfoEvent({\n type: eventType,\n component: this.component,\n cdnUrl: this.baseUrl\n });\n this.analytics?.sendAnalytics(event);\n }\n}\n\nexport default Script;\n"],"names":["Script","removeScript","this","cleanupListeners","script","parentNode","removeChild","removeEventListener","handleOnLoad","handleOnError","attachListeners","addEventListener","loadScript","Promise","resolve","reject","scriptContainer","document","querySelector","node","resolveLoadScript","rejectLoadScript","src","getAttribute","createElement","Object","assign","attributes","dataset","dataAttributes","async","appendChild","AdyenCheckoutError","trackEvent","eventType","event","AnalyticsInfoEvent","type","component","cdnUrl","baseUrl","analytics","sendAnalytics","constructor","_define_property","loadPromise","rejectLoadPromise","setAttribute","errorEvent","error","message","cause","load","attempts","InfoEventType","sdkDownloadInitiated","loadScriptWithRetry","sdkDownloadCompleted","sdkDownloadFailed","MAX_NUMBER_OF_RETRIES","setTimeout","RETRY_DELAY","sdkDownloadAborted","remove","url","URL","origin","pathname","getBaseURL"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import t from"./base64.js";function e(e,a){const n={schemaVersion:1,createdAt:Date.now(),analytics:{checkoutAttemptId:e},...a&&{riskData:{clientData:a}}};return t.encode(JSON.stringify(n))}export{e as createSdkData};
1
+ import t from"./base64.js";import{LIBRARY_VERSION as e,PLATFORM as o,CHANNEL as n}from"../core/config.js";function r(r,a,c){const i={schemaVersion:1,createdAt:Date.now(),channel:n.WEB,platform:o,sdkVersion:e,paymentMethodBehavior:c,analytics:{checkoutAttemptId:r},...a&&{riskData:{clientData:a}}};return t.encode(JSON.stringify(i))}export{r as createSdkData};
2
2
  //# sourceMappingURL=createSdkData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSdkData.js","sources":["../../../src/utils/createSdkData.ts"],"sourcesContent":["import base64 from './base64';\n\nexport interface SdkDataObject {\n schemaVersion: number;\n createdAt: number;\n analytics: {\n checkoutAttemptId: string;\n };\n riskData: {\n clientData: string;\n };\n}\n\n/**\n * Creates the sdkData object with analytics and risk information\n * @param checkoutAttemptId - The checkout attempt ID from analytics\n * @param clientData - The client data from risk module\n * @returns Base64 encoded JSON string of the SDK data object\n */\nexport function createSdkData(checkoutAttemptId: string, clientData: string | null): string {\n const sdkDataObject: SdkDataObject = {\n schemaVersion: 1,\n createdAt: Date.now(),\n analytics: {\n checkoutAttemptId\n },\n ...(clientData && { riskData: { clientData } })\n };\n\n return base64.encode(JSON.stringify(sdkDataObject));\n}\n"],"names":["createSdkData","checkoutAttemptId","clientData","sdkDataObject","schemaVersion","createdAt","Date","now","analytics","riskData","base64","encode","JSON","stringify"],"mappings":"2BAmBO,SAASA,EAAcC,EAA2BC,GACrD,MAAMC,EAA+B,CACjCC,cAAe,EACfC,UAAWC,KAAKC,MAChBC,UAAW,CACPP,wBAEAC,GAAc,CAAEO,SAAU,CAAEP,gBAGpC,OAAOQ,EAAOC,OAAOC,KAAKC,UAAUV,GACxC"}
1
+ {"version":3,"file":"createSdkData.js","sources":["../../../src/utils/createSdkData.ts"],"sourcesContent":["import base64 from './base64';\nimport { LIBRARY_VERSION, CHANNEL, PLATFORM, PAYMENT_METHOD_BEHAVIOR } from '../core/config';\nexport interface SdkDataObject {\n schemaVersion: number;\n createdAt: number;\n channel: CHANNEL;\n platform: string;\n sdkVersion: string;\n paymentMethodBehavior: PAYMENT_METHOD_BEHAVIOR;\n analytics: {\n checkoutAttemptId: string;\n };\n riskData: {\n clientData: string;\n };\n}\n\n/**\n * Creates the sdkData object with analytics and risk information\n * @param checkoutAttemptId - The checkout attempt ID from analytics\n * @param clientData - The client data from risk module\n * @returns Base64 encoded JSON string of the SDK data object\n */\nexport function createSdkData(checkoutAttemptId: string, clientData: string | null, paymentMethodBehavior: PAYMENT_METHOD_BEHAVIOR): string {\n const sdkDataObject: SdkDataObject = {\n schemaVersion: 1,\n createdAt: Date.now(),\n channel: CHANNEL.WEB,\n platform: PLATFORM,\n sdkVersion: LIBRARY_VERSION,\n paymentMethodBehavior,\n analytics: {\n checkoutAttemptId\n },\n ...(clientData && { riskData: { clientData } })\n };\n\n return base64.encode(JSON.stringify(sdkDataObject));\n}\n"],"names":["createSdkData","checkoutAttemptId","clientData","paymentMethodBehavior","sdkDataObject","schemaVersion","createdAt","Date","now","channel","CHANNEL","WEB","platform","PLATFORM","sdkVersion","LIBRARY_VERSION","analytics","riskData","base64","encode","JSON","stringify"],"mappings":"0GAuBO,SAASA,EAAcC,EAA2BC,EAA2BC,GAChF,MAAMC,EAA+B,CACjCC,cAAe,EACfC,UAAWC,KAAKC,MAChBC,QAASC,EAAQC,IACjBC,SAAUC,EACVC,WAAYC,EACZZ,wBACAa,UAAW,CACPf,wBAEAC,GAAc,CAAEe,SAAU,CAAEf,gBAGpC,OAAOgB,EAAOC,OAAOC,KAAKC,UAAUjB,GACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sources":["../../../src/utils/debounce.ts"],"sourcesContent":["export const DEFAULT_DEBOUNCE_TIME_MS = 300;\n\nexport const debounce = (fn: Function, ms = DEFAULT_DEBOUNCE_TIME_MS) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n"],"names":["DEFAULT_DEBOUNCE_TIME_MS","debounce","fn","ms","timeoutId","args","clearTimeout","setTimeout","apply","this"],"mappings":"AAAO,MAAMA,EAA2B,IAE3BC,EAAW,CAACC,EAAcC,EAFC,OAGpC,IAAIC,EACJ,OAAO,YAAwBC,GAC3BC,aAAaF,GACbA,EAAYG,WAAW,IAAML,EAAGM,MAAMC,KAAMJ,GAAOF,EACvD"}
1
+ {"version":3,"file":"debounce.js","sources":["../../../src/utils/debounce.ts"],"sourcesContent":["export const DEFAULT_DEBOUNCE_TIME_MS = 300;\n\nexport const debounce = (fn: Function, ms = DEFAULT_DEBOUNCE_TIME_MS) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function (this: unknown, ...args: unknown[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n"],"names":["DEFAULT_DEBOUNCE_TIME_MS","debounce","fn","ms","timeoutId","args","clearTimeout","setTimeout","apply","this"],"mappings":"AAAO,MAAMA,EAA2B,IAE3BC,EAAW,CAACC,EAAcC,EAFC,OAGpC,IAAIC,EACJ,OAAO,YAA4BC,GAC/BC,aAAaF,GACbA,EAAYG,WAAW,IAAML,EAAGM,MAAMC,KAAMJ,GAAOF,EACvD"}
@@ -1,2 +1,2 @@
1
- import{ERROR_FIELD_REQUIRED as r,ERROR_FIELD_INVALID as e}from"../core/Errors/constants.js";const s=(s,o,t,n=!0)=>{if(o?.errorMessage){const a=o.errorMessage,c=[r,e].includes(a),g={values:{label:n?t?.toLowerCase():t}};return c?s.get(a,g):s.get(a)}return!!o};export{s as getErrorMessage};
1
+ import{ERROR_FIELD_REQUIRED as r,ERROR_FIELD_INVALID as e}from"../core/Errors/constants.js";const s=(s,o,t,n=!0)=>{if(o?.errorMessage&&"string"==typeof o.errorMessage){const a=o.errorMessage,g=[r,e].includes(a),c={values:{label:n?t?.toLowerCase():t}};return g?s.get(a,c):s.get(a)}return!!o};export{s as getErrorMessage};
2
2
  //# sourceMappingURL=getErrorMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getErrorMessage.js","sources":["../../../src/utils/getErrorMessage.ts"],"sourcesContent":["import { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../core/Errors/constants';\nimport Language from '../language';\n\nexport const getErrorMessage = (\n i18n: Language,\n error?: { errorMessage: string },\n label?: string,\n lowerCaseLabel: boolean = true\n): string | boolean => {\n if (error?.errorMessage) {\n const errorKey = error.errorMessage;\n const shouldBuildErrorMessage = [ERROR_FIELD_REQUIRED, ERROR_FIELD_INVALID].includes(errorKey);\n // Build the error msg: Enter the [label name] or Enter a valid [label name]\n const options = { values: { label: lowerCaseLabel ? label?.toLowerCase() : label } };\n return shouldBuildErrorMessage ? i18n.get(errorKey, options) : i18n.get(errorKey);\n }\n\n return !!error;\n};\n"],"names":["getErrorMessage","i18n","error","label","lowerCaseLabel","errorMessage","errorKey","shouldBuildErrorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","includes","options","values","toLowerCase","get"],"mappings":"kGAGaA,EAAkB,CAC3BC,EACAC,EACAC,EACAC,GAA0B,KAE1B,GAAIF,GAAOG,aAAc,CACrB,MAAMC,EAAWJ,EAAMG,aACjBE,EAA0B,CAACC,EAAsBC,GAAqBC,SAASJ,GAE/EK,EAAU,CAAEC,OAAQ,CAAET,MAAOC,EAAiBD,GAAOU,cAAgBV,IAC3E,OAAOI,EAA0BN,EAAKa,IAAIR,EAAUK,GAAWV,EAAKa,IAAIR,EAC5E,CAEA,QAASJ"}
1
+ {"version":3,"file":"getErrorMessage.js","sources":["../../../src/utils/getErrorMessage.ts"],"sourcesContent":["import { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../core/Errors/constants';\nimport Language from '../language';\nimport { ValidationRuleResult } from './Validator/ValidationRuleResult';\n\nexport const getErrorMessage = (i18n: Language, error?: ValidationRuleResult, label?: string, lowerCaseLabel: boolean = true): string | boolean => {\n if (error?.errorMessage && typeof error.errorMessage === 'string') {\n const errorKey = error.errorMessage;\n const shouldBuildErrorMessage = [ERROR_FIELD_REQUIRED, ERROR_FIELD_INVALID].includes(errorKey);\n // Build the error msg: Enter the [label name] or Enter a valid [label name]\n const options = { values: { label: lowerCaseLabel ? label?.toLowerCase() : label } };\n return shouldBuildErrorMessage ? i18n.get(errorKey, options) : i18n.get(errorKey);\n }\n\n return !!error;\n};\n"],"names":["getErrorMessage","i18n","error","label","lowerCaseLabel","errorMessage","errorKey","shouldBuildErrorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","includes","options","values","toLowerCase","get"],"mappings":"kGAIaA,EAAkB,CAACC,EAAgBC,EAA8BC,EAAgBC,GAA0B,KACpH,GAAIF,GAAOG,cAA8C,iBAAvBH,EAAMG,aAA2B,CAC/D,MAAMC,EAAWJ,EAAMG,aACjBE,EAA0B,CAACC,EAAsBC,GAAqBC,SAASJ,GAE/EK,EAAU,CAAEC,OAAQ,CAAET,MAAOC,EAAiBD,GAAOU,cAAgBV,IAC3E,OAAOI,EAA0BN,EAAKa,IAAIR,EAAUK,GAAWV,EAAKa,IAAIR,EAC5E,CAEA,QAASJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"hookUtils.js","sources":["../../../src/utils/hookUtils.ts"],"sourcesContent":["import { useRef, useEffect } from 'preact/hooks';\n\nexport function usePrevious<T>(value: T): T {\n const ref: any = useRef<T>();\n\n // Store current value in ref\n useEffect(() => {\n ref.current = value;\n }, [value]); // Only re-run if value changes\n\n // Return previous value\n return ref.current;\n}\n"],"names":["usePrevious","value","ref","useRef","useEffect","current"],"mappings":"+EAEO,SAASA,EAAeC,GAC3B,MAAMC,EAAWC,IAQjB,OALAC,EAAU,KACNF,EAAIG,QAAUJ,GACf,CAACA,IAGGC,EAAIG,OACf"}
1
+ {"version":3,"file":"hookUtils.js","sources":["../../../src/utils/hookUtils.ts"],"sourcesContent":["import { useRef, useEffect } from 'preact/hooks';\n\nexport function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n\n // Store current value in ref\n useEffect(() => {\n ref.current = value;\n }, [value]); // Only re-run if value changes\n\n // Return previous value\n return ref.current;\n}\n"],"names":["usePrevious","value","ref","useRef","useEffect","current"],"mappings":"+EAEO,SAASA,EAAeC,GAC3B,MAAMC,EAAMC,IAQZ,OALAC,EAAU,KACNF,EAAIG,QAAUJ,GACf,CAACA,IAGGC,EAAIG,OACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"promiseTimeout.js","sources":["../../../src/utils/promiseTimeout.ts"],"sourcesContent":["/**\n * Tests if a passed promise settles before a certain amount of time has elapsed\n *\n * @param ms - number of milliseconds the passed promise has to settle\n * @param promise - the passed promise\n * @param timeOutObject - the object that the promiseTimeout will reject with if the passed promise doesn't settle in time\n */\nconst promiseTimeout = (ms: number, promise: Promise<any>, timeOutObject: object) => {\n let timer: NodeJS.Timeout | null;\n\n const promiseTimer: Promise<any> = new Promise((resolve, reject): void => {\n // Create a timeout to reject promise if not resolved\n timer = setTimeout((): void => {\n reject(timeOutObject);\n }, ms);\n\n promise\n .then((res): void => {\n clearTimeout(timer);\n resolve(res);\n })\n .catch((err): void => {\n clearTimeout(timer);\n reject(err);\n });\n });\n\n const cancelTimer = (): void => {\n clearTimeout(timer);\n };\n\n return {\n promise: promiseTimer,\n cancel: cancelTimer\n };\n};\n\nexport default promiseTimeout;\n"],"names":["promiseTimeout","ms","promise","timeOutObject","timer","Promise","resolve","reject","setTimeout","then","res","clearTimeout","catch","err","cancel"],"mappings":"AAOA,MAAMA,EAAiB,CAACC,EAAYC,EAAuBC,KACvD,IAAIC,EAuBJ,MAAO,CACHF,QAtB+B,IAAIG,QAAQ,CAACC,EAASC,KAErDH,EAAQI,WAAW,KACfD,EAAOJ,IACRF,GAEHC,EACKO,KAAMC,IACHC,aAAaP,GACbE,EAAQI,KAEXE,MAAOC,IACJF,aAAaP,GACbG,EAAOM,OAUfC,OANgB,KAChBH,aAAaP"}
1
+ {"version":3,"file":"promiseTimeout.js","sources":["../../../src/utils/promiseTimeout.ts"],"sourcesContent":["/**\n * Tests if a passed promise settles before a certain amount of time has elapsed\n *\n * @param ms - number of milliseconds the passed promise has to settle\n * @param promise - the passed promise\n * @param timeOutObject - the object that the promiseTimeout will reject with if the passed promise doesn't settle in time\n */\nconst promiseTimeout = <T>(ms: number, promise: Promise<T>, timeOutObject: object) => {\n let timer: NodeJS.Timeout | null;\n\n const promiseTimer: Promise<T> = new Promise((resolve, reject): void => {\n // Create a timeout to reject promise if not resolved\n timer = setTimeout((): void => {\n reject(timeOutObject);\n }, ms);\n\n promise\n .then((res): void => {\n clearTimeout(timer);\n resolve(res);\n })\n .catch((err): void => {\n clearTimeout(timer);\n reject(err);\n });\n });\n\n const cancelTimer = (): void => {\n clearTimeout(timer);\n };\n\n return {\n promise: promiseTimer,\n cancel: cancelTimer\n };\n};\n\nexport default promiseTimeout;\n"],"names":["promiseTimeout","ms","promise","timeOutObject","timer","Promise","resolve","reject","setTimeout","then","res","clearTimeout","catch","err","cancel"],"mappings":"AAOA,MAAMA,EAAiB,CAAIC,EAAYC,EAAqBC,KACxD,IAAIC,EAuBJ,MAAO,CACHF,QAtB6B,IAAIG,QAAQ,CAACC,EAASC,KAEnDH,EAAQI,WAAW,KACfD,EAAOJ,IACRF,GAEHC,EACKO,KAAMC,IACHC,aAAaP,GACbE,EAAQI,KAEXE,MAAOC,IACJF,aAAaP,GACbG,EAAOM,OAUfC,OANgB,KAChBH,aAAaP"}
@@ -3,7 +3,7 @@
3
3
  .adyen-checkout__spinner__wrapper{align-items:center;display:flex;height:100%;justify-content:center}.adyen-checkout__spinner__wrapper--inline{display:inline-block;height:auto;margin-right:var(--adyen-sdk-spacer-040,8px)}[dir=rtl] .adyen-checkout__spinner__wrapper--inline{margin-left:var(--adyen-sdk-spacer-040,8px);margin-right:0}.adyen-checkout__spinner{height:var(--adyen-sdk-spacer-090,24px);position:relative;width:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__spinner:after,.adyen-checkout__spinner:before{animation:rotate 1s cubic-bezier(.785,.135,.15,.86) infinite;border:var(--adyen-sdk-border-width-l,3px) solid transparent;border-radius:50%;box-sizing:border-box;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}.adyen-checkout__spinner:before{border-color:var(--adyen-sdk-color-background-inverse-primary,#00112c);border-top-color:transparent;opacity:.1}.adyen-checkout__spinner:after{border-color:transparent;border-top-color:var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__spinner--small{height:var(--adyen-sdk-spacer-070,16px);width:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__spinner--small:after,.adyen-checkout__spinner--small:before{border-width:var(--adyen-sdk-spacer-010,2px)}.adyen-checkout__spinner--medium{height:28px;width:28px}.adyen-checkout__spinner--large{height:var(--adyen-sdk-spacer-120,48px);width:var(--adyen-sdk-spacer-120,48px)}.adyen-checkout__spinner--large:after,.adyen-checkout__spinner--large:before{border-width:var(--adyen-sdk-spacer-020,4px)}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
4
4
  .loading-input__form{opacity:1}.loading-input__form--loading{opacity:0}.loading-input__spinner{display:none;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.loading-input__spinner--active{display:block}
5
5
  .adyen-checkout__image{display:block;opacity:0;transition:opacity .6s ease-out}.adyen-checkout__image--loaded{opacity:1}
6
- .adyen-checkout__field{display:block;margin-bottom:var(--adyen-sdk-spacer-070,16px);width:100%}.adyen-checkout__field-static-value{background-color:var(--adyen-sdk-color-background-primary-hover,#f7f7f8);border-radius:var(--adyen-sdk-border-radius-s,4px);color:var(--adyen-sdk-color-background-inverse-primary,#00112c);display:flex;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);height:28px;line-height:var(--adyen-sdk-text-body-line-height,20px);margin-left:var(--adyen-sdk-spacer-020,4px);padding:var(--adyen-sdk-spacer-020,4px) var(--adyen-sdk-spacer-030,6px)}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper{background-color:transparent;border:none;box-shadow:none}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:active,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:active:hover,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:focus-within,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:focus-within:hover{border:none;box-shadow:none}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:hover{border:none;box-shadow:none}@media (min-width:480px){.adyen-checkout__field--20{width:20%}.adyen-checkout__field--30{width:30%}.adyen-checkout__field--40{width:40%}.adyen-checkout__field--50{width:50%}.adyen-checkout__field--60{width:60%}.adyen-checkout__field--70{width:70%}.adyen-checkout__field--80{width:80%}.adyen-checkout__field--col-20{width:calc(20% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-30{width:calc(30% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-40{width:calc(40% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-50{width:calc(50% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-60{width:calc(60% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-70{width:calc(70% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-80{width:calc(80% - var(--adyen-sdk-spacer-040, 8px))}}.adyen-checkout__input-wrapper{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;position:relative}.adyen-checkout__input-wrapper div,.adyen-checkout__input-wrapper input,.adyen-checkout__input-wrapper span{border-radius:inherit}.adyen-checkout__input-wrapper button,.adyen-checkout__input-wrapper div,.adyen-checkout__input-wrapper input{border:none}.adyen-checkout__input-wrapper:active,.adyen-checkout__input-wrapper:active:hover,.adyen-checkout__input-wrapper:focus-within,.adyen-checkout__input-wrapper:focus-within:hover{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__input-wrapper:hover{border-color:var(--adyen-sdk-color-outline-tertiary,#8d95a3)}.adyen-checkout__field--inactive>.adyen-checkout__input-wrapper{background:var(--adyen-sdk-color-background-disabled,#eeeff1);border-color:transparent}.adyen-checkout__field--error>:not(.adyen-checkout__label--focused)+.adyen-checkout__input-wrapper:not(:focus-within,:active){border-color:var(--adyen-sdk-color-outline-critical,#e22d2d)}.adyen-checkout__label{display:block;position:relative}.adyen-checkout__label--focused+.adyen-checkout__input-wrapper{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__label--disabled+.adyen-checkout__input-wrapper{background:var(--adyen-sdk-color-background-disabled,#eeeff1);border-color:transparent}.adyen-checkout__helper-text{color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-bottom:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__label-adornment--end{position:absolute;right:0;top:0}.adyen-checkout__label__text{color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);margin-bottom:var(--adyen-sdk-spacer-020,4px);overflow:hidden;text-overflow:ellipsis;transition:color .1s ease-out;white-space:nowrap}.adyen-checkout__label__text--error{color:var(--adyen-sdk-color-label-critical,#c72727)}.adyen-checkout__label--focused .adyen-checkout__label__text{color:var(--adyen-sdk-color-label-primary,#00112c)}.adyen-checkout-contextual-text,.adyen-checkout-contextual-text--error{align-items:center;color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-top:var(--adyen-sdk-spacer-020,4px);opacity:1;transition:margin .2s ease-out,opacity .2s ease-out}.adyen-checkout-contextual-text--error{color:var(--adyen-sdk-color-label-critical,#c72727)}.adyen-checkout-contextual-text--hidden{height:0;margin:0;opacity:0}
6
+ .adyen-checkout__field{display:block;margin-bottom:var(--adyen-sdk-spacer-070,16px);width:100%}.adyen-checkout__field-static-value{background-color:var(--adyen-sdk-color-background-primary-hover,#f7f7f8);border-radius:var(--adyen-sdk-border-radius-s,4px);color:var(--adyen-sdk-color-background-inverse-primary,#00112c);display:flex;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);height:28px;line-height:var(--adyen-sdk-text-body-line-height,20px);margin-left:var(--adyen-sdk-spacer-020,4px);padding:var(--adyen-sdk-spacer-020,4px) var(--adyen-sdk-spacer-030,6px)}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper{background-color:transparent;border:none;box-shadow:none}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:active,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:active:hover,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:focus-within,.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:focus-within:hover{border:none;box-shadow:none}.adyen-checkout__field--no-borders .adyen-checkout__input-wrapper:hover{border:none;box-shadow:none}@media (min-width:480px){.adyen-checkout__field--20{width:20%}.adyen-checkout__field--30{width:30%}.adyen-checkout__field--40{width:40%}.adyen-checkout__field--50{width:50%}.adyen-checkout__field--60{width:60%}.adyen-checkout__field--70{width:70%}.adyen-checkout__field--80{width:80%}.adyen-checkout__field--col-20{width:calc(20% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-30{width:calc(30% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-40{width:calc(40% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-50{width:calc(50% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-60{width:calc(60% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-70{width:calc(70% - var(--adyen-sdk-spacer-040, 8px))}.adyen-checkout__field--col-80{width:calc(80% - var(--adyen-sdk-spacer-040, 8px))}}.adyen-checkout__input-wrapper{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;position:relative}.adyen-checkout__input-wrapper div,.adyen-checkout__input-wrapper input,.adyen-checkout__input-wrapper span{border-radius:inherit}.adyen-checkout__input-wrapper button,.adyen-checkout__input-wrapper div,.adyen-checkout__input-wrapper input{border:none}.adyen-checkout__input-wrapper:active,.adyen-checkout__input-wrapper:active:hover,.adyen-checkout__input-wrapper:focus-within,.adyen-checkout__input-wrapper:focus-within:hover{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__input-wrapper:hover{border-color:var(--adyen-sdk-color-outline-tertiary,#8d95a3)}.adyen-checkout__field--inactive>.adyen-checkout__input-wrapper{background:var(--adyen-sdk-color-background-disabled,#eeeff1);border-color:transparent}.adyen-checkout__field--error>:not(.adyen-checkout__label--focused)+.adyen-checkout__input-wrapper:not(:focus-within,:active){border-color:var(--adyen-sdk-color-outline-critical,#e22d2d)}.adyen-checkout__label{display:block;position:relative}.adyen-checkout__label--focused+.adyen-checkout__input-wrapper{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__label--disabled+.adyen-checkout__input-wrapper{background:var(--adyen-sdk-color-background-disabled,#eeeff1);border-color:transparent}.adyen-checkout__helper-text{color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-bottom:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__label-adornment--end{position:absolute;right:0;top:0}.adyen-checkout__label__text{color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-stronger-font-weight,500);line-height:var(--adyen-sdk-text-body-line-height,20px);margin-bottom:var(--adyen-sdk-spacer-020,4px);overflow:hidden;text-overflow:ellipsis;transition:color .1s ease-out;white-space:nowrap}.adyen-checkout__label__text--error{color:var(--adyen-sdk-color-label-critical,#c72727)}.adyen-checkout__label--focused .adyen-checkout__label__text{color:var(--adyen-sdk-color-label-primary,#00112c)}.adyen-checkout-contextual-text,.adyen-checkout-contextual-text--error{align-items:center;color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-top:var(--adyen-sdk-spacer-020,4px);opacity:1;transition:margin .2s ease-out,opacity .2s ease-out}.adyen-checkout-contextual-text--error{color:var(--adyen-sdk-color-label-critical,#c72727)}.adyen-checkout-contextual-text--hidden{height:0;margin:0;opacity:0}
7
7
  .adyen-checkout__field__cvc .adyen-checkout__input-wrapper{cursor:text}
8
8
  .adyen-checkout__filter-input:-webkit-autofill,.adyen-checkout__input:-webkit-autofill{color:var(--adyen-sdk-color-label-primary,#00112c)!important;-webkit-text-fill-color:var(--adyen-sdk-color-label-primary,#00112c)!important;-webkit-background-clip:text!important;background-clip:text!important;background-color:var(--adyen-sdk-color-label-primary,#00112c)!important;box-shadow:0 0 0 1000px var(--adyen-sdk-color-background-primary,#ffffff) inset!important;-webkit-transition:none!important;transition:none!important}.adyen-checkout__filter-input:-webkit-autofill,.adyen-checkout__filter-input:-webkit-autofill:active,.adyen-checkout__filter-input:-webkit-autofill:focus,.adyen-checkout__filter-input:-webkit-autofill:hover,.adyen-checkout__filter-input:autofill,.adyen-checkout__input:-webkit-autofill,.adyen-checkout__input:-webkit-autofill:active,.adyen-checkout__input:-webkit-autofill:focus,.adyen-checkout__input:-webkit-autofill:hover,.adyen-checkout__input:autofill{color:var(--adyen-sdk-color-label-primary,#00112c)!important;-webkit-text-fill-color:var(--adyen-sdk-color-label-primary,#00112c)!important;-webkit-background-clip:text!important;background-clip:text!important;background-color:var(--adyen-sdk-color-label-primary,#00112c)!important;box-shadow:0 0 0 1000px var(--adyen-sdk-color-background-primary,#ffffff) inset!important;-webkit-transition:none!important;transition:none!important}.adyen-checkout__filter-input,.adyen-checkout__input{-webkit-background-clip:text!important;background-clip:text!important;color:var(--adyen-sdk-color-label-primary,#00112c)!important}.adyen-checkout__field-wrapper{display:flex;width:100%}.adyen-checkout__field-wrapper>.adyen-checkout__field:first-child{margin-right:var(--adyen-sdk-spacer-040,8px)}[dir=rtl] .adyen-checkout__field-wrapper>.adyen-checkout__field:first-child{margin-left:var(--adyen-sdk-spacer-040,8px);margin-right:0}.adyen-checkout__field-wrapper>.adyen-checkout__field:nth-child(2){margin-left:var(--adyen-sdk-spacer-040,8px)}[dir=rtl] .adyen-checkout__field-wrapper>.adyen-checkout__field:nth-child(2){margin-left:0;margin-right:var(--adyen-sdk-spacer-040,8px)}.adyen-checkout__field-wrapper:last-of-type>.adyen-checkout__field{margin-bottom:0}.adyen-checkout__input{background:inherit;color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-family:inherit;font-size:var(--adyen-sdk-text-subtitle-font-size,1rem);height:var(--adyen-sdk-spacer-110,40px);outline:none;padding-left:var(--adyen-sdk-spacer-060,12px);transition:border .2s ease-out,box-shadow .2s ease-out;width:100%}.adyen-checkout__input:required{box-shadow:none}.adyen-checkout__input:-moz-read-only{color:var(--adyen-sdk-color-label-secondary,#5c687c)!important;cursor:default}.adyen-checkout__input:disabled,.adyen-checkout__input:read-only{color:var(--adyen-sdk-color-label-secondary,#5c687c)!important;cursor:default}span.adyen-checkout__input{overflow:hidden}.adyen-checkout-input__inline-validation{height:var(--adyen-sdk-spacer-070,16px);margin-right:var(--adyen-sdk-spacer-060,12px);width:var(--adyen-sdk-spacer-070,16px)}[dir=rtl] .adyen-checkout-input__inline-validation{margin-left:var(--adyen-sdk-spacer-060,12px)}.adyen-checkout-input__inline-validation>.adyen-checkout__icon{display:block}.adyen-checkout-input__inline-validation--invalid{color:var(--adyen-sdk-color-label-critical,#c72727)}.adyen-checkout__input--date{padding:.5em}
9
9
  .adyen-checkout__fieldset{border:none;display:block;margin-inline-end:0;margin-inline-start:0;margin:0;padding-block-start:0;padding-bottom:var(--adyen-sdk-spacer-040,8px);padding-block-end:0;padding-inline-end:0;padding-inline-start:0;width:100%}.adyen-checkout__fieldset__description{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:1.5;list-style-type:disc;margin:0}.adyen-checkout__fieldset:last-of-type{padding-bottom:0}.adyen-checkout__fieldset+.adyen-checkout__fieldset{margin-top:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__fieldset__title{color:var(--adyen-sdk-color-label-primary,#00112c);display:block;font-size:var(--adyen-sdk-text-subtitle-font-size,1rem);font-weight:var(--adyen-sdk-text-subtitle-stronger-font-weight,600);font-weight:var(--adyen-sdk-text-subtitle-font-weight,500);line-height:var(--adyen-sdk-text-subtitle-line-height,26px);margin:0;padding:0 0 var(--adyen-sdk-spacer-060,12px)}.adyen-checkout__fieldset__title:has(+.adyen-checkout__fieldset__description){padding:0}.adyen-checkout__fieldset__fields{display:flex;flex-wrap:wrap;gap:var(--adyen-sdk-spacer-070,16px);width:100%}.adyen-checkout__fieldset__fields>.adyen-checkout__field{margin-bottom:0}.adyen-checkout__fieldset--readonly .adyen-checkout__fieldset__fields{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-body-font-size,.875rem);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin:0}
@@ -14,7 +14,8 @@
14
14
  .adyen-checkout-disclaimer__label{color:var(--adyen-sdk-color-label-secondary,#5c687c);display:inline-block;font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:400;line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-top:var(--adyen-sdk-spacer-070,16px);padding-left:0}[dir=rtl] .adyen-checkout-disclaimer__label{padding-right:0}
15
15
  .adyen-checkout-link{--text-decoration:none;color:var(--adyen-sdk-color-label-highlight,#0070f5);-webkit-text-decoration:var(--text-decoration);text-decoration:var(--text-decoration)}.adyen-checkout-link:focus-visible{outline:none}.adyen-checkout-link:active,.adyen-checkout-link:hover{--text-decoration:underline}.adyen-checkout-link:focus-visible{border-radius:var(--adyen-sdk-border-radius-xs,2px);box-shadow:0 0 0 1px #fff,0 0 0 3px var(--adyen-sdk-focus-ring-color,rgba(0,112,245,.8));transition:.1s cubic-bezier(.785,.135,.15,.86)}
16
16
  .adyen-checkout-brand-wrapper{align-items:center;border-radius:var(--adyen-sdk-border-radius-s,4px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02));display:flex;justify-content:center;overflow:hidden;position:relative}.adyen-checkout-brand-wrapper--error{display:none}
17
- .adyen-checkout__field--cardNumber .adyen-checkout__input-wrapper{cursor:text}.adyen-checkout__field--cardNumber .adyen-checkout-brand-wrapper{border-radius:var(--adyen-sdk-border-radius-s,4px);margin-right:var(--adyen-sdk-spacer-060,12px)}.adyen-checkout__field--cardNumber .adyen-checkout-card-input__icon{margin-right:0}.adyen-checkout__card__dual-branding__icons{display:flex}.adyen-checkout__card__dual-branding__icons .adyen-checkout__card__cardNumber__brandIcon{opacity:1}
17
+ .adyen-checkout__field--cardNumber .adyen-checkout__input-wrapper{cursor:text}.adyen-checkout__field--cardNumber .adyen-checkout-brand-wrapper{border-radius:var(--adyen-sdk-border-radius-s,4px);margin-right:var(--adyen-sdk-spacer-060,12px)}.adyen-checkout__field--cardNumber .adyen-checkout-card-input__icon{margin-right:0}.adyen-checkout__card__dual-branding__icons{display:flex}.adyen-checkout__card__dual-branding__icons .adyen-checkout__card__cardNumber__brandIcon{opacity:1}.adyen-checkout__card__dual-branding__sr-only{border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
18
+ .DualBrandSelector-module_dualBrandSelector__Fz7UW{background-color:var(--adyen-sdk-color-background-tertiary,#eeeff1);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;gap:var(--adyen-sdk-spacer-020,4px);margin-right:var(--adyen-sdk-spacer-060,12px);padding:var(--adyen-sdk-spacer-020,4px)}.DualBrandSelector-module_dualBrandSelectorButton__3Dxem{align-items:center;background-color:transparent;border:1px solid transparent;border-radius:var(--adyen-sdk-border-radius-s,4px);cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;width:34px}.DualBrandSelector-module_dualBrandSelectorButton__3Dxem:hover{background-color:var(--adyen-sdk-color-background-primary,#ffffff);border-color:var(--adyen-sdk-color-outline-primary,#dbdee2);box-shadow:0 2px 4px rgba(0,0,0,.3)}.DualBrandSelector-module_dualBrandSelectorButtonSelected__EswTK{background-color:var(--adyen-sdk-color-background-primary,#ffffff);box-shadow:inset 0 0 0 .5px var(--adyen-sdk-color-outline-primary,#dbdee2),0 2px 4px rgba(0,0,0,.5)}.DualBrandSelector-module_dualBrandSelectorIcon__qeN0L{border-radius:var(--adyen-sdk-border-radius-s,4px);height:16px;width:24px}
18
19
  .adyen-checkout__field.adyen-checkout__card__exp-date__input--hidden{display:none}.adyen-checkout__card__exp-cvc__exp-date__input--hidden{justify-content:flex-end}.adyen-checkout__field__exp-date .adyen-checkout__input-wrapper{cursor:text}.adyen-checkout__input-wrapper .adyen-checkout__field__exp-date_hint_wrapper{border-radius:var(--adyen-sdk-border-radius-s,4px);height:18px;margin-right:var(--adyen-sdk-spacer-060,12px);position:absolute;right:0;transition:opacity .1s linear;width:27px}.adyen-checkout__input-wrapper .adyen-checkout__field__exp-date_hint_wrapper.adyen-checkout__field__exp-date_hint_wrapper--hidden{opacity:0}.adyen-checkout__field__exp-date_hint{height:18px;width:27px}
19
20
  .BrandIcons-module_container__FeCxK{align-items:center;display:flex;flex-basis:auto;flex-wrap:wrap;gap:var(--adyen-sdk-spacer-040,8px);margin:var(--adyen-sdk-spacer-020,4px) var(--adyen-sdk-spacer-000,0)}.BrandIcons-module_grid__wb0DE{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--adyen-sdk-spacer-110,40px),1fr))}.BrandIcons-module_smallImgGrid__iCMqT{grid-template-columns:repeat(auto-fill,minmax(var(--adyen-sdk-spacer-090,24px),1fr))}.BrandIcons-module_remainingBrandsLabel__v0FKS{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-body-font-size,.875rem)}.BrandIcons-module_img__Oe3i-{display:block;height:var(--adyen-sdk-spacer-090,24px);padding:0;width:var(--adyen-sdk-spacer-110,40px)}.BrandIcons-module_smallImg__GwOZ0{height:var(--adyen-sdk-spacer-070,16px);width:var(--adyen-sdk-spacer-090,24px)}
20
21
  .adyen-checkout__card__brands{margin-bottom:var(--adyen-sdk-spacer-060,12px);margin-top:calc(var(--adyen-sdk-spacer-040, 8px)*-1)}.adyen-checkout__card__brands--hidden{margin:-8px 0 8px;max-height:0;min-height:0;opacity:0}
@@ -23,8 +24,6 @@
23
24
  .adyen-checkout__store-details{align-items:center;background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);display:flex;gap:var(--adyen-sdk-spacer-060,12px);margin-top:var(--adyen-sdk-spacer-070,16px);padding:var(--adyen-sdk-spacer-060,12px) var(--adyen-sdk-spacer-070,16px)}
24
25
  .adyen-checkout__address-search{position:relative}.adyen-checkout__address-search .adyen-checkout__dropdown__button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23687282' d='M6.5 11.9a4.5 4.5 0 0 0 2.6-.83l2.77 2.74c.13.13.3.19.48.19.38 0 .65-.29.65-.66a.63.63 0 0 0-.19-.46l-2.75-2.73a4.4 4.4 0 0 0 .92-2.7 4.48 4.48 0 0 0-8.98 0 4.48 4.48 0 0 0 4.5 4.45m0-.96a3.53 3.53 0 0 1-3.53-3.49 3.52 3.52 0 0 1 7.04 0c0 1.9-1.59 3.49-3.52 3.49Z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";height:var(--adyen-sdk-spacer-070,16px);left:var(--adyen-sdk-spacer-060,12px);position:absolute;width:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__address-search .adyen-checkout__dropdown__button--active:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%2300112c' d='M6.5 11.9a4.5 4.5 0 0 0 2.6-.83l2.77 2.74c.13.13.3.19.48.19.38 0 .65-.29.65-.66a.63.63 0 0 0-.19-.46l-2.75-2.73a4.4 4.4 0 0 0 .92-2.7 4.48 4.48 0 0 0-8.98 0 4.48 4.48 0 0 0 4.5 4.45m0-.96a3.53 3.53 0 0 1-3.53-3.49 3.52 3.52 0 0 1 7.04 0c0 1.9-1.59 3.49-3.52 3.49Z'/%3E%3C/svg%3E");transform:none}.adyen-checkout__address-search .adyen-checkout__filter-input{padding-left:calc(var(--adyen-sdk-spacer-040, 8px) + var(--adyen-sdk-spacer-070, 16px));position:relative}.adyen-checkout__address-search__manual-add{position:absolute;right:0;top:0}.adyen-checkout__address-search__manual-add .adyen-checkout__address-search__manual-add__button{border:0;padding:0}
25
26
  .adyen-checkout__fieldset--address .adyen-checkout__field-group{display:flex;flex-wrap:wrap;gap:var(--adyen-sdk-spacer-070,16px);width:100%}.adyen-checkout__fieldset--address .adyen-checkout__field-group>.adyen-checkout__field{margin-bottom:0}
26
- .adyen-checkout__input-icon{border-radius:var(--adyen-sdk-border-radius-s,4px);height:18px;margin-right:var(--adyen-sdk-spacer-060,12px);width:27px}.adyen-checkout__input-icon--hidden{display:none}.adyen-checkout__input-icon--no-radio-icon{margin-left:calc(var(--adyen-sdk-spacer-090, 24px)*-1)}
27
- .adyen-checkout__radio_group__label--no-radio{color:inherit;display:block;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:400;line-height:var(--adyen-sdk-text-body-line-height,20px);margin:0;overflow:visible;padding-bottom:0;padding-left:var(--adyen-sdk-spacer-090,24px);position:relative}.adyen-checkout__input-icon--no-radio-icon{border-radius:var(--adyen-sdk-border-radius-s,4px);box-shadow:var(--adyen-sdk-shadow-low,0 2px 4px rgba(0,17,44,.04),0 1px 2px rgba(0,17,44,.02))}.adyen-checkout__radio_group__label--no-radio:hover{border-color:var(--adyen-sdk-color-label-primary,#00112c);cursor:pointer}.adyen-checkout__label--focused .adyen-checkout__radio_group__label--no-radio{color:inherit}.adyen-checkout__radio_group__label--no-radio.adyen-checkout__radio_group__label--no-radio--invalid{color:var(--adyen-sdk-color-outline-critical,#e22d2d)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group__label--no-radio{background-color:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);padding:var(--adyen-sdk-spacer-060,12px) var(--adyen-sdk-spacer-060,12px) var(--adyen-sdk-spacer-060,12px) calc(var(--adyen-sdk-spacer-060, 12px) + var(--adyen-sdk-spacer-090, 24px));width:100%}.adyen-checkout__radio_group--button .adyen-checkout__radio_group__input:checked+.adyen-checkout__radio_group__label--no-radio{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group__input+.adyen-checkout__radio_group__label--no-radio:hover{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group__input:checked:active+.adyen-checkout__radio_group__label--no-radio,.adyen-checkout__radio_group--button .adyen-checkout__radio_group__input:checked:focus+.adyen-checkout__radio_group__label--no-radio{border-color:var(--adyen-sdk-color-outline-primary-active,#00112c);box-shadow:0 0 0 .5px var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group__input:checked:focus+.adyen-checkout__radio_group__label--no-radio{outline:var(--adyen-sdk-border-width-m,2px) solid var(--adyen-sdk-color-outline-primary-active,#00112c)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group-extended__label-wrapper{display:flex}.adyen-checkout__radio_group--button .adyen-checkout__radio_group-extended__label-wrapper .adyen-checkout__radio_group-extended__label{width:100%}.adyen-checkout__radio_group--button .adyen-checkout__radio_group-extended__label-wrapper .adyen-checkout-input__inline-validation{display:none;margin-right:var(--adyen-sdk-spacer-000,0)}.adyen-checkout__radio_group--button .adyen-checkout__radio_group-extended__label-wrapper .adyen-checkout-input__inline-validation.adyen-checkout-input__inline-validation--valid{display:block;margin-left:var(--adyen-sdk-spacer-040,8px);margin-top:1px}@media (max-width:480px){.adyen-checkout__radio_group__input-wrapper.adyen-checkout__field--50{min-width:100%}}
28
27
  .adyen-checkout-form-instruction{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-caption-line-height,18px);margin-bottom:var(--adyen-sdk-spacer-070,16px);margin-top:0}[dir=rtl] .adyen-checkout-form-instruction{padding-right:0}
29
28
  .adyen-checkout-toggle{color:inherit;cursor:pointer;display:flex;width:auto}.adyen-checkout-toggle,.adyen-checkout-toggle *,.adyen-checkout-toggle :after,.adyen-checkout-toggle :before,.adyen-checkout-toggle:after,.adyen-checkout-toggle:before{box-sizing:border-box}.adyen-checkout-toggle--disabled{cursor:not-allowed;display:flex}.adyen-checkout-toggle--readonly{pointer-events:none}.adyen-checkout-toggle--label-first{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.adyen-checkout-toggle__input{cursor:inherit;opacity:0;position:absolute}.adyen-checkout-toggle__track{align-items:center;background-color:var(--adyen-sdk-toggle-track-background-color,#ffffff);border:var(--adyen-sdk-toggle-track-border,1px solid #8d95a3);border-radius:var(--adyen-sdk-toggle-track-border-radius,12px);display:flex;height:var(--adyen-sdk-toggle-track-height,20px);min-width:var(--adyen-sdk-toggle-track-width,36px);padding:var(--adyen-sdk-toggle-track-padding,2px 4px);position:relative}.adyen-checkout-toggle__input:focus-visible+.adyen-checkout-toggle__track{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--adyen-sdk-focus-ring-color,rgba(0,112,245,.8));transition:.1s cubic-bezier(.785,.135,.15,.86)}.adyen-checkout-toggle__input:hover:enabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-hover-background-color,#f7f7f8);border-color:var(--adyen-sdk-toggle-track-hover-border-color,#6d7789)}.adyen-checkout-toggle__input:active:enabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-active-background-color,#eeeff1);border-color:var(--adyen-sdk-toggle-track-active-border-color,#00112c)}.adyen-checkout-toggle__input:disabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-disabled-background-color,#f7f7f8);border-color:var(--adyen-sdk-toggle-track-disabled-border-color,#dbdee2);cursor:not-allowed}.adyen-checkout-toggle__input:disabled+.adyen-checkout-toggle__track path{fill:#8d95a3}.adyen-checkout-toggle--readonly .adyen-checkout-toggle__input+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-readonly-background-color,#f7f7f8);border-color:var(--adyen-sdk-toggle-track-readonly-border-color,#dbdee2)}.adyen-checkout-toggle__input:checked+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-toggled-background-color,#00112c);border:var(--adyen-sdk-toggle-track-toggled-border,0);padding:var(--adyen-sdk-toggle-track-toggled-padding,2px)}.adyen-checkout-toggle__input:checked:hover:enabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-toggled-hover-background-color,#5c687c)}.adyen-checkout-toggle__input:checked:active:enabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-toggled-active-background-color,#8d95a3)}.adyen-checkout-toggle__input:checked:disabled+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-toggled-disabled-background-color,#c0c5cc)}.adyen-checkout-toggle--readonly .adyen-checkout-toggle__input:checked+.adyen-checkout-toggle__track{background-color:var(--adyen-sdk-toggle-track-toggled-readonly-background-color,#c0c5cc)}.adyen-checkout-toggle__handle{align-content:center;background-color:var(--adyen-sdk-toggle-handle-background-color,#00112c);border-radius:var(--adyen-sdk-toggle-handle-border-radius,12px);color:var(--adyen-sdk-toggle-handle-toggled-color,#00112c);display:inline-flex;height:var(--adyen-sdk-toggle-handle-height,12px);justify-content:center;transition:var(--adyen-sdk-toggle-handle-transition,transform .15s cubic-bezier(.2,0,.4,.9));width:var(--adyen-sdk-toggle-handle-width,12px)}.adyen-checkout-toggle__input:disabled+* .adyen-checkout-toggle__handle{background-color:var(--adyen-sdk-toggle-handle-disabled-background-color,#8d95a3);cursor:not-allowed}.adyen-checkout-toggle__input:checked+* .adyen-checkout-toggle__handle{background-color:var(--adyen-sdk-toggle-handle-toggled-background-color,#ffffff);height:var(--adyen-sdk-toggle-handle-toggled-height,16px);transform:translateX(100%);width:var(--adyen-sdk-toggle-handle-toggled-width,16px)}.adyen-checkout-toggle__input:checked:disabled+* .adyen-checkout-toggle__handle{background-color:var(--adyen-sdk-toggle-handle-toggled-disabled-background-color,#eeeff1);color:var(--adyen-sdk-toggle-handle-toggled-disabled-color,#8d95a3);cursor:not-allowed}.adyen-checkout-toggle--readonly .adyen-checkout-toggle__input:checked+* .adyen-checkout-toggle__handle{background-color:var(--adyen-sdk-toggle-handle-toggled-readonly-background-color,#eeeff1)}.adyen-checkout-toggle__label-container{display:flex;flex-direction:column;font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px);padding-left:var(--adyen-sdk-toggle-label-padding,16px)}.adyen-checkout-toggle--label-first>.adyen-checkout-toggle__label-container{padding-left:0;padding-right:var(--adyen-sdk-toggle-label-padding,16px)}.adyen-checkout-toggle__label{vertical-align:baseline}.adyen-checkout-toggle__description,.adyen-checkout-toggle__label{font-size:var(--adyen-sdk-text-body-font-size,.875rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);line-height:var(--adyen-sdk-text-body-line-height,20px)}.adyen-checkout-toggle__description{color:var(--adyen-sdk-toggle-description-color,#5c687c);padding-top:var(--adyen-sdk-toggle-description-padding,4px)}
30
29
  .adyen-checkout__modal-wrapper{align-items:center;display:flex;height:100%;left:0;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--adyen-sdk-spacer-090,24px);position:fixed;top:0;visibility:hidden;width:100%;z-index:10}.adyen-checkout__modal-wrapper:before{background:rgba(0,17,44,.5);content:"";height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s linear;width:100%;z-index:10}.adyen-checkout__modal-wrapper--open{visibility:visible}.adyen-checkout__modal-wrapper--open .adyen-checkout__modal,.adyen-checkout__modal-wrapper--open:before{opacity:1}.adyen-checkout__modal{background-color:var(--adyen-sdk-color-background-primary,#ffffff);border-radius:var(--adyen-sdk-border-radius-m,8px);box-shadow:0 var(--adyen-sdk-spacer-040,8px) var(--adyen-sdk-spacer-090,24px) rgba(0,17,44,.15);margin:auto;opacity:0;padding:var(--adyen-sdk-spacer-070,16px);position:relative;transition:opacity .2s ease,visibility .2s ease;z-index:11}
@@ -110,7 +109,7 @@ apple-pay-button{--apple-pay-button-width:100%;--apple-pay-button-height:48px;--
110
109
  .adyen-checkout__dropin--loading .adyen-checkout__instant-payment-methods-list{opacity:.2;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}
111
110
  .adyen-checkout__payment-method__disable-confirmation{background:var(--adyen-sdk-color-background-critical-strong,#e22d2d);border-left:1px solid rgb(224.7623430962,36.0376569038,36.0376569038);border-right:1px solid rgb(224.7623430962,36.0376569038,36.0376569038);color:var(--adyen-sdk-color-label-on-color,#ffffff);display:grid;font-size:var(--adyen-sdk-text-body-font-size,.875rem);grid-template-rows:0fr;margin:0 -17px;opacity:0;overflow:hidden;transition:grid-template-rows var(--adyen-sdk-animation-duration-moderate,.15s) var(--adyen-sdk-animation-easing-linear,linear),opacity var(--adyen-sdk-animation-duration-moderate,.15s) var(--adyen-sdk-animation-easing-standard,cubic-bezier(.2,0,.4,.9)),margin-bottom var(--adyen-sdk-animation-duration-fast,.1s) var(--adyen-sdk-animation-easing-linear,linear)}.adyen-checkout__payment-method__disable-confirmation__content{align-items:center;display:flex;justify-content:space-between;min-height:0;transition:visibility var(--adyen-sdk-animation-duration-moderate,.15s) var(--adyen-sdk-animation-easing-linear,linear),padding var(--adyen-sdk-animation-duration-fast,.1s) var(--adyen-sdk-animation-easing-linear,linear);visibility:hidden}.adyen-checkout__payment-method__disable-confirmation--open{grid-template-rows:1fr;margin-bottom:var(--adyen-sdk-spacer-070,16px);opacity:1}.adyen-checkout__payment-method__disable-confirmation--open .adyen-checkout__payment-method__disable-confirmation__content{padding:var(--adyen-sdk-spacer-040,8px) var(--adyen-sdk-spacer-070,16px);visibility:visible}.adyen-checkout__payment-method__disable-confirmation__buttons{display:flex}.adyen-checkout__payment-method__disable-confirmation__button{background:var(--adyen-sdk-color-background-critical-strong,#e22d2d);border:var(--adyen-sdk-border-width-s,1px) solid transparent;border-radius:var(--adyen-sdk-border-radius-m,8px);color:var(--adyen-sdk-color-label-on-color,#ffffff);cursor:pointer;display:block;font-size:var(--adyen-sdk-text-body-font-size,.875rem);height:auto;margin:0 0 0 var(--adyen-sdk-spacer-040,8px);padding:var(--adyen-sdk-spacer-040,8px);width:auto}.adyen-checkout__payment-method__disable-confirmation__button:hover,.adyen-checkout__payment-method__disable-confirmation__button:hover:focus{background:rgb(215.7112970711,29.7887029289,29.7887029289);box-shadow:none}.adyen-checkout__payment-method__disable-confirmation__button:active,.adyen-checkout__payment-method__disable-confirmation__button:hover:active{background:rgb(193.3054393305,26.6945606695,26.6945606695);box-shadow:none}.adyen-checkout__payment-method__disable-confirmation__button--remove,.adyen-checkout__payment-method__disable-confirmation__button--remove:disabled{border-color:var(--adyen-sdk-color-label-on-color,#ffffff)}.adyen-checkout__payment-method__disable-confirmation__button--cancel,.adyen-checkout__payment-method__disable-confirmation__button--cancel:disabled{border-color:transparent}
112
111
  .adyen-checkout__payment-method__name{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.adyen-checkout__payment-method__additional-info{color:var(--adyen-sdk-color-label-secondary,#5c687c);font-size:var(--adyen-sdk-text-caption-font-size,.75rem);font-weight:var(--adyen-sdk-text-body-font-weight,400)}.adyen-checkout__payment-method__name_wrapper{align-items:flex-start;display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-020,4px);min-width:var(--adyen-sdk-spacer-120,48px);text-align:start}
113
- .adyen-checkout__payment-method{background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,border-radius .15s ease;width:100%}.adyen-checkout__payment-method:focus{outline:0}.adyen-checkout__payment-method:hover:not(.adyen-checkout__payment-method--selected){border-color:var(--adyen-sdk-color-outline-primary-hover,#c9cdd3)}.adyen-checkout__payment-method--loading{opacity:.2}.adyen-checkout__payment-method--selected.adyen-checkout__payment-method--loading{opacity:.9}.adyen-checkout__payment-method--confirming .adyen-checkout__payment-method__details__content,.adyen-checkout__payment-method--disabling{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.adyen-checkout__payment-method--disabling{opacity:.3}.adyen-checkout__payment-method--standalone .adyen-checkout__payment-method__radio{display:none}.adyen-checkout__payment-method__header{color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;flex-wrap:nowrap;font-size:var(--adyen-sdk-text-title-font-size,1rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);justify-content:space-between;padding:var(--adyen-sdk-spacer-070,16px);position:relative;transition:background .1s ease-out;width:100%}[dir=rtl] .adyen-checkout__payment-method__header{padding:calc(var(--adyen-sdk-spacer-070, 16px) - var(--adyen-sdk-spacer-020, 4px));padding-right:calc(var(--adyen-sdk-spacer-120, 48px) - var(--adyen-sdk-spacer-020, 4px))}.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__content{max-height:-moz-fit-content;max-height:fit-content}@media (min-width:427.5px){.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__content{align-items:center}}.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__details{display:flex;flex:1;flex-direction:column;gap:var(--adyen-sdk-spacer-040,8px);justify-content:space-between}@media (min-width:427.5px){.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__details{align-items:center;flex-direction:row}}.adyen-checkout__payment-method--standalone .adyen-checkout__payment-method__header{padding:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__payment-method__surcharge{color:var(--adyen-sdk-color-label-secondary,#5c687c);margin-left:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__payment-method--selected{background:var(--adyen-sdk-color-background-secondary,#f7f7f8);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-secondary,#c9cdd3);cursor:default;transition:opacity .3s ease-out}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__header{flex-wrap:wrap}.adyen-checkout__payment-method__details{padding:var(--adyen-sdk-spacer-000,0) var(--adyen-sdk-spacer-070,16px);position:relative}.adyen-checkout__payment-method__details__content>:last-child{margin-bottom:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__payment-method__image__wrapper{align-items:center;border-radius:var(--adyen-sdk-border-radius-s,4px);display:flex;height:26px;justify-content:center;overflow:hidden;position:relative;width:var(--adyen-sdk-spacer-110,40px)}.adyen-checkout__payment-method__image{border-radius:var(--adyen-checkout-border-radius-s);display:block;flex-shrink:0;height:100%;overflow:hidden;width:100%}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__brands{height:auto;overflow:visible;text-align:left}.adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper{display:inline-block;height:var(--adyen-sdk-spacer-070,16px);transition:opacity .2s ease-out;width:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper:last-child{margin:var(--adyen-sdk-spacer-000,0)}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper{margin-bottom:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__payment-method__brands img{height:100%;width:100%}.adyen-checkout__payment-method:hover:not(.adyen-checkout__payment-method--selected) .adyen-checkout__payment-method__radio{box-shadow:0 0 0 var(--adyen-sdk-spacer-010,2px) var(--adyen-sdk-color-outline-primary-hover,#c9cdd3);cursor:pointer}
112
+ .adyen-checkout__payment-method{background:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-primary,#dbdee2);border-radius:var(--adyen-sdk-border-radius-m,8px);cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,border-radius .15s ease;width:100%}.adyen-checkout__payment-method:focus{outline:0}.adyen-checkout__payment-method:hover:not(.adyen-checkout__payment-method--selected){border-color:var(--adyen-sdk-color-outline-primary-hover,#c9cdd3)}.adyen-checkout__payment-method--loading{opacity:.2}.adyen-checkout__payment-method--selected.adyen-checkout__payment-method--loading{opacity:.9}.adyen-checkout__payment-method--confirming .adyen-checkout__payment-method__details__content,.adyen-checkout__payment-method--disabling{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.adyen-checkout__payment-method--disabling{opacity:.3}.adyen-checkout__payment-method--standalone .adyen-checkout__payment-method__radio{display:none}.adyen-checkout__payment-method__header{color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;flex-wrap:nowrap;font-size:var(--adyen-sdk-text-title-font-size,1rem);font-weight:var(--adyen-sdk-text-body-font-weight,400);justify-content:space-between;padding:var(--adyen-sdk-spacer-070,16px);position:relative;transition:background .1s ease-out;width:100%}[dir=rtl] .adyen-checkout__payment-method__header{padding:calc(var(--adyen-sdk-spacer-070, 16px) - var(--adyen-sdk-spacer-020, 4px));padding-right:calc(var(--adyen-sdk-spacer-120, 48px) - var(--adyen-sdk-spacer-020, 4px))}.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__content{max-height:-moz-fit-content;max-height:fit-content}@media (min-width:427.5px){.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__content{align-items:center}}.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__details{display:flex;flex:1;flex-direction:column;gap:var(--adyen-sdk-spacer-040,8px);justify-content:space-between;overflow:hidden}@media (min-width:427.5px){.adyen-checkout__payment-method__header .adyen-checkout__payment-method__header__details{align-items:center;flex-direction:row}}.adyen-checkout__payment-method--standalone .adyen-checkout__payment-method__header{padding:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__payment-method__surcharge{color:var(--adyen-sdk-color-label-secondary,#5c687c);margin-left:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__payment-method--selected{background:var(--adyen-sdk-color-background-secondary,#f7f7f8);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-secondary,#c9cdd3);cursor:default;transition:opacity .3s ease-out}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__header{flex-wrap:wrap}.adyen-checkout__payment-method__details{padding:var(--adyen-sdk-spacer-000,0) var(--adyen-sdk-spacer-070,16px);position:relative}.adyen-checkout__payment-method__details__content>:last-child{margin-bottom:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__payment-method__image__wrapper{align-items:center;border-radius:var(--adyen-sdk-border-radius-s,4px);display:flex;height:26px;justify-content:center;overflow:hidden;position:relative;width:var(--adyen-sdk-spacer-110,40px)}.adyen-checkout__payment-method__image{border-radius:var(--adyen-checkout-border-radius-s);display:block;flex-shrink:0;height:100%;overflow:hidden;width:100%}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__brands{height:auto;overflow:visible;text-align:left}.adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper{display:inline-block;height:var(--adyen-sdk-spacer-070,16px);transition:opacity .2s ease-out;width:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper:last-child{margin:var(--adyen-sdk-spacer-000,0)}.adyen-checkout__payment-method--selected .adyen-checkout__payment-method__brands .adyen-checkout__payment-method__image__wrapper{margin-bottom:var(--adyen-sdk-spacer-020,4px)}.adyen-checkout__payment-method__brands img{height:100%;width:100%}.adyen-checkout__payment-method:hover:not(.adyen-checkout__payment-method--selected) .adyen-checkout__payment-method__radio{box-shadow:0 0 0 var(--adyen-sdk-spacer-010,2px) var(--adyen-sdk-color-outline-primary-hover,#c9cdd3);cursor:pointer}
114
113
  .adyen-checkout__status{align-items:center;background-color:var(--adyen-sdk-color-background-primary,#ffffff);border:var(--adyen-sdk-border-width-s,1px) solid var(--adyen-sdk-color-outline-secondary,#c9cdd3);border-radius:var(--adyen-sdk-border-radius-m,8px);color:var(--adyen-sdk-color-label-primary,#00112c);display:flex;flex-direction:column;font-size:var(--adyen-sdk-text-title-font-size,1rem);height:350px;justify-content:center;margin:0;padding:var(--adyen-sdk-spacer-100,32px);text-align:center}.adyen-checkout__status__icon{margin-bottom:var(--adyen-sdk-spacer-090,24px)}.adyen-checkout__status .adyen-checkout__spinner__wrapper{max-height:88px}
115
114
  .adyen-checkout__dropin{display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout__button--dropin-show-paymentmethods{align-self:start}.adyen-checkout-payment-methods-container{display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-070,16px)}.adyen-checkout-payment-methods-list-label{color:var(--adyen-sdk-color-label-primary,#00112c);font-size:var(--adyen-sdk-text-subtitle-font-size,1rem);font-weight:var(--adyen-sdk-text-subtitle-stronger-font-weight,600);line-height:var(--adyen-sdk-text-subtitle-line-height,26px)}.adyen-checkout__payment-methods-list{display:flex;flex-direction:column;gap:var(--adyen-sdk-spacer-070,16px);list-style:none;margin:0;padding:0}.adyen-checkout__payment-methods-list--loading{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.adyen-checkout__instant-payment-methods-list{display:flex;flex-wrap:wrap;gap:var(--adyen-sdk-spacer-070,16px);list-style:none;margin:0;padding:0}.adyen-checkout__instant-payment-methods-list li{flex:1 0 calc(50% - var(--adyen-sdk-spacer-070, 16px)/2)}.adyen-checkout__payment-method{display:block}.adyen-checkout__payment-method__details{overflow:hidden}.adyen-checkout__payment-method__image{height:26px;width:var(--adyen-sdk-spacer-110,40px)}[dir=rtl] .adyen-checkout__payment-method__image__wrapper{margin-left:var(--adyen-sdk-spacer-040,8px);margin-right:0}.adyen-checkout-pm-details-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;visibility:hidden}.adyen-checkout-pm-details-wrapper[aria-hidden=false]{grid-template-rows:1fr;visibility:visible}.adyen-checkout-pm-details-wrapper[aria-hidden=false] .adyen-checkout__payment-method__details{overflow:visible}
116
115
  .adyen-checkout-sr-panel{font-size:.75em;margin-bottom:var(--adyen-sdk-spacer-080,20px)}.adyen-checkout-sr-panel--sr-only{border:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}