@adyen/adyen-web 6.7.0 → 6.9.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 (378) hide show
  1. package/dist/cjs/adyen.css +50 -46
  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 +213 -50
  6. package/dist/es/_virtual/index.js +1 -1
  7. package/dist/es/_virtual/index2.js +2 -0
  8. package/dist/es/_virtual/index2.js.map +1 -0
  9. package/dist/es/adyen.css +50 -46
  10. package/dist/es/adyen.css.map +1 -1
  11. package/dist/es/components/Ach/components/AchInput/AchInput.js +1 -1
  12. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js +1 -1
  14. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js.map +1 -1
  15. package/dist/es/components/ApplePay/components/ApplePayButton.js +1 -1
  16. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  17. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  18. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  19. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  20. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  21. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  22. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  24. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  25. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  26. package/dist/es/components/Card/components/CardInput/components/CVC.js +1 -1
  27. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  28. package/dist/es/components/Card/components/CardInput/components/CVCHint.js +1 -1
  29. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  30. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  31. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  32. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  33. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  34. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  35. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  36. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  37. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  38. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  39. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  40. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  41. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  42. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  43. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  44. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  45. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  46. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  47. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  48. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  49. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  50. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  51. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  52. package/dist/es/components/Giftcard/components/GiftcardNumberField.js +1 -1
  53. package/dist/es/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  54. package/dist/es/components/Giftcard/components/GiftcardPinField.js +1 -1
  55. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  56. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  57. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  58. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  59. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  60. package/dist/es/components/MBWay/MBWay.js +1 -1
  61. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  62. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  63. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  64. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  65. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  66. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  67. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  68. package/dist/es/components/PayTo/PayTo.js +2 -0
  69. package/dist/es/components/PayTo/PayTo.js.map +1 -0
  70. package/dist/es/components/PayTo/components/BSBInput.js +2 -0
  71. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -0
  72. package/dist/es/components/PayTo/components/IdentifierSelector.js +2 -0
  73. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -0
  74. package/dist/es/components/PayTo/components/MandateSummary.js +2 -0
  75. package/dist/es/components/PayTo/components/MandateSummary.js.map +1 -0
  76. package/dist/es/components/PayTo/components/PayIDInput.js +2 -0
  77. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -0
  78. package/dist/es/components/PayTo/components/PayToComponent.js +2 -0
  79. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -0
  80. package/dist/es/components/PayTo/components/PayToInstructions.js +2 -0
  81. package/dist/es/components/PayTo/components/PayToInstructions.js.map +1 -0
  82. package/dist/es/components/PayTo/components/PayToNameFields.js +2 -0
  83. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -0
  84. package/dist/es/components/PayTo/components/PayToPhone.js +2 -0
  85. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -0
  86. package/dist/es/components/PayTo/components/validate.js +2 -0
  87. package/dist/es/components/PayTo/components/validate.js.map +1 -0
  88. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  89. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  90. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  91. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  92. package/dist/es/components/UPI/components/UPIComponent/useUpiSegmentedControlOptions.js.map +1 -1
  93. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  94. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  95. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  96. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  97. package/dist/es/components/components-name-map.js +1 -1
  98. package/dist/es/components/components-name-map.js.map +1 -1
  99. package/dist/es/components/index.js +1 -1
  100. package/dist/es/components/internal/Alert/Alert.js +1 -1
  101. package/dist/es/components/internal/Alert/Alert.js.map +1 -1
  102. package/dist/es/components/internal/Await/Await.js +1 -1
  103. package/dist/es/components/internal/Await/Await.js.map +1 -1
  104. package/dist/es/components/internal/Button/Button.js +1 -1
  105. package/dist/es/components/internal/Button/Button.js.map +1 -1
  106. package/dist/es/components/internal/ButtonGroup/ButtonGroup.js +1 -1
  107. package/dist/es/components/internal/ButtonGroup/ButtonGroup.js.map +1 -1
  108. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js +1 -1
  109. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  110. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  111. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  112. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  113. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  114. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  115. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  116. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  117. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  118. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  119. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  120. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  121. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  122. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  123. package/dist/es/components/internal/DetailsTable/DetailsTable.js +2 -0
  124. package/dist/es/components/internal/DetailsTable/DetailsTable.js.map +1 -0
  125. package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
  126. package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  127. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  128. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  129. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  130. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  131. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  132. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  133. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  134. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  135. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  136. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  137. package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
  138. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  139. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  140. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  141. package/dist/es/components/internal/FormFields/Select/components/SelectList.js +1 -1
  142. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  143. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
  144. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  145. package/dist/es/components/internal/IFrame/Iframe.js +1 -1
  146. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  147. package/dist/es/components/internal/Icon/Icon.js +1 -1
  148. package/dist/es/components/internal/Icon/Icon.js.map +1 -1
  149. package/dist/es/components/internal/Img/Img.js +1 -1
  150. package/dist/es/components/internal/Img/Img.js.map +1 -1
  151. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js +1 -1
  152. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  153. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js +1 -1
  154. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  155. package/dist/es/components/internal/Modal/Modal.js +1 -1
  156. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  157. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  158. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  159. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  160. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js +2 -0
  161. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -0
  162. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +2 -0
  163. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -0
  164. package/dist/es/components/internal/PhoneInput/validate.js +1 -1
  165. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  166. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  167. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  168. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  169. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  170. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  171. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  172. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  173. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  174. package/dist/es/components/internal/Voucher/Voucher.js +1 -1
  175. package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
  176. package/dist/es/components/tx-variants.js +1 -1
  177. package/dist/es/components/tx-variants.js.map +1 -1
  178. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  179. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  180. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  181. package/dist/es/core/core.js +1 -1
  182. package/dist/es/core/utils.js +1 -1
  183. package/dist/es/core/utils.js.map +1 -1
  184. package/dist/es/external/classnames/index.js +2 -2
  185. package/dist/es/external/classnames/index.js.map +1 -1
  186. package/dist/es/index.d.ts +213 -50
  187. package/dist/es/index.js +1 -1
  188. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  189. package/dist/es/utils/Validator/Validator.js.map +1 -1
  190. package/dist/es-legacy/_virtual/index.js +1 -1
  191. package/dist/es-legacy/_virtual/index2.js +2 -0
  192. package/dist/es-legacy/_virtual/index2.js.map +1 -0
  193. package/dist/es-legacy/adyen.css +50 -46
  194. package/dist/es-legacy/adyen.css.map +1 -1
  195. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js +1 -1
  196. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +1 -1
  197. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js +1 -1
  198. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js.map +1 -1
  199. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js +1 -1
  200. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  201. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  202. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  203. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  204. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  205. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  206. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  207. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  208. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  209. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  210. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js +1 -1
  211. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  212. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js +1 -1
  213. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  214. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  215. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  216. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  217. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  218. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  219. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  220. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  221. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  222. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  223. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  224. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  225. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  226. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  227. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  228. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  229. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  230. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  231. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  232. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  233. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  234. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  235. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  236. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js +1 -1
  237. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  238. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js +1 -1
  239. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  240. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  241. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  242. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  243. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  244. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  245. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  246. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  247. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  248. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  249. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  250. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  251. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  252. package/dist/es-legacy/components/PayTo/PayTo.js +2 -0
  253. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -0
  254. package/dist/es-legacy/components/PayTo/components/BSBInput.js +2 -0
  255. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -0
  256. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js +2 -0
  257. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -0
  258. package/dist/es-legacy/components/PayTo/components/MandateSummary.js +2 -0
  259. package/dist/es-legacy/components/PayTo/components/MandateSummary.js.map +1 -0
  260. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +2 -0
  261. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -0
  262. package/dist/es-legacy/components/PayTo/components/PayToComponent.js +2 -0
  263. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -0
  264. package/dist/es-legacy/components/PayTo/components/PayToInstructions.js +2 -0
  265. package/dist/es-legacy/components/PayTo/components/PayToInstructions.js.map +1 -0
  266. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +2 -0
  267. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -0
  268. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +2 -0
  269. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -0
  270. package/dist/es-legacy/components/PayTo/components/validate.js +2 -0
  271. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -0
  272. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  273. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  274. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  275. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  276. package/dist/es-legacy/components/UPI/components/UPIComponent/useUpiSegmentedControlOptions.js.map +1 -1
  277. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  278. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  279. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  280. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  281. package/dist/es-legacy/components/components-name-map.js +1 -1
  282. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  283. package/dist/es-legacy/components/index.js +1 -1
  284. package/dist/es-legacy/components/internal/Alert/Alert.js +1 -1
  285. package/dist/es-legacy/components/internal/Alert/Alert.js.map +1 -1
  286. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  287. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  288. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  289. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  290. package/dist/es-legacy/components/internal/ButtonGroup/ButtonGroup.js +1 -1
  291. package/dist/es-legacy/components/internal/ButtonGroup/ButtonGroup.js.map +1 -1
  292. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js +1 -1
  293. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  294. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  295. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  296. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  297. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  298. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  299. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  300. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  301. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  302. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  303. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  304. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  305. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  306. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  307. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js +2 -0
  308. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js.map +1 -0
  309. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
  310. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  311. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  312. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  313. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  314. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  315. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  316. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  317. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  318. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  319. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  320. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  321. package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
  322. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  323. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  324. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  325. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
  326. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  327. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
  328. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  329. package/dist/es-legacy/components/internal/IFrame/Iframe.js +1 -1
  330. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  331. package/dist/es-legacy/components/internal/Icon/Icon.js +1 -1
  332. package/dist/es-legacy/components/internal/Icon/Icon.js.map +1 -1
  333. package/dist/es-legacy/components/internal/Img/Img.js +1 -1
  334. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  335. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js +1 -1
  336. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  337. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js +1 -1
  338. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  339. package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
  340. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  341. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  342. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  343. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  344. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +2 -0
  345. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -0
  346. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +2 -0
  347. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -0
  348. package/dist/es-legacy/components/internal/PhoneInput/validate.js +1 -1
  349. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  350. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  351. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  352. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  353. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  354. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  355. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  356. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  357. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  358. package/dist/es-legacy/components/internal/Voucher/Voucher.js +1 -1
  359. package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
  360. package/dist/es-legacy/components/tx-variants.js +1 -1
  361. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  362. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  363. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  364. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  365. package/dist/es-legacy/core/core.js +1 -1
  366. package/dist/es-legacy/core/utils.js +1 -1
  367. package/dist/es-legacy/core/utils.js.map +1 -1
  368. package/dist/es-legacy/external/classnames/index.js +2 -2
  369. package/dist/es-legacy/external/classnames/index.js.map +1 -1
  370. package/dist/es-legacy/index.js +1 -1
  371. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  372. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  373. package/package.json +23 -17
  374. package/styles/adyen.css +50 -46
  375. package/dist/es/components/internal/PhoneInput/PhoneInput.js +0 -2
  376. package/dist/es/components/internal/PhoneInput/PhoneInput.js.map +0 -1
  377. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js +0 -2
  378. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import a from"../../../../external/classnames/index.js";import{getUniqueId as r}from"../../../../utils/idGenerator.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";function t(t){const{items:i,name:n,onChange:l,value:c,isInvalid:s,uniqueId:d,ariaLabel:_,style:u="classic"}=t,{i18n:p}=o(),m=d?.replace(/[0-9]/g,"").substring(0,d.lastIndexOf("-"));return e("div",{className:a(["adyen-checkout__radio_group",`adyen-checkout__radio_group--${u}`]),role:"radiogroup",..._&&{"aria-label":_}},i.map((o=>{const i=r(m);return e("div",{key:o.id,className:"adyen-checkout__radio_group__input-wrapper"},e("input",{id:i,type:"radio",checked:c===o.id,className:"adyen-checkout__radio_group__input",name:n,onChange:l,onClick:l,value:o.id}),e("label",{className:a(["adyen-checkout__label__text","adyen-checkout__radio_group__label",t.className,{"adyen-checkout__radio_group__label--invalid":s}]),htmlFor:i},p.get(o.name)))})))}t.defaultProps={onChange:()=>{},items:[]};export{t as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import a from"../../../../_virtual/index.js";import{getUniqueId as r}from"../../../../utils/idGenerator.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";function t(t){const{items:i,name:n,onChange:l,value:c,isInvalid:d,uniqueId:_,ariaLabel:s,style:u="classic"}=t,{i18n:p}=o(),m=_?.replace(/[0-9]/g,"").substring(0,_.lastIndexOf("-"));return e("div",{className:a(["adyen-checkout__radio_group",`adyen-checkout__radio_group--${u}`]),role:"radiogroup",...s&&{"aria-label":s}},i.map((o=>{const i=r(m);return e("div",{key:o.id,className:"adyen-checkout__radio_group__input-wrapper"},e("input",{id:i,type:"radio",checked:c===o.id,className:"adyen-checkout__radio_group__input",name:n,onChange:l,onClick:l,value:o.id}),e("label",{className:a(["adyen-checkout__label__text","adyen-checkout__radio_group__label",t.className,{"adyen-checkout__radio_group__label--invalid":d}]),htmlFor:i},p.get(o.name)))})))}t.defaultProps={onChange:()=>{},items:[]};export{t as default};
2
2
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/components/internal/FormFields/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport './RadioGroup.scss';\nimport { RadioGroupProps } from './types';\nimport { getUniqueId } from '../../../../utils/idGenerator';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\n\nexport default function RadioGroup(props: RadioGroupProps) {\n const { items, name, onChange, value, isInvalid, uniqueId, ariaLabel, style = 'classic' } = props;\n\n const { i18n } = useCoreContext();\n const uniqueIdBase = uniqueId?.replace(/[0-9]/g, '').substring(0, uniqueId.lastIndexOf('-'));\n\n return (\n <div\n className={cx(['adyen-checkout__radio_group', `adyen-checkout__radio_group--${style}`])}\n role={'radiogroup'}\n {...(ariaLabel && { ['aria-label']: ariaLabel })}\n >\n {items.map(item => {\n const uniqueId = getUniqueId(uniqueIdBase);\n return (\n <div key={item.id} className=\"adyen-checkout__radio_group__input-wrapper\">\n <input\n id={uniqueId}\n type=\"radio\"\n checked={value === item.id}\n className=\"adyen-checkout__radio_group__input\"\n name={name}\n onChange={onChange}\n onClick={onChange}\n value={item.id}\n />\n <label\n className={cx([\n 'adyen-checkout__label__text',\n 'adyen-checkout__radio_group__label',\n props.className,\n { 'adyen-checkout__radio_group__label--invalid': isInvalid }\n ])}\n htmlFor={uniqueId}\n >\n {i18n.get(item.name)}\n </label>\n </div>\n );\n })}\n </div>\n );\n}\n\nRadioGroup.defaultProps = {\n onChange: () => {},\n items: []\n};\n"],"names":["RadioGroup","props","items","name","onChange","value","isInvalid","uniqueId","ariaLabel","style","i18n","useCoreContext","uniqueIdBase","replace","substring","lastIndexOf","h","div","className","cx","role","map","item","getUniqueId","key","id","input","type","checked","onClick","label","htmlFor","get","defaultProps"],"mappings":"4QAOe,SAASA,EAAWC,GAC/B,MAAMC,MAAEA,EAAKC,KAAEA,EAAIC,SAAEA,EAAQC,MAAEA,EAAKC,UAAEA,EAASC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAQ,WAAcR,GAEtFS,KAAEA,GAASC,IACXC,EAAeL,GAAUM,QAAQ,SAAU,IAAIC,UAAU,EAAGP,EAASQ,YAAY,MAEvF,OACIC,EAACC,MAAAA,CACGC,UAAWC,EAAG,CAAC,8BAA+B,gCAAgCV,MAC9EW,KAAM,gBACDZ,GAAa,CAAE,aAAgBA,IAEnCN,EAAMmB,KAAIC,IACP,MAAMf,EAAWgB,EAAYX,GAC7B,OACII,EAACC,MAAAA,CAAIO,IAAKF,EAAKG,GAAIP,UAAU,8CACzBF,EAACU,QAAAA,CACGD,GAAIlB,EACJoB,KAAK,QACLC,QAASvB,IAAUiB,EAAKG,GACxBP,UAAU,qCACVf,KAAMA,EACNC,SAAUA,EACVyB,QAASzB,EACTC,MAAOiB,EAAKG,KAEhBT,EAACc,QAAAA,CACGZ,UAAWC,EAAG,CACV,8BACA,qCACAlB,EAAMiB,UACN,CAAE,8CAA+CZ,KAErDyB,QAASxB,GAERG,EAAKsB,IAAIV,EAAKnB,OAAI,IAO/C,CAEAH,EAAWiC,aAAe,CACtB7B,SAAU,OACVF,MAAO"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/components/internal/FormFields/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport './RadioGroup.scss';\nimport { RadioGroupProps } from './types';\nimport { getUniqueId } from '../../../../utils/idGenerator';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\n\nexport default function RadioGroup(props: RadioGroupProps) {\n const { items, name, onChange, value, isInvalid, uniqueId, ariaLabel, style = 'classic' } = props;\n\n const { i18n } = useCoreContext();\n const uniqueIdBase = uniqueId?.replace(/[0-9]/g, '').substring(0, uniqueId.lastIndexOf('-'));\n\n return (\n <div\n className={cx(['adyen-checkout__radio_group', `adyen-checkout__radio_group--${style}`])}\n role={'radiogroup'}\n {...(ariaLabel && { ['aria-label']: ariaLabel })}\n >\n {items.map(item => {\n const uniqueId = getUniqueId(uniqueIdBase);\n return (\n <div key={item.id} className=\"adyen-checkout__radio_group__input-wrapper\">\n <input\n id={uniqueId}\n type=\"radio\"\n checked={value === item.id}\n className=\"adyen-checkout__radio_group__input\"\n name={name}\n onChange={onChange}\n onClick={onChange}\n value={item.id}\n />\n <label\n className={cx([\n 'adyen-checkout__label__text',\n 'adyen-checkout__radio_group__label',\n props.className,\n { 'adyen-checkout__radio_group__label--invalid': isInvalid }\n ])}\n htmlFor={uniqueId}\n >\n {i18n.get(item.name)}\n </label>\n </div>\n );\n })}\n </div>\n );\n}\n\nRadioGroup.defaultProps = {\n onChange: () => {},\n items: []\n};\n"],"names":["RadioGroup","props","items","name","onChange","value","isInvalid","uniqueId","ariaLabel","style","i18n","useCoreContext","uniqueIdBase","replace","substring","lastIndexOf","h","div","className","cx","role","map","item","getUniqueId","key","id","input","type","checked","onClick","label","htmlFor","get","defaultProps"],"mappings":"iQAOe,SAASA,EAAWC,GAC/B,MAAMC,MAAEA,EAAKC,KAAEA,EAAIC,SAAEA,EAAQC,MAAEA,EAAKC,UAAEA,EAASC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAQ,WAAcR,GAEtFS,KAAEA,GAASC,IACXC,EAAeL,GAAUM,QAAQ,SAAU,IAAIC,UAAU,EAAGP,EAASQ,YAAY,MAEvF,OACIC,EAACC,MAAAA,CACGC,UAAWC,EAAG,CAAC,8BAA+B,gCAAgCV,MAC9EW,KAAM,gBACDZ,GAAa,CAAE,aAAgBA,IAEnCN,EAAMmB,KAAIC,IACP,MAAMf,EAAWgB,EAAYX,GAC7B,OACII,EAACC,MAAAA,CAAIO,IAAKF,EAAKG,GAAIP,UAAU,8CACzBF,EAACU,QAAAA,CACGD,GAAIlB,EACJoB,KAAK,QACLC,QAASvB,IAAUiB,EAAKG,GACxBP,UAAU,qCACVf,KAAMA,EACNC,SAAUA,EACVyB,QAASzB,EACTC,MAAOiB,EAAKG,KAEhBT,EAACc,QAAAA,CACGZ,UAAWC,EAAG,CACV,8BACA,qCACAlB,EAAMiB,UACN,CAAE,8CAA+CZ,KAErDyB,QAASxB,GAERG,EAAKsB,IAAIV,EAAKnB,OAAI,IAO/C,CAEAH,EAAWiC,aAAe,CACtB7B,SAAU,OACVF,MAAO"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useRef as t,useState as n,useMemo as r,useEffect as s}from"../../../../external/preact/hooks/dist/hooks.js";import l from"../../../../external/classnames/index.js";import o from"./components/SelectButton.js";import a from"./components/SelectList.js";import i from"../../../../utils/uuid.js";import{keys as c}from"./constants.js";import{ARIA_ERROR_SUFFIX as u,ARIA_CONTEXT_SUFFIX as d}from"../../../../core/Errors/constants.js";import{simulateFocusScroll as m}from"../utils.js";function f({items:f=[],className:p="",classNameModifiers:g=[],filterable:h=!0,readonly:v=!1,onChange:b=()=>{},onInput:w,selectedValue:y,name:k,isInvalid:I,isValid:L,placeholder:D,uniqueId:j,disabled:x,disableTextFilter:B,clearOnSelect:E,blurOnClose:T,onListToggle:C,allowIdOnButton:N=!1,required:S}){const $=t(null),M=t(null),O=t(null),R=t(null),[_,q]=n(null),[P,V]=n(!1),A=r((()=>`select-${i()}`),[]),F=f.find((e=>e.id===y))||{},[H,K]=n(),[U,z]=n(F),G=F,J=B?f:f.filter((e=>!_||e.name.toLowerCase().includes(_.toLowerCase()))),Q=j?`${j}${I?u:d}`:null,W=e=>{if(!e)return;const t=document.getElementById(`listItem-${e.id}`);m(t)},X=()=>{T&&$.current.blur(),V(!1)},Y=()=>{V(!0)},Z=e=>{const t=e.currentTarget.getAttribute("data-value");return J.find((e=>e.id==t))},ee=e=>{let t;e.preventDefault(),t=e.currentTarget instanceof HTMLElement&&"option"===e.currentTarget.getAttribute("role")?Z(e):U.id&&J.some((e=>e.id===U.id))?U:_?J[0]:{id:y},t&&!t.disabled&&(b({target:{value:t.id,name:k}}),E&&K(null),X())},te=e=>{switch(e.key){case c.space:case c.enter:ee(e);break;case c.arrowDown:e.preventDefault(),(()=>{if(!J||J.length<1)return;const e=J.findIndex((e=>e===U))+1,t=e<J.length?e:0,n=J[t];W(n),z(n)})();break;case c.arrowUp:e.preventDefault(),(()=>{if(!J||J.length<1)return;const e=J.findIndex((e=>e===U))-1,t=e<0?J.length-1:e,n=J[t];W(n),z(n)})()}};return s((()=>{P?K(null):q(null)}),[P]),s((()=>{P&&h&&$.current&&$.current.focus(),C?.(P)}),[P]),s((()=>{function e(e){(e.composedPath?!e.composedPath().includes(M.current):!M.current.contains(e.target))&&X()}return document.addEventListener("click",e,!1),()=>{document.removeEventListener("click",e,!1)}}),[M]),e("div",{className:l(["adyen-checkout__dropdown",p,...g.map((e=>`adyen-checkout__dropdown--${e}`))]),ref:M},e(o,{inputText:H,id:j??null,active:U,selected:G,filterInputRef:$,filterable:h,isInvalid:I,isValid:L,onButtonKeyDown:e=>{e.key===c.enter&&h&&P&&_?ee(e):e.key===c.escape?X():![c.arrowUp,c.arrowDown,c.enter].includes(e.key)&&(e.key!==c.space||h&&P)?(e.shiftKey&&e.key===c.tab||e.key===c.tab)&&X():(e.preventDefault(),P?te(e):Y())},onFocus:Y,onInput:e=>{const t=e.target.value;K(t),q(t),w&&w(t)},placeholder:D,readonly:v,selectListId:A,showList:P,toggleButtonRef:O,toggleList:e=>{e.preventDefault(),P?(K(G.name),X()):(K(null),Y())},disabled:x,ariaDescribedBy:Q,allowIdOnButton:N,required:S}),e(a,{active:U,filteredItems:J,onHover:e=>{e.preventDefault();const t=Z(e);z(t)},onSelect:ee,selected:G,selectListId:A,selectListRef:R,showList:P}))}f.defaultProps={className:"",classNameModifiers:[],filterable:!0,items:[],readonly:!1,onChange:()=>{}};export{f as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useRef as t,useState as n,useMemo as r,useEffect as l}from"../../../../external/preact/hooks/dist/hooks.js";import s from"../../../../_virtual/index.js";import o from"./components/SelectButton.js";import a from"./components/SelectList.js";import i from"../../../../utils/uuid.js";import{keys as c}from"./constants.js";import{ARIA_ERROR_SUFFIX as u,ARIA_CONTEXT_SUFFIX as d}from"../../../../core/Errors/constants.js";import{simulateFocusScroll as m}from"../utils.js";function f({items:f=[],className:p="",classNameModifiers:g=[],filterable:v=!0,readonly:h=!1,onChange:b=()=>{},onInput:w,selectedValue:y,name:k,isInvalid:I,isValid:L,placeholder:D,uniqueId:j,disabled:x,disableTextFilter:B,clearOnSelect:E,blurOnClose:T,onListToggle:C,allowIdOnButton:N=!1,required:S}){const $=t(null),_=t(null),M=t(null),O=t(null),[R,q]=n(null),[P,V]=n(!1),A=r((()=>`select-${i()}`),[]),F=f.find((e=>e.id===y))||{},[H,K]=n(),[U,z]=n(F),G=F,J=B?f:f.filter((e=>!R||e.name.toLowerCase().includes(R.toLowerCase()))),Q=j?`${j}${I?u:d}`:null,W=e=>{if(!e)return;const t=document.getElementById(`listItem-${e.id}`);m(t)},X=()=>{T&&$.current.blur(),V(!1)},Y=()=>{V(!0)},Z=e=>{const t=e.currentTarget.getAttribute("data-value");return J.find((e=>e.id==t))},ee=e=>{let t;e.preventDefault(),t=e.currentTarget instanceof HTMLElement&&"option"===e.currentTarget.getAttribute("role")?Z(e):U.id&&J.some((e=>e.id===U.id))?U:R?J[0]:{id:y},t&&!t.disabled&&(b({target:{value:t.id,name:k}}),E&&K(null),X())},te=e=>{switch(e.key){case c.space:case c.enter:ee(e);break;case c.arrowDown:e.preventDefault(),(()=>{if(!J||J.length<1)return;const e=J.findIndex((e=>e===U))+1,t=e<J.length?e:0,n=J[t];W(n),z(n)})();break;case c.arrowUp:e.preventDefault(),(()=>{if(!J||J.length<1)return;const e=J.findIndex((e=>e===U))-1,t=e<0?J.length-1:e,n=J[t];W(n),z(n)})()}};return l((()=>{P?K(null):q(null)}),[P]),l((()=>{P&&v&&$.current&&$.current.focus(),C?.(P)}),[P]),l((()=>{function e(e){(e.composedPath?!e.composedPath().includes(_.current):!_.current.contains(e.target))&&X()}return document.addEventListener("click",e,!1),()=>{document.removeEventListener("click",e,!1)}}),[_]),e("div",{className:s(["adyen-checkout__dropdown",p,...g.map((e=>`adyen-checkout__dropdown--${e}`))]),ref:_},e(o,{inputText:H,id:j??null,active:U,selected:G,filterInputRef:$,filterable:v,isInvalid:I,isValid:L,onButtonKeyDown:e=>{e.key===c.enter&&v&&P&&R?ee(e):e.key===c.escape?X():![c.arrowUp,c.arrowDown,c.enter].includes(e.key)&&(e.key!==c.space||v&&P)?(e.shiftKey&&e.key===c.tab||e.key===c.tab)&&X():(e.preventDefault(),P?te(e):Y())},onFocus:Y,onInput:e=>{const t=e.target.value;K(t),q(t),w&&w(t)},placeholder:D,readonly:h,selectListId:A,showList:P,toggleButtonRef:M,toggleList:e=>{e.preventDefault(),P?(K(G.name),X()):(K(null),Y())},disabled:x,ariaDescribedBy:Q,allowIdOnButton:N,required:S}),e(a,{active:U,filteredItems:J,onHover:e=>{e.preventDefault();const t=Z(e);z(t)},onSelect:ee,selected:G,selectListId:A,selectListRef:O,showList:P}))}f.defaultProps={className:"",classNameModifiers:[],filterable:!0,items:[],readonly:!1,onChange:()=>{}};export{f as default};
2
2
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../../../src/components/internal/FormFields/Select/Select.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport SelectButton from './components/SelectButton';\nimport SelectList from './components/SelectList';\nimport uuid from '../../../../utils/uuid';\nimport { keys } from './constants';\nimport { SelectItem, SelectProps } from './types';\nimport './Select.scss';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../../core/Errors/constants';\nimport { simulateFocusScroll } from '../utils';\n\nfunction Select({\n items = [],\n className = '',\n classNameModifiers = [],\n filterable = true,\n readonly = false,\n onChange = () => {},\n onInput,\n selectedValue,\n name,\n isInvalid,\n isValid,\n placeholder,\n uniqueId,\n disabled,\n disableTextFilter,\n clearOnSelect,\n blurOnClose,\n onListToggle,\n allowIdOnButton = false,\n required\n}: SelectProps) {\n const filterInputRef = useRef(null);\n const selectContainerRef = useRef(null);\n const toggleButtonRef = useRef(null);\n const selectListRef = useRef(null);\n const [textFilter, setTextFilter] = useState<string>(null);\n const [showList, setShowList] = useState<boolean>(false);\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n\n const active: SelectItem = items.find(i => i.id === selectedValue) || ({} as SelectItem);\n\n const [inputText, setInputText] = useState<string>();\n\n const [activeOption, setActiveOption] = useState<SelectItem>(active);\n\n const selectedOption = active;\n\n const filteredItems = disableTextFilter ? items : items.filter(item => !textFilter || item.name.toLowerCase().includes(textFilter.toLowerCase()));\n\n const suffix = isInvalid ? ARIA_ERROR_SUFFIX : ARIA_CONTEXT_SUFFIX;\n const ariaDescribedBy = uniqueId ? `${uniqueId}${suffix}` : null;\n\n const setNextActive = () => {\n if (!filteredItems || filteredItems.length < 1) return;\n const possibleNextIndex = filteredItems.findIndex(listItem => listItem === activeOption) + 1;\n const nextIndex = possibleNextIndex < filteredItems.length ? possibleNextIndex : 0;\n const nextItem = filteredItems[nextIndex];\n scrollToItem(nextItem);\n setActiveOption(nextItem);\n };\n\n const setPreviousActive = () => {\n if (!filteredItems || filteredItems.length < 1) return;\n const possibleNextIndex = filteredItems.findIndex(listItem => listItem === activeOption) - 1;\n const nextIndex = possibleNextIndex < 0 ? filteredItems.length - 1 : possibleNextIndex;\n const nextItem = filteredItems[nextIndex];\n scrollToItem(nextItem);\n setActiveOption(nextItem);\n };\n\n const scrollToItem = (item: SelectItem) => {\n if (!item) return;\n const nextElement = document.getElementById(`listItem-${item.id}`);\n simulateFocusScroll(nextElement);\n };\n\n /**\n * Closes the selectList, empties the text filter and focuses the button element\n */\n const closeList = () => {\n //blurs the field when the list is closed, makes for a better UX for most users, needs more testing\n blurOnClose && filterInputRef.current.blur();\n setShowList(false);\n };\n\n const openList = () => {\n setShowList(true);\n };\n\n const extractItemFromEvent = (e: Event): SelectItem => {\n const value = (e.currentTarget as HTMLInputElement).getAttribute('data-value');\n return filteredItems.find(listItem => listItem.id == value);\n };\n\n /**\n * Closes the select list and fires an onChange\n * @param e - Event\n */\n const handleSelect = (e: Event) => {\n e.preventDefault();\n\n // We use a local variable here since writing and if statement is cleaner then a long ternary\n let valueToEmit;\n\n if (e.currentTarget instanceof HTMLElement && e.currentTarget.getAttribute('role') === 'option') {\n // This is the main scenario when clicking and item in the list\n // Item comes from the event\n valueToEmit = extractItemFromEvent(e);\n } else if (activeOption.id && filteredItems.some(item => item.id === activeOption.id)) {\n // This is the scenario where a user is using the keyboard to navigate\n // In the case item comes from the visually select item\n valueToEmit = activeOption;\n } else {\n // This is the scenario the user didn't select anything\n if (textFilter) {\n // if we filtering for something then select the first option\n valueToEmit = filteredItems[0];\n } else {\n // This will happen when we want to keep an already chosen option\n // If no active option we should just emit again with the value that was already selected\n valueToEmit = { id: selectedValue };\n }\n }\n\n if (valueToEmit && !valueToEmit.disabled) {\n onChange({ target: { value: valueToEmit.id, name: name } });\n\n if (clearOnSelect) setInputText(null);\n\n closeList();\n }\n };\n\n /**\n * Handles hovering and directions\n * @param e - Event\n */\n const handleHover = (e: Event) => {\n e.preventDefault();\n const item = extractItemFromEvent(e);\n setActiveOption(item);\n };\n\n /**\n * Handle keyDown events on the selectList button\n * Responsible for opening and closing the list\n * @param e - KeyboardEvent\n */\n const handleButtonKeyDown = (e: KeyboardEvent) => {\n if (e.key === keys.enter && filterable && showList && textFilter) {\n handleSelect(e);\n } else if (e.key === keys.escape) {\n // When user has focused Select button but not yet moved into Select list - close list and keep focus on the Select Button re. a11y guidelines\n // https://w3c.github.io/aria-practices/examples/disclosure/disclosure-navigation.html\n closeList();\n } else if ([keys.arrowUp, keys.arrowDown, keys.enter].includes(e.key) || (e.key === keys.space && (!filterable || !showList))) {\n e.preventDefault();\n if (!showList) {\n openList();\n } else {\n handleNavigationKeys(e);\n }\n } else if (e.shiftKey && e.key === keys.tab) {\n // Shift-Tab out of Select - close list re. a11y guidelines (above)\n closeList();\n } else if (e.key === keys.tab) {\n closeList();\n }\n };\n\n /**\n * Handles movement with navigation keys and enter\n * Navigates through the list, or select an element, or focus the filter input, or close the menu.\n * @param e - KeyDownEvent\n */\n const handleNavigationKeys = (e: KeyboardEvent) => {\n switch (e.key) {\n case keys.space:\n case keys.enter:\n handleSelect(e);\n break;\n case keys.arrowDown:\n e.preventDefault();\n setNextActive();\n break;\n case keys.arrowUp:\n e.preventDefault();\n setPreviousActive();\n break;\n default:\n }\n };\n\n /**\n * Updates the state with the current text filter value\n * @param e - KeyboardEvent\n */\n const handleTextFilter = (e: KeyboardEvent) => {\n const value: string = (e.target as HTMLInputElement).value;\n setInputText(value);\n setTextFilter(value);\n if (onInput) {\n onInput(value);\n }\n };\n\n /**\n * Toggles the selectList and focuses in either the filter input or in the selectList button\n * @param e - Event\n */\n const toggleList = (e: Event) => {\n e.preventDefault();\n if (!showList) {\n setInputText(null);\n openList();\n } else {\n setInputText(selectedOption.name);\n closeList();\n }\n };\n\n useEffect(() => {\n if (showList) {\n setInputText(null);\n } else {\n setTextFilter(null);\n }\n }, [showList]);\n\n /**\n * Focus on the input if filterable\n */\n useEffect(() => {\n if (showList && filterable && filterInputRef.current) {\n filterInputRef.current.focus();\n }\n onListToggle?.(showList);\n }, [showList]);\n\n useEffect(() => {\n /**\n * Close the select list when clicking outside the list\n * @param e - MouseEvent\n */\n function handleClickOutside(e: MouseEvent) {\n // use composedPath so it can also check when inside a web component\n // if composedPath is not available fallback to e.target\n const clickIsOutside = e.composedPath\n ? !e.composedPath().includes(selectContainerRef.current)\n : !selectContainerRef.current.contains(e.target);\n if (clickIsOutside) {\n closeList();\n }\n }\n\n document.addEventListener('click', handleClickOutside, false);\n\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, [selectContainerRef]);\n\n return (\n <div\n className={cx(['adyen-checkout__dropdown', className, ...classNameModifiers.map(m => `adyen-checkout__dropdown--${m}`)])}\n ref={selectContainerRef}\n >\n <SelectButton\n inputText={inputText}\n id={uniqueId ?? null}\n active={activeOption}\n selected={selectedOption}\n filterInputRef={filterInputRef}\n filterable={filterable}\n isInvalid={isInvalid}\n isValid={isValid}\n onButtonKeyDown={handleButtonKeyDown}\n onFocus={openList}\n onInput={handleTextFilter}\n placeholder={placeholder}\n readonly={readonly}\n selectListId={selectListId}\n showList={showList}\n toggleButtonRef={toggleButtonRef}\n toggleList={toggleList}\n disabled={disabled}\n ariaDescribedBy={ariaDescribedBy}\n allowIdOnButton={allowIdOnButton}\n required={required}\n />\n <SelectList\n active={activeOption}\n filteredItems={filteredItems}\n onHover={handleHover}\n onSelect={handleSelect}\n selected={selectedOption}\n selectListId={selectListId}\n selectListRef={selectListRef}\n showList={showList}\n />\n </div>\n );\n}\n\nSelect.defaultProps = {\n className: '',\n classNameModifiers: [],\n filterable: true,\n items: [],\n readonly: false,\n onChange: () => {}\n};\n\nexport default Select;\n"],"names":["Select","items","className","classNameModifiers","filterable","readonly","onChange","onInput","selectedValue","name","isInvalid","isValid","placeholder","uniqueId","disabled","disableTextFilter","clearOnSelect","blurOnClose","onListToggle","allowIdOnButton","required","filterInputRef","useRef","selectContainerRef","toggleButtonRef","selectListRef","textFilter","setTextFilter","useState","showList","setShowList","selectListId","useMemo","uuid","active","find","i","id","inputText","setInputText","activeOption","setActiveOption","selectedOption","filteredItems","filter","item","toLowerCase","includes","ariaDescribedBy","ARIA_ERROR_SUFFIX","ARIA_CONTEXT_SUFFIX","scrollToItem","nextElement","document","getElementById","simulateFocusScroll","closeList","current","blur","openList","extractItemFromEvent","e","value","currentTarget","getAttribute","listItem","handleSelect","valueToEmit","preventDefault","HTMLElement","some","target","handleNavigationKeys","key","keys","space","enter","arrowDown","length","possibleNextIndex","findIndex","nextIndex","nextItem","setNextActive","arrowUp","setPreviousActive","useEffect","focus","handleClickOutside","composedPath","contains","addEventListener","removeEventListener","h","div","cx","map","m","ref","SelectButton","selected","onButtonKeyDown","escape","shiftKey","tab","onFocus","toggleList","SelectList","onHover","onSelect","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../../../src/components/internal/FormFields/Select/Select.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport SelectButton from './components/SelectButton';\nimport SelectList from './components/SelectList';\nimport uuid from '../../../../utils/uuid';\nimport { keys } from './constants';\nimport { SelectItem, SelectProps } from './types';\nimport './Select.scss';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../../core/Errors/constants';\nimport { simulateFocusScroll } from '../utils';\n\nfunction Select({\n items = [],\n className = '',\n classNameModifiers = [],\n filterable = true,\n readonly = false,\n onChange = () => {},\n onInput,\n selectedValue,\n name,\n isInvalid,\n isValid,\n placeholder,\n uniqueId,\n disabled,\n disableTextFilter,\n clearOnSelect,\n blurOnClose,\n onListToggle,\n allowIdOnButton = false,\n required\n}: SelectProps) {\n const filterInputRef = useRef(null);\n const selectContainerRef = useRef(null);\n const toggleButtonRef = useRef(null);\n const selectListRef = useRef(null);\n const [textFilter, setTextFilter] = useState<string>(null);\n const [showList, setShowList] = useState<boolean>(false);\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n\n const active: SelectItem = items.find(i => i.id === selectedValue) || ({} as SelectItem);\n\n const [inputText, setInputText] = useState<string>();\n\n const [activeOption, setActiveOption] = useState<SelectItem>(active);\n\n const selectedOption = active;\n\n const filteredItems = disableTextFilter ? items : items.filter(item => !textFilter || item.name.toLowerCase().includes(textFilter.toLowerCase()));\n\n const suffix = isInvalid ? ARIA_ERROR_SUFFIX : ARIA_CONTEXT_SUFFIX;\n const ariaDescribedBy = uniqueId ? `${uniqueId}${suffix}` : null;\n\n const setNextActive = () => {\n if (!filteredItems || filteredItems.length < 1) return;\n const possibleNextIndex = filteredItems.findIndex(listItem => listItem === activeOption) + 1;\n const nextIndex = possibleNextIndex < filteredItems.length ? possibleNextIndex : 0;\n const nextItem = filteredItems[nextIndex];\n scrollToItem(nextItem);\n setActiveOption(nextItem);\n };\n\n const setPreviousActive = () => {\n if (!filteredItems || filteredItems.length < 1) return;\n const possibleNextIndex = filteredItems.findIndex(listItem => listItem === activeOption) - 1;\n const nextIndex = possibleNextIndex < 0 ? filteredItems.length - 1 : possibleNextIndex;\n const nextItem = filteredItems[nextIndex];\n scrollToItem(nextItem);\n setActiveOption(nextItem);\n };\n\n const scrollToItem = (item: SelectItem) => {\n if (!item) return;\n const nextElement = document.getElementById(`listItem-${item.id}`);\n simulateFocusScroll(nextElement);\n };\n\n /**\n * Closes the selectList, empties the text filter and focuses the button element\n */\n const closeList = () => {\n //blurs the field when the list is closed, makes for a better UX for most users, needs more testing\n blurOnClose && filterInputRef.current.blur();\n setShowList(false);\n };\n\n const openList = () => {\n setShowList(true);\n };\n\n const extractItemFromEvent = (e: Event): SelectItem => {\n const value = (e.currentTarget as HTMLInputElement).getAttribute('data-value');\n return filteredItems.find(listItem => listItem.id == value);\n };\n\n /**\n * Closes the select list and fires an onChange\n * @param e - Event\n */\n const handleSelect = (e: Event) => {\n e.preventDefault();\n\n // We use a local variable here since writing and if statement is cleaner then a long ternary\n let valueToEmit;\n\n if (e.currentTarget instanceof HTMLElement && e.currentTarget.getAttribute('role') === 'option') {\n // This is the main scenario when clicking and item in the list\n // Item comes from the event\n valueToEmit = extractItemFromEvent(e);\n } else if (activeOption.id && filteredItems.some(item => item.id === activeOption.id)) {\n // This is the scenario where a user is using the keyboard to navigate\n // In the case item comes from the visually select item\n valueToEmit = activeOption;\n } else {\n // This is the scenario the user didn't select anything\n if (textFilter) {\n // if we filtering for something then select the first option\n valueToEmit = filteredItems[0];\n } else {\n // This will happen when we want to keep an already chosen option\n // If no active option we should just emit again with the value that was already selected\n valueToEmit = { id: selectedValue };\n }\n }\n\n if (valueToEmit && !valueToEmit.disabled) {\n onChange({ target: { value: valueToEmit.id, name: name } });\n\n if (clearOnSelect) setInputText(null);\n\n closeList();\n }\n };\n\n /**\n * Handles hovering and directions\n * @param e - Event\n */\n const handleHover = (e: Event) => {\n e.preventDefault();\n const item = extractItemFromEvent(e);\n setActiveOption(item);\n };\n\n /**\n * Handle keyDown events on the selectList button\n * Responsible for opening and closing the list\n * @param e - KeyboardEvent\n */\n const handleButtonKeyDown = (e: KeyboardEvent) => {\n if (e.key === keys.enter && filterable && showList && textFilter) {\n handleSelect(e);\n } else if (e.key === keys.escape) {\n // When user has focused Select button but not yet moved into Select list - close list and keep focus on the Select Button re. a11y guidelines\n // https://w3c.github.io/aria-practices/examples/disclosure/disclosure-navigation.html\n closeList();\n } else if ([keys.arrowUp, keys.arrowDown, keys.enter].includes(e.key) || (e.key === keys.space && (!filterable || !showList))) {\n e.preventDefault();\n if (!showList) {\n openList();\n } else {\n handleNavigationKeys(e);\n }\n } else if (e.shiftKey && e.key === keys.tab) {\n // Shift-Tab out of Select - close list re. a11y guidelines (above)\n closeList();\n } else if (e.key === keys.tab) {\n closeList();\n }\n };\n\n /**\n * Handles movement with navigation keys and enter\n * Navigates through the list, or select an element, or focus the filter input, or close the menu.\n * @param e - KeyDownEvent\n */\n const handleNavigationKeys = (e: KeyboardEvent) => {\n switch (e.key) {\n case keys.space:\n case keys.enter:\n handleSelect(e);\n break;\n case keys.arrowDown:\n e.preventDefault();\n setNextActive();\n break;\n case keys.arrowUp:\n e.preventDefault();\n setPreviousActive();\n break;\n default:\n }\n };\n\n /**\n * Updates the state with the current text filter value\n * @param e - KeyboardEvent\n */\n const handleTextFilter = (e: KeyboardEvent) => {\n const value: string = (e.target as HTMLInputElement).value;\n setInputText(value);\n setTextFilter(value);\n if (onInput) {\n onInput(value);\n }\n };\n\n /**\n * Toggles the selectList and focuses in either the filter input or in the selectList button\n * @param e - Event\n */\n const toggleList = (e: Event) => {\n e.preventDefault();\n if (!showList) {\n setInputText(null);\n openList();\n } else {\n setInputText(selectedOption.name);\n closeList();\n }\n };\n\n useEffect(() => {\n if (showList) {\n setInputText(null);\n } else {\n setTextFilter(null);\n }\n }, [showList]);\n\n /**\n * Focus on the input if filterable\n */\n useEffect(() => {\n if (showList && filterable && filterInputRef.current) {\n filterInputRef.current.focus();\n }\n onListToggle?.(showList);\n }, [showList]);\n\n useEffect(() => {\n /**\n * Close the select list when clicking outside the list\n * @param e - MouseEvent\n */\n function handleClickOutside(e: MouseEvent) {\n // use composedPath so it can also check when inside a web component\n // if composedPath is not available fallback to e.target\n const clickIsOutside = e.composedPath\n ? !e.composedPath().includes(selectContainerRef.current)\n : !selectContainerRef.current.contains(e.target);\n if (clickIsOutside) {\n closeList();\n }\n }\n\n document.addEventListener('click', handleClickOutside, false);\n\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, [selectContainerRef]);\n\n return (\n <div\n className={cx(['adyen-checkout__dropdown', className, ...classNameModifiers.map(m => `adyen-checkout__dropdown--${m}`)])}\n ref={selectContainerRef}\n >\n <SelectButton\n inputText={inputText}\n id={uniqueId ?? null}\n active={activeOption}\n selected={selectedOption}\n filterInputRef={filterInputRef}\n filterable={filterable}\n isInvalid={isInvalid}\n isValid={isValid}\n onButtonKeyDown={handleButtonKeyDown}\n onFocus={openList}\n onInput={handleTextFilter}\n placeholder={placeholder}\n readonly={readonly}\n selectListId={selectListId}\n showList={showList}\n toggleButtonRef={toggleButtonRef}\n toggleList={toggleList}\n disabled={disabled}\n ariaDescribedBy={ariaDescribedBy}\n allowIdOnButton={allowIdOnButton}\n required={required}\n />\n <SelectList\n active={activeOption}\n filteredItems={filteredItems}\n onHover={handleHover}\n onSelect={handleSelect}\n selected={selectedOption}\n selectListId={selectListId}\n selectListRef={selectListRef}\n showList={showList}\n />\n </div>\n );\n}\n\nSelect.defaultProps = {\n className: '',\n classNameModifiers: [],\n filterable: true,\n items: [],\n readonly: false,\n onChange: () => {}\n};\n\nexport default Select;\n"],"names":["Select","items","className","classNameModifiers","filterable","readonly","onChange","onInput","selectedValue","name","isInvalid","isValid","placeholder","uniqueId","disabled","disableTextFilter","clearOnSelect","blurOnClose","onListToggle","allowIdOnButton","required","filterInputRef","useRef","selectContainerRef","toggleButtonRef","selectListRef","textFilter","setTextFilter","useState","showList","setShowList","selectListId","useMemo","uuid","active","find","i","id","inputText","setInputText","activeOption","setActiveOption","selectedOption","filteredItems","filter","item","toLowerCase","includes","ariaDescribedBy","ARIA_ERROR_SUFFIX","ARIA_CONTEXT_SUFFIX","scrollToItem","nextElement","document","getElementById","simulateFocusScroll","closeList","current","blur","openList","extractItemFromEvent","e","value","currentTarget","getAttribute","listItem","handleSelect","valueToEmit","preventDefault","HTMLElement","some","target","handleNavigationKeys","key","keys","space","enter","arrowDown","length","possibleNextIndex","findIndex","nextIndex","nextItem","setNextActive","arrowUp","setPreviousActive","useEffect","focus","handleClickOutside","composedPath","contains","addEventListener","removeEventListener","h","div","cx","map","m","ref","SelectButton","selected","onButtonKeyDown","escape","shiftKey","tab","onFocus","toggleList","SelectList","onHover","onSelect","defaultProps"],"mappings":"oiBAYA,SAASA,GAAOC,MACZA,EAAQ,GAAEC,UACVA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,WACvBA,GAAa,EAAIC,SACjBA,GAAW,EAAKC,SAChBA,EAAW,OAAQC,QACnBA,EAAOC,cACPA,EAAaC,KACbA,EAAIC,UACJA,EAASC,QACTA,EAAOC,YACPA,EAAWC,SACXA,EAAQC,SACRA,EAAQC,kBACRA,EAAiBC,cACjBA,EAAaC,YACbA,EAAWC,aACXA,EAAYC,gBACZA,GAAkB,EAAKC,SACvBA,IAEA,MAAMC,EAAiBC,EAAO,MACxBC,EAAqBD,EAAO,MAC5BE,EAAkBF,EAAO,MACzBG,EAAgBH,EAAO,OACtBI,EAAYC,GAAiBC,EAAiB,OAC9CC,EAAUC,GAAeF,GAAkB,GAC5CG,EAAuBC,GAAQ,IAAM,UAAUC,OAAU,IAEzDC,EAAqBjC,EAAMkC,MAAKC,GAAKA,EAAEC,KAAO7B,KAAmB,CAAC,GAEjE8B,EAAWC,GAAgBX,KAE3BY,EAAcC,GAAmBb,EAAqBM,GAEvDQ,EAAiBR,EAEjBS,EAAgB5B,EAAoBd,EAAQA,EAAM2C,QAAOC,IAASnB,GAAcmB,EAAKpC,KAAKqC,cAAcC,SAASrB,EAAWoB,iBAG5HE,EAAkBnC,EAAW,GAAGA,IADvBH,EAAYuC,EAAoBC,IACa,KAoBtDC,EAAgBN,IAClB,IAAKA,EAAM,OACX,MAAMO,EAAcC,SAASC,eAAe,YAAYT,EAAKR,MAC7DkB,EAAoBH,EAAAA,EAMlBI,EAAY,KAEdvC,GAAeI,EAAeoC,QAAQC,OACtC5B,GAAY,EAAA,EAGV6B,EAAW,KACb7B,GAAY,EAAA,EAGV8B,EAAwBC,IAC1B,MAAMC,EAAQD,EAAGE,cAAmCC,aAAa,cACjE,OAAOrB,EAAcR,MAAK8B,GAAYA,EAAS5B,IAAMyB,GAAAA,EAOnDI,GAAgBL,IAIlB,IAAIM,EAHJN,EAAEO,iBAQED,EAHAN,EAAEE,yBAAyBM,aAAwD,WAAzCR,EAAEE,cAAcC,aAAa,QAGzDJ,EAAqBC,GAC5BrB,EAAaH,IAAMM,EAAc2B,MAAKzB,GAAQA,EAAKR,KAAOG,EAAaH,KAGhEG,EAGVd,EAEciB,EAAc,GAId,CAAEN,GAAI7B,GAIxB2D,IAAgBA,EAAYrD,WAC5BR,EAAS,CAAEiE,OAAQ,CAAET,MAAOK,EAAY9B,GAAI5B,KAAMA,KAE9CO,GAAeuB,EAAa,MAEhCiB,IACJ,EA6CEgB,GAAwBX,IAC1B,OAAQA,EAAEY,KACN,KAAKC,EAAKC,MACV,KAAKD,EAAKE,MACNV,GAAaL,GACb,MACJ,KAAKa,EAAKG,UACNhB,EAAEO,iBAlIQ,MAClB,IAAKzB,GAAiBA,EAAcmC,OAAS,EAAG,OAChD,MAAMC,EAAoBpC,EAAcqC,WAAUf,GAAYA,IAAazB,IAAgB,EACrFyC,EAAYF,EAAoBpC,EAAcmC,OAASC,EAAoB,EAC3EG,EAAWvC,EAAcsC,GAC/B9B,EAAa+B,GACbzC,EAAgByC,EAAAA,EA6HRC,GACA,MACJ,KAAKT,EAAKU,QACNvB,EAAEO,iBA7HY,MACtB,IAAKzB,GAAiBA,EAAcmC,OAAS,EAAG,OAChD,MAAMC,EAAoBpC,EAAcqC,WAAUf,GAAYA,IAAazB,IAAgB,EACrFyC,EAAYF,EAAoB,EAAIpC,EAAcmC,OAAS,EAAIC,EAC/DG,EAAWvC,EAAcsC,GAC/B9B,EAAa+B,GACbzC,EAAgByC,EAAAA,EAwHRG,GAGR,EAwEJ,OAzCAC,GAAU,KACFzD,EACAU,EAAa,MAEbZ,EAAc,KAClB,GACD,CAACE,IAKJyD,GAAU,KACFzD,GAAYzB,GAAciB,EAAeoC,SACzCpC,EAAeoC,QAAQ8B,QAE3BrE,IAAeW,EAAAA,GAChB,CAACA,IAEJyD,GAAU,KAKN,SAASE,EAAmB3B,IAGDA,EAAE4B,cAClB5B,EAAE4B,eAAe1C,SAASxB,EAAmBkC,UAC7ClC,EAAmBkC,QAAQiC,SAAS7B,EAAEU,UAEzCf,GAER,CAIA,OAFAH,SAASsC,iBAAiB,QAASH,GAAoB,GAEhD,KACHnC,SAASuC,oBAAoB,QAASJ,GAAoB,EAAA,CAC9D,GACD,CAACjE,IAGAsE,EAACC,MAAAA,CACG5F,UAAW6F,EAAG,CAAC,2BAA4B7F,KAAcC,EAAmB6F,KAAIC,GAAK,6BAA6BA,QAClHC,IAAK3E,GAELsE,EAACM,EAAAA,CACG7D,UAAWA,EACXD,GAAIxB,GAAY,KAChBqB,OAAQM,EACR4D,SAAU1D,EACVrB,eAAgBA,EAChBjB,WAAYA,EACZM,UAAWA,EACXC,QAASA,EACT0F,gBAhIiBxC,IACrBA,EAAEY,MAAQC,EAAKE,OAASxE,GAAcyB,GAAYH,EAClDwC,GAAaL,GACNA,EAAEY,MAAQC,EAAK4B,OAGtB9C,KACO,CAACkB,EAAKU,QAASV,EAAKG,UAAWH,EAAKE,OAAO7B,SAASc,EAAEY,OAASZ,EAAEY,MAAQC,EAAKC,OAAWvE,GAAeyB,IAOxGgC,EAAE0C,UAAY1C,EAAEY,MAAQC,EAAK8B,KAG7B3C,EAAEY,MAAQC,EAAK8B,MADtBhD,KARAK,EAAEO,iBACGvC,EAGD2C,GAAqBX,GAFrBF,IASR,EA8GQ8C,QAAS9C,EACTpD,QAjFcsD,IACtB,MAAMC,EAAiBD,EAAEU,OAA4BT,MACrDvB,EAAauB,GACbnC,EAAcmC,GACVvD,GACAA,EAAQuD,EACZ,EA4EQlD,YAAaA,EACbP,SAAUA,EACV0B,aAAcA,EACdF,SAAUA,EACVL,gBAAiBA,EACjBkF,WA1EQ7C,IAChBA,EAAEO,iBACGvC,GAIDU,EAAaG,EAAejC,MAC5B+C,MAJAjB,EAAa,MACboB,IAIJ,EAmEQ7C,SAAUA,EACVkC,gBAAiBA,EACjB7B,gBAAiBA,EACjBC,SAAUA,IAEdyE,EAACc,EAAAA,CACGzE,OAAQM,EACRG,cAAeA,EACfiE,QA5JS/C,IACjBA,EAAEO,iBACF,MAAMvB,EAAOe,EAAqBC,GAClCpB,EAAgBI,EAAAA,EA0JRgE,SAAU3C,GACVkC,SAAU1D,EACVX,aAAcA,EACdN,cAAeA,EACfI,SAAUA,IAI1B,CAEA7B,EAAO8G,aAAe,CAClB5G,UAAW,GACXC,mBAAoB,GACpBC,YAAY,EACZH,MAAO,GACPI,UAAU,EACVC,SAAU"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as t}from"../../../../../external/preact/dist/preact.js";import n from"../../../../../external/classnames/index.js";import o from"../../../Img/Img.js";function a({filterable:t,toggleButtonRef:n,...o}){if(t){const{id:t,...a}=o;return e("div",{...a,ref:n})}return e("button",{id:o.id,"aria-describedby":o.ariaDescribedBy,type:"button",...o,ref:n})}function d(d){const{active:r,selected:c,inputText:i,readonly:l,showList:s,required:u}=d,_=c.selectedOptionName||c.name||d.placeholder||"",p=s?i:_,f=l?null:d.filterable?e=>{e.preventDefault(),document.activeElement===d.filterInputRef.current?d.showList||d.toggleList(e):d.filterInputRef.current&&d.filterInputRef.current.focus()}:d.toggleList,b=l?null:d.onFocus,y=r.id?`listItem-${r.id}`:"";return e(a,{className:n({"adyen-checkout__dropdown__button":!0,"adyen-checkout__dropdown__button--readonly":l,"adyen-checkout__dropdown__button--active":s,"adyen-checkout__dropdown__button--invalid":d.isInvalid,"adyen-checkout__dropdown__button--valid":d.isValid,"adyen-checkout__dropdown__button--disabled":c.disabled}),disabled:d.disabled,filterable:d.filterable,onClick:f,onKeyDown:l?null:d.onButtonKeyDown,toggleButtonRef:d.toggleButtonRef,...d.allowIdOnButton&&d.id&&{id:d.id}},d.filterable?e(t,null,!s&&c.icon&&e(o,{className:"adyen-checkout__dropdown__button__icon",src:c.icon,alt:c.name}),e("input",{value:p,"aria-autocomplete":"list","aria-controls":d.selectListId,"aria-expanded":s,"aria-owns":d.selectListId,autoComplete:"off",className:"adyen-checkout__filter-input",onInput:d.onInput,onFocus:b,ref:d.filterInputRef,role:"combobox","aria-activedescendant":y,type:"text",readOnly:d.readonly,id:d.id,"aria-describedby":d.ariaDescribedBy,required:u}),!s&&c.secondaryText&&e("span",{className:"adyen-checkout__dropdown__button__secondary-text"},c.secondaryText)):e(t,null,c.icon&&e(o,{className:"adyen-checkout__dropdown__button__icon",src:c.icon,alt:c.name}),e("span",{className:"adyen-checkout__dropdown__button__text"},_),c.secondaryText&&e("span",{className:"adyen-checkout__dropdown__button__secondary-text"},c.secondaryText)))}export{d as default};
1
+ import{createElement as e,Fragment as t}from"../../../../../external/preact/dist/preact.js";import n from"../../../../../_virtual/index.js";import o from"../../../Img/Img.js";function a({filterable:t,toggleButtonRef:n,...o}){if(t){const{id:t,...a}=o;return e("div",{...a,ref:n})}return e("button",{id:o.id,"aria-describedby":o.ariaDescribedBy,type:"button",...o,ref:n})}function d(d){const{active:r,selected:i,inputText:c,readonly:l,showList:s,required:u}=d,_=i.selectedOptionName||i.name||d.placeholder||"",p=s?c:_,f=l?null:d.filterable?e=>{e.preventDefault(),document.activeElement===d.filterInputRef.current?d.showList||d.toggleList(e):d.filterInputRef.current&&d.filterInputRef.current.focus()}:d.toggleList,b=l?null:d.onFocus,y=r.id?`listItem-${r.id}`:"";return e(a,{className:n({"adyen-checkout__dropdown__button":!0,"adyen-checkout__dropdown__button--readonly":l,"adyen-checkout__dropdown__button--active":s,"adyen-checkout__dropdown__button--invalid":d.isInvalid,"adyen-checkout__dropdown__button--valid":d.isValid,"adyen-checkout__dropdown__button--disabled":i.disabled}),disabled:d.disabled,filterable:d.filterable,onClick:f,onKeyDown:l?null:d.onButtonKeyDown,toggleButtonRef:d.toggleButtonRef,...d.allowIdOnButton&&d.id&&{id:d.id}},d.filterable?e(t,null,!s&&i.icon&&e(o,{className:"adyen-checkout__dropdown__button__icon",src:i.icon,alt:i.name}),e("input",{value:p,"aria-autocomplete":"list","aria-controls":d.selectListId,"aria-expanded":s,"aria-owns":d.selectListId,autoComplete:"off",className:"adyen-checkout__filter-input",onInput:d.onInput,onFocus:b,ref:d.filterInputRef,role:"combobox","aria-activedescendant":y,type:"text",readOnly:d.readonly,id:d.id,"aria-describedby":d.ariaDescribedBy,required:u}),!s&&i.secondaryText&&e("span",{className:"adyen-checkout__dropdown__button__secondary-text"},i.secondaryText)):e(t,null,i.icon&&e(o,{className:"adyen-checkout__dropdown__button__icon",src:i.icon,alt:i.name}),e("span",{className:"adyen-checkout__dropdown__button__text"},_),i.secondaryText&&e("span",{className:"adyen-checkout__dropdown__button__secondary-text"},i.secondaryText)))}export{d as default};
2
2
  //# sourceMappingURL=SelectButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectButton.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectButton.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport cx from 'classnames';\nimport { SelectButtonProps } from '../types';\nimport Img from '../../../Img';\n\nfunction SelectButtonElement({ filterable, toggleButtonRef, ...props }) {\n if (filterable) {\n // Even if passed, we can't add an id to this div since it is not allowed to associate a div with a label element\n const { id, ...strippedProps } = props;\n return <div {...strippedProps} ref={toggleButtonRef} />;\n }\n\n return <button id={props.id} aria-describedby={props.ariaDescribedBy} type={'button'} {...props} ref={toggleButtonRef} />;\n}\n\nfunction SelectButton(props: Readonly<SelectButtonProps>) {\n const { active, selected, inputText, readonly, showList, required } = props;\n\n // display fallback order\n const displayText = selected.selectedOptionName || selected.name || props.placeholder || '';\n // displayInputText only used for the text input for the filter\n // display the \"typed\" filter text when showing the dropdown,\n // hide it and show the \"selected\" value when collapsed\n const displayInputText = showList ? inputText : displayText;\n\n const setFocus = (e: Event) => {\n e.preventDefault();\n if (document.activeElement === props.filterInputRef.current) {\n if (!props.showList) {\n props.toggleList(e);\n }\n } else if (props.filterInputRef.current) props.filterInputRef.current.focus();\n };\n\n // 1. If readonly we ignore the click action\n // 2. If filterable we want to show the list and focus on the input\n // 3. Otherwise we just toggle the list\n const onClickHandler = readonly ? null : props.filterable ? setFocus : props.toggleList;\n\n const onFocusHandler = readonly ? null : props.onFocus;\n\n // check COWEB-1301 [Investigate] Drop-in Accessibility - ADA Compliance questions\n const currentSelectedItemId = active.id ? `listItem-${active.id}` : '';\n\n return (\n <SelectButtonElement\n className={cx({\n 'adyen-checkout__dropdown__button': true,\n 'adyen-checkout__dropdown__button--readonly': readonly,\n 'adyen-checkout__dropdown__button--active': showList,\n 'adyen-checkout__dropdown__button--invalid': props.isInvalid,\n 'adyen-checkout__dropdown__button--valid': props.isValid,\n 'adyen-checkout__dropdown__button--disabled': selected.disabled\n })}\n disabled={props.disabled}\n filterable={props.filterable}\n onClick={onClickHandler}\n onKeyDown={!readonly ? props.onButtonKeyDown : null}\n toggleButtonRef={props.toggleButtonRef}\n // Only for some dropdowns e.g. the one found in installments when it is just in the form of a single dropdown, do we want to add an id that links to a label's for attr\n // If we allow an id to be added to the buttons in CtPCardsList, for example, unit tests start failing because it seems a button with an id no longer has a name property that can be used\n // as a qualifier in findByRole\n {...(props.allowIdOnButton && props.id && { id: props.id })}\n >\n {!props.filterable ? (\n <Fragment>\n {selected.icon && <Img className=\"adyen-checkout__dropdown__button__icon\" src={selected.icon} alt={selected.name} />}\n <span className=\"adyen-checkout__dropdown__button__text\">{displayText}</span>\n {selected.secondaryText && <span className=\"adyen-checkout__dropdown__button__secondary-text\">{selected.secondaryText}</span>}\n </Fragment>\n ) : (\n <Fragment>\n {!showList && selected.icon && <Img className=\"adyen-checkout__dropdown__button__icon\" src={selected.icon} alt={selected.name} />}\n <input\n value={displayInputText}\n aria-autocomplete=\"list\"\n aria-controls={props.selectListId}\n aria-expanded={showList}\n aria-owns={props.selectListId}\n autoComplete=\"off\"\n className=\"adyen-checkout__filter-input\"\n onInput={props.onInput}\n onFocus={onFocusHandler}\n ref={props.filterInputRef}\n role=\"combobox\"\n aria-activedescendant={currentSelectedItemId}\n type=\"text\"\n readOnly={props.readonly}\n id={props.id}\n aria-describedby={props.ariaDescribedBy}\n required={required}\n />\n {!showList && selected.secondaryText && (\n <span className=\"adyen-checkout__dropdown__button__secondary-text\">{selected.secondaryText}</span>\n )}\n </Fragment>\n )}\n </SelectButtonElement>\n );\n}\n\nexport default SelectButton;\n"],"names":["SelectButtonElement","filterable","toggleButtonRef","props","id","strippedProps","h","div","ref","button","aria-describedby","ariaDescribedBy","type","SelectButton","active","selected","inputText","readonly","showList","required","displayText","selectedOptionName","name","placeholder","displayInputText","onClickHandler","e","preventDefault","document","activeElement","filterInputRef","current","toggleList","focus","onFocusHandler","onFocus","currentSelectedItemId","className","cx","isInvalid","isValid","disabled","onClick","onKeyDown","onButtonKeyDown","allowIdOnButton","Fragment","icon","Img","src","alt","input","value","aria-autocomplete","aria-controls","selectListId","aria-expanded","aria-owns","autoComplete","onInput","role","aria-activedescendant","readOnly","secondaryText","span"],"mappings":"0LAKA,SAASA,GAAoBC,WAAEA,EAAUC,gBAAEA,KAAoBC,IAC3D,GAAIF,EAAY,CAEZ,MAAMG,GAAEA,KAAOC,GAAkBF,EACjC,OAAOG,EAACC,MAAAA,IAAQF,EAAeG,IAAKN,GACxC,CAEA,OAAOI,EAACG,SAAAA,CAAOL,GAAID,EAAMC,GAAIM,mBAAkBP,EAAMQ,gBAAiBC,KAAM,YAAcT,EAAOK,IAAKN,GAC1G,CAEA,SAASW,EAAaV,GAClB,MAAMW,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,SAAEA,EAAQC,SAAEA,EAAQC,SAAEA,GAAahB,EAGhEiB,EAAcL,EAASM,oBAAsBN,EAASO,MAAQnB,EAAMoB,aAAe,GAInFC,EAAmBN,EAAWF,EAAYI,EAc1CK,EAAiBR,EAAW,KAAOd,EAAMF,WAZ7ByB,IACdA,EAAEC,iBACEC,SAASC,gBAAkB1B,EAAM2B,eAAeC,QAC3C5B,EAAMe,UACPf,EAAM6B,WAAWN,GAEdvB,EAAM2B,eAAeC,SAAS5B,EAAM2B,eAAeC,QAAQE,OAAK,EAMR9B,EAAM6B,WAEvEE,EAAiBjB,EAAW,KAAOd,EAAMgC,QAGzCC,EAAwBtB,EAAOV,GAAK,YAAYU,EAAOV,KAAO,GAEpE,OACIE,EAACN,EAAAA,CACGqC,UAAWC,EAAG,CACV,oCAAoC,EACpC,6CAA8CrB,EAC9C,2CAA4CC,EAC5C,4CAA6Cf,EAAMoC,UACnD,0CAA2CpC,EAAMqC,QACjD,6CAA8CzB,EAAS0B,WAE3DA,SAAUtC,EAAMsC,SAChBxC,WAAYE,EAAMF,WAClByC,QAASjB,EACTkB,UAAY1B,EAAmC,KAAxBd,EAAMyC,gBAC7B1C,gBAAiBC,EAAMD,mBAIlBC,EAAM0C,iBAAmB1C,EAAMC,IAAM,CAAEA,GAAID,EAAMC,KAEpDD,EAAMF,WAOJK,EAACwC,EAAAA,MACK5B,GAAYH,EAASgC,MAAQzC,EAAC0C,EAAAA,CAAIX,UAAU,yCAAyCY,IAAKlC,EAASgC,KAAMG,IAAKnC,EAASO,OACzHhB,EAAC6C,QAAAA,CACGC,MAAO5B,EACP6B,oBAAkB,OAClBC,gBAAenD,EAAMoD,aACrBC,gBAAetC,EACfuC,YAAWtD,EAAMoD,aACjBG,aAAa,MACbrB,UAAU,+BACVsB,QAASxD,EAAMwD,QACfxB,QAASD,EACT1B,IAAKL,EAAM2B,eACX8B,KAAK,WACLC,wBAAuBzB,EACvBxB,KAAK,OACLkD,SAAU3D,EAAMc,SAChBb,GAAID,EAAMC,GACVM,mBAAkBP,EAAMQ,gBACxBQ,SAAUA,KAEZD,GAAYH,EAASgD,eACnBzD,EAAC0D,OAAAA,CAAK3B,UAAU,oDAAoDtB,EAASgD,gBA5BrFzD,EAACwC,OACI/B,EAASgC,MAAQzC,EAAC0C,EAAAA,CAAIX,UAAU,yCAAyCY,IAAKlC,EAASgC,KAAMG,IAAKnC,EAASO,OAC5GhB,EAAC0D,OAAAA,CAAK3B,UAAU,0CAA0CjB,GACzDL,EAASgD,eAAiBzD,EAAC0D,OAAAA,CAAK3B,UAAU,oDAAoDtB,EAASgD,gBA+B5H"}
1
+ {"version":3,"file":"SelectButton.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectButton.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport cx from 'classnames';\nimport { SelectButtonProps } from '../types';\nimport Img from '../../../Img';\n\nfunction SelectButtonElement({ filterable, toggleButtonRef, ...props }) {\n if (filterable) {\n // Even if passed, we can't add an id to this div since it is not allowed to associate a div with a label element\n const { id, ...strippedProps } = props;\n return <div {...strippedProps} ref={toggleButtonRef} />;\n }\n\n return <button id={props.id} aria-describedby={props.ariaDescribedBy} type={'button'} {...props} ref={toggleButtonRef} />;\n}\n\nfunction SelectButton(props: Readonly<SelectButtonProps>) {\n const { active, selected, inputText, readonly, showList, required } = props;\n\n // display fallback order\n const displayText = selected.selectedOptionName || selected.name || props.placeholder || '';\n // displayInputText only used for the text input for the filter\n // display the \"typed\" filter text when showing the dropdown,\n // hide it and show the \"selected\" value when collapsed\n const displayInputText = showList ? inputText : displayText;\n\n const setFocus = (e: Event) => {\n e.preventDefault();\n if (document.activeElement === props.filterInputRef.current) {\n if (!props.showList) {\n props.toggleList(e);\n }\n } else if (props.filterInputRef.current) props.filterInputRef.current.focus();\n };\n\n // 1. If readonly we ignore the click action\n // 2. If filterable we want to show the list and focus on the input\n // 3. Otherwise we just toggle the list\n const onClickHandler = readonly ? null : props.filterable ? setFocus : props.toggleList;\n\n const onFocusHandler = readonly ? null : props.onFocus;\n\n // check COWEB-1301 [Investigate] Drop-in Accessibility - ADA Compliance questions\n const currentSelectedItemId = active.id ? `listItem-${active.id}` : '';\n\n return (\n <SelectButtonElement\n className={cx({\n 'adyen-checkout__dropdown__button': true,\n 'adyen-checkout__dropdown__button--readonly': readonly,\n 'adyen-checkout__dropdown__button--active': showList,\n 'adyen-checkout__dropdown__button--invalid': props.isInvalid,\n 'adyen-checkout__dropdown__button--valid': props.isValid,\n 'adyen-checkout__dropdown__button--disabled': selected.disabled\n })}\n disabled={props.disabled}\n filterable={props.filterable}\n onClick={onClickHandler}\n onKeyDown={!readonly ? props.onButtonKeyDown : null}\n toggleButtonRef={props.toggleButtonRef}\n // Only for some dropdowns e.g. the one found in installments when it is just in the form of a single dropdown, do we want to add an id that links to a label's for attr\n // If we allow an id to be added to the buttons in CtPCardsList, for example, unit tests start failing because it seems a button with an id no longer has a name property that can be used\n // as a qualifier in findByRole\n {...(props.allowIdOnButton && props.id && { id: props.id })}\n >\n {!props.filterable ? (\n <Fragment>\n {selected.icon && <Img className=\"adyen-checkout__dropdown__button__icon\" src={selected.icon} alt={selected.name} />}\n <span className=\"adyen-checkout__dropdown__button__text\">{displayText}</span>\n {selected.secondaryText && <span className=\"adyen-checkout__dropdown__button__secondary-text\">{selected.secondaryText}</span>}\n </Fragment>\n ) : (\n <Fragment>\n {!showList && selected.icon && <Img className=\"adyen-checkout__dropdown__button__icon\" src={selected.icon} alt={selected.name} />}\n <input\n value={displayInputText}\n aria-autocomplete=\"list\"\n aria-controls={props.selectListId}\n aria-expanded={showList}\n aria-owns={props.selectListId}\n autoComplete=\"off\"\n className=\"adyen-checkout__filter-input\"\n onInput={props.onInput}\n onFocus={onFocusHandler}\n ref={props.filterInputRef}\n role=\"combobox\"\n aria-activedescendant={currentSelectedItemId}\n type=\"text\"\n readOnly={props.readonly}\n id={props.id}\n aria-describedby={props.ariaDescribedBy}\n required={required}\n />\n {!showList && selected.secondaryText && (\n <span className=\"adyen-checkout__dropdown__button__secondary-text\">{selected.secondaryText}</span>\n )}\n </Fragment>\n )}\n </SelectButtonElement>\n );\n}\n\nexport default SelectButton;\n"],"names":["SelectButtonElement","filterable","toggleButtonRef","props","id","strippedProps","h","div","ref","button","aria-describedby","ariaDescribedBy","type","SelectButton","active","selected","inputText","readonly","showList","required","displayText","selectedOptionName","name","placeholder","displayInputText","onClickHandler","e","preventDefault","document","activeElement","filterInputRef","current","toggleList","focus","onFocusHandler","onFocus","currentSelectedItemId","className","cx","isInvalid","isValid","disabled","onClick","onKeyDown","onButtonKeyDown","allowIdOnButton","Fragment","icon","Img","src","alt","input","value","aria-autocomplete","aria-controls","selectListId","aria-expanded","aria-owns","autoComplete","onInput","role","aria-activedescendant","readOnly","secondaryText","span"],"mappings":"+KAKA,SAASA,GAAoBC,WAAEA,EAAUC,gBAAEA,KAAoBC,IAC3D,GAAIF,EAAY,CAEZ,MAAMG,GAAEA,KAAOC,GAAkBF,EACjC,OAAOG,EAACC,MAAAA,IAAQF,EAAeG,IAAKN,GACxC,CAEA,OAAOI,EAACG,SAAAA,CAAOL,GAAID,EAAMC,GAAIM,mBAAkBP,EAAMQ,gBAAiBC,KAAM,YAAcT,EAAOK,IAAKN,GAC1G,CAEA,SAASW,EAAaV,GAClB,MAAMW,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,SAAEA,EAAQC,SAAEA,EAAQC,SAAEA,GAAahB,EAGhEiB,EAAcL,EAASM,oBAAsBN,EAASO,MAAQnB,EAAMoB,aAAe,GAInFC,EAAmBN,EAAWF,EAAYI,EAc1CK,EAAiBR,EAAW,KAAOd,EAAMF,WAZ7ByB,IACdA,EAAEC,iBACEC,SAASC,gBAAkB1B,EAAM2B,eAAeC,QAC3C5B,EAAMe,UACPf,EAAM6B,WAAWN,GAEdvB,EAAM2B,eAAeC,SAAS5B,EAAM2B,eAAeC,QAAQE,OAAK,EAMR9B,EAAM6B,WAEvEE,EAAiBjB,EAAW,KAAOd,EAAMgC,QAGzCC,EAAwBtB,EAAOV,GAAK,YAAYU,EAAOV,KAAO,GAEpE,OACIE,EAACN,EAAAA,CACGqC,UAAWC,EAAG,CACV,oCAAoC,EACpC,6CAA8CrB,EAC9C,2CAA4CC,EAC5C,4CAA6Cf,EAAMoC,UACnD,0CAA2CpC,EAAMqC,QACjD,6CAA8CzB,EAAS0B,WAE3DA,SAAUtC,EAAMsC,SAChBxC,WAAYE,EAAMF,WAClByC,QAASjB,EACTkB,UAAY1B,EAAmC,KAAxBd,EAAMyC,gBAC7B1C,gBAAiBC,EAAMD,mBAIlBC,EAAM0C,iBAAmB1C,EAAMC,IAAM,CAAEA,GAAID,EAAMC,KAEpDD,EAAMF,WAOJK,EAACwC,EAAAA,MACK5B,GAAYH,EAASgC,MAAQzC,EAAC0C,EAAAA,CAAIX,UAAU,yCAAyCY,IAAKlC,EAASgC,KAAMG,IAAKnC,EAASO,OACzHhB,EAAC6C,QAAAA,CACGC,MAAO5B,EACP6B,oBAAkB,OAClBC,gBAAenD,EAAMoD,aACrBC,gBAAetC,EACfuC,YAAWtD,EAAMoD,aACjBG,aAAa,MACbrB,UAAU,+BACVsB,QAASxD,EAAMwD,QACfxB,QAASD,EACT1B,IAAKL,EAAM2B,eACX8B,KAAK,WACLC,wBAAuBzB,EACvBxB,KAAK,OACLkD,SAAU3D,EAAMc,SAChBb,GAAID,EAAMC,GACVM,mBAAkBP,EAAMQ,gBACxBQ,SAAUA,KAEZD,GAAYH,EAASgD,eACnBzD,EAAC0D,OAAAA,CAAK3B,UAAU,oDAAoDtB,EAASgD,gBA5BrFzD,EAACwC,OACI/B,EAASgC,MAAQzC,EAAC0C,EAAAA,CAAIX,UAAU,yCAAyCY,IAAKlC,EAASgC,KAAMG,IAAKnC,EAASO,OAC5GhB,EAAC0D,OAAAA,CAAK3B,UAAU,0CAA0CjB,GACzDL,EAASgD,eAAiBzD,EAAC0D,OAAAA,CAAK3B,UAAU,oDAAoDtB,EAASgD,gBA+B5H"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../external/classnames/index.js";import o from"./SelectListItem.js";import{useCoreContext as n}from"../../../../../core/Context/CoreProvider.js";function s({selected:s,active:i,filteredItems:r,showList:c,...d}){const{i18n:l}=n();return e("ul",{className:t({"adyen-checkout__dropdown__list":!0,"adyen-checkout__dropdown__list--active":c}),id:d.selectListId,ref:d.selectListRef,role:"listbox"},r.length?r.map((t=>e(o,{active:t.id===i.id,item:t,key:t.id,onSelect:d.onSelect,onHover:d.onHover,selected:t.id===s.id}))):e("div",{className:"adyen-checkout__dropdown__element adyen-checkout__dropdown__element--no-options"},l.get("select.noOptionsFound")))}export{s as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import o from"./SelectListItem.js";import{useCoreContext as i}from"../../../../../core/Context/CoreProvider.js";function n({selected:n,active:r,filteredItems:d,showList:s,...c}){const{i18n:l}=i();return e("ul",{className:t({"adyen-checkout__dropdown__list":!0,"adyen-checkout__dropdown__list--active":s}),id:c.selectListId,ref:c.selectListRef,role:"listbox"},d.length?d.map((t=>e(o,{active:t.id===r.id,item:t,key:t.id,onSelect:c.onSelect,onHover:c.onHover,selected:t.id===n.id}))):e("div",{className:"adyen-checkout__dropdown__element adyen-checkout__dropdown__element--no-options"},l.get("select.noOptionsFound")))}export{n as default};
2
2
  //# sourceMappingURL=SelectList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectList.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectList.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport SelectListItem from './SelectListItem';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { SelectListProps } from '../types';\n\nfunction SelectList({ selected, active, filteredItems, showList, ...props }: SelectListProps) {\n const { i18n } = useCoreContext();\n\n return (\n /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */\n <ul\n className={cx({\n 'adyen-checkout__dropdown__list': true,\n 'adyen-checkout__dropdown__list--active': showList\n })}\n id={props.selectListId}\n ref={props.selectListRef}\n role=\"listbox\"\n >\n {filteredItems.length ? (\n filteredItems.map(item => (\n <SelectListItem\n active={item.id === active.id}\n item={item}\n key={item.id}\n onSelect={props.onSelect}\n onHover={props.onHover}\n selected={item.id === selected.id}\n />\n ))\n ) : (\n <div className=\"adyen-checkout__dropdown__element adyen-checkout__dropdown__element--no-options\">\n {i18n.get('select.noOptionsFound')}\n </div>\n )}\n </ul>\n );\n}\n\nexport default SelectList;\n"],"names":["SelectList","selected","active","filteredItems","showList","props","i18n","useCoreContext","h","ul","className","cx","id","selectListId","ref","selectListRef","role","length","map","item","SelectListItem","key","onSelect","onHover","div","get"],"mappings":"yPAMA,SAASA,GAAWC,SAAEA,EAAQC,OAAEA,EAAMC,cAAEA,EAAaC,SAAEA,KAAaC,IAChE,MAAMC,KAAEA,GAASC,IAEjB,OAEIC,EAACC,KAAAA,CACGC,UAAWC,EAAG,CACV,kCAAkC,EAClC,yCAA0CP,IAE9CQ,GAAIP,EAAMQ,aACVC,IAAKT,EAAMU,cACXC,KAAK,WAEJb,EAAcc,OACXd,EAAce,KAAIC,GACdX,EAACY,EAAAA,CACGlB,OAAQiB,EAAKP,KAAOV,EAAOU,GAC3BO,KAAMA,EACNE,IAAKF,EAAKP,GACVU,SAAUjB,EAAMiB,SAChBC,QAASlB,EAAMkB,QACftB,SAAUkB,EAAKP,KAAOX,EAASW,OAIvCJ,EAACgB,MAAAA,CAAId,UAAU,mFACVJ,EAAKmB,IAAI,0BAK9B"}
1
+ {"version":3,"file":"SelectList.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectList.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport SelectListItem from './SelectListItem';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { SelectListProps } from '../types';\n\nfunction SelectList({ selected, active, filteredItems, showList, ...props }: SelectListProps) {\n const { i18n } = useCoreContext();\n\n return (\n /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */\n <ul\n className={cx({\n 'adyen-checkout__dropdown__list': true,\n 'adyen-checkout__dropdown__list--active': showList\n })}\n id={props.selectListId}\n ref={props.selectListRef}\n role=\"listbox\"\n >\n {filteredItems.length ? (\n filteredItems.map(item => (\n <SelectListItem\n active={item.id === active.id}\n item={item}\n key={item.id}\n onSelect={props.onSelect}\n onHover={props.onHover}\n selected={item.id === selected.id}\n />\n ))\n ) : (\n <div className=\"adyen-checkout__dropdown__element adyen-checkout__dropdown__element--no-options\">\n {i18n.get('select.noOptionsFound')}\n </div>\n )}\n </ul>\n );\n}\n\nexport default SelectList;\n"],"names":["SelectList","selected","active","filteredItems","showList","props","i18n","useCoreContext","h","ul","className","cx","id","selectListId","ref","selectListRef","role","length","map","item","SelectListItem","key","onSelect","onHover","div","get"],"mappings":"8OAMA,SAASA,GAAWC,SAAEA,EAAQC,OAAEA,EAAMC,cAAEA,EAAaC,SAAEA,KAAaC,IAChE,MAAMC,KAAEA,GAASC,IAEjB,OAEIC,EAACC,KAAAA,CACGC,UAAWC,EAAG,CACV,kCAAkC,EAClC,yCAA0CP,IAE9CQ,GAAIP,EAAMQ,aACVC,IAAKT,EAAMU,cACXC,KAAK,WAEJb,EAAcc,OACXd,EAAce,KAAIC,GACdX,EAACY,EAAAA,CACGlB,OAAQiB,EAAKP,KAAOV,EAAOU,GAC3BO,KAAMA,EACNE,IAAKF,EAAKP,GACVU,SAAUjB,EAAMiB,SAChBC,QAASlB,EAAMkB,QACftB,SAAUkB,EAAKP,KAAOX,EAASW,OAIvCJ,EAACgB,MAAAA,CAAId,UAAU,mFACVJ,EAAKmB,IAAI,0BAK9B"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import a from"../../../../../external/classnames/index.js";import t from"../../../Img/Img.js";import o from"../../../Icon/Icon.js";import{PREFIX as n}from"../../../Icon/constants.js";const d=({item:d,active:c,selected:s,...l})=>e("li",{"aria-disabled":!!d.disabled,"aria-selected":s,className:a(["adyen-checkout__dropdown__element",{"adyen-checkout__dropdown__element--active":c,"adyen-checkout__dropdown__element--disabled":!!d.disabled}]),"data-disabled":!0===d.disabled||null,"data-value":d.id,onClick:l.onSelect,onMouseEnter:l.onHover,role:"option",id:`listItem-${d.id}`},d.icon&&e(t,{className:"adyen-checkout__dropdown__element__icon",alt:d.name,src:d.icon}),e("span",{className:"adyen-checkout__dropdown__element__text"},d.name),d.secondaryText&&e("span",{className:"adyen-checkout__dropdown__element__secondary-text"},d.secondaryText),s&&e(o,{type:`${n}checkmark`,height:14,width:14}));export{d as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../Img/Img.js";import o from"../../../Icon/Icon.js";import{PREFIX as d}from"../../../Icon/constants.js";const n=({item:n,active:c,selected:s,...r})=>e("li",{"aria-disabled":!!n.disabled,"aria-selected":s,className:t(["adyen-checkout__dropdown__element",{"adyen-checkout__dropdown__element--active":c,"adyen-checkout__dropdown__element--disabled":!!n.disabled}]),"data-disabled":!0===n.disabled||null,"data-value":n.id,onClick:r.onSelect,onMouseEnter:r.onHover,role:"option",id:`listItem-${n.id}`},n.icon&&e(a,{className:"adyen-checkout__dropdown__element__icon",alt:n.name,src:n.icon}),e("span",{className:"adyen-checkout__dropdown__element__text"},n.name),n.secondaryText&&e("span",{className:"adyen-checkout__dropdown__element__secondary-text"},n.secondaryText),s&&e(o,{type:`${d}checkmark`,height:14,width:14}));export{n as default};
2
2
  //# sourceMappingURL=SelectListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectListItem.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectListItem.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport { SelectItemProps } from '../types';\nimport Img from '../../../Img';\nimport Icon from '../../../Icon';\nimport { PREFIX } from '../../../Icon/constants';\n\nconst SelectListItem = ({ item, active, selected, ...props }: SelectItemProps) => {\n return (\n /* eslint-disable jsx-a11y/click-events-have-key-events */\n <li\n aria-disabled={!!item.disabled}\n aria-selected={selected}\n className={cx([\n 'adyen-checkout__dropdown__element',\n {\n 'adyen-checkout__dropdown__element--active': active,\n 'adyen-checkout__dropdown__element--disabled': !!item.disabled\n }\n ])}\n // A change in Preact v10.11.1 means that all falsy values are assessed and set on data attributes.\n // In the case of data-disabled we only ever want it set if item.disabled is actually true, since the presence of the data-disabled attr,\n // regardless of its value, will disable the select list item\n data-disabled={item.disabled === true ? true : null}\n data-value={item.id}\n onClick={props.onSelect}\n onMouseEnter={props.onHover}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role */\n role=\"option\"\n //tabIndex={-1}\n id={`listItem-${item.id}`}\n >\n {item.icon && <Img className=\"adyen-checkout__dropdown__element__icon\" alt={item.name} src={item.icon} />}\n <span className=\"adyen-checkout__dropdown__element__text\">{item.name}</span>\n {item.secondaryText && <span className=\"adyen-checkout__dropdown__element__secondary-text\">{item.secondaryText}</span>}\n {selected && <Icon type={`${PREFIX}checkmark`} height={14} width={14} />}\n </li>\n );\n};\n\nexport default SelectListItem;\n"],"names":["SelectListItem","item","active","selected","props","h","li","aria-disabled","disabled","aria-selected","className","cx","data-disabled","data-value","id","onClick","onSelect","onMouseEnter","onHover","role","icon","Img","alt","name","src","span","secondaryText","Icon","type","PREFIX","height","width"],"mappings":"qQAOMA,MAAAA,EAAiB,EAAGC,OAAMC,SAAQC,cAAaC,KAG7CC,EAACC,KAAAA,CACGC,kBAAiBN,EAAKO,SACtBC,gBAAeN,EACfO,UAAWC,EAAG,CACV,oCACA,CACI,4CAA6CT,EAC7C,gDAAiDD,EAAKO,YAM9DI,iBAAiC,IAAlBX,EAAKO,UAA2B,KAC/CK,aAAYZ,EAAKa,GACjBC,QAASX,EAAMY,SACfC,aAAcb,EAAMc,QAEpBC,KAAK,SAELL,GAAI,YAAYb,EAAKa,MAEpBb,EAAKmB,MAAQf,EAACgB,EAAAA,CAAIX,UAAU,0CAA0CY,IAAKrB,EAAKsB,KAAMC,IAAKvB,EAAKmB,OACjGf,EAACoB,OAAAA,CAAKf,UAAU,2CAA2CT,EAAKsB,MAC/DtB,EAAKyB,eAAiBrB,EAACoB,OAAAA,CAAKf,UAAU,qDAAqDT,EAAKyB,eAChGvB,GAAYE,EAACsB,EAAAA,CAAKC,KAAM,GAAGC,aAAmBC,OAAQ,GAAIC,MAAO"}
1
+ {"version":3,"file":"SelectListItem.js","sources":["../../../../../../../src/components/internal/FormFields/Select/components/SelectListItem.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport { SelectItemProps } from '../types';\nimport Img from '../../../Img';\nimport Icon from '../../../Icon';\nimport { PREFIX } from '../../../Icon/constants';\n\nconst SelectListItem = ({ item, active, selected, ...props }: SelectItemProps) => {\n return (\n /* eslint-disable jsx-a11y/click-events-have-key-events */\n <li\n aria-disabled={!!item.disabled}\n aria-selected={selected}\n className={cx([\n 'adyen-checkout__dropdown__element',\n {\n 'adyen-checkout__dropdown__element--active': active,\n 'adyen-checkout__dropdown__element--disabled': !!item.disabled\n }\n ])}\n // A change in Preact v10.11.1 means that all falsy values are assessed and set on data attributes.\n // In the case of data-disabled we only ever want it set if item.disabled is actually true, since the presence of the data-disabled attr,\n // regardless of its value, will disable the select list item\n data-disabled={item.disabled === true ? true : null}\n data-value={item.id}\n onClick={props.onSelect}\n onMouseEnter={props.onHover}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role */\n role=\"option\"\n //tabIndex={-1}\n id={`listItem-${item.id}`}\n >\n {item.icon && <Img className=\"adyen-checkout__dropdown__element__icon\" alt={item.name} src={item.icon} />}\n <span className=\"adyen-checkout__dropdown__element__text\">{item.name}</span>\n {item.secondaryText && <span className=\"adyen-checkout__dropdown__element__secondary-text\">{item.secondaryText}</span>}\n {selected && <Icon type={`${PREFIX}checkmark`} height={14} width={14} />}\n </li>\n );\n};\n\nexport default SelectListItem;\n"],"names":["SelectListItem","item","active","selected","props","h","li","aria-disabled","disabled","aria-selected","className","cx","data-disabled","data-value","id","onClick","onSelect","onMouseEnter","onHover","role","icon","Img","alt","name","src","span","secondaryText","Icon","type","PREFIX","height","width"],"mappings":"0PAOMA,MAAAA,EAAiB,EAAGC,OAAMC,SAAQC,cAAaC,KAG7CC,EAACC,KAAAA,CACGC,kBAAiBN,EAAKO,SACtBC,gBAAeN,EACfO,UAAWC,EAAG,CACV,oCACA,CACI,4CAA6CT,EAC7C,gDAAiDD,EAAKO,YAM9DI,iBAAiC,IAAlBX,EAAKO,UAA2B,KAC/CK,aAAYZ,EAAKa,GACjBC,QAASX,EAAMY,SACfC,aAAcb,EAAMc,QAEpBC,KAAK,SAELL,GAAI,YAAYb,EAAKa,MAEpBb,EAAKmB,MAAQf,EAACgB,EAAAA,CAAIX,UAAU,0CAA0CY,IAAKrB,EAAKsB,KAAMC,IAAKvB,EAAKmB,OACjGf,EAACoB,OAAAA,CAAKf,UAAU,2CAA2CT,EAAKsB,MAC/DtB,EAAKyB,eAAiBrB,EAACoB,OAAAA,CAAKf,UAAU,qDAAqDT,EAAKyB,eAChGvB,GAAYE,EAACsB,EAAAA,CAAKC,KAAM,GAAGC,aAAmBC,OAAQ,GAAIC,MAAO"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as i}from"../../../external/preact/dist/preact.js";import t from"../../../external/classnames/index.js";function a(e,i,t){return i in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}class n extends e{iframeOnLoad(){this.props.callback&&"function"==typeof this.props.callback&&this.props.callback(this.iframeEl.contentWindow)}componentDidMount(){this.iframeEl.addEventListener?this.iframeEl.addEventListener("load",this.iframeOnLoad.bind(this),!1):this.iframeEl.attachEvent?this.iframeEl.attachEvent("onload",this.iframeOnLoad.bind(this)):this.iframeEl.onload=this.iframeOnLoad.bind(this)}componentWillUnmount(){this.iframeEl.removeEventListener?this.iframeEl.removeEventListener("load",this.iframeOnLoad.bind(this),!1):this.iframeEl.detachEvent?this.iframeEl.detachEvent("onload",this.iframeOnLoad.bind(this)):this.iframeEl.onload=null}render({name:e,src:a,width:n,height:r,minWidth:s,minHeight:l,allow:o,title:m,classNameModifiers:h}){const d=h.filter((e=>!!e));return i("iframe",{ref:e=>{this.iframeEl=e},allow:o,className:t("adyen-checkout__iframe",`adyen-checkout__iframe--${e}`,d.length&&h.map((i=>`adyen-checkout__iframe--${e}-${i}`))),name:e,src:a,width:n,height:r,frameBorder:"0",title:m,referrerpolicy:"origin","min-width":s,"min-height":l})}constructor(...e){super(...e),a(this,"iframeEl",void 0)}}a(n,"defaultProps",{width:"0",height:"0",minWidth:"0",minHeight:"0",src:null,allow:null,title:"components iframe",classNameModifiers:[]});export{n as default};
1
+ import{Component as e,createElement as i}from"../../../external/preact/dist/preact.js";import t from"../../../_virtual/index.js";function a(e,i,t){return i in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}class n extends e{iframeOnLoad(){this.props.callback&&"function"==typeof this.props.callback&&this.props.callback(this.iframeEl.contentWindow)}componentDidMount(){this.iframeEl.addEventListener?this.iframeEl.addEventListener("load",this.iframeOnLoad.bind(this),!1):this.iframeEl.attachEvent?this.iframeEl.attachEvent("onload",this.iframeOnLoad.bind(this)):this.iframeEl.onload=this.iframeOnLoad.bind(this)}componentWillUnmount(){this.iframeEl.removeEventListener?this.iframeEl.removeEventListener("load",this.iframeOnLoad.bind(this),!1):this.iframeEl.detachEvent?this.iframeEl.detachEvent("onload",this.iframeOnLoad.bind(this)):this.iframeEl.onload=null}render({name:e,src:a,width:n,height:r,minWidth:o,minHeight:l,allow:s,title:h,classNameModifiers:m}){const d=m.filter((e=>!!e));return i("iframe",{ref:e=>{this.iframeEl=e},allow:s,className:t("adyen-checkout__iframe",`adyen-checkout__iframe--${e}`,d.length&&m.map((i=>`adyen-checkout__iframe--${e}-${i}`))),name:e,src:a,width:n,height:r,frameBorder:"0",title:h,referrerpolicy:"origin","min-width":o,"min-height":l})}constructor(...e){super(...e),a(this,"iframeEl",void 0)}}a(n,"defaultProps",{width:"0",height:"0",minWidth:"0",minHeight:"0",src:null,allow:null,title:"components iframe",classNameModifiers:[]});export{n as default};
2
2
  //# sourceMappingURL=Iframe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Iframe.js","sources":["../../../../../src/components/internal/IFrame/Iframe.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport './Iframe.scss';\n\ninterface IframeProps {\n width?: string;\n height?: string;\n minWidth?: string;\n minHeight?: string;\n border?: string;\n src?: string;\n allow?: string;\n name?: string;\n title?: string;\n classNameModifiers?: string[];\n callback?: (contentWindow) => void;\n}\n\nclass Iframe extends Component<IframeProps> {\n public static defaultProps = {\n width: '0',\n height: '0',\n minWidth: '0',\n minHeight: '0',\n src: null,\n allow: null,\n title: 'components iframe',\n classNameModifiers: []\n };\n\n private iframeEl;\n\n iframeOnLoad() {\n if (this.props.callback && typeof this.props.callback === 'function') {\n this.props.callback(this.iframeEl.contentWindow);\n }\n }\n\n componentDidMount() {\n if (this.iframeEl.addEventListener) {\n this.iframeEl.addEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.attachEvent) {\n // IE fallback\n this.iframeEl.attachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = this.iframeOnLoad.bind(this);\n }\n }\n\n componentWillUnmount() {\n if (this.iframeEl.removeEventListener) {\n this.iframeEl.removeEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.detachEvent) {\n // IE fallback\n this.iframeEl.detachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = null;\n }\n }\n\n render({ name, src, width, height, minWidth, minHeight, allow, title, classNameModifiers }: IframeProps) {\n const validClassNameModifiers = classNameModifiers.filter(m => !!m);\n\n return (\n <iframe\n ref={ref => {\n this.iframeEl = ref;\n }}\n allow={allow}\n className={classNames(\n 'adyen-checkout__iframe',\n `adyen-checkout__iframe--${name}`,\n validClassNameModifiers.length && classNameModifiers.map(m => `adyen-checkout__iframe--${name}-${m}`)\n )}\n name={name}\n src={src}\n width={width}\n height={height}\n frameBorder=\"0\"\n title={title}\n /* eslint-disable react/no-unknown-property */\n referrerpolicy=\"origin\"\n min-width={minWidth}\n min-height={minHeight}\n /* eslint-enable react/no-unknown-property */\n />\n );\n }\n}\n\nexport default Iframe;\n"],"names":["Iframe","Component","iframeOnLoad","this","props","callback","iframeEl","contentWindow","componentDidMount","addEventListener","bind","attachEvent","onload","componentWillUnmount","removeEventListener","detachEvent","render","name","src","width","height","minWidth","minHeight","allow","title","classNameModifiers","validClassNameModifiers","filter","m","h","iframe","ref","className","classNames","length","map","frameBorder","referrerpolicy","min-width","min-height","super","args","_define_property","defaultProps"],"mappings":"oQAkBA,MAAMA,UAAeC,EAcjBC,YAAAA,GACQC,KAAKC,MAAMC,UAA2C,mBAAxBF,KAAKC,MAAMC,UACzCF,KAAKC,MAAMC,SAASF,KAAKG,SAASC,cAE1C,CAEAC,iBAAAA,GACQL,KAAKG,SAASG,iBACdN,KAAKG,SAASG,iBAAiB,OAAQN,KAAKD,aAAaQ,KAAKP,OAAO,GAC9DA,KAAKG,SAASK,YAErBR,KAAKG,SAASK,YAAY,SAAUR,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAST,KAAKD,aAAaQ,KAAKP,KAEtD,CAEAU,oBAAAA,GACQV,KAAKG,SAASQ,oBACdX,KAAKG,SAASQ,oBAAoB,OAAQX,KAAKD,aAAaQ,KAAKP,OAAO,GACjEA,KAAKG,SAASS,YAErBZ,KAAKG,SAASS,YAAY,SAAUZ,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAS,IAE/B,CAEAI,MAAAA,EAAOC,KAAEA,EAAIC,IAAEA,EAAGC,MAAEA,EAAKC,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAKC,MAAEA,EAAKC,mBAAEA,IAClE,MAAMC,EAA0BD,EAAmBE,QAAOC,KAAOA,IAEjE,OACIC,EAACC,SAAAA,CACGC,IAAKA,IACD5B,KAAKG,SAAWyB,CAAAA,EAEpBR,MAAOA,EACPS,UAAWC,EACP,yBACA,2BAA2BhB,IAC3BS,EAAwBQ,QAAUT,EAAmBU,KAAIP,GAAK,2BAA2BX,KAAQW,OAErGX,KAAMA,EACNC,IAAKA,EACLC,MAAOA,EACPC,OAAQA,EACRgB,YAAY,IACZZ,MAAOA,EAEPa,eAAe,SACfC,YAAWjB,EACXkB,aAAYjB,GAIxB,mBArEJkB,SAYIC,GAAAC,EAAAvC,KAAQG,gBAAR,IAXAoC,EADE1C,EACY2C,eAAe,CACzBxB,MAAO,IACPC,OAAQ,IACRC,SAAU,IACVC,UAAW,IACXJ,IAAK,KACLK,MAAO,KACPC,MAAO,oBACPC,mBAAoB"}
1
+ {"version":3,"file":"Iframe.js","sources":["../../../../../src/components/internal/IFrame/Iframe.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport './Iframe.scss';\n\ninterface IframeProps {\n width?: string;\n height?: string;\n minWidth?: string;\n minHeight?: string;\n border?: string;\n src?: string;\n allow?: string;\n name?: string;\n title?: string;\n classNameModifiers?: string[];\n callback?: (contentWindow) => void;\n}\n\nclass Iframe extends Component<IframeProps> {\n public static defaultProps = {\n width: '0',\n height: '0',\n minWidth: '0',\n minHeight: '0',\n src: null,\n allow: null,\n title: 'components iframe',\n classNameModifiers: []\n };\n\n private iframeEl;\n\n iframeOnLoad() {\n if (this.props.callback && typeof this.props.callback === 'function') {\n this.props.callback(this.iframeEl.contentWindow);\n }\n }\n\n componentDidMount() {\n if (this.iframeEl.addEventListener) {\n this.iframeEl.addEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.attachEvent) {\n // IE fallback\n this.iframeEl.attachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = this.iframeOnLoad.bind(this);\n }\n }\n\n componentWillUnmount() {\n if (this.iframeEl.removeEventListener) {\n this.iframeEl.removeEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.detachEvent) {\n // IE fallback\n this.iframeEl.detachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = null;\n }\n }\n\n render({ name, src, width, height, minWidth, minHeight, allow, title, classNameModifiers }: IframeProps) {\n const validClassNameModifiers = classNameModifiers.filter(m => !!m);\n\n return (\n <iframe\n ref={ref => {\n this.iframeEl = ref;\n }}\n allow={allow}\n className={classNames(\n 'adyen-checkout__iframe',\n `adyen-checkout__iframe--${name}`,\n validClassNameModifiers.length && classNameModifiers.map(m => `adyen-checkout__iframe--${name}-${m}`)\n )}\n name={name}\n src={src}\n width={width}\n height={height}\n frameBorder=\"0\"\n title={title}\n /* eslint-disable react/no-unknown-property */\n referrerpolicy=\"origin\"\n min-width={minWidth}\n min-height={minHeight}\n /* eslint-enable react/no-unknown-property */\n />\n );\n }\n}\n\nexport default Iframe;\n"],"names":["Iframe","Component","iframeOnLoad","this","props","callback","iframeEl","contentWindow","componentDidMount","addEventListener","bind","attachEvent","onload","componentWillUnmount","removeEventListener","detachEvent","render","name","src","width","height","minWidth","minHeight","allow","title","classNameModifiers","validClassNameModifiers","filter","m","h","iframe","ref","className","classNames","length","map","frameBorder","referrerpolicy","min-width","min-height","super","args","_define_property","defaultProps"],"mappings":"yPAkBA,MAAMA,UAAeC,EAcjBC,YAAAA,GACQC,KAAKC,MAAMC,UAA2C,mBAAxBF,KAAKC,MAAMC,UACzCF,KAAKC,MAAMC,SAASF,KAAKG,SAASC,cAE1C,CAEAC,iBAAAA,GACQL,KAAKG,SAASG,iBACdN,KAAKG,SAASG,iBAAiB,OAAQN,KAAKD,aAAaQ,KAAKP,OAAO,GAC9DA,KAAKG,SAASK,YAErBR,KAAKG,SAASK,YAAY,SAAUR,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAST,KAAKD,aAAaQ,KAAKP,KAEtD,CAEAU,oBAAAA,GACQV,KAAKG,SAASQ,oBACdX,KAAKG,SAASQ,oBAAoB,OAAQX,KAAKD,aAAaQ,KAAKP,OAAO,GACjEA,KAAKG,SAASS,YAErBZ,KAAKG,SAASS,YAAY,SAAUZ,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAS,IAE/B,CAEAI,MAAAA,EAAOC,KAAEA,EAAIC,IAAEA,EAAGC,MAAEA,EAAKC,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAKC,MAAEA,EAAKC,mBAAEA,IAClE,MAAMC,EAA0BD,EAAmBE,QAAOC,KAAOA,IAEjE,OACIC,EAACC,SAAAA,CACGC,IAAKA,IACD5B,KAAKG,SAAWyB,CAAAA,EAEpBR,MAAOA,EACPS,UAAWC,EACP,yBACA,2BAA2BhB,IAC3BS,EAAwBQ,QAAUT,EAAmBU,KAAIP,GAAK,2BAA2BX,KAAQW,OAErGX,KAAMA,EACNC,IAAKA,EACLC,MAAOA,EACPC,OAAQA,EACRgB,YAAY,IACZZ,MAAOA,EAEPa,eAAe,SACfC,YAAWjB,EACXkB,aAAYjB,GAIxB,mBArEJkB,SAYIC,GAAAC,EAAAvC,KAAQG,gBAAR,IAXAoC,EADE1C,EACY2C,eAAe,CACzBxB,MAAO,IACPC,OAAQ,IACRC,SAAU,IACVC,UAAW,IACXJ,IAAK,KACLK,MAAO,KACPC,MAAO,oBACPC,mBAAoB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import t from"../../../external/classnames/index.js";import a from"../../../core/Context/useImage.js";const s=({type:s,className:r="",alt:o="",height:c,width:m})=>{const n=a(),i=n({imageFolder:"components/"})?.(s);return e("img",{className:t("adyen-checkout__icon",r),alt:o,src:i,height:c,width:m})};export{s as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import t from"../../../_virtual/index.js";import a from"../../../core/Context/useImage.js";const r=({type:r,className:o="",alt:s="",height:c,width:i})=>{const m=a(),n=m({imageFolder:"components/"})?.(r);return e("img",{className:t("adyen-checkout__icon",o),alt:s,src:n,height:c,width:i})};export{r as default};
2
2
  //# sourceMappingURL=Icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sources":["../../../../../src/components/internal/Icon/Icon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport useImage from '../../../core/Context/useImage';\n\ninterface IconProps {\n type: string;\n className?: string;\n alt?: string;\n height?: number;\n width?: number;\n}\n\nconst Icon = ({ type, className = '', alt = '', height, width }: IconProps) => {\n const getImage = useImage();\n const iconUrl = getImage({ imageFolder: 'components/' })?.(type);\n\n return <img className={cx('adyen-checkout__icon', className)} alt={alt} src={iconUrl} height={height} width={width} />;\n};\n\nexport default Icon;\n"],"names":["Icon","type","className","alt","height","width","getImage","useImage","iconUrl","imageFolder","h","img","cx","src"],"mappings":"8KAYA,MAAMA,EAAO,EAAGC,OAAMC,YAAY,GAAIC,MAAM,GAAIC,SAAQC,YACpD,MAAMC,EAAWC,IACXC,EAAUF,EAAS,CAAEG,YAAa,eAAxBH,GAA2CL,GAE3D,OAAOS,EAACC,MAAAA,CAAIT,UAAWU,EAAG,uBAAwBV,GAAYC,IAAKA,EAAKU,IAAKL,EAASJ,OAAQA,EAAQC,MAAOA"}
1
+ {"version":3,"file":"Icon.js","sources":["../../../../../src/components/internal/Icon/Icon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport useImage from '../../../core/Context/useImage';\n\ninterface IconProps {\n type: string;\n className?: string;\n alt?: string;\n height?: number;\n width?: number;\n}\n\nconst Icon = ({ type, className = '', alt = '', height, width }: IconProps) => {\n const getImage = useImage();\n const iconUrl = getImage({ imageFolder: 'components/' })?.(type);\n\n return <img className={cx('adyen-checkout__icon', className)} alt={alt} src={iconUrl} height={height} width={width} />;\n};\n\nexport default Icon;\n"],"names":["Icon","type","className","alt","height","width","getImage","useImage","iconUrl","imageFolder","h","img","cx","src"],"mappings":"mKAYA,MAAMA,EAAO,EAAGC,OAAMC,YAAY,GAAIC,MAAM,GAAIC,SAAQC,YACpD,MAAMC,EAAWC,IACXC,EAAUF,EAAS,CAAEG,YAAa,eAAxBH,GAA2CL,GAE3D,OAAOS,EAACC,MAAAA,CAAIT,UAAWU,EAAG,uBAAwBV,GAAYC,IAAKA,EAAKU,IAAKL,EAASJ,OAAQA,EAAQC,MAAOA"}
@@ -1,2 +1,2 @@
1
- import{useState as e,useRef as a,useEffect as s}from"../../../external/preact/hooks/dist/hooks.js";import r from"../../../external/classnames/index.js";import{createElement as t}from"../../../external/preact/dist/preact.js";function o(o){const{backgroundUrl:c="",className:n="",classNameModifiers:l=[],src:m="",alt:d="",showOnError:i=!1}=o,[u,f]=e(!1),p=a(null),g=()=>{f(!0)},k=r([n],"adyen-checkout__image",{"adyen-checkout__image--loaded":u},...l.map((e=>`adyen-checkout__image--${e}`)));return s((()=>{const e=c?new Image:p.current;e.src=c||m,e.onload=g,f(!!e.complete)}),[]),c?t("div",{"data-testid":"background",style:{backgroundUrl:c},...o,className:k}):t("img",{...o,alt:d,ref:p,className:k,onError:()=>{f(i)}})}export{o as default};
1
+ import{useState as e,useRef as a,useEffect as r}from"../../../external/preact/hooks/dist/hooks.js";import t from"../../../_virtual/index.js";import{createElement as s}from"../../../external/preact/dist/preact.js";function o(o){const{backgroundUrl:c="",className:n="",classNameModifiers:l=[],src:m="",alt:d="",showOnError:i=!1}=o,[u,f]=e(!1),p=a(null),g=()=>{f(!0)},k=t([n],"adyen-checkout__image",{"adyen-checkout__image--loaded":u},...l.map((e=>`adyen-checkout__image--${e}`)));return r((()=>{const e=c?new Image:p.current;e.src=c||m,e.onload=g,f(!!e.complete)}),[]),c?s("div",{"data-testid":"background",style:{backgroundUrl:c},...o,className:k}):s("img",{...o,alt:d,ref:p,className:k,onError:()=>{f(i)}})}export{o as default};
2
2
  //# sourceMappingURL=Img.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Img.js","sources":["../../../../../src/components/internal/Img/Img.tsx"],"sourcesContent":["import { JSX } from 'preact';\nimport { useRef, useState, useEffect } from 'preact/hooks';\nimport cx from 'classnames';\nimport './Img.scss';\nimport { h } from 'preact';\nimport { ImgProps } from './types';\n\nexport default function Img(props: ImgProps) {\n const { backgroundUrl = '', className = '', classNameModifiers = [], src = '', alt = '', showOnError = false } = props;\n const [loaded, setLoaded] = useState(false);\n const imageRef = useRef(null);\n\n const handleLoad = () => {\n setLoaded(true);\n };\n\n const handleError = () => {\n setLoaded(showOnError);\n };\n\n const classNames = cx(\n [className],\n 'adyen-checkout__image',\n { 'adyen-checkout__image--loaded': loaded },\n ...classNameModifiers.map(modifier => `adyen-checkout__image--${modifier}`)\n );\n\n useEffect(() => {\n const image = backgroundUrl ? new Image() : imageRef.current;\n image.src = backgroundUrl || src;\n image.onload = handleLoad;\n setLoaded(!!image.complete);\n }, []);\n\n if (backgroundUrl) {\n return <div data-testid=\"background\" style={{ backgroundUrl } as JSX.CSSProperties} {...props} className={classNames} />;\n }\n\n return <img {...props} alt={alt} ref={imageRef} className={classNames} onError={handleError} />;\n}\n"],"names":["Img","props","backgroundUrl","className","classNameModifiers","src","alt","showOnError","loaded","setLoaded","useState","imageRef","useRef","handleLoad","classNames","cx","map","modifier","useEffect","image","Image","current","onload","complete","h","div","data-testid","style","img","ref","onError"],"mappings":"gOAOe,SAASA,EAAIC,GACxB,MAAMC,cAAEA,EAAgB,GAAEC,UAAEA,EAAY,GAAEC,mBAAEA,EAAqB,GAAEC,IAAEA,EAAM,GAAEC,IAAEA,EAAM,GAAEC,YAAEA,GAAc,GAAUN,GAC1GO,EAAQC,GAAaC,GAAS,GAC/BC,EAAWC,EAAO,MAElBC,EAAa,KACfJ,GAAU,EAAA,EAORK,EAAaC,EACf,CAACZ,GACD,wBACA,CAAE,gCAAiCK,MAChCJ,EAAmBY,KAAIC,GAAY,0BAA0BA,OAUpE,OAPAC,GAAU,KACN,MAAMC,EAAQjB,EAAgB,IAAIkB,MAAUT,EAASU,QACrDF,EAAMd,IAAMH,GAAiBG,EAC7Bc,EAAMG,OAAST,EACfJ,IAAYU,EAAMI,SAAQ,GAC3B,IAECrB,EACOsB,EAACC,MAAAA,CAAIC,cAAY,aAAaC,MAAO,CAAEzB,oBAA0CD,EAAOE,UAAWW,IAGvGU,EAACI,MAAAA,IAAQ3B,EAAOK,IAAKA,EAAKuB,IAAKlB,EAAUR,UAAWW,EAAYgB,QAtBnD,KAChBrB,EAAUF,EAAAA,GAsBlB"}
1
+ {"version":3,"file":"Img.js","sources":["../../../../../src/components/internal/Img/Img.tsx"],"sourcesContent":["import { JSX } from 'preact';\nimport { useRef, useState, useEffect } from 'preact/hooks';\nimport cx from 'classnames';\nimport './Img.scss';\nimport { h } from 'preact';\nimport { ImgProps } from './types';\n\nexport default function Img(props: ImgProps) {\n const { backgroundUrl = '', className = '', classNameModifiers = [], src = '', alt = '', showOnError = false } = props;\n const [loaded, setLoaded] = useState(false);\n const imageRef = useRef(null);\n\n const handleLoad = () => {\n setLoaded(true);\n };\n\n const handleError = () => {\n setLoaded(showOnError);\n };\n\n const classNames = cx(\n [className],\n 'adyen-checkout__image',\n { 'adyen-checkout__image--loaded': loaded },\n ...classNameModifiers.map(modifier => `adyen-checkout__image--${modifier}`)\n );\n\n useEffect(() => {\n const image = backgroundUrl ? new Image() : imageRef.current;\n image.src = backgroundUrl || src;\n image.onload = handleLoad;\n setLoaded(!!image.complete);\n }, []);\n\n if (backgroundUrl) {\n return <div data-testid=\"background\" style={{ backgroundUrl } as JSX.CSSProperties} {...props} className={classNames} />;\n }\n\n return <img {...props} alt={alt} ref={imageRef} className={classNames} onError={handleError} />;\n}\n"],"names":["Img","props","backgroundUrl","className","classNameModifiers","src","alt","showOnError","loaded","setLoaded","useState","imageRef","useRef","handleLoad","classNames","cx","map","modifier","useEffect","image","Image","current","onload","complete","h","div","data-testid","style","img","ref","onError"],"mappings":"qNAOe,SAASA,EAAIC,GACxB,MAAMC,cAAEA,EAAgB,GAAEC,UAAEA,EAAY,GAAEC,mBAAEA,EAAqB,GAAEC,IAAEA,EAAM,GAAEC,IAAEA,EAAM,GAAEC,YAAEA,GAAc,GAAUN,GAC1GO,EAAQC,GAAaC,GAAS,GAC/BC,EAAWC,EAAO,MAElBC,EAAa,KACfJ,GAAU,EAAA,EAORK,EAAaC,EACf,CAACZ,GACD,wBACA,CAAE,gCAAiCK,MAChCJ,EAAmBY,KAAIC,GAAY,0BAA0BA,OAUpE,OAPAC,GAAU,KACN,MAAMC,EAAQjB,EAAgB,IAAIkB,MAAUT,EAASU,QACrDF,EAAMd,IAAMH,GAAiBG,EAC7Bc,EAAMG,OAAST,EACfJ,IAAYU,EAAMI,SAAQ,GAC3B,IAECrB,EACOsB,EAACC,MAAAA,CAAIC,cAAY,aAAaC,MAAO,CAAEzB,oBAA0CD,EAAOE,UAAWW,IAGvGU,EAACI,MAAAA,IAAQ3B,EAAOK,IAAKA,EAAKuB,IAAKlB,EAAUR,UAAWW,EAAYgB,QAtBnD,KAChBrB,EAAUF,EAAAA,GAsBlB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"../../../../external/classnames/index.js";import a from"../../Img/Img.js";function s({name:s,id:n,icon:c,onClick:r,selected:o=!1}){return e("button",{type:"button",className:t("adyen-checkout__issuer-button",{"adyen-checkout__issuer-button--selected":o}),"aria-label":s,"aria-pressed":o,onClick:r,value:n},!!c&&e(a,{className:"adyen-checkout__issuer-button-img",alt:s,src:c}),e("span",{className:"adyen-checkout__issuer-button-text"},s))}export{s as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"../../../../_virtual/index.js";import a from"../../Img/Img.js";function s({name:s,id:r,icon:c,onClick:n,selected:o=!1}){return e("button",{type:"button",className:t("adyen-checkout__issuer-button",{"adyen-checkout__issuer-button--selected":o}),"aria-label":s,"aria-pressed":o,onClick:n,value:r},!!c&&e(a,{className:"adyen-checkout__issuer-button-img",alt:s,src:c}),e("span",{className:"adyen-checkout__issuer-button-text"},s))}export{s as default};
2
2
  //# sourceMappingURL=IssuerButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IssuerButton.js","sources":["../../../../../../src/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport Img from '../../Img';\nimport './IssuerButton.scss';\n\ninterface IssuerButtonProps {\n name: string;\n id: string;\n selected: boolean;\n onClick: (event: UIEvent) => void;\n icon?: string;\n}\n\nfunction IssuerButton({ name, id, icon, onClick, selected = false }: IssuerButtonProps) {\n return (\n <button\n type=\"button\"\n className={cx('adyen-checkout__issuer-button', { 'adyen-checkout__issuer-button--selected': selected })}\n aria-label={name}\n aria-pressed={selected}\n onClick={onClick}\n value={id}\n >\n {!!icon && <Img className=\"adyen-checkout__issuer-button-img\" alt={name} src={icon} />}\n <span className=\"adyen-checkout__issuer-button-text\">{name}</span>\n </button>\n );\n}\n\nexport default IssuerButton;\n"],"names":["IssuerButton","name","id","icon","onClick","selected","h","button","type","className","cx","aria-label","aria-pressed","value","Img","alt","src","span"],"mappings":"mKAaA,SAASA,GAAaC,KAAEA,EAAIC,GAAEA,EAAEC,KAAEA,EAAIC,QAAEA,EAAOC,SAAEA,GAAW,IACxD,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAWC,EAAG,gCAAiC,CAAE,0CAA2CL,IAC5FM,aAAYV,EACZW,eAAcP,EACdD,QAASA,EACTS,MAAOX,KAEJC,GAAQG,EAACQ,EAAAA,CAAIL,UAAU,oCAAoCM,IAAKd,EAAMe,IAAKb,IAC9EG,EAACW,OAAAA,CAAKR,UAAU,sCAAsCR,GAGlE"}
1
+ {"version":3,"file":"IssuerButton.js","sources":["../../../../../../src/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport Img from '../../Img';\nimport './IssuerButton.scss';\n\ninterface IssuerButtonProps {\n name: string;\n id: string;\n selected: boolean;\n onClick: (event: UIEvent) => void;\n icon?: string;\n}\n\nfunction IssuerButton({ name, id, icon, onClick, selected = false }: IssuerButtonProps) {\n return (\n <button\n type=\"button\"\n className={cx('adyen-checkout__issuer-button', { 'adyen-checkout__issuer-button--selected': selected })}\n aria-label={name}\n aria-pressed={selected}\n onClick={onClick}\n value={id}\n >\n {!!icon && <Img className=\"adyen-checkout__issuer-button-img\" alt={name} src={icon} />}\n <span className=\"adyen-checkout__issuer-button-text\">{name}</span>\n </button>\n );\n}\n\nexport default IssuerButton;\n"],"names":["IssuerButton","name","id","icon","onClick","selected","h","button","type","className","cx","aria-label","aria-pressed","value","Img","alt","src","span"],"mappings":"wJAaA,SAASA,GAAaC,KAAEA,EAAIC,GAAEA,EAAEC,KAAEA,EAAIC,QAAEA,EAAOC,SAAEA,GAAW,IACxD,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAWC,EAAG,gCAAiC,CAAE,0CAA2CL,IAC5FM,aAAYV,EACZW,eAAcP,EACdD,QAASA,EACTS,MAAOX,KAEJC,GAAQG,EAACQ,EAAAA,CAAIL,UAAU,oCAAoCM,IAAKd,EAAMe,IAAKb,IAC9EG,EAACW,OAAAA,CAAKR,UAAU,sCAAsCR,GAGlE"}
@@ -1,2 +1,2 @@
1
- import{createElement as n}from"../../../external/preact/dist/preact.js";import i from"../../../external/classnames/index.js";import e from"../Spinner/Spinner.js";const t=({children:t,status:a})=>{const o=i("adyen-checkout__loading-input__form","loading-input__form",{"loading-input__form--loading":"loading"===a}),r=i({"loading-input__spinner":!0,"loading-input__spinner--active":"loading"===a});return n("div",{style:{position:"relative"}},n("div",{className:r},n(e,null)),n("div",{className:o},t))};export{t as default};
1
+ import{createElement as i}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import t from"../Spinner/Spinner.js";const e=({children:e,status:a})=>{const o=n("adyen-checkout__loading-input__form","loading-input__form",{"loading-input__form--loading":"loading"===a}),r=n({"loading-input__spinner":!0,"loading-input__spinner--active":"loading"===a});return i("div",{style:{position:"relative"}},i("div",{className:r},i(t,null)),i("div",{className:o},e))};export{e as default};
2
2
  //# sourceMappingURL=LoadingWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingWrapper.js","sources":["../../../../../src/components/internal/LoadingWrapper/LoadingWrapper.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../../internal/Spinner';\nimport './LoadingWrapper.scss';\n\ninterface LoadingWrapperProps {\n status?: string;\n children?: ComponentChildren;\n}\n\nconst LoadingWrapper = ({ children, status }: LoadingWrapperProps) => {\n const wrapperClass = classNames('adyen-checkout__loading-input__form', 'loading-input__form', {\n 'loading-input__form--loading': status === 'loading'\n });\n\n const spinnerClass = classNames({\n 'loading-input__spinner': true,\n 'loading-input__spinner--active': status === 'loading'\n });\n\n return (\n <div style={{ position: 'relative' }}>\n <div className={spinnerClass}>\n <Spinner />\n </div>\n <div className={wrapperClass}>{children}</div>\n </div>\n );\n};\n\nexport default LoadingWrapper;\n"],"names":["LoadingWrapper","children","status","wrapperClass","classNames","spinnerClass","h","div","style","position","className","Spinner"],"mappings":"kKAUA,MAAMA,EAAiB,EAAGC,WAAUC,aAChC,MAAMC,EAAeC,EAAW,sCAAuC,sBAAuB,CAC1F,+BAA2C,YAAXF,IAG9BG,EAAeD,EAAW,CAC5B,0BAA0B,EAC1B,iCAA6C,YAAXF,IAGtC,OACII,EAACC,MAAAA,CAAIC,MAAO,CAAEC,SAAU,aACpBH,EAACC,MAAAA,CAAIG,UAAWL,GACZC,EAACK,SAELL,EAACC,MAAAA,CAAIG,UAAWP,GAAeF,GAAAA"}
1
+ {"version":3,"file":"LoadingWrapper.js","sources":["../../../../../src/components/internal/LoadingWrapper/LoadingWrapper.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../../internal/Spinner';\nimport './LoadingWrapper.scss';\n\ninterface LoadingWrapperProps {\n status?: string;\n children?: ComponentChildren;\n}\n\nconst LoadingWrapper = ({ children, status }: LoadingWrapperProps) => {\n const wrapperClass = classNames('adyen-checkout__loading-input__form', 'loading-input__form', {\n 'loading-input__form--loading': status === 'loading'\n });\n\n const spinnerClass = classNames({\n 'loading-input__spinner': true,\n 'loading-input__spinner--active': status === 'loading'\n });\n\n return (\n <div style={{ position: 'relative' }}>\n <div className={spinnerClass}>\n <Spinner />\n </div>\n <div className={wrapperClass}>{children}</div>\n </div>\n );\n};\n\nexport default LoadingWrapper;\n"],"names":["LoadingWrapper","children","status","wrapperClass","classNames","spinnerClass","h","div","style","position","className","Spinner"],"mappings":"uJAUA,MAAMA,EAAiB,EAAGC,WAAUC,aAChC,MAAMC,EAAeC,EAAW,sCAAuC,sBAAuB,CAC1F,+BAA2C,YAAXF,IAG9BG,EAAeD,EAAW,CAC5B,0BAA0B,EAC1B,iCAA6C,YAAXF,IAGtC,OACII,EAACC,MAAAA,CAAIC,MAAO,CAAEC,SAAU,aACpBH,EAACC,MAAAA,CAAIG,UAAWL,GACZC,EAACK,SAELL,EAACC,MAAAA,CAAIG,UAAWP,GAAeF,GAAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as s}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../../external/classnames/index.js";import{useModal as o}from"./useModal.js";const r=({children:r,classNameModifiers:l=[],isOpen:i,onClose:d,isDismissible:t=!0,labelledBy:c,describedBy:n,focusFirst:m,focusAfterClose:p,...u})=>{const f=s(),{closeModal:h,handleClickOutside:b}=o({modalElement:f.current,isOpen:i,isDismissible:t,focusFirst:m,focusAfterClose:p,onClose:d});return e("div",{className:a("adyen-checkout__modal-wrapper",l.map((e=>`adyen-checkout__modal-wrapper--${e}`)),{"adyen-checkout__modal-wrapper--open":i}),role:"dialog","aria-labelledby":c,"aria-describedby":n,"aria-modal":"true","aria-hidden":!i,onClick:b,...u},e("div",{className:"adyen-checkout__modal",ref:f},r({onCloseModal:h})))};export{r as Modal};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as o}from"../../../external/preact/hooks/dist/hooks.js";import s from"../../../_virtual/index.js";import{useModal as a}from"./useModal.js";const r=({children:r,classNameModifiers:l=[],isOpen:i,onClose:d,isDismissible:t=!0,labelledBy:c,describedBy:n,focusFirst:m,focusAfterClose:p,...u})=>{const f=o(),{closeModal:h,handleClickOutside:_}=a({modalElement:f.current,isOpen:i,isDismissible:t,focusFirst:m,focusAfterClose:p,onClose:d});return e("div",{className:s("adyen-checkout__modal-wrapper",l.map((e=>`adyen-checkout__modal-wrapper--${e}`)),{"adyen-checkout__modal-wrapper--open":i}),role:"dialog","aria-labelledby":c,"aria-describedby":n,"aria-modal":"true","aria-hidden":!i,onClick:_,...u},e("div",{className:"adyen-checkout__modal",ref:f},r({onCloseModal:h})))};export{r as Modal};
2
2
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../../src/components/internal/Modal/Modal.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport cx from 'classnames';\nimport './Modal.scss';\nimport { useModal } from './useModal';\n\ntype ModalRenderFnProps = {\n /**\n * Function used to properly trigger the Modal close mechanism. It takes into account the element that the Modal needs\n * to set focus when it is dismissed.\n */\n onCloseModal(): void;\n};\n\ntype ModalProps = {\n children: ({ onCloseModal }: ModalRenderFnProps) => ComponentChildren;\n classNameModifiers?: string[];\n onClose(): void;\n isOpen: boolean;\n isDismissible?: boolean;\n labelledBy: string;\n describedBy: string;\n /**\n * Reference to the element that should be focused when the modal is opened\n */\n focusFirst: HTMLElement;\n /**\n * Reference to the element that should be focused when the modal is closed\n */\n focusAfterClose: HTMLElement;\n};\n\nconst Modal = ({\n children,\n classNameModifiers = [],\n isOpen,\n onClose,\n isDismissible = true,\n labelledBy,\n describedBy,\n focusFirst,\n focusAfterClose,\n ...props\n}: ModalProps) => {\n const modalContainerRef = useRef<HTMLDivElement>();\n const { closeModal, handleClickOutside } = useModal({\n modalElement: modalContainerRef.current,\n isOpen,\n isDismissible,\n focusFirst,\n focusAfterClose,\n onClose\n });\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions\n <div\n className={cx(\n 'adyen-checkout__modal-wrapper',\n classNameModifiers.map(m => `adyen-checkout__modal-wrapper--${m}`),\n { 'adyen-checkout__modal-wrapper--open': isOpen }\n )}\n role=\"dialog\"\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n aria-modal=\"true\"\n aria-hidden={!isOpen}\n onClick={handleClickOutside}\n {...props}\n >\n <div className=\"adyen-checkout__modal\" ref={modalContainerRef}>\n {children({ onCloseModal: closeModal })}\n </div>\n </div>\n );\n};\n\nexport { Modal };\n"],"names":["Modal","children","classNameModifiers","isOpen","onClose","isDismissible","labelledBy","describedBy","focusFirst","focusAfterClose","props","modalContainerRef","useRef","closeModal","handleClickOutside","useModal","modalElement","current","h","div","className","cx","map","m","role","aria-labelledby","aria-describedby","aria-modal","aria-hidden","onClick","ref","onCloseModal"],"mappings":"4OAgCMA,MAAAA,EAAQ,EACVC,WACAC,qBAAqB,GACrBC,SACAC,UACAC,iBAAgB,EAChBC,aACAC,cACAC,aACAC,qBACGC,MAEH,MAAMC,EAAoBC,KACpBC,WAAEA,EAAUC,mBAAEA,GAAuBC,EAAS,CAChDC,aAAcL,EAAkBM,QAChCd,SACAE,gBACAG,aACAC,kBACAL,YAGJ,OAEIc,EAACC,MAAAA,CACGC,UAAWC,EACP,gCACAnB,EAAmBoB,KAAIC,GAAK,kCAAkCA,MAC9D,CAAE,sCAAuCpB,IAE7CqB,KAAK,SACLC,kBAAiBnB,EACjBoB,mBAAkBnB,EAClBoB,aAAW,OACXC,eAAczB,EACd0B,QAASf,KACLJ,GAEJQ,EAACC,MAAAA,CAAIC,UAAU,wBAAwBU,IAAKnB,GACvCV,EAAS,CAAE8B,aAAclB,KAAW"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../../src/components/internal/Modal/Modal.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport cx from 'classnames';\nimport './Modal.scss';\nimport { useModal } from './useModal';\n\ntype ModalRenderFnProps = {\n /**\n * Function used to properly trigger the Modal close mechanism. It takes into account the element that the Modal needs\n * to set focus when it is dismissed.\n */\n onCloseModal(): void;\n};\n\ntype ModalProps = {\n children: ({ onCloseModal }: ModalRenderFnProps) => ComponentChildren;\n classNameModifiers?: string[];\n onClose(): void;\n isOpen: boolean;\n isDismissible?: boolean;\n labelledBy: string;\n describedBy: string;\n /**\n * Reference to the element that should be focused when the modal is opened\n */\n focusFirst: HTMLElement;\n /**\n * Reference to the element that should be focused when the modal is closed\n */\n focusAfterClose: HTMLElement;\n};\n\nconst Modal = ({\n children,\n classNameModifiers = [],\n isOpen,\n onClose,\n isDismissible = true,\n labelledBy,\n describedBy,\n focusFirst,\n focusAfterClose,\n ...props\n}: ModalProps) => {\n const modalContainerRef = useRef<HTMLDivElement>();\n const { closeModal, handleClickOutside } = useModal({\n modalElement: modalContainerRef.current,\n isOpen,\n isDismissible,\n focusFirst,\n focusAfterClose,\n onClose\n });\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions\n <div\n className={cx(\n 'adyen-checkout__modal-wrapper',\n classNameModifiers.map(m => `adyen-checkout__modal-wrapper--${m}`),\n { 'adyen-checkout__modal-wrapper--open': isOpen }\n )}\n role=\"dialog\"\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n aria-modal=\"true\"\n aria-hidden={!isOpen}\n onClick={handleClickOutside}\n {...props}\n >\n <div className=\"adyen-checkout__modal\" ref={modalContainerRef}>\n {children({ onCloseModal: closeModal })}\n </div>\n </div>\n );\n};\n\nexport { Modal };\n"],"names":["Modal","children","classNameModifiers","isOpen","onClose","isDismissible","labelledBy","describedBy","focusFirst","focusAfterClose","props","modalContainerRef","useRef","closeModal","handleClickOutside","useModal","modalElement","current","h","div","className","cx","map","m","role","aria-labelledby","aria-describedby","aria-modal","aria-hidden","onClick","ref","onCloseModal"],"mappings":"iOAgCMA,MAAAA,EAAQ,EACVC,WACAC,qBAAqB,GACrBC,SACAC,UACAC,iBAAgB,EAChBC,aACAC,cACAC,aACAC,qBACGC,MAEH,MAAMC,EAAoBC,KACpBC,WAAEA,EAAUC,mBAAEA,GAAuBC,EAAS,CAChDC,aAAcL,EAAkBM,QAChCd,SACAE,gBACAG,aACAC,kBACAL,YAGJ,OAEIc,EAACC,MAAAA,CACGC,UAAWC,EACP,gCACAnB,EAAmBoB,KAAIC,GAAK,kCAAkCA,MAC9D,CAAE,sCAAuCpB,IAE7CqB,KAAK,SACLC,kBAAiBnB,EACjBoB,mBAAkBnB,EAClBoB,aAAW,OACXC,eAAczB,EACd0B,QAASf,KACLJ,GAEJQ,EAACC,MAAAA,CAAIC,UAAU,wBAAwBU,IAAKnB,GACvCV,EAAS,CAAE8B,aAAclB,KAAW"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as s,useState as r,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import n from"../CompanyDetails/CompanyDetails.js";import t from"../PersonalDetails/PersonalDetails.js";import a from"../Address/Address.js";import l from"../FormFields/Checkbox/Checkbox.js";import d from"../FormFields/ConsentCheckbox/ConsentCheckbox.js";import{getInitialActiveFieldsets as c,fieldsetsSchema as m,getActiveFieldsData as p}from"./utils.js";import b from"../IbanInput/IbanInput.js";import u from"../FormFields/Field/Field.js";import y from"../FormInstruction/FormInstruction.js";import C from"./useSRPanelForOpenInvoiceErrors.js";const h={isValid:!1,errorMessage:"consent.checkbox.invalid",error:"consent.checkbox.invalid"};function f(f){const{countryCode:A,visibility:v}=f,{i18n:k}=i(),g=s({});Object.keys(g.current).length||f.setComponentRef?.(g.current);const D=s(!1),x=c(v,f.data),[F,j]=r(x),{current:w}=s(m.reduce(((e,s)=>(e[s]=e=>{w[s].current=e},e)),{})),R=!!f.consentCheckboxLabel,E=!R&&Object.keys(F).every((e=>!F[e])),I="editable"===v.deliveryAddress&&"hidden"!==v.billingAddress,[S,q]=r({...f.data,...R&&{consentCheckbox:!1}}),[P,V]=r({}),[M,N]=r({}),[O,L]=r("ready");g.current.showValidation=()=>{D.current=!0,m.forEach((e=>{w[e].current&&w[e].current.showValidation()})),V({...R&&{consentCheckbox:S.consentCheckbox?null:h}})},g.current.setStatus=L,C({errors:P,data:S,props:f,isValidating:D}),o((()=>{const e=Object.keys(F).every((e=>!F[e]||!!M[e])),s=!R||!!M.consentCheckbox,r=e&&s,o=p(F,S);f.onChange({data:o,errors:P,valid:M,isValid:r})}),[S,F]);const B=e=>s=>{q((r=>({...r,[e]:s.data}))),N((r=>({...r,[e]:s.isValid}))),V((r=>({...r,[e]:s.errors})))};return e("div",{className:"adyen-checkout__open-invoice"},e(y,null),F.companyDetails&&e(n,{data:f.data.companyDetails,label:"companyDetails",onChange:B("companyDetails"),setComponentRef:w.companyDetails,visibility:v.companyDetails}),F.personalDetails&&e(t,{data:f.data.personalDetails,requiredFields:f.personalDetailsRequiredFields,label:"personalDetails",onChange:B("personalDetails"),setComponentRef:w.personalDetails,visibility:v.personalDetails}),F.bankAccount&&e(b,{holderName:!0,label:"ach.bankAccount",data:S.bankAccount,onChange:B("bankAccount"),ref:w.bankAccount}),F.billingAddress&&e(a,{allowedCountries:f?.billingAddressSpecification?.allowedCountries??f.allowedCountries,countryCode:A,requiredFields:f.billingAddressRequiredFields,specifications:f.billingAddressSpecification,data:S.billingAddress,label:"billingAddress",onChange:B("billingAddress"),setComponentRef:w.billingAddress,visibility:v.billingAddress}),I&&e(u,{classNameModifiers:["separateDeliveryAddress","consentCheckbox"],name:"separateDeliveryAddress",useLabelElement:!1,showErrorElement:!1},e(l,{label:k.get("separateDeliveryAddress"),checked:F.deliveryAddress,classNameModifiers:["separateDeliveryAddress"],name:"separateDeliveryAddress",onChange:()=>{j((e=>({...e,deliveryAddress:!F.deliveryAddress})))}})),F.deliveryAddress&&e(a,{allowedCountries:f?.deliveryAddressSpecification?.allowedCountries??f.allowedCountries,countryCode:A,requiredFields:f.deliveryAddressRequiredFields,specifications:f.deliveryAddressSpecification,data:S.deliveryAddress,label:"deliveryAddress",onChange:B("deliveryAddress"),setComponentRef:w.deliveryAddress,visibility:v.deliveryAddress}),R&&e(d,{data:S,errorMessage:!!P.consentCheckbox,label:f.consentCheckboxLabel,onChange:e=>{const{checked:s}=e.target;q((e=>({...e,consentCheckbox:s}))),N((e=>({...e,consentCheckbox:s}))),V((e=>({...e,consentCheckbox:s?null:h})))},i18n:k}),f.showPayButton&&f.payButton({status:O,classNameModifiers:[...E?["standalone"]:[]],label:k.get("confirmPurchase")}))}export{f as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as s,useState as r,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import n from"../CompanyDetails/CompanyDetails.js";import t from"../PersonalDetails/PersonalDetails.js";import a from"../Address/Address.js";import l from"../FormFields/Checkbox/Checkbox.js";import d from"../FormFields/ConsentCheckbox/ConsentCheckbox.js";import{getInitialActiveFieldsets as c,fieldsetsSchema as m,getActiveFieldsData as p}from"./utils.js";import b from"../IbanInput/IbanInput.js";import u from"../FormFields/Field/Field.js";import y from"../FormInstruction/FormInstruction.js";import C from"./useSRPanelForOpenInvoiceErrors.js";import h from"../../../_virtual/index.js";const f={isValid:!1,errorMessage:"consent.checkbox.invalid",error:"consent.checkbox.invalid"};function A(A){const{countryCode:v,visibility:k}=A,{i18n:g}=i(),x=s({});Object.keys(x.current).length||A.setComponentRef?.(x.current);const D=s(!1),j=c(k,A.data),[F,w]=r(j),{current:R}=s(m.reduce(((e,s)=>(e[s]=e=>{R[s].current=e},e)),{})),E=!!A.consentCheckboxLabel,I=!E&&Object.keys(F).every((e=>!F[e])),S="editable"===k.deliveryAddress&&"hidden"!==k.billingAddress,[q,P]=r({...A.data,...E&&{consentCheckbox:!1}}),[V,M]=r({}),[N,_]=r({}),[O,L]=r("ready");x.current.showValidation=()=>{D.current=!0,m.forEach((e=>{R[e].current&&R[e].current.showValidation()})),M({...E&&{consentCheckbox:q.consentCheckbox?null:f}})},x.current.setStatus=L,C({errors:V,data:q,props:A,isValidating:D}),o((()=>{const e=Object.keys(F).every((e=>!F[e]||!!N[e])),s=!E||!!N.consentCheckbox,r=e&&s,o=p(F,q);A.onChange({data:o,errors:V,valid:N,isValid:r})}),[q,F]);const B=e=>s=>{P((r=>({...r,[e]:s.data}))),_((r=>({...r,[e]:s.isValid}))),M((r=>({...r,[e]:s.errors})))};return e("div",{className:h({"adyen-checkout__open-invoice":!0,"adyen-checkout__open-invoice--loading":"loading"===O})},e(y,null),F.companyDetails&&e(n,{data:A.data.companyDetails,label:"companyDetails",onChange:B("companyDetails"),setComponentRef:R.companyDetails,visibility:k.companyDetails}),F.personalDetails&&e(t,{data:A.data.personalDetails,requiredFields:A.personalDetailsRequiredFields,label:"personalDetails",onChange:B("personalDetails"),setComponentRef:R.personalDetails,visibility:k.personalDetails}),F.bankAccount&&e(b,{holderName:!0,label:"ach.bankAccount",data:q.bankAccount,onChange:B("bankAccount"),ref:R.bankAccount}),F.billingAddress&&e(a,{allowedCountries:A?.billingAddressSpecification?.allowedCountries??A.allowedCountries,countryCode:v,requiredFields:A.billingAddressRequiredFields,specifications:A.billingAddressSpecification,data:q.billingAddress,label:"billingAddress",onChange:B("billingAddress"),setComponentRef:R.billingAddress,visibility:k.billingAddress}),S&&e(u,{classNameModifiers:["separateDeliveryAddress","consentCheckbox"],name:"separateDeliveryAddress",useLabelElement:!1,showErrorElement:!1},e(l,{label:g.get("separateDeliveryAddress"),checked:F.deliveryAddress,classNameModifiers:["separateDeliveryAddress"],name:"separateDeliveryAddress",onChange:()=>{w((e=>({...e,deliveryAddress:!F.deliveryAddress})))}})),F.deliveryAddress&&e(a,{allowedCountries:A?.deliveryAddressSpecification?.allowedCountries??A.allowedCountries,countryCode:v,requiredFields:A.deliveryAddressRequiredFields,specifications:A.deliveryAddressSpecification,data:q.deliveryAddress,label:"deliveryAddress",onChange:B("deliveryAddress"),setComponentRef:R.deliveryAddress,visibility:k.deliveryAddress}),E&&e(d,{data:q,errorMessage:!!V.consentCheckbox,label:A.consentCheckboxLabel,onChange:e=>{const{checked:s}=e.target;P((e=>({...e,consentCheckbox:s}))),_((e=>({...e,consentCheckbox:s}))),M((e=>({...e,consentCheckbox:s?null:f})))},i18n:g}),A.showPayButton&&A.payButton({status:O,classNameModifiers:[...I?["standalone"]:[]],label:g.get("confirmPurchase")}))}export{A as default};
2
2
  //# sourceMappingURL=OpenInvoice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenInvoice.js","sources":["../../../../../src/components/internal/OpenInvoice/OpenInvoice.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport CompanyDetails from '../CompanyDetails';\nimport PersonalDetails from '../PersonalDetails';\nimport Address from '../Address';\nimport Checkbox from '../FormFields/Checkbox';\nimport ConsentCheckbox from '../FormFields/ConsentCheckbox';\nimport { getActiveFieldsData, getInitialActiveFieldsets, fieldsetsSchema } from './utils';\nimport {\n OpenInvoiceActiveFieldsets,\n OpenInvoiceFieldsetsRefs,\n OpenInvoiceProps,\n OpenInvoiceStateData,\n OpenInvoiceStateError,\n OpenInvoiceStateValid\n} from './types';\nimport './OpenInvoice.scss';\nimport IbanInput from '../IbanInput';\nimport { GenericError } from '../../../core/Errors/types';\nimport Field from '../FormFields/Field';\nimport FormInstruction from '../FormInstruction';\nimport { ComponentMethodsRef } from '../UIElement/types';\nimport useSRPanelForOpenInvoiceErrors from './useSRPanelForOpenInvoiceErrors';\n\nconst consentCBErrorObj: GenericError = {\n isValid: false,\n errorMessage: 'consent.checkbox.invalid',\n error: 'consent.checkbox.invalid'\n};\n\nexport default function OpenInvoice(props: OpenInvoiceProps) {\n const { countryCode, visibility } = props;\n const { i18n } = useCoreContext();\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const openInvoiceRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(openInvoiceRef.current).length) {\n props.setComponentRef?.(openInvoiceRef.current);\n }\n\n const isValidating = useRef(false);\n\n const initialActiveFieldsets: OpenInvoiceActiveFieldsets = getInitialActiveFieldsets(visibility, props.data);\n const [activeFieldsets, setActiveFieldsets] = useState<OpenInvoiceActiveFieldsets>(initialActiveFieldsets);\n\n const { current: fieldsetsRefs } = useRef<OpenInvoiceFieldsetsRefs>(\n fieldsetsSchema.reduce((acc, fieldset) => {\n acc[fieldset] = ref => {\n fieldsetsRefs[fieldset].current = ref;\n };\n return acc;\n }, {})\n );\n\n const checkFieldsets = () => Object.keys(activeFieldsets).every(fieldset => !activeFieldsets[fieldset] || !!valid[fieldset]);\n const hasConsentCheckbox = !!props.consentCheckboxLabel;\n const isStandAloneButton = !hasConsentCheckbox && Object.keys(activeFieldsets).every(key => !activeFieldsets[key]);\n const showSeparateDeliveryAddressCheckbox = visibility.deliveryAddress === 'editable' && visibility.billingAddress !== 'hidden';\n\n const [data, setData] = useState<OpenInvoiceStateData>({\n ...props.data,\n ...(hasConsentCheckbox && { consentCheckbox: false })\n });\n const [errors, setErrors] = useState<OpenInvoiceStateError>({});\n const [valid, setValid] = useState<OpenInvoiceStateValid>({});\n const [status, setStatus] = useState('ready');\n\n // Expose methods expected by parent\n openInvoiceRef.current.showValidation = () => {\n isValidating.current = true;\n fieldsetsSchema.forEach(fieldset => {\n if (fieldsetsRefs[fieldset].current) fieldsetsRefs[fieldset].current.showValidation();\n });\n\n setErrors({\n ...(hasConsentCheckbox && { consentCheckbox: data.consentCheckbox ? null : consentCBErrorObj })\n });\n };\n\n openInvoiceRef.current.setStatus = setStatus;\n\n useSRPanelForOpenInvoiceErrors({ errors, data, props, isValidating });\n\n useEffect(() => {\n const fieldsetsAreValid: boolean = checkFieldsets();\n const consentCheckboxValid: boolean = !hasConsentCheckbox || !!valid.consentCheckbox;\n const isValid: boolean = fieldsetsAreValid && consentCheckboxValid;\n const newData: OpenInvoiceStateData = getActiveFieldsData(activeFieldsets, data);\n props.onChange({ data: newData, errors, valid, isValid });\n }, [data, activeFieldsets]);\n\n const handleFieldset = key => state => {\n setData(prevData => ({ ...prevData, [key]: state.data }));\n setValid(prevValid => ({ ...prevValid, [key]: state.isValid }));\n setErrors(prevErrors => ({ ...prevErrors, [key]: state.errors }));\n };\n\n const handleSeparateDeliveryAddress = () => {\n setActiveFieldsets(prevActiveFields => ({\n ...prevActiveFields,\n deliveryAddress: !activeFieldsets.deliveryAddress\n }));\n };\n\n const handleConsentCheckbox = e => {\n const { checked } = e.target;\n setData(prevData => ({ ...prevData, consentCheckbox: checked }));\n setValid(prevValid => ({ ...prevValid, consentCheckbox: checked }));\n setErrors(prevErrors => ({ ...prevErrors, ...{ consentCheckbox: !checked ? consentCBErrorObj : null } }));\n };\n return (\n <div className=\"adyen-checkout__open-invoice\">\n <FormInstruction />\n\n {activeFieldsets.companyDetails && (\n <CompanyDetails\n data={props.data.companyDetails}\n label=\"companyDetails\"\n onChange={handleFieldset('companyDetails')}\n setComponentRef={fieldsetsRefs.companyDetails}\n visibility={visibility.companyDetails}\n />\n )}\n\n {activeFieldsets.personalDetails && (\n <PersonalDetails\n data={props.data.personalDetails}\n requiredFields={props.personalDetailsRequiredFields}\n label=\"personalDetails\"\n onChange={handleFieldset('personalDetails')}\n setComponentRef={fieldsetsRefs.personalDetails}\n visibility={visibility.personalDetails}\n />\n )}\n\n {activeFieldsets.bankAccount && (\n <IbanInput\n holderName={true}\n label=\"ach.bankAccount\"\n data={data.bankAccount}\n onChange={handleFieldset('bankAccount')}\n ref={fieldsetsRefs.bankAccount}\n />\n )}\n\n {activeFieldsets.billingAddress && (\n <Address\n allowedCountries={props?.billingAddressSpecification?.allowedCountries ?? props.allowedCountries}\n countryCode={countryCode}\n requiredFields={props.billingAddressRequiredFields}\n specifications={props.billingAddressSpecification}\n data={data.billingAddress}\n label=\"billingAddress\"\n onChange={handleFieldset('billingAddress')}\n setComponentRef={fieldsetsRefs.billingAddress}\n visibility={visibility.billingAddress}\n />\n )}\n\n {showSeparateDeliveryAddressCheckbox && (\n <Field\n classNameModifiers={['separateDeliveryAddress', 'consentCheckbox']}\n name={'separateDeliveryAddress'}\n useLabelElement={false}\n showErrorElement={false}\n >\n <Checkbox\n label={i18n.get('separateDeliveryAddress')}\n checked={activeFieldsets.deliveryAddress}\n classNameModifiers={['separateDeliveryAddress']}\n name={'separateDeliveryAddress'}\n onChange={handleSeparateDeliveryAddress}\n />\n </Field>\n )}\n\n {activeFieldsets.deliveryAddress && (\n <Address\n allowedCountries={props?.deliveryAddressSpecification?.allowedCountries ?? props.allowedCountries}\n countryCode={countryCode}\n requiredFields={props.deliveryAddressRequiredFields}\n specifications={props.deliveryAddressSpecification}\n data={data.deliveryAddress}\n label=\"deliveryAddress\"\n onChange={handleFieldset('deliveryAddress')}\n setComponentRef={fieldsetsRefs.deliveryAddress}\n visibility={visibility.deliveryAddress}\n />\n )}\n\n {hasConsentCheckbox && (\n <ConsentCheckbox\n data={data}\n errorMessage={!!errors.consentCheckbox}\n label={props.consentCheckboxLabel}\n onChange={handleConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n classNameModifiers: [...(isStandAloneButton ? ['standalone'] : [])],\n label: i18n.get('confirmPurchase')\n })}\n </div>\n );\n}\n"],"names":["consentCBErrorObj","isValid","errorMessage","error","OpenInvoice","props","countryCode","visibility","i18n","useCoreContext","openInvoiceRef","useRef","Object","keys","current","length","setComponentRef","isValidating","initialActiveFieldsets","getInitialActiveFieldsets","data","activeFieldsets","setActiveFieldsets","useState","fieldsetsRefs","fieldsetsSchema","reduce","acc","fieldset","ref","hasConsentCheckbox","consentCheckboxLabel","isStandAloneButton","every","key","showSeparateDeliveryAddressCheckbox","deliveryAddress","billingAddress","setData","consentCheckbox","errors","setErrors","valid","setValid","status","setStatus","showValidation","forEach","useSRPanelForOpenInvoiceErrors","useEffect","fieldsetsAreValid","consentCheckboxValid","newData","getActiveFieldsData","onChange","handleFieldset","state","prevData","prevValid","prevErrors","h","div","className","FormInstruction","companyDetails","CompanyDetails","label","personalDetails","PersonalDetails","requiredFields","personalDetailsRequiredFields","bankAccount","IbanInput","holderName","Address","allowedCountries","billingAddressSpecification","billingAddressRequiredFields","specifications","Field","classNameModifiers","name","useLabelElement","showErrorElement","Checkbox","get","checked","prevActiveFields","deliveryAddressSpecification","deliveryAddressRequiredFields","ConsentCheckbox","e","target","showPayButton","payButton"],"mappings":"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"}
1
+ {"version":3,"file":"OpenInvoice.js","sources":["../../../../../src/components/internal/OpenInvoice/OpenInvoice.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport CompanyDetails from '../CompanyDetails';\nimport PersonalDetails from '../PersonalDetails';\nimport Address from '../Address';\nimport Checkbox from '../FormFields/Checkbox';\nimport ConsentCheckbox from '../FormFields/ConsentCheckbox';\nimport { getActiveFieldsData, getInitialActiveFieldsets, fieldsetsSchema } from './utils';\nimport {\n OpenInvoiceActiveFieldsets,\n OpenInvoiceFieldsetsRefs,\n OpenInvoiceProps,\n OpenInvoiceStateData,\n OpenInvoiceStateError,\n OpenInvoiceStateValid\n} from './types';\nimport './OpenInvoice.scss';\nimport IbanInput from '../IbanInput';\nimport { GenericError } from '../../../core/Errors/types';\nimport Field from '../FormFields/Field';\nimport FormInstruction from '../FormInstruction';\nimport { ComponentMethodsRef } from '../UIElement/types';\nimport useSRPanelForOpenInvoiceErrors from './useSRPanelForOpenInvoiceErrors';\nimport classNames from 'classnames';\n\nconst consentCBErrorObj: GenericError = {\n isValid: false,\n errorMessage: 'consent.checkbox.invalid',\n error: 'consent.checkbox.invalid'\n};\n\nexport default function OpenInvoice(props: OpenInvoiceProps) {\n const { countryCode, visibility } = props;\n const { i18n } = useCoreContext();\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const openInvoiceRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(openInvoiceRef.current).length) {\n props.setComponentRef?.(openInvoiceRef.current);\n }\n\n const isValidating = useRef(false);\n\n const initialActiveFieldsets: OpenInvoiceActiveFieldsets = getInitialActiveFieldsets(visibility, props.data);\n const [activeFieldsets, setActiveFieldsets] = useState<OpenInvoiceActiveFieldsets>(initialActiveFieldsets);\n\n const { current: fieldsetsRefs } = useRef<OpenInvoiceFieldsetsRefs>(\n fieldsetsSchema.reduce((acc, fieldset) => {\n acc[fieldset] = ref => {\n fieldsetsRefs[fieldset].current = ref;\n };\n return acc;\n }, {})\n );\n\n const checkFieldsets = () => Object.keys(activeFieldsets).every(fieldset => !activeFieldsets[fieldset] || !!valid[fieldset]);\n const hasConsentCheckbox = !!props.consentCheckboxLabel;\n const isStandAloneButton = !hasConsentCheckbox && Object.keys(activeFieldsets).every(key => !activeFieldsets[key]);\n const showSeparateDeliveryAddressCheckbox = visibility.deliveryAddress === 'editable' && visibility.billingAddress !== 'hidden';\n\n const [data, setData] = useState<OpenInvoiceStateData>({\n ...props.data,\n ...(hasConsentCheckbox && { consentCheckbox: false })\n });\n const [errors, setErrors] = useState<OpenInvoiceStateError>({});\n const [valid, setValid] = useState<OpenInvoiceStateValid>({});\n const [status, setStatus] = useState('ready');\n\n // Expose methods expected by parent\n openInvoiceRef.current.showValidation = () => {\n isValidating.current = true;\n fieldsetsSchema.forEach(fieldset => {\n if (fieldsetsRefs[fieldset].current) fieldsetsRefs[fieldset].current.showValidation();\n });\n\n setErrors({\n ...(hasConsentCheckbox && { consentCheckbox: data.consentCheckbox ? null : consentCBErrorObj })\n });\n };\n\n openInvoiceRef.current.setStatus = setStatus;\n\n useSRPanelForOpenInvoiceErrors({ errors, data, props, isValidating });\n\n useEffect(() => {\n const fieldsetsAreValid: boolean = checkFieldsets();\n const consentCheckboxValid: boolean = !hasConsentCheckbox || !!valid.consentCheckbox;\n const isValid: boolean = fieldsetsAreValid && consentCheckboxValid;\n const newData: OpenInvoiceStateData = getActiveFieldsData(activeFieldsets, data);\n props.onChange({ data: newData, errors, valid, isValid });\n }, [data, activeFieldsets]);\n\n const handleFieldset = key => state => {\n setData(prevData => ({ ...prevData, [key]: state.data }));\n setValid(prevValid => ({ ...prevValid, [key]: state.isValid }));\n setErrors(prevErrors => ({ ...prevErrors, [key]: state.errors }));\n };\n\n const handleSeparateDeliveryAddress = () => {\n setActiveFieldsets(prevActiveFields => ({\n ...prevActiveFields,\n deliveryAddress: !activeFieldsets.deliveryAddress\n }));\n };\n\n const handleConsentCheckbox = e => {\n const { checked } = e.target;\n setData(prevData => ({ ...prevData, consentCheckbox: checked }));\n setValid(prevValid => ({ ...prevValid, consentCheckbox: checked }));\n setErrors(prevErrors => ({ ...prevErrors, ...{ consentCheckbox: !checked ? consentCBErrorObj : null } }));\n };\n return (\n <div\n className={classNames({\n 'adyen-checkout__open-invoice': true,\n 'adyen-checkout__open-invoice--loading': status === 'loading'\n })}\n >\n <FormInstruction />\n\n {activeFieldsets.companyDetails && (\n <CompanyDetails\n data={props.data.companyDetails}\n label=\"companyDetails\"\n onChange={handleFieldset('companyDetails')}\n setComponentRef={fieldsetsRefs.companyDetails}\n visibility={visibility.companyDetails}\n />\n )}\n\n {activeFieldsets.personalDetails && (\n <PersonalDetails\n data={props.data.personalDetails}\n requiredFields={props.personalDetailsRequiredFields}\n label=\"personalDetails\"\n onChange={handleFieldset('personalDetails')}\n setComponentRef={fieldsetsRefs.personalDetails}\n visibility={visibility.personalDetails}\n />\n )}\n\n {activeFieldsets.bankAccount && (\n <IbanInput\n holderName={true}\n label=\"ach.bankAccount\"\n data={data.bankAccount}\n onChange={handleFieldset('bankAccount')}\n ref={fieldsetsRefs.bankAccount}\n />\n )}\n\n {activeFieldsets.billingAddress && (\n <Address\n allowedCountries={props?.billingAddressSpecification?.allowedCountries ?? props.allowedCountries}\n countryCode={countryCode}\n requiredFields={props.billingAddressRequiredFields}\n specifications={props.billingAddressSpecification}\n data={data.billingAddress}\n label=\"billingAddress\"\n onChange={handleFieldset('billingAddress')}\n setComponentRef={fieldsetsRefs.billingAddress}\n visibility={visibility.billingAddress}\n />\n )}\n\n {showSeparateDeliveryAddressCheckbox && (\n <Field\n classNameModifiers={['separateDeliveryAddress', 'consentCheckbox']}\n name={'separateDeliveryAddress'}\n useLabelElement={false}\n showErrorElement={false}\n >\n <Checkbox\n label={i18n.get('separateDeliveryAddress')}\n checked={activeFieldsets.deliveryAddress}\n classNameModifiers={['separateDeliveryAddress']}\n name={'separateDeliveryAddress'}\n onChange={handleSeparateDeliveryAddress}\n />\n </Field>\n )}\n\n {activeFieldsets.deliveryAddress && (\n <Address\n allowedCountries={props?.deliveryAddressSpecification?.allowedCountries ?? props.allowedCountries}\n countryCode={countryCode}\n requiredFields={props.deliveryAddressRequiredFields}\n specifications={props.deliveryAddressSpecification}\n data={data.deliveryAddress}\n label=\"deliveryAddress\"\n onChange={handleFieldset('deliveryAddress')}\n setComponentRef={fieldsetsRefs.deliveryAddress}\n visibility={visibility.deliveryAddress}\n />\n )}\n\n {hasConsentCheckbox && (\n <ConsentCheckbox\n data={data}\n errorMessage={!!errors.consentCheckbox}\n label={props.consentCheckboxLabel}\n onChange={handleConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n classNameModifiers: [...(isStandAloneButton ? ['standalone'] : [])],\n label: i18n.get('confirmPurchase')\n })}\n </div>\n );\n}\n"],"names":["consentCBErrorObj","isValid","errorMessage","error","OpenInvoice","props","countryCode","visibility","i18n","useCoreContext","openInvoiceRef","useRef","Object","keys","current","length","setComponentRef","isValidating","initialActiveFieldsets","getInitialActiveFieldsets","data","activeFieldsets","setActiveFieldsets","useState","fieldsetsRefs","fieldsetsSchema","reduce","acc","fieldset","ref","hasConsentCheckbox","consentCheckboxLabel","isStandAloneButton","every","key","showSeparateDeliveryAddressCheckbox","deliveryAddress","billingAddress","setData","consentCheckbox","errors","setErrors","valid","setValid","status","setStatus","showValidation","forEach","useSRPanelForOpenInvoiceErrors","useEffect","fieldsetsAreValid","consentCheckboxValid","newData","getActiveFieldsData","onChange","handleFieldset","state","prevData","prevValid","prevErrors","h","div","className","classNames","FormInstruction","companyDetails","CompanyDetails","label","personalDetails","PersonalDetails","requiredFields","personalDetailsRequiredFields","bankAccount","IbanInput","holderName","Address","allowedCountries","billingAddressSpecification","billingAddressRequiredFields","specifications","Field","classNameModifiers","name","useLabelElement","showErrorElement","Checkbox","get","checked","prevActiveFields","deliveryAddressSpecification","deliveryAddressRequiredFields","ConsentCheckbox","e","target","showPayButton","payButton"],"mappings":"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"}