@adyen/adyen-web 6.40.1 → 6.41.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 (235) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +54 -61
  4. package/dist/es/components/ANCV/ANCV.js +1 -1
  5. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  6. package/dist/es/components/ANCV/components/ANCVInput.js +1 -1
  7. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  8. package/dist/es/components/Blik/Blik.js +1 -1
  9. package/dist/es/components/Blik/Blik.js.map +1 -1
  10. package/dist/es/components/Card/Card.js +1 -1
  11. package/dist/es/components/Card/Card.js.map +1 -1
  12. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  13. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  14. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  15. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  16. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  17. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  18. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  19. package/dist/es/components/Dropin/Dropin.js +1 -1
  20. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  21. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  22. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  23. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  24. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  25. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js +1 -1
  26. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  27. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  28. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  29. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  30. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  31. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  32. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  33. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  34. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  35. package/dist/es/components/Giftcard/components/GiftcardPinField.js +1 -1
  36. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  37. package/dist/es/components/Iris/Iris.js +1 -1
  38. package/dist/es/components/Iris/Iris.js.map +1 -1
  39. package/dist/es/components/MBWay/MBWay.js +1 -1
  40. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  41. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  42. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  43. package/dist/es/components/PayTo/PayTo.js +1 -1
  44. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  45. package/dist/es/components/PayTo/components/BSBInput.js +1 -1
  46. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  47. package/dist/es/components/PayTo/components/IdentifierSelector.js +1 -1
  48. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -1
  49. package/dist/es/components/PayTo/components/PayIDInput.js +1 -1
  50. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  51. package/dist/es/components/PayTo/components/validate.js +1 -1
  52. package/dist/es/components/PayTo/components/validate.js.map +1 -1
  53. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  54. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  55. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  56. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  57. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  58. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  59. package/dist/es/components/UPI/UPI.js +1 -1
  60. package/dist/es/components/UPI/UPI.js.map +1 -1
  61. package/dist/es/components/internal/Await/Await.js +1 -1
  62. package/dist/es/components/internal/Await/Await.js.map +1 -1
  63. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  64. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  65. package/dist/es/components/internal/Button/Button.js +1 -1
  66. package/dist/es/components/internal/Button/Button.js.map +1 -1
  67. package/dist/es/components/internal/Button/CopyButton.js +1 -1
  68. package/dist/es/components/internal/Button/CopyButton.js.map +1 -1
  69. package/dist/es/components/internal/Button/CopyIconButton.js +1 -1
  70. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -1
  71. package/dist/es/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  72. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  73. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  74. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  75. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  76. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  77. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  78. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  79. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  80. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  81. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  82. package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
  83. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  84. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  85. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  86. package/dist/es/components/internal/Modal/Modal.js +1 -1
  87. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  88. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  89. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  90. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  91. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  92. package/dist/es/components/internal/SecuredFields/SFP/defaultProps.js +1 -1
  93. package/dist/es/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  94. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  95. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  96. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js +1 -1
  97. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js.map +1 -1
  98. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  99. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  100. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +1 -1
  101. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  102. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  103. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  104. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  105. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  106. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  107. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  108. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  109. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  110. package/dist/es/core/config.js +1 -1
  111. package/dist/es/index.d.ts +54 -61
  112. package/dist/es/language/utils.js +1 -1
  113. package/dist/es/language/utils.js.map +1 -1
  114. package/dist/es/packages/server/translations/en-US.json.js +1 -1
  115. package/dist/es/utils/commonUtils.js +1 -1
  116. package/dist/es/utils/commonUtils.js.map +1 -1
  117. package/dist/es/utils/get-process-message-handler.js +1 -1
  118. package/dist/es/utils/get-process-message-handler.js.map +1 -1
  119. package/dist/es/utils/promiseTimeout.js.map +1 -1
  120. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  121. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  122. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  123. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  124. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  125. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  126. package/dist/es-legacy/components/Card/Card.js +1 -1
  127. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  128. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  129. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  130. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  131. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  132. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  133. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  134. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  135. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  136. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  137. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  138. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  139. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  140. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  141. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js +1 -1
  142. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  143. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  144. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  145. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  146. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  147. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  148. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  149. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  150. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  151. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js +1 -1
  152. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  153. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  154. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  155. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  156. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  157. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  158. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  159. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  160. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  161. package/dist/es-legacy/components/PayTo/components/BSBInput.js +1 -1
  162. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  163. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js +1 -1
  164. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -1
  165. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +1 -1
  166. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  167. package/dist/es-legacy/components/PayTo/components/validate.js +1 -1
  168. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -1
  169. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  170. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  171. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  172. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  173. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  174. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  175. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  176. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  177. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  178. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  179. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  180. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  181. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  182. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  183. package/dist/es-legacy/components/internal/Button/CopyButton.js +1 -1
  184. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  185. package/dist/es-legacy/components/internal/Button/CopyIconButton.js +1 -1
  186. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
  187. package/dist/es-legacy/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  188. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  189. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  190. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  191. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  192. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  193. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  194. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  195. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  196. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  197. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  198. package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
  199. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  200. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  201. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  202. package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
  203. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  204. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  205. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  206. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  207. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  208. package/dist/es-legacy/components/internal/SecuredFields/SFP/defaultProps.js +1 -1
  209. package/dist/es-legacy/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  210. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  211. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  212. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js +1 -1
  213. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js.map +1 -1
  214. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  215. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  216. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +1 -1
  217. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  218. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  219. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  220. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  221. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  222. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  223. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  224. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  225. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  226. package/dist/es-legacy/core/config.js +1 -1
  227. package/dist/es-legacy/language/utils.js +1 -1
  228. package/dist/es-legacy/language/utils.js.map +1 -1
  229. package/dist/es-legacy/packages/server/translations/en-US.json.js +1 -1
  230. package/dist/es-legacy/utils/commonUtils.js +1 -1
  231. package/dist/es-legacy/utils/commonUtils.js.map +1 -1
  232. package/dist/es-legacy/utils/get-process-message-handler.js +1 -1
  233. package/dist/es-legacy/utils/get-process-message-handler.js.map +1 -1
  234. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  235. package/package.json +19 -19
@@ -1 +1 @@
1
- {"version":3,"file":"Iris.js","sources":["../../../../src/components/Iris/Iris.tsx"],"sourcesContent":["import { h } from 'preact';\nimport isMobile from '../../utils/isMobile';\nimport IssuerListContainer from '../helpers/IssuerListContainer/IssuerListContainer';\nimport { QRLoader } from '../internal/QRLoader';\nimport { TxVariants } from '../tx-variants';\nimport IrisComponent from './components/IrisComponent';\nimport { IrisQrCodeInstructions } from './components/IrisQrCodeInstructions';\nimport { IrisConfiguration, IrisData, IrisMode, IrisState } from './types';\nimport { DEFAULT_IRIS_COUNTDOWN_TIME } from './constants';\n\nexport class Iris extends IssuerListContainer<IrisConfiguration, IrisData> {\n public static readonly type = TxVariants.iris;\n\n private readonly defaultMode = isMobile() ? IrisMode.BANK_LIST : IrisMode.QR_CODE;\n\n public state: IrisState = {\n isValid: this.defaultMode === IrisMode.QR_CODE,\n mode: this.defaultMode,\n data: {}\n };\n\n private renderIssuerList(): h.JSX.Element {\n return super.componentToRender();\n }\n\n formatData(): IrisData {\n if (this.state.mode === IrisMode.BANK_LIST) {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n return {\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n formatProps(props: IrisConfiguration): IrisConfiguration {\n return {\n ...super.formatProps(props),\n countdownTime: props.countdownTime ?? DEFAULT_IRIS_COUNTDOWN_TIME\n };\n }\n\n get isValid() {\n if (this.state.mode === IrisMode.BANK_LIST) {\n return super.isValid;\n }\n\n return true;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.type === 'qrCode') {\n return (\n <QRLoader\n type={TxVariants.iris}\n brandLogo={this.icon}\n clientKey={this.props.clientKey}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : undefined}\n countdownTime={this.props.countdownTime}\n paymentData={this.props.paymentData}\n delay={this.props.delay}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n onComplete={this.onComplete}\n introduction={IrisQrCodeInstructions}\n showAmount\n copyBtn={false}\n />\n );\n }\n\n return (\n <IrisComponent\n setComponentRef={this.setComponentRef}\n defaultMode={this.defaultMode}\n onUpdateMode={mode => {\n this.setState({ mode });\n }}\n issuerListUI={this.renderIssuerList()}\n showPayButton={this.props.showPayButton}\n payButton={this.payButton}\n issuers={this.props.issuers || []}\n />\n );\n }\n}\n\nexport default Iris;\n"],"names":["Iris","IssuerListContainer","renderIssuerList","super","componentToRender","formatData","this","state","mode","IrisMode","BANK_LIST","paymentMethod","type","issuer","data","formatProps","props","countdownTime","DEFAULT_IRIS_COUNTDOWN_TIME","isValid","h","QRLoader","TxVariants","iris","brandLogo","icon","clientKey","qrCodeData","encodeURIComponent","undefined","paymentData","delay","onActionHandled","onError","onComplete","introduction","IrisQrCodeInstructions","showAmount","copyBtn","IrisComponent","setComponentRef","defaultMode","onUpdateMode","setState","issuerListUI","showPayButton","payButton","issuers","args","_define_property","isMobile","QR_CODE"],"mappings":"01BAUO,MAAMA,UAAaC,EAWdC,gBAAAA,GACJ,OAAOC,MAAMC,mBACjB,CAEAC,UAAAA,GACI,OAAIC,KAAKC,MAAMC,OAASC,EAASC,UACtB,CACHC,cAAe,CACXC,KAAMN,KAAKM,KACXC,OAAQP,KAAKC,OAAOO,MAAMD,SAK/B,CACHF,cAAe,CACXC,KAAMN,KAAKM,MAGvB,CAEAG,WAAAA,CAAYC,GACR,MAAO,IACAb,MAAMY,YAAYC,GACrBC,cAAeD,EAAMC,eAAiBC,EAE9C,CAEA,WAAIC,GACA,OAAIb,KAAKC,MAAMC,OAASC,EAASC,WACtBP,MAAMgB,OAIrB,CAEmBf,iBAAAA,GACf,MAAwB,WAApBE,KAAKU,MAAMJ,KAEPQ,EAACC,EAAAA,CACGT,KAAMU,EAAWC,KACjBC,UAAWlB,KAAKmB,KAChBC,UAAWpB,KAAKU,MAAMU,UACtBC,WAAYrB,KAAKU,MAAMW,WAAaC,mBAAmBtB,KAAKU,MAAMW,iBAAcE,EAChFZ,cAAeX,KAAKU,MAAMC,cAC1Ba,YAAaxB,KAAKU,MAAMc,YACxBC,MAAOzB,KAAKU,MAAMe,MAClBC,gBAAiB1B,KAAK0B,gBACtBC,QAAS3B,KAAKU,MAAMiB,QACpBC,WAAY5B,KAAK4B,WACjBC,aAAcC,EACdC,YAAAA,EACAC,SAAS,IAMjBlB,EAACmB,EAAAA,CACGC,gBAAiBlC,KAAKkC,gBACtBC,YAAanC,KAAKmC,YAClBC,aAAclC,IACVF,KAAKqC,SAAS,CAAEnC,UAEpBoC,aAActC,KAAKJ,mBACnB2C,cAAevC,KAAKU,MAAM6B,cAC1BC,UAAWxC,KAAKwC,UAChBC,QAASzC,KAAKU,MAAM+B,SAAW,IAG3C,mBAjFG5C,SAAA6C,GAGHC,EAAA3C,KAAiBmC,cAAcS,IAAazC,EAASC,UAAYD,EAAS0C,SAE1EF,EAAA3C,KAAOC,QAAmB,CACtBY,QAASb,KAAKmC,cAAgBhC,EAAS0C,QACvC3C,KAAMF,KAAKmC,YACX3B,KAAM,CAAA,KAPVmC,EADSjD,EACcY,OAAOU,EAAWC"}
1
+ {"version":3,"file":"Iris.js","sources":["../../../../src/components/Iris/Iris.tsx"],"sourcesContent":["import { h } from 'preact';\nimport isMobile from '../../utils/isMobile';\nimport IssuerListContainer from '../helpers/IssuerListContainer/IssuerListContainer';\nimport { QRLoader } from '../internal/QRLoader';\nimport { TxVariants } from '../tx-variants';\nimport IrisComponent from './components/IrisComponent';\nimport { IrisQrCodeInstructions } from './components/IrisQrCodeInstructions';\nimport { IrisConfiguration, IrisData, IrisMode, IrisState } from './types';\nimport { DEFAULT_IRIS_COUNTDOWN_TIME } from './constants';\n\nexport class Iris extends IssuerListContainer<IrisConfiguration, IrisData> {\n public static readonly type = TxVariants.iris;\n\n private readonly defaultMode = isMobile() ? IrisMode.BANK_LIST : IrisMode.QR_CODE;\n\n public state: IrisState = {\n isValid: this.defaultMode === IrisMode.QR_CODE,\n mode: this.defaultMode,\n data: {}\n };\n\n private renderIssuerList(): h.JSX.Element {\n return super.componentToRender();\n }\n\n formatData(): IrisData {\n if (this.state.mode === IrisMode.BANK_LIST) {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n return {\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n formatProps(props: IrisConfiguration): IrisConfiguration {\n return {\n ...super.formatProps(props),\n countdownTime: props.countdownTime ?? DEFAULT_IRIS_COUNTDOWN_TIME\n };\n }\n\n get isValid() {\n if (this.state.mode === IrisMode.BANK_LIST) {\n return super.isValid;\n }\n\n return true;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.type === 'qrCode') {\n return (\n <QRLoader\n type={TxVariants.iris}\n brandLogo={this.icon}\n brandName={this.displayName}\n clientKey={this.props.clientKey}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : undefined}\n countdownTime={this.props.countdownTime}\n paymentData={this.props.paymentData}\n delay={this.props.delay}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n onComplete={this.onComplete}\n introduction={IrisQrCodeInstructions}\n showAmount\n copyBtn={false}\n />\n );\n }\n\n return (\n <IrisComponent\n setComponentRef={this.setComponentRef}\n defaultMode={this.defaultMode}\n onUpdateMode={mode => {\n this.setState({ mode });\n }}\n issuerListUI={this.renderIssuerList()}\n showPayButton={this.props.showPayButton}\n payButton={this.payButton}\n issuers={this.props.issuers || []}\n />\n );\n }\n}\n\nexport default Iris;\n"],"names":["Iris","IssuerListContainer","renderIssuerList","super","componentToRender","formatData","this","state","mode","IrisMode","BANK_LIST","paymentMethod","type","issuer","data","formatProps","props","countdownTime","DEFAULT_IRIS_COUNTDOWN_TIME","isValid","h","QRLoader","TxVariants","iris","brandLogo","icon","brandName","displayName","clientKey","qrCodeData","encodeURIComponent","undefined","paymentData","delay","onActionHandled","onError","onComplete","introduction","IrisQrCodeInstructions","showAmount","copyBtn","IrisComponent","setComponentRef","defaultMode","onUpdateMode","setState","issuerListUI","showPayButton","payButton","issuers","args","_define_property","isMobile","QR_CODE"],"mappings":"01BAUO,MAAMA,UAAaC,EAWdC,gBAAAA,GACJ,OAAOC,MAAMC,mBACjB,CAEAC,UAAAA,GACI,OAAIC,KAAKC,MAAMC,OAASC,EAASC,UACtB,CACHC,cAAe,CACXC,KAAMN,KAAKM,KACXC,OAAQP,KAAKC,OAAOO,MAAMD,SAK/B,CACHF,cAAe,CACXC,KAAMN,KAAKM,MAGvB,CAEAG,WAAAA,CAAYC,GACR,MAAO,IACAb,MAAMY,YAAYC,GACrBC,cAAeD,EAAMC,eAAiBC,EAE9C,CAEA,WAAIC,GACA,OAAIb,KAAKC,MAAMC,OAASC,EAASC,WACtBP,MAAMgB,OAIrB,CAEmBf,iBAAAA,GACf,MAAwB,WAApBE,KAAKU,MAAMJ,KAEPQ,EAACC,EAAAA,CACGT,KAAMU,EAAWC,KACjBC,UAAWlB,KAAKmB,KAChBC,UAAWpB,KAAKqB,YAChBC,UAAWtB,KAAKU,MAAMY,UACtBC,WAAYvB,KAAKU,MAAMa,WAAaC,mBAAmBxB,KAAKU,MAAMa,iBAAcE,EAChFd,cAAeX,KAAKU,MAAMC,cAC1Be,YAAa1B,KAAKU,MAAMgB,YACxBC,MAAO3B,KAAKU,MAAMiB,MAClBC,gBAAiB5B,KAAK4B,gBACtBC,QAAS7B,KAAKU,MAAMmB,QACpBC,WAAY9B,KAAK8B,WACjBC,aAAcC,EACdC,YAAAA,EACAC,SAAS,IAMjBpB,EAACqB,EAAAA,CACGC,gBAAiBpC,KAAKoC,gBACtBC,YAAarC,KAAKqC,YAClBC,aAAcpC,IACVF,KAAKuC,SAAS,CAAErC,UAEpBsC,aAAcxC,KAAKJ,mBACnB6C,cAAezC,KAAKU,MAAM+B,cAC1BC,UAAW1C,KAAK0C,UAChBC,QAAS3C,KAAKU,MAAMiC,SAAW,IAG3C,mBAlFG9C,SAAA+C,GAGHC,EAAA7C,KAAiBqC,cAAcS,IAAa3C,EAASC,UAAYD,EAAS4C,SAE1EF,EAAA7C,KAAOC,QAAmB,CACtBY,QAASb,KAAKqC,cAAgBlC,EAAS4C,QACvC7C,KAAMF,KAAKqC,YACX7B,KAAM,CAAA,KAPVqC,EADSnD,EACcY,OAAOU,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./components/MBWayInput/MBWayInput.js";import n from"./components/MBWayAwait/config.js";import{Await as r}from"../internal/Await/Await.js";import{TxVariants as a}from"../tx-variants.js";class s extends t{formatProps(e){const{data:t={},placeholders:o={}}=e;return{...e,data:{phoneNumber:t.telephoneNumber||t.phoneNumber,phonePrefix:t.phonePrefix||"+351"},placeholders:{phoneNumber:o.telephoneNumber||o.phoneNumber}}}formatData(){return{paymentMethod:{type:s.type,...this.state.data?.phoneNumber&&{telephoneNumber:this.state.data.phonePrefix+this.state.data.phoneNumber}}}}get isValid(){return!!this.state.isValid}get displayName(){return this.props.name}componentToRender(){return this.props.paymentData?e(r,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:n.type,messageText:this.props.i18n.get(n.messageTextId),awaitText:this.props.i18n.get(n.awaitTextId),showCountdownTimer:n.showCountdownTimer,delay:n.STATUS_INTERVAL,countdownTime:n.COUNTDOWN_MINUTES,throttleTime:n.THROTTLE_TIME,throttleInterval:n.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}):e(o,{ref:e=>{this.componentRef=e},...this.props,setComponentRef:this.setComponentRef,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton})}}var p,i,m;p=s,i="type",m=a.mbway,i in p?Object.defineProperty(p,i,{value:m,enumerable:!0,configurable:!0,writable:!0}):p[i]=m;export{s as MBWayElement,s as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./components/MBWayInput/MBWayInput.js";import n from"./components/MBWayAwait/config.js";import{Await as a}from"../internal/Await/Await.js";import{TxVariants as r}from"../tx-variants.js";class s extends t{formatProps(e){const{data:t={},placeholders:o={}}=e;return{...e,data:{phoneNumber:t.telephoneNumber||t.phoneNumber,phonePrefix:t.phonePrefix||"+351"},placeholders:{phoneNumber:o.telephoneNumber||o.phoneNumber}}}formatData(){return{paymentMethod:{type:s.type,...this.state.data?.phoneNumber&&{telephoneNumber:this.state.data.phonePrefix+this.state.data.phoneNumber}}}}get isValid(){return!!this.state.isValid}get displayName(){return this.props.name}componentToRender(){return this.props.paymentData?e(a,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,brandName:this.displayName,type:n.type,messageText:this.props.i18n.get(n.messageTextId),awaitText:this.props.i18n.get(n.awaitTextId),showCountdownTimer:n.showCountdownTimer,delay:n.STATUS_INTERVAL,countdownTime:n.COUNTDOWN_MINUTES,throttleTime:n.THROTTLE_TIME,throttleInterval:n.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}):e(o,{ref:e=>{this.componentRef=e},...this.props,setComponentRef:this.setComponentRef,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton})}}var p,i,m;p=s,i="type",m=r.mbway,i in p?Object.defineProperty(p,i,{value:m,enumerable:!0,configurable:!0,writable:!0}):p[i]=m;export{s as MBWayElement,s as default};
2
2
  //# sourceMappingURL=MBWay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MBWay.js","sources":["../../../../src/components/MBWay/MBWay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport MBWayInput from './components/MBWayInput';\nimport config from './components/MBWayAwait/config';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\nexport class MBWayElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.mbway;\n\n formatProps(props) {\n const { data = {}, placeholders = {} } = props;\n\n return {\n ...props,\n data: {\n phoneNumber: data.telephoneNumber || data.phoneNumber,\n phonePrefix: data.phonePrefix || '+351' // if not specified default to Portuguese country code\n },\n placeholders: {\n phoneNumber: placeholders.telephoneNumber || placeholders.phoneNumber\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): object {\n return {\n paymentMethod: {\n type: MBWayElement.type,\n ...(this.state.data?.phoneNumber && { telephoneNumber: this.state.data.phonePrefix + this.state.data.phoneNumber })\n }\n };\n }\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n get displayName(): string {\n return this.props.name;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return (\n <MBWayInput\n /* @ts-ignore ref handled internally by Component */\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default MBWayElement;\n"],"names":["MBWayElement","UIElement","formatProps","props","data","placeholders","phoneNumber","telephoneNumber","phonePrefix","formatData","paymentMethod","type","this","state","isValid","displayName","name","componentToRender","paymentData","h","Await","clientKey","onError","onComplete","brandLogo","icon","config","messageText","i18n","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","MBWayInput","ref","componentRef","setComponentRef","onChange","setState","onSubmit","submit","payButton","TxVariants","mbway"],"mappings":"4UAQO,MAAMA,UAAqBC,EAG9BC,WAAAA,CAAYC,GACR,MAAMC,KAAEA,EAAO,CAAA,EAAEC,aAAEA,EAAe,CAAA,GAAOF,EAEzC,MAAO,IACAA,EACHC,KAAM,CACFE,YAAaF,EAAKG,iBAAmBH,EAAKE,YAC1CE,YAAaJ,EAAKI,aAAe,QAErCH,aAAc,CACVC,YAAaD,EAAaE,iBAAmBF,EAAaC,aAGtE,CAKAG,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMX,EAAaW,QACfC,KAAKC,MAAMT,MAAME,aAAe,CAAEC,gBAAiBK,KAAKC,MAAMT,KAAKI,YAAcI,KAAKC,MAAMT,KAAKE,cAGjH,CAEA,WAAIQ,GACA,QAASF,KAAKC,MAAMC,OACxB,CAEA,eAAIC,GACA,OAAOH,KAAKT,MAAMa,IACtB,CAEmBC,iBAAAA,GACf,OAAIL,KAAKT,MAAMe,YAEPC,EAACC,EAAAA,CACGC,UAAWT,KAAKT,MAAMkB,UACtBH,YAAaN,KAAKT,MAAMe,YACxBI,QAASV,KAAKT,MAAMmB,QACpBC,WAAYX,KAAKW,WACjBC,UAAWZ,KAAKa,KAChBd,KAAMe,EAAOf,KACbgB,YAAaf,KAAKT,MAAMyB,KAAKC,IAAIH,EAAOI,eACxCC,UAAWnB,KAAKT,MAAMyB,KAAKC,IAAIH,EAAOM,aACtCC,mBAAoBP,EAAOO,mBAC3BC,MAAOR,EAAOS,gBACdC,cAAeV,EAAOW,kBACtBC,aAAcZ,EAAOa,cACrBC,iBAAkBd,EAAOe,kBACzBC,gBAAiB9B,KAAK8B,kBAM9BvB,EAACwB,EAAAA,CAEGC,IAAKA,IACDhC,KAAKiC,aAAeD,MAEpBhC,KAAKT,MACT2C,gBAAiBlC,KAAKkC,gBACtBC,SAAUnC,KAAKoC,SACfC,SAAUrC,KAAKsC,OACfC,UAAWvC,KAAKuC,WAG5B,cAzESnD,IACcW,SAAOyC,EAAWC"}
1
+ {"version":3,"file":"MBWay.js","sources":["../../../../src/components/MBWay/MBWay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport MBWayInput from './components/MBWayInput';\nimport config from './components/MBWayAwait/config';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\nexport class MBWayElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.mbway;\n\n formatProps(props) {\n const { data = {}, placeholders = {} } = props;\n\n return {\n ...props,\n data: {\n phoneNumber: data.telephoneNumber || data.phoneNumber,\n phonePrefix: data.phonePrefix || '+351' // if not specified default to Portuguese country code\n },\n placeholders: {\n phoneNumber: placeholders.telephoneNumber || placeholders.phoneNumber\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): object {\n return {\n paymentMethod: {\n type: MBWayElement.type,\n ...(this.state.data?.phoneNumber && { telephoneNumber: this.state.data.phonePrefix + this.state.data.phoneNumber })\n }\n };\n }\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n get displayName(): string {\n return this.props.name;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return (\n <MBWayInput\n /* @ts-ignore ref handled internally by Component */\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default MBWayElement;\n"],"names":["MBWayElement","UIElement","formatProps","props","data","placeholders","phoneNumber","telephoneNumber","phonePrefix","formatData","paymentMethod","type","this","state","isValid","displayName","name","componentToRender","paymentData","h","Await","clientKey","onError","onComplete","brandLogo","icon","brandName","config","messageText","i18n","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","MBWayInput","ref","componentRef","setComponentRef","onChange","setState","onSubmit","submit","payButton","TxVariants","mbway"],"mappings":"4UAQO,MAAMA,UAAqBC,EAG9BC,WAAAA,CAAYC,GACR,MAAMC,KAAEA,EAAO,CAAA,EAAEC,aAAEA,EAAe,CAAA,GAAOF,EAEzC,MAAO,IACAA,EACHC,KAAM,CACFE,YAAaF,EAAKG,iBAAmBH,EAAKE,YAC1CE,YAAaJ,EAAKI,aAAe,QAErCH,aAAc,CACVC,YAAaD,EAAaE,iBAAmBF,EAAaC,aAGtE,CAKAG,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMX,EAAaW,QACfC,KAAKC,MAAMT,MAAME,aAAe,CAAEC,gBAAiBK,KAAKC,MAAMT,KAAKI,YAAcI,KAAKC,MAAMT,KAAKE,cAGjH,CAEA,WAAIQ,GACA,QAASF,KAAKC,MAAMC,OACxB,CAEA,eAAIC,GACA,OAAOH,KAAKT,MAAMa,IACtB,CAEmBC,iBAAAA,GACf,OAAIL,KAAKT,MAAMe,YAEPC,EAACC,EAAAA,CACGC,UAAWT,KAAKT,MAAMkB,UACtBH,YAAaN,KAAKT,MAAMe,YACxBI,QAASV,KAAKT,MAAMmB,QACpBC,WAAYX,KAAKW,WACjBC,UAAWZ,KAAKa,KAChBC,UAAWd,KAAKG,YAChBJ,KAAMgB,EAAOhB,KACbiB,YAAahB,KAAKT,MAAM0B,KAAKC,IAAIH,EAAOI,eACxCC,UAAWpB,KAAKT,MAAM0B,KAAKC,IAAIH,EAAOM,aACtCC,mBAAoBP,EAAOO,mBAC3BC,MAAOR,EAAOS,gBACdC,cAAeV,EAAOW,kBACtBC,aAAcZ,EAAOa,cACrBC,iBAAkBd,EAAOe,kBACzBC,gBAAiB/B,KAAK+B,kBAM9BxB,EAACyB,EAAAA,CAEGC,IAAKA,IACDjC,KAAKkC,aAAeD,MAEpBjC,KAAKT,MACT4C,gBAAiBnC,KAAKmC,gBACtBC,SAAUpC,KAAKqC,SACfC,SAAUtC,KAAKuC,OACfC,UAAWxC,KAAKwC,WAG5B,cA1ESpD,IACcW,SAAO0C,EAAWC"}
@@ -1,2 +1,2 @@
1
- import e from"../../Card/components/CardInput/components/DataSfSpan.js";import r from"../../../_virtual/index.js";import t from"../../internal/FormFields/Field/Field.js";import{createElement as a}from"../../../external/preact/dist/preact.js";import{alternativeLabelContent as n}from"../../Card/components/CardInput/components/FieldLabelAlternative.js";const p=({i18n:p,sfpState:i,focusedElement:o,setFocusOn:c})=>a(t,{label:p.get("giftcard.expiryDate.label"),classNameModifiers:["expireDate","50"],errorMessage:i.errors.encryptedExpiryDate&&p.get(i.errors.encryptedExpiryDate),focused:"encryptedExpiryDate"===o,onFocusField:()=>c("encryptedExpiryDate"),dir:"ltr",name:"encryptedExpiryDate",contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:n},a(e,{encryptedFieldType:"encryptedExpiryDate",className:r("adyen-checkout__input","adyen-checkout__input--small","adyen-checkout__card__exp-date__input",{"adyen-checkout__input--error":i.errors.encryptedExpiryDate,"adyen-checkout__input--focus":"encryptedExpiryDate"===o,"adyen-checkout__input--valid":!!i.valid.encryptedExpiryMonth&&!!i.valid.encryptedExpiryYear})}));export{p as MealVoucherExpiryField};
1
+ import e from"../../Card/components/CardInput/components/DataSfSpan.js";import r from"../../../_virtual/index.js";import t from"../../internal/FormFields/Field/Field.js";import{createElement as a}from"../../../external/preact/dist/preact.js";import{alternativeLabelContent as n}from"../../Card/components/CardInput/components/FieldLabelAlternative.js";const p=({i18n:p,sfpState:i,focusedElement:o,setFocusOn:c})=>a(t,{label:p.get("giftcard.expiryDate.label"),classNameModifiers:["expireDate","50"],errorMessage:i.errors?.encryptedExpiryDate&&p.get(i.errors.encryptedExpiryDate),focused:"encryptedExpiryDate"===o,onFocusField:()=>c("encryptedExpiryDate"),dir:"ltr",name:"encryptedExpiryDate",contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:n},a(e,{encryptedFieldType:"encryptedExpiryDate",className:r("adyen-checkout__input","adyen-checkout__input--small","adyen-checkout__card__exp-date__input",{"adyen-checkout__input--error":i.errors?.encryptedExpiryDate,"adyen-checkout__input--focus":"encryptedExpiryDate"===o,"adyen-checkout__input--valid":!!i.valid.encryptedExpiryMonth&&!!i.valid.encryptedExpiryYear})}));export{p as MealVoucherExpiryField};
2
2
  //# sourceMappingURL=MealVoucherExpiryField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MealVoucherExpiryField.js","sources":["../../../../../src/components/MealVoucherFR/components/MealVoucherExpiryField.tsx"],"sourcesContent":["import DataSfSpan from '../../Card/components/CardInput/components/DataSfSpan';\nimport classNames from 'classnames';\nimport Field from '../../internal/FormFields/Field';\nimport { h } from 'preact';\nimport { GiftcardFieldProps } from '../../Giftcard/components/types';\nimport { alternativeLabelContent } from '../../Card/components/CardInput/components/FieldLabelAlternative';\n\nexport const MealVoucherExpiryField = ({ i18n, sfpState, focusedElement, setFocusOn }: Readonly<GiftcardFieldProps>) => {\n return (\n <Field\n label={i18n.get('giftcard.expiryDate.label')}\n classNameModifiers={['expireDate', '50']}\n errorMessage={sfpState.errors.encryptedExpiryDate && i18n.get(sfpState.errors.encryptedExpiryDate)}\n focused={focusedElement === 'encryptedExpiryDate'}\n onFocusField={() => setFocusOn('encryptedExpiryDate')}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType={'encryptedExpiryDate'}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': sfpState.errors.encryptedExpiryDate,\n 'adyen-checkout__input--focus': focusedElement === 'encryptedExpiryDate',\n 'adyen-checkout__input--valid': !!sfpState.valid.encryptedExpiryMonth && !!sfpState.valid.encryptedExpiryYear\n })}\n />\n </Field>\n );\n};\n"],"names":["MealVoucherExpiryField","i18n","sfpState","focusedElement","setFocusOn","h","Field","label","get","classNameModifiers","errorMessage","errors","encryptedExpiryDate","focused","onFocusField","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","className","classNames","valid","encryptedExpiryMonth","encryptedExpiryYear"],"mappings":"gWAOO,MAAMA,EAAyB,EAAGC,OAAMC,WAAUC,iBAAgBC,gBAEjEC,EAACC,EAAAA,CACGC,MAAON,EAAKO,IAAI,6BAChBC,mBAAoB,CAAC,aAAc,MACnCC,aAAcR,EAASS,OAAOC,qBAAuBX,EAAKO,IAAIN,EAASS,OAAOC,qBAC9EC,QAA4B,wBAAnBV,EACTW,aAAc,IAAMV,EAAW,uBAC/BW,IAAK,MACLC,KAAM,sBACNC,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,GAE1Bf,EAACgB,EAAAA,CACGC,mBAAoB,sBACpBC,UAAWC,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCtB,EAASS,OAAOC,oBAChD,+BAAmD,wBAAnBT,EAChC,iCAAkCD,EAASuB,MAAMC,wBAA0BxB,EAASuB,MAAME"}
1
+ {"version":3,"file":"MealVoucherExpiryField.js","sources":["../../../../../src/components/MealVoucherFR/components/MealVoucherExpiryField.tsx"],"sourcesContent":["import DataSfSpan from '../../Card/components/CardInput/components/DataSfSpan';\nimport classNames from 'classnames';\nimport Field from '../../internal/FormFields/Field';\nimport { h } from 'preact';\nimport { GiftcardFieldProps } from '../../Giftcard/components/types';\nimport { alternativeLabelContent } from '../../Card/components/CardInput/components/FieldLabelAlternative';\n\nexport const MealVoucherExpiryField = ({ i18n, sfpState, focusedElement, setFocusOn }: Readonly<GiftcardFieldProps>) => {\n return (\n <Field\n label={i18n.get('giftcard.expiryDate.label')}\n classNameModifiers={['expireDate', '50']}\n errorMessage={sfpState.errors?.encryptedExpiryDate && i18n.get(sfpState.errors.encryptedExpiryDate)}\n focused={focusedElement === 'encryptedExpiryDate'}\n onFocusField={() => setFocusOn('encryptedExpiryDate')}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType={'encryptedExpiryDate'}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': sfpState.errors?.encryptedExpiryDate,\n 'adyen-checkout__input--focus': focusedElement === 'encryptedExpiryDate',\n 'adyen-checkout__input--valid': !!sfpState.valid.encryptedExpiryMonth && !!sfpState.valid.encryptedExpiryYear\n })}\n />\n </Field>\n );\n};\n"],"names":["MealVoucherExpiryField","i18n","sfpState","focusedElement","setFocusOn","h","Field","label","get","classNameModifiers","errorMessage","errors","encryptedExpiryDate","focused","onFocusField","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","className","classNames","valid","encryptedExpiryMonth","encryptedExpiryYear"],"mappings":"gWAOO,MAAMA,EAAyB,EAAGC,OAAMC,WAAUC,iBAAgBC,gBAEjEC,EAACC,EAAAA,CACGC,MAAON,EAAKO,IAAI,6BAChBC,mBAAoB,CAAC,aAAc,MACnCC,aAAcR,EAASS,QAAQC,qBAAuBX,EAAKO,IAAIN,EAASS,OAAOC,qBAC/EC,QAA4B,wBAAnBV,EACTW,aAAc,IAAMV,EAAW,uBAC/BW,IAAK,MACLC,KAAM,sBACNC,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,GAE1Bf,EAACgB,EAAAA,CACGC,mBAAoB,sBACpBC,UAAWC,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCtB,EAASS,QAAQC,oBACjD,+BAAmD,wBAAnBT,EAChC,iCAAkCD,EAASuB,MAAMC,wBAA0BxB,EAASuB,MAAME"}
@@ -1,2 +1,2 @@
1
- import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{Await as s}from"../internal/Await/Await.js";import{TxVariants as r}from"../tx-variants.js";import{PayToIdentifierEnum as a}from"./components/IdentifierSelector.js";import n from"./components/PayToComponent.js";import{PayToInstructions as p}from"./components/PayToInstructions.js";import i from"./components/MandateSummary.js";import m from"../internal/PayButton/PayButton.js";import{payAmountLabel as d}from"../internal/PayButton/utils.js";function h(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const l=6e4,c=1e4,u=!1,y=t=>{if("bsb-option"===t.selectedInput)return`${t.bsb}-${t.bankAccountNumber}`;if("payid-option"===t.selectedInput)switch(t.selectedIdentifier){case a.email:return t.email;case a.abn:return t.abn;case a.orgid:return t.orgid;case a.phone:return`${t.phonePrefix}-${t.phoneNumber}`}};class f extends o{formatProps(t){return{...t,data:{...t.data,phonePrefix:"+61"}}}formatData(){return this.props.storedPaymentMethodId?{paymentMethod:{type:f.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:f.type,shopperAccountIdentifier:y(this.state.data)},shopperName:{firstName:this.state.data.firstName,lastName:this.state.data.lastName}}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.name:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,this.props.showPayButton&&t(m,{...this.props,classNameModifiers:["standalone"],label:d(this.props.i18n,this.props.amount),onClick:this.submit})):this.props.paymentData?t(s,{showAmount:!0,instructions:p,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:this.constructor.type,messageText:this.props.i18n.get("payto.confirmPayment"),awaitText:this.props.i18n.get("payto.await.waitForConfirmation"),showCountdownTimer:u,throttleTime:l,throttleInterval:c,onActionHandled:this.onActionHandled,endSlot:()=>!!this.props.mandate&&t(i,{mandate:this.props.mandate,payee:this.props.payee,currencyCode:this.props.amount.currency})}):t(n,{data:this.props.data,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})}}h(f,"type",r.payto),h(f,"defaultProps",{placeholders:{}});export{f as PayToElement,f as default};
1
+ import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{Await as s}from"../internal/Await/Await.js";import{TxVariants as a}from"../tx-variants.js";import{PayToIdentifierEnum as r}from"./components/IdentifierSelector.js";import n from"./components/PayToComponent.js";import{PayToInstructions as p}from"./components/PayToInstructions.js";import i from"./components/MandateSummary.js";import m from"../internal/PayButton/PayButton.js";import{payAmountLabel as d}from"../internal/PayButton/utils.js";function h(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const l=6e4,c=1e4,u=!1,y=t=>{if("bsb-option"===t.selectedInput)return`${t.bsb}-${t.bankAccountNumber}`;if("payid-option"===t.selectedInput)switch(t.selectedIdentifier){case r.email:return t.email;case r.abn:return t.abn;case r.orgid:return t.orgid;case r.phone:return`${t.phonePrefix}-${t.phoneNumber}`}};class f extends o{formatProps(t){return{...t,data:{...t.data,phonePrefix:"+61"}}}formatData(){return this.props.storedPaymentMethodId?{paymentMethod:{type:f.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:f.type,shopperAccountIdentifier:y(this.state.data)},shopperName:{firstName:this.state.data.firstName,lastName:this.state.data.lastName}}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.name:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,this.props.showPayButton&&t(m,{...this.props,classNameModifiers:["standalone"],label:d(this.props.i18n,this.props.amount),onClick:this.submit})):this.props.paymentData?t(s,{showAmount:!0,instructions:p,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,brandName:this.displayName,type:this.constructor.type,messageText:this.props.i18n.get("payto.confirmPayment"),awaitText:this.props.i18n.get("payto.await.waitForConfirmation"),showCountdownTimer:u,throttleTime:l,throttleInterval:c,onActionHandled:this.onActionHandled,endSlot:()=>!!this.props.mandate&&t(i,{mandate:this.props.mandate,payee:this.props.payee,currencyCode:this.props.amount.currency})}):t(n,{data:this.props.data,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})}}h(f,"type",a.payto),h(f,"defaultProps",{placeholders:{}});export{f as PayToElement,f as default};
2
2
  //# sourceMappingURL=PayTo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton from '../internal/PayButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static readonly defaultProps = {\n placeholders: {}\n };\n\n formatProps(props: PayToConfiguration) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <Fragment>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </Fragment>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <Await\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n );\n }\n // Input\n return (\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","componentToRender","h","Fragment","showPayButton","PayButton","classNameModifiers","payAmountLabel","i18n","amount","onClick","submit","paymentData","Await","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"ysBAgBA,MAGMA,EAHgB,IAGhBA,EAFoB,IAEpBA,GAIkB,EAGlBC,EAAwBC,IAE1B,GAA4B,eAAxBA,EAAMC,cACN,MAAO,GAAGD,EAAME,OAAOF,EAAMG,oBAC1B,GAA4B,iBAAxBH,EAAMC,cAEb,OAAQD,EAAMI,oBACV,KAAKC,EAAoBC,MACrB,OAAON,EAAMM,MACjB,KAAKD,EAAoBE,IACrB,OAAOP,EAAMO,IACjB,KAAKF,EAAoBG,MACrB,OAAOR,EAAMQ,MACjB,KAAKH,EAAoBI,MAErB,MAAO,GAAGT,EAAMU,eAAeV,EAAMW,gBAO9C,MAAMC,UAAqBC,EAO9BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAM,IACCD,EAAMC,KACTN,YAAa,OAGzB,CAKAO,UAAAA,GACI,OAAIC,KAAKH,MAAMI,sBACJ,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBF,sBAAuBD,KAAKH,MAAMI,wBAKvC,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBC,yBAA0BvB,EAAqBmB,KAAKlB,MAAMgB,OAE9DO,YAAa,CACTC,UAAWN,KAAKlB,MAAMgB,KAAKQ,UAC3BC,SAAUP,KAAKlB,MAAMgB,KAAKS,UAGtC,CAEA,WAAIC,GACA,QAAIR,KAAKH,MAAMI,yBAIND,KAAKlB,MAAM0B,OACxB,CAEA,eAAIC,GACA,OAAIT,KAAKH,MAAMI,uBAAyBD,KAAKH,MAAMa,MACxCV,KAAKH,MAAMa,MAEfV,KAAKH,MAAMc,IACtB,CAEA,kBAAIC,GACA,OAAOZ,KAAKH,MAAMI,sBAAwBD,KAAKH,MAAMc,KAAO,EAChE,CAEmBE,iBAAAA,GAEf,OAAIb,KAAKH,MAAMI,sBAEPa,EAACC,OACIf,KAAKH,MAAMmB,eACRF,EAACG,EAAAA,IACOjB,KAAKH,MACTqB,mBAAoB,CAAC,cACrBR,MAAOS,EAAenB,KAAKH,MAAMuB,KAAMpB,KAAKH,MAAMwB,QAClDC,QAAStB,KAAKuB,UAO9BvB,KAAKH,MAAM2B,YAEPV,EAACW,EAAAA,CACGC,YAAY,EACZC,aAAcC,EACdC,UAAW7B,KAAKH,MAAMgC,UACtBL,YAAaxB,KAAKH,MAAM2B,YACxBM,QAAS9B,KAAKH,MAAMiC,QACpBC,WAAY/B,KAAK+B,WACjBC,UAAWhC,KAAKiC,KAChB9B,KAAMH,KAAKkC,YAAY,KACvBC,YAAanC,KAAKH,MAAMuB,KAAKgB,IAAI,wBACjCC,UAAWrC,KAAKH,MAAMuB,KAAKgB,IAAI,mCAC/BE,mBAAoB1D,EACpB2D,aAAc3D,EACd4D,iBAAkB5D,EAClB6D,gBAAiBzC,KAAKyC,gBACtBC,QAAS,MACH1C,KAAKH,MAAM8C,SACT7B,EAAC8B,EAAAA,CAAeD,QAAS3C,KAAKH,MAAM8C,QAASE,MAAO7C,KAAKH,MAAMgD,MAAOC,aAAc9C,KAAKH,MAAMwB,OAAO0B,aAQtHjC,EAACkC,EAAAA,CACGlD,KAAME,KAAKH,MAAMC,KACjBmD,aAAcjD,KAAKH,MAAMoD,aACzBC,gBAAiBlD,KAAKkD,gBACtBC,SAAUnD,KAAKoD,SACfC,UAAWrD,KAAKqD,UAChBrC,cAAehB,KAAKH,MAAMmB,eAGtC,EAjHAsC,EADS5D,EACcS,OAAOoD,EAAWC,OAEzCF,EAHS5D,EAGiB+D,eAAe,CACrCR,aAAc,CAAA"}
1
+ {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton from '../internal/PayButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static readonly defaultProps = {\n placeholders: {}\n };\n\n formatProps(props: PayToConfiguration) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <Fragment>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </Fragment>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <Await\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n );\n }\n // Input\n return (\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","componentToRender","h","Fragment","showPayButton","PayButton","classNameModifiers","payAmountLabel","i18n","amount","onClick","submit","paymentData","Await","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","brandName","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"ysBAgBA,MAGMA,EAHgB,IAGhBA,EAFoB,IAEpBA,GAIkB,EAGlBC,EAAwBC,IAE1B,GAA4B,eAAxBA,EAAMC,cACN,MAAO,GAAGD,EAAME,OAAOF,EAAMG,oBAC1B,GAA4B,iBAAxBH,EAAMC,cAEb,OAAQD,EAAMI,oBACV,KAAKC,EAAoBC,MACrB,OAAON,EAAMM,MACjB,KAAKD,EAAoBE,IACrB,OAAOP,EAAMO,IACjB,KAAKF,EAAoBG,MACrB,OAAOR,EAAMQ,MACjB,KAAKH,EAAoBI,MAErB,MAAO,GAAGT,EAAMU,eAAeV,EAAMW,gBAO9C,MAAMC,UAAqBC,EAO9BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAM,IACCD,EAAMC,KACTN,YAAa,OAGzB,CAKAO,UAAAA,GACI,OAAIC,KAAKH,MAAMI,sBACJ,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBF,sBAAuBD,KAAKH,MAAMI,wBAKvC,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBC,yBAA0BvB,EAAqBmB,KAAKlB,MAAMgB,OAE9DO,YAAa,CACTC,UAAWN,KAAKlB,MAAMgB,KAAKQ,UAC3BC,SAAUP,KAAKlB,MAAMgB,KAAKS,UAGtC,CAEA,WAAIC,GACA,QAAIR,KAAKH,MAAMI,yBAIND,KAAKlB,MAAM0B,OACxB,CAEA,eAAIC,GACA,OAAIT,KAAKH,MAAMI,uBAAyBD,KAAKH,MAAMa,MACxCV,KAAKH,MAAMa,MAEfV,KAAKH,MAAMc,IACtB,CAEA,kBAAIC,GACA,OAAOZ,KAAKH,MAAMI,sBAAwBD,KAAKH,MAAMc,KAAO,EAChE,CAEmBE,iBAAAA,GAEf,OAAIb,KAAKH,MAAMI,sBAEPa,EAACC,OACIf,KAAKH,MAAMmB,eACRF,EAACG,EAAAA,IACOjB,KAAKH,MACTqB,mBAAoB,CAAC,cACrBR,MAAOS,EAAenB,KAAKH,MAAMuB,KAAMpB,KAAKH,MAAMwB,QAClDC,QAAStB,KAAKuB,UAO9BvB,KAAKH,MAAM2B,YAEPV,EAACW,EAAAA,CACGC,YAAY,EACZC,aAAcC,EACdC,UAAW7B,KAAKH,MAAMgC,UACtBL,YAAaxB,KAAKH,MAAM2B,YACxBM,QAAS9B,KAAKH,MAAMiC,QACpBC,WAAY/B,KAAK+B,WACjBC,UAAWhC,KAAKiC,KAChBC,UAAWlC,KAAKS,YAChBN,KAAMH,KAAKmC,YAAY,KACvBC,YAAapC,KAAKH,MAAMuB,KAAKiB,IAAI,wBACjCC,UAAWtC,KAAKH,MAAMuB,KAAKiB,IAAI,mCAC/BE,mBAAoB3D,EACpB4D,aAAc5D,EACd6D,iBAAkB7D,EAClB8D,gBAAiB1C,KAAK0C,gBACtBC,QAAS,MACH3C,KAAKH,MAAM+C,SACT9B,EAAC+B,EAAAA,CAAeD,QAAS5C,KAAKH,MAAM+C,QAASE,MAAO9C,KAAKH,MAAMiD,MAAOC,aAAc/C,KAAKH,MAAMwB,OAAO2B,aAQtHlC,EAACmC,EAAAA,CACGnD,KAAME,KAAKH,MAAMC,KACjBoD,aAAclD,KAAKH,MAAMqD,aACzBC,gBAAiBnD,KAAKmD,gBACtBC,SAAUpD,KAAKqD,SACfC,UAAWtD,KAAKsD,UAChBtC,cAAehB,KAAKH,MAAMmB,eAGtC,EAlHAuC,EADS7D,EACcS,OAAOqD,EAAWC,OAEzCF,EAHS7D,EAGiBgE,eAAe,CACrCR,aAAc,CAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import{useEffect as t,useRef as a}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import s from"../../../utils/useForm/useFormWithA11y.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as n}from"../../../utils/getErrorMessage.js";import i from"../../internal/FormFields/Field/Field.js";import l from"../../internal/FormFields/InputText.js";import{bsbValidationRules as u}from"./validate.js";import{phoneFormatters as b}from"../../internal/PhoneInput/validate.js";import m from"./PayToNameFields.js";const c=["bankAccountNumber","bsb","firstName","lastName"];function d({setComponentRef:d,defaultData:p,placeholders:f,onChange:h,setStatus:F,id:N}){const{i18n:k}=o(),g=s({schema:c,defaultData:p,rules:u,formatters:b,formHolder:`#${N}`}),{handleChangeFor:A,triggerValidation:j,data:v,errors:B,valid:C,isValid:S}=g;t(()=>{h({data:v,valid:C,errors:B,isValid:S})},[v,C,B,S]);const y=a({setStatus:F,showValidation:j});return t(()=>{d(y.current)},[d]),e(r,{id:N,classNameModifiers:["payto__bsb_input"],label:"BSB",description:"payto.bsb.description"},e(i,{label:k.get("payto.bsb.label.bankAccountNumber"),classNameModifiers:["col-60","bankAccountNumber"],errorMessage:n(k,B.bankAccountNumber,k.get("payto.bsb.label.bankAccountNumber")),name:"bankAccountNumber",i18n:k,errorLive:!0},e(l,{name:"bankAccountNumber",value:v.bankAccountNumber,onInput:A("bankAccountNumber","input"),onBlur:A("bankAccountNumber","blur"),placeholder:f?.bankAccountNumber,required:!0,autocomplete:void 0})),e(i,{label:k.get("Bank State Branch"),classNameModifiers:["col-40","bsb"],errorMessage:n(k,B.bsb,k.get("Bank State Branch")),name:"bsb",i18n:k,errorLive:!0},e(l,{name:"bsb",value:v.bsb,onInput:A("bsb","input"),onBlur:A("bsb","blur"),placeholder:f?.bsb,required:!0,autocomplete:void 0})),e(m,{i18n:k,data:v,handleChangeFor:A,errors:B,placeholders:f}))}export{d as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import{useMemo as t,useEffect as a,useRef as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as s}from"../../../core/Context/CoreProvider.js";import i from"../../../utils/useForm/useFormWithA11y.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as n}from"../../../utils/getErrorMessage.js";import l from"../../internal/FormFields/Field/Field.js";import u from"../../internal/FormFields/InputText.js";import{bsbValidationRules as m}from"./validate.js";import{phoneFormatters as b}from"../../internal/PhoneInput/validate.js";import c from"./PayToNameFields.js";import{getUniqueId as d}from"../../../utils/idGenerator.js";const p=["bankAccountNumber","bsb","firstName","lastName"];function f({setComponentRef:f,defaultData:h,placeholders:F,onChange:N,setStatus:k,id:g}){const{i18n:j}=s(),A=t(()=>d("payid-instruction"),[]),v=i({schema:p,defaultData:h,rules:m,formatters:b,formHolder:`#${g}`}),{handleChangeFor:y,triggerValidation:B,data:C,errors:M,valid:S,isValid:x}=v;a(()=>{N({data:C,valid:S,errors:M,isValid:x})},[C,S,M,x]);const I=o({setStatus:k,showValidation:B});return a(()=>{f(I.current)},[f]),e(r,{id:g,classNameModifiers:["payto__bsb_input"],label:"BSB",description:"payto.bsb.description",descriptionId:A},e(l,{label:j.get("payto.bsb.label.bankAccountNumber"),classNameModifiers:["col-60","bankAccountNumber"],errorMessage:n(j,M.bankAccountNumber,j.get("payto.bsb.label.bankAccountNumber")),name:"bankAccountNumber",i18n:j,errorLive:!0},e(u,{name:"bankAccountNumber",value:C.bankAccountNumber,onInput:y("bankAccountNumber","input"),onBlur:y("bankAccountNumber","blur"),placeholder:F?.bankAccountNumber,"aria-describedby":A,required:!0,autocomplete:void 0})),e(l,{label:j.get("Bank State Branch"),classNameModifiers:["col-40","bsb"],errorMessage:n(j,M.bsb,j.get("Bank State Branch")),name:"bsb",i18n:j,errorLive:!0},e(u,{name:"bsb",value:C.bsb,onInput:y("bsb","input"),onBlur:y("bsb","blur"),placeholder:F?.bsb,required:!0,autocomplete:void 0})),e(c,{i18n:j,data:C,handleChangeFor:y,errors:M,placeholders:F}))}export{f as default};
2
2
  //# sourceMappingURL=BSBInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BSBInput.js","sources":["../../../../../src/components/PayTo/components/BSBInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { useFormWithA11y } from '../../../utils/useForm';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { bsbValidationRules } from './validate';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\n\nexport interface BSBFormData {\n bsb: string;\n bankAccountNumber: string;\n firstName: string;\n lastName: string;\n}\n\nexport interface BSBInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: BSBFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['bankAccountNumber', 'bsb', 'firstName', 'lastName'];\n\nexport default function BSBInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: Readonly<BSBInputProps>) {\n const { i18n } = useCoreContext();\n\n const form = useFormWithA11y<BSBFormData>({\n schema: BASE_SCHEMA,\n defaultData: defaultData,\n rules: bsbValidationRules,\n formatters: phoneFormatters,\n formHolder: `#${id}`\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = form;\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset id={id} classNameModifiers={['payto__bsb_input']} label={'BSB'} description={'payto.bsb.description'}>\n <Field\n label={i18n.get('payto.bsb.label.bankAccountNumber')}\n classNameModifiers={['col-60', 'bankAccountNumber']}\n errorMessage={getErrorMessage(i18n, errors.bankAccountNumber, i18n.get('payto.bsb.label.bankAccountNumber'))}\n name={'bankAccountNumber'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'bankAccountNumber'}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n placeholder={placeholders?.bankAccountNumber}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n\n <Field\n label={i18n.get('Bank State Branch')}\n classNameModifiers={['col-40', 'bsb']}\n errorMessage={getErrorMessage(i18n, errors.bsb, i18n.get('Bank State Branch'))}\n name={'bsb'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'bsb'}\n value={data.bsb}\n onInput={handleChangeFor('bsb', 'input')}\n onBlur={handleChangeFor('bsb', 'blur')}\n placeholder={placeholders?.bsb}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","BSBInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","form","useFormWithA11y","schema","rules","bsbValidationRules","formatters","phoneFormatters","formHolder","handleChangeFor","triggerValidation","data","errors","valid","isValid","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","Field","get","errorMessage","getErrorMessage","bankAccountNumber","name","errorLive","InputText","value","onInput","onBlur","placeholder","required","autocomplete","undefined","bsb","PayToNameFields"],"mappings":"4uBAgCA,MAAMA,EAAc,CAAC,oBAAqB,MAAO,YAAa,YAE/C,SAASC,GAASC,gBAAEA,EAAeC,YAAEA,EAAWC,aAAEA,EAAYC,SAAEA,EAAQC,UAAEA,EAASC,GAAEA,IAChG,MAAMC,KAAEA,GAASC,IAEXC,EAAOC,EAA6B,CACtCC,OAAQZ,EACRG,YAAaA,EACbU,MAAOC,EACPC,WAAYC,EACZC,WAAY,IAAIV,OAEdW,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,GAAYb,EAG7Ec,EAAU,KACNnB,EAAS,CAAEe,OAAME,QAAOD,SAAQE,aACjC,CAACH,EAAME,EAAOD,EAAQE,IAEzB,MAAME,EAAWC,EAA4B,CACzCpB,UAAWA,EACXqB,eAAgBR,IAOpB,OAJAK,EAAU,KACNtB,EAAgBuB,EAASG,UAC1B,CAAC1B,IAGA2B,EAACC,EAAAA,CAASvB,GAAIA,EAAIwB,mBAAoB,CAAC,oBAAqBC,MAAO,MAAOC,YAAa,yBACnFJ,EAACK,EAAAA,CACGF,MAAOxB,EAAK2B,IAAI,qCAChBJ,mBAAoB,CAAC,SAAU,qBAC/BK,aAAcC,EAAgB7B,EAAMa,EAAOiB,kBAAmB9B,EAAK2B,IAAI,sCACvEI,KAAM,oBACN/B,KAAMA,EACNgC,WAAW,GAEXX,EAACY,EAAAA,CACGF,KAAM,oBACNG,MAAOtB,EAAKkB,kBACZK,QAASzB,EAAgB,oBAAqB,SAC9C0B,OAAQ1B,EAAgB,oBAAqB,QAC7C2B,YAAazC,GAAckC,kBAC3BQ,UAAU,EACVC,kBAAcC,KAItBnB,EAACK,EAAAA,CACGF,MAAOxB,EAAK2B,IAAI,qBAChBJ,mBAAoB,CAAC,SAAU,OAC/BK,aAAcC,EAAgB7B,EAAMa,EAAO4B,IAAKzC,EAAK2B,IAAI,sBACzDI,KAAM,MACN/B,KAAMA,EACNgC,WAAW,GAEXX,EAACY,EAAAA,CACGF,KAAM,MACNG,MAAOtB,EAAK6B,IACZN,QAASzB,EAAgB,MAAO,SAChC0B,OAAQ1B,EAAgB,MAAO,QAC/B2B,YAAazC,GAAc6C,IAC3BH,UAAU,EACVC,kBAAcC,KAItBnB,EAACqB,EAAAA,CAAgB1C,KAAMA,EAAMY,KAAMA,EAAMF,gBAAiBA,EAAiBG,OAAQA,EAAQjB,aAAcA,IAGrH"}
1
+ {"version":3,"file":"BSBInput.js","sources":["../../../../../src/components/PayTo/components/BSBInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\nimport { useFormWithA11y } from '../../../utils/useForm';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { bsbValidationRules } from './validate';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\nimport { getUniqueId } from '../../../utils/idGenerator';\n\nexport interface BSBFormData {\n bsb: string;\n bankAccountNumber: string;\n firstName: string;\n lastName: string;\n}\n\nexport interface BSBInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: BSBFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['bankAccountNumber', 'bsb', 'firstName', 'lastName'];\n\nexport default function BSBInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: Readonly<BSBInputProps>) {\n const { i18n } = useCoreContext();\n\n const descriptionId = useMemo(() => getUniqueId('payid-instruction'), []);\n\n const form = useFormWithA11y<BSBFormData>({\n schema: BASE_SCHEMA,\n defaultData: defaultData,\n rules: bsbValidationRules,\n formatters: phoneFormatters,\n formHolder: `#${id}`\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = form;\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset id={id} classNameModifiers={['payto__bsb_input']} label={'BSB'} description={'payto.bsb.description'} descriptionId={descriptionId}>\n <Field\n label={i18n.get('payto.bsb.label.bankAccountNumber')}\n classNameModifiers={['col-60', 'bankAccountNumber']}\n errorMessage={getErrorMessage(i18n, errors.bankAccountNumber, i18n.get('payto.bsb.label.bankAccountNumber'))}\n name={'bankAccountNumber'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'bankAccountNumber'}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n placeholder={placeholders?.bankAccountNumber}\n aria-describedby={descriptionId}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n\n <Field\n label={i18n.get('Bank State Branch')}\n classNameModifiers={['col-40', 'bsb']}\n errorMessage={getErrorMessage(i18n, errors.bsb, i18n.get('Bank State Branch'))}\n name={'bsb'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'bsb'}\n value={data.bsb}\n onInput={handleChangeFor('bsb', 'input')}\n onBlur={handleChangeFor('bsb', 'blur')}\n placeholder={placeholders?.bsb}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","BSBInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","descriptionId","useMemo","getUniqueId","form","useFormWithA11y","schema","rules","bsbValidationRules","formatters","phoneFormatters","formHolder","handleChangeFor","triggerValidation","data","errors","valid","isValid","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","Field","get","errorMessage","getErrorMessage","bankAccountNumber","name","errorLive","InputText","value","onInput","onBlur","placeholder","aria-describedby","required","autocomplete","undefined","bsb","PayToNameFields"],"mappings":"qzBAiCA,MAAMA,EAAc,CAAC,oBAAqB,MAAO,YAAa,YAE/C,SAASC,GAASC,gBAAEA,EAAeC,YAAEA,EAAWC,aAAEA,EAAYC,SAAEA,EAAQC,UAAEA,EAASC,GAAEA,IAChG,MAAMC,KAAEA,GAASC,IAEXC,EAAgBC,EAAQ,IAAMC,EAAY,qBAAsB,IAEhEC,EAAOC,EAA6B,CACtCC,OAAQf,EACRG,YAAaA,EACba,MAAOC,EACPC,WAAYC,EACZC,WAAY,IAAIb,OAEdc,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,GAAYb,EAG7Ec,EAAU,KACNtB,EAAS,CAAEkB,OAAME,QAAOD,SAAQE,aACjC,CAACH,EAAME,EAAOD,EAAQE,IAEzB,MAAME,EAAWC,EAA4B,CACzCvB,UAAWA,EACXwB,eAAgBR,IAOpB,OAJAK,EAAU,KACNzB,EAAgB0B,EAASG,UAC1B,CAAC7B,IAGA8B,EAACC,EAAAA,CAAS1B,GAAIA,EAAI2B,mBAAoB,CAAC,oBAAqBC,MAAO,MAAOC,YAAa,wBAAyB1B,cAAeA,GAC3HsB,EAACK,EAAAA,CACGF,MAAO3B,EAAK8B,IAAI,qCAChBJ,mBAAoB,CAAC,SAAU,qBAC/BK,aAAcC,EAAgBhC,EAAMgB,EAAOiB,kBAAmBjC,EAAK8B,IAAI,sCACvEI,KAAM,oBACNlC,KAAMA,EACNmC,WAAW,GAEXX,EAACY,EAAAA,CACGF,KAAM,oBACNG,MAAOtB,EAAKkB,kBACZK,QAASzB,EAAgB,oBAAqB,SAC9C0B,OAAQ1B,EAAgB,oBAAqB,QAC7C2B,YAAa5C,GAAcqC,kBAC3BQ,mBAAkBvC,EAClBwC,UAAU,EACVC,kBAAcC,KAItBpB,EAACK,EAAAA,CACGF,MAAO3B,EAAK8B,IAAI,qBAChBJ,mBAAoB,CAAC,SAAU,OAC/BK,aAAcC,EAAgBhC,EAAMgB,EAAO6B,IAAK7C,EAAK8B,IAAI,sBACzDI,KAAM,MACNlC,KAAMA,EACNmC,WAAW,GAEXX,EAACY,EAAAA,CACGF,KAAM,MACNG,MAAOtB,EAAK8B,IACZP,QAASzB,EAAgB,MAAO,SAChC0B,OAAQ1B,EAAgB,MAAO,QAC/B2B,YAAa5C,GAAciD,IAC3BH,UAAU,EACVC,kBAAcC,KAItBpB,EAACsB,EAAAA,CAAgB9C,KAAMA,EAAMe,KAAMA,EAAMF,gBAAiBA,EAAiBG,OAAQA,EAAQpB,aAAcA,IAGrH"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import i from"../../internal/FormFields/Select/Select.js";import t from"../../internal/FormFields/Field/Field.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import{createEnumChecker as o}from"../../../core/utils.js";var n=function(e){return e.phone="phone",e.email="email",e.abn="abn",e.orgid="orgid",e}({});const r=o(n),l=[{id:"phone",nameKey:"payto.payid.option.phone"},{id:"email",nameKey:"payto.payid.option.email"},{id:"abn",nameKey:"ABN"},{id:"orgid",nameKey:"payto.payid.option.orgid"}];function d({selectedIdentifier:o,onSelectedIdentifier:n,classNameModifiers:d}){const{i18n:m}=a(),s=((e,i)=>i.map(i=>({id:i.id,name:e.get(i.nameKey)})))(m,l);return e(t,{className:"",name:"payid-identifier",useLabelElement:!0,label:m.get("payto.payid.label.identifier"),showContextualElement:!1,classNameModifiers:d},e(i,{filterable:!1,items:s,selectedValue:o,onChange:e=>{const i=e.target.value+"";r(i)&&n(i)},name:"payid-identifier"}))}export{l as PAYID_IDENTIFIER_OPTIONS,n as PayToIdentifierEnum,d as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import i from"../../internal/FormFields/Select/Select.js";import a from"../../internal/FormFields/Field/Field.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import{createEnumChecker as o}from"../../../core/utils.js";var n=function(e){return e.phone="phone",e.email="email",e.abn="abn",e.orgid="orgid",e}({});const r=o(n),d=[{id:"phone",nameKey:"payto.payid.option.phone"},{id:"email",nameKey:"payto.payid.option.email"},{id:"abn",nameKey:"ABN"},{id:"orgid",nameKey:"payto.payid.option.orgid"}];function l({selectedIdentifier:o,onSelectedIdentifier:n,classNameModifiers:l,describedBy:m}){const{i18n:s}=t(),p=((e,i)=>i.map(i=>({id:i.id,name:e.get(i.nameKey)})))(s,d);return e(a,{className:"",name:"payid-identifier",useLabelElement:!0,label:s.get("payto.payid.label.identifier"),showContextualElement:!1,classNameModifiers:l},e(i,{filterable:!1,items:p,selectedValue:o,onChange:e=>{const i=e.target.value+"";r(i)&&n(i)},name:"payid-identifier",additionalDescribedBy:m}))}export{d as PAYID_IDENTIFIER_OPTIONS,n as PayToIdentifierEnum,l as default};
2
2
  //# sourceMappingURL=IdentifierSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdentifierSelector.js","sources":["../../../../../src/components/PayTo/components/IdentifierSelector.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Select from '../../internal/FormFields/Select';\nimport { SelectTargetObject } from '../../internal/FormFields/Select/types';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Language from '../../../language';\nimport { createEnumChecker } from '../../../core/utils';\n\nexport enum PayToIdentifierEnum {\n phone = 'phone',\n email = 'email',\n abn = 'abn',\n orgid = 'orgid'\n}\n\nconst payToIdentifierEnumCheck = createEnumChecker(PayToIdentifierEnum);\n\nexport type PayToPayIDInputIdentifierValues = keyof typeof PayToIdentifierEnum;\n\ntype PayIdOptionsType = { id: PayToPayIDInputIdentifierValues; nameKey: string }[];\n\nexport const PAYID_IDENTIFIER_OPTIONS: PayIdOptionsType = [\n {\n id: PayToIdentifierEnum.phone,\n nameKey: 'payto.payid.option.phone'\n },\n {\n id: PayToIdentifierEnum.email,\n nameKey: 'payto.payid.option.email'\n },\n {\n id: PayToIdentifierEnum.abn,\n nameKey: 'ABN'\n },\n {\n id: PayToIdentifierEnum.orgid,\n nameKey: 'payto.payid.option.orgid'\n }\n];\n\ninterface IdentifierSelectorProps {\n classNameModifiers?: string[];\n selectedIdentifier: PayToPayIDInputIdentifierValues;\n onSelectedIdentifier: (value: PayToPayIDInputIdentifierValues) => void;\n}\n\nconst loadI18nForOptions = (i18n: Language, options: PayIdOptionsType) =>\n options.map(option => ({\n id: option.id,\n name: i18n.get(option.nameKey)\n }));\n\nexport default function IdentifierSelector({ selectedIdentifier, onSelectedIdentifier, classNameModifiers }: Readonly<IdentifierSelectorProps>) {\n const { i18n } = useCoreContext();\n\n const hydratedOptions = loadI18nForOptions(i18n, PAYID_IDENTIFIER_OPTIONS);\n\n const onChange = (e: { target: SelectTargetObject }) => {\n const valueStr = e.target.value + '';\n\n if (payToIdentifierEnumCheck(valueStr)) {\n onSelectedIdentifier(valueStr);\n }\n };\n\n return (\n <Field\n className={''}\n name={'payid-identifier'}\n useLabelElement={true}\n label={i18n.get('payto.payid.label.identifier')}\n showContextualElement={false}\n classNameModifiers={classNameModifiers}\n >\n <Select filterable={false} items={hydratedOptions} selectedValue={selectedIdentifier} onChange={onChange} name={'payid-identifier'} />\n </Field>\n );\n}\n"],"names":["PayToIdentifierEnum","payToIdentifierEnumCheck","createEnumChecker","PAYID_IDENTIFIER_OPTIONS","id","nameKey","IdentifierSelector","selectedIdentifier","onSelectedIdentifier","classNameModifiers","i18n","useCoreContext","hydratedOptions","options","map","option","name","get","loadI18nForOptions","h","Field","className","useLabelElement","label","showContextualElement","Select","filterable","items","selectedValue","onChange","e","valueStr","target","value"],"mappings":"4TAQO,IAAAA,EAAKA,SAAAA,GAAAA,mEAAAA,CAKX,CALWA,CAKX,CAAA,GAED,MAAMC,EAA2BC,EAAkBF,GAMtCG,EAA6C,CACtD,CACIC,GAAE,QACFC,QAAS,4BAEb,CACID,GAAE,QACFC,QAAS,4BAEb,CACID,GAAE,MACFC,QAAS,OAEb,CACID,GAAE,QACFC,QAAS,6BAgBF,SAASC,GAAmBC,mBAAEA,EAAkBC,qBAAEA,EAAoBC,mBAAEA,IACnF,MAAMC,KAAEA,GAASC,IAEXC,EATiB,EAACF,EAAgBG,IACxCA,EAAQC,IAAIC,IAAAA,CACRX,GAAIW,EAAOX,GACXY,KAAMN,EAAKO,IAAIF,EAAOV,YAMFa,CAAmBR,EAAMP,GAUjD,OACIgB,EAACC,EAAAA,CACGC,UAAW,GACXL,KAAM,mBACNM,iBAAiB,EACjBC,MAAOb,EAAKO,IAAI,gCAChBO,uBAAuB,EACvBf,mBAAoBA,GAEpBU,EAACM,EAAAA,CAAOC,YAAY,EAAOC,MAAOf,EAAiBgB,cAAerB,EAAoBsB,SAjB5EC,IACd,MAAMC,EAAWD,EAAEE,OAAOC,MAAQ,GAE9BhC,EAAyB8B,IACzBvB,EAAqBuB,IAaqFf,KAAM,qBAG5H"}
1
+ {"version":3,"file":"IdentifierSelector.js","sources":["../../../../../src/components/PayTo/components/IdentifierSelector.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Select from '../../internal/FormFields/Select';\nimport { SelectTargetObject } from '../../internal/FormFields/Select/types';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Language from '../../../language';\nimport { createEnumChecker } from '../../../core/utils';\n\nexport enum PayToIdentifierEnum {\n phone = 'phone',\n email = 'email',\n abn = 'abn',\n orgid = 'orgid'\n}\n\nconst payToIdentifierEnumCheck = createEnumChecker(PayToIdentifierEnum);\n\nexport type PayToPayIDInputIdentifierValues = keyof typeof PayToIdentifierEnum;\n\ntype PayIdOptionsType = { id: PayToPayIDInputIdentifierValues; nameKey: string }[];\n\nexport const PAYID_IDENTIFIER_OPTIONS: PayIdOptionsType = [\n {\n id: PayToIdentifierEnum.phone,\n nameKey: 'payto.payid.option.phone'\n },\n {\n id: PayToIdentifierEnum.email,\n nameKey: 'payto.payid.option.email'\n },\n {\n id: PayToIdentifierEnum.abn,\n nameKey: 'ABN'\n },\n {\n id: PayToIdentifierEnum.orgid,\n nameKey: 'payto.payid.option.orgid'\n }\n];\n\ninterface IdentifierSelectorProps {\n classNameModifiers?: string[];\n selectedIdentifier: PayToPayIDInputIdentifierValues;\n onSelectedIdentifier: (value: PayToPayIDInputIdentifierValues) => void;\n describedBy?: string;\n}\n\nconst loadI18nForOptions = (i18n: Language, options: PayIdOptionsType) =>\n options.map(option => ({\n id: option.id,\n name: i18n.get(option.nameKey)\n }));\n\nexport default function IdentifierSelector({\n selectedIdentifier,\n onSelectedIdentifier,\n classNameModifiers,\n describedBy\n}: Readonly<IdentifierSelectorProps>) {\n const { i18n } = useCoreContext();\n\n const hydratedOptions = loadI18nForOptions(i18n, PAYID_IDENTIFIER_OPTIONS);\n\n const onChange = (e: { target: SelectTargetObject }) => {\n const valueStr = e.target.value + '';\n\n if (payToIdentifierEnumCheck(valueStr)) {\n onSelectedIdentifier(valueStr);\n }\n };\n\n return (\n <Field\n className={''}\n name={'payid-identifier'}\n useLabelElement={true}\n label={i18n.get('payto.payid.label.identifier')}\n showContextualElement={false}\n classNameModifiers={classNameModifiers}\n >\n <Select\n filterable={false}\n items={hydratedOptions}\n selectedValue={selectedIdentifier}\n onChange={onChange}\n name={'payid-identifier'}\n additionalDescribedBy={describedBy}\n />\n </Field>\n );\n}\n"],"names":["PayToIdentifierEnum","payToIdentifierEnumCheck","createEnumChecker","PAYID_IDENTIFIER_OPTIONS","id","nameKey","IdentifierSelector","selectedIdentifier","onSelectedIdentifier","classNameModifiers","describedBy","i18n","useCoreContext","hydratedOptions","options","map","option","name","get","loadI18nForOptions","h","Field","className","useLabelElement","label","showContextualElement","Select","filterable","items","selectedValue","onChange","e","valueStr","target","value","additionalDescribedBy"],"mappings":"4TAQO,IAAAA,EAAKA,SAAAA,GAAAA,mEAAAA,CAKX,CALWA,CAKX,CAAA,GAED,MAAMC,EAA2BC,EAAkBF,GAMtCG,EAA6C,CACtD,CACIC,GAAE,QACFC,QAAS,4BAEb,CACID,GAAE,QACFC,QAAS,4BAEb,CACID,GAAE,MACFC,QAAS,OAEb,CACID,GAAE,QACFC,QAAS,6BAiBF,SAASC,GAAmBC,mBACvCA,EAAkBC,qBAClBA,EAAoBC,mBACpBA,EAAkBC,YAClBA,IAEA,MAAMC,KAAEA,GAASC,IAEXC,EAdiB,EAACF,EAAgBG,IACxCA,EAAQC,IAAIC,IAAAA,CACRZ,GAAIY,EAAOZ,GACXa,KAAMN,EAAKO,IAAIF,EAAOX,YAWFc,CAAmBR,EAAMR,GAUjD,OACIiB,EAACC,EAAAA,CACGC,UAAW,GACXL,KAAM,mBACNM,iBAAiB,EACjBC,MAAOb,EAAKO,IAAI,gCAChBO,uBAAuB,EACvBhB,mBAAoBA,GAEpBW,EAACM,EAAAA,CACGC,YAAY,EACZC,MAAOf,EACPgB,cAAetB,EACfuB,SArBMC,IACd,MAAMC,EAAWD,EAAEE,OAAOC,MAAQ,GAE9BjC,EAAyB+B,IACzBxB,EAAqBwB,IAkBjBf,KAAM,mBACNkB,sBAAuBzB,IAIvC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import i,{PayToIdentifierEnum as o}from"./IdentifierSelector.js";import{useEffect as t,useRef as a}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as l}from"../../../core/Context/CoreProvider.js";import s from"../../../utils/useForm/useFormWithA11y.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import n from"./PayToPhone.js";import d from"../../internal/FormFields/InputEmail.js";import{getErrorMessage as m}from"../../../utils/getErrorMessage.js";import p from"../../internal/FormFields/Field/Field.js";import c from"../../internal/FormFields/InputText.js";import{payIdValidationRules as f}from"./validate.js";import{phoneFormatters as u}from"../../internal/PhoneInput/validate.js";import g from"./PayToNameFields.js";const h=["selectedIdentifier","firstName","lastName"],b={[o.email]:["email"],[o.phone]:["phoneNumber","phonePrefix"],[o.abn]:["abn"],[o.orgid]:["orgid"]};function I({setComponentRef:I,defaultData:F,placeholders:j,onChange:v,setStatus:y,id:N}){const{i18n:M}=l(),C=s({schema:h,defaultData:{selectedIdentifier:o.phone,...F},rules:f,formatters:u,formHolder:`#${N}`}),{handleChangeFor:P,triggerValidation:S,data:x,errors:B,valid:E,isValid:A,setSchema:V}=C;t(()=>{V([...b[x.selectedIdentifier],...h])},[x.selectedIdentifier]),t(()=>{v({data:x,valid:E,errors:B,isValid:A})},[x,E,B,A]);const q=a({setStatus:y,showValidation:S});return t(()=>{I(q.current)},[I]),e(r,{id:N,classNameModifiers:["payto__payid_input"],label:"PayID",description:"payto.payid.description"},e(i,{classNameModifiers:["col-40"],onSelectedIdentifier:P("selectedIdentifier"),selectedIdentifier:x.selectedIdentifier}),x.selectedIdentifier===o.phone&&e(n,{form:C}),x.selectedIdentifier===o.email&&e(p,{label:M.get("shopperEmail"),classNameModifiers:["col-60","email"],errorMessage:m(M,B.email,M.get("shopperEmail")),dir:"ltr",name:"email",i18n:M,errorLive:!0},e(d,{name:"email",value:x.email,onInput:P("email","input"),onBlur:P("email","blur"),placeholder:j?.email,required:!0,autocomplete:"email"})),x.selectedIdentifier===o.abn&&e(p,{label:M.get("ABN"),classNameModifiers:["col-60","abn"],errorMessage:m(M,B.abn,M.get("ABN")),name:"ABN",i18n:M,errorLive:!0},e(c,{name:"abn",value:x.abn,onInput:P("abn","input"),onBlur:P("abn","blur"),placeholder:j?.abn,required:!0,autocomplete:void 0})),x.selectedIdentifier===o.orgid&&e(p,{label:M.get("payto.payid.label.orgid"),classNameModifiers:["col-60","orgid"],errorMessage:m(M,B.orgid,M.get("payto.payid.label.orgid")),name:"orgid",i18n:M,errorLive:!0},e(c,{name:"orgid",value:x.orgid,onInput:P("orgid","input"),onBlur:P("orgid","blur"),placeholder:j?.orgid,required:!0,autocomplete:void 0})),e(g,{i18n:M,data:x,handleChangeFor:P,errors:B,placeholders:j}))}export{I as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import i,{PayToIdentifierEnum as o}from"./IdentifierSelector.js";import{useMemo as t,useEffect as a,useRef as l}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as s}from"../../../core/Context/CoreProvider.js";import d from"../../../utils/useForm/useFormWithA11y.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import n from"./PayToPhone.js";import m from"../../internal/FormFields/InputEmail.js";import{getErrorMessage as p}from"../../../utils/getErrorMessage.js";import c from"../../internal/FormFields/Field/Field.js";import u from"../../internal/FormFields/InputText.js";import{payIdValidationRules as f}from"./validate.js";import{getUniqueId as g}from"../../../utils/idGenerator.js";import{phoneFormatters as h}from"../../internal/PhoneInput/validate.js";import b from"./PayToNameFields.js";const I=["selectedIdentifier","firstName","lastName"],F={[o.email]:["email"],[o.phone]:["phoneNumber","phonePrefix"],[o.abn]:["abn"],[o.orgid]:["orgid"]};function j({setComponentRef:j,defaultData:y,placeholders:v,onChange:N,setStatus:M,id:B}){const{i18n:C}=s(),P=t(()=>g("payid-instruction"),[]),S=d({schema:I,defaultData:{selectedIdentifier:o.phone,...y},rules:f,formatters:h,formHolder:`#${B}`}),{handleChangeFor:x,triggerValidation:E,data:A,errors:V,valid:q,isValid:D,setSchema:L}=S;a(()=>{L([...F[A.selectedIdentifier],...I])},[A.selectedIdentifier]),a(()=>{N({data:A,valid:q,errors:V,isValid:D})},[A,q,V,D]);const T=l({setStatus:M,showValidation:E});return a(()=>{j(T.current)},[j]),e(r,{id:B,classNameModifiers:["payto__payid_input"],label:"PayID",description:"payto.payid.description",descriptionId:P},e(i,{classNameModifiers:["col-40"],onSelectedIdentifier:x("selectedIdentifier"),selectedIdentifier:A.selectedIdentifier,describedBy:P}),A.selectedIdentifier===o.phone&&e(n,{form:S}),A.selectedIdentifier===o.email&&e(c,{label:C.get("shopperEmail"),classNameModifiers:["col-60","email"],errorMessage:p(C,V.email,C.get("shopperEmail")),dir:"ltr",name:"email",i18n:C,errorLive:!0},e(m,{name:"email",value:A.email,onInput:x("email","input"),onBlur:x("email","blur"),placeholder:v?.email,required:!0,autocomplete:"email"})),A.selectedIdentifier===o.abn&&e(c,{label:C.get("ABN"),classNameModifiers:["col-60","abn"],errorMessage:p(C,V.abn,C.get("ABN")),name:"ABN",i18n:C,errorLive:!0},e(u,{name:"abn",value:A.abn,onInput:x("abn","input"),onBlur:x("abn","blur"),placeholder:v?.abn,required:!0,autocomplete:void 0})),A.selectedIdentifier===o.orgid&&e(c,{label:C.get("payto.payid.label.orgid"),classNameModifiers:["col-60","orgid"],errorMessage:p(C,V.orgid,C.get("payto.payid.label.orgid")),name:"orgid",i18n:C,errorLive:!0},e(u,{name:"orgid",value:A.orgid,onInput:x("orgid","input"),onBlur:x("orgid","blur"),placeholder:v?.orgid,required:!0,autocomplete:void 0})),e(b,{i18n:C,data:A,handleChangeFor:x,errors:V,placeholders:v}))}export{j as default};
2
2
  //# sourceMappingURL=PayIDInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayIDInput.js","sources":["../../../../../src/components/PayTo/components/PayIDInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport IdentifierSelector, { PayToIdentifierEnum } from './IdentifierSelector';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { useFormWithA11y } from '../../../utils/useForm';\nimport PayToPhone from './PayToPhone';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { payIdValidationRules } from './validate';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\n\nexport interface PayIdFormData {\n email: string;\n phone: string;\n abn: string;\n orgid: string;\n firstName: string;\n lastName: string;\n phoneNumber?: string;\n phonePrefix?: string;\n selectedIdentifier: PayToIdentifierEnum;\n}\n\nexport interface PayIDInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: PayIdFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['selectedIdentifier', 'firstName', 'lastName'];\n\nconst IDENTIFIER_SCHEMA = {\n [PayToIdentifierEnum.email]: ['email'],\n [PayToIdentifierEnum.phone]: ['phoneNumber', 'phonePrefix'],\n [PayToIdentifierEnum.abn]: ['abn'],\n [PayToIdentifierEnum.orgid]: ['orgid']\n};\n\nexport default function PayIDInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: Readonly<PayIDInputProps>) {\n const { i18n } = useCoreContext();\n\n const form = useFormWithA11y<PayIdFormData>({\n schema: BASE_SCHEMA,\n defaultData: { selectedIdentifier: PayToIdentifierEnum.phone, ...defaultData },\n rules: payIdValidationRules,\n formatters: phoneFormatters,\n formHolder: `#${id}`\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid, setSchema } = form;\n\n // handle the changes of identifier, each identifier gets its own schema\n useEffect(() => {\n // get the correct schema for each identifier and merge it with the base\n setSchema([...IDENTIFIER_SCHEMA[data.selectedIdentifier], ...BASE_SCHEMA]);\n }, [data.selectedIdentifier]);\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset id={id} classNameModifiers={['payto__payid_input']} label={'PayID'} description={'payto.payid.description'}>\n <IdentifierSelector\n classNameModifiers={['col-40']}\n onSelectedIdentifier={handleChangeFor('selectedIdentifier')}\n selectedIdentifier={data.selectedIdentifier}\n />\n {data.selectedIdentifier === PayToIdentifierEnum.phone && <PayToPhone form={form} />}\n\n {/* TODO probably worth refactoring this into either re-usable components or builder */}\n {data.selectedIdentifier === PayToIdentifierEnum.email && (\n <Field\n label={i18n.get('shopperEmail')}\n classNameModifiers={['col-60', 'email']}\n errorMessage={getErrorMessage(i18n, errors.email, i18n.get('shopperEmail'))}\n dir={'ltr'}\n name={'email'}\n i18n={i18n}\n errorLive={true}\n >\n <InputEmail\n name={'email'}\n value={data.email}\n onInput={handleChangeFor('email', 'input')}\n onBlur={handleChangeFor('email', 'blur')}\n placeholder={placeholders?.email}\n required={true}\n autocomplete={'email'}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.abn && (\n <Field\n label={i18n.get('ABN')}\n classNameModifiers={['col-60', 'abn']}\n errorMessage={getErrorMessage(i18n, errors.abn, i18n.get('ABN'))}\n name={'ABN'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'abn'}\n value={data.abn}\n onInput={handleChangeFor('abn', 'input')}\n onBlur={handleChangeFor('abn', 'blur')}\n placeholder={placeholders?.abn}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.orgid && (\n <Field\n label={i18n.get('payto.payid.label.orgid')}\n classNameModifiers={['col-60', 'orgid']}\n errorMessage={getErrorMessage(i18n, errors.orgid, i18n.get('payto.payid.label.orgid'))}\n name={'orgid'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'orgid'}\n value={data.orgid}\n onInput={handleChangeFor('orgid', 'input')}\n onBlur={handleChangeFor('orgid', 'blur')}\n placeholder={placeholders?.orgid}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n )}\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","IDENTIFIER_SCHEMA","PayToIdentifierEnum","email","phone","abn","orgid","PayIDInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","form","useFormWithA11y","schema","selectedIdentifier","rules","payIdValidationRules","formatters","phoneFormatters","formHolder","handleChangeFor","triggerValidation","data","errors","valid","isValid","setSchema","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","IdentifierSelector","onSelectedIdentifier","PayToPhone","Field","get","errorMessage","getErrorMessage","dir","name","errorLive","InputEmail","value","onInput","onBlur","placeholder","required","autocomplete","InputText","undefined","PayToNameFields"],"mappings":"q4BAwCA,MAAMA,EAAc,CAAC,qBAAsB,YAAa,YAElDC,EAAoB,CACtB,CAACC,EAAoBC,OAAQ,CAAC,SAC9B,CAACD,EAAoBE,OAAQ,CAAC,cAAe,eAC7C,CAACF,EAAoBG,KAAM,CAAC,OAC5B,CAACH,EAAoBI,OAAQ,CAAC,UAGnB,SAASC,GAAWC,gBAAEA,EAAeC,YAAEA,EAAWC,aAAEA,EAAYC,SAAEA,EAAQC,UAAEA,EAASC,GAAEA,IAClG,MAAMC,KAAEA,GAASC,IAEXC,EAAOC,EAA+B,CACxCC,OAAQlB,EACRS,YAAa,CAAEU,mBAAoBjB,EAAoBE,SAAUK,GACjEW,MAAOC,EACPC,WAAYC,EACZC,WAAY,IAAIX,OAEdY,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,EAAOC,UAAEA,GAAcf,EAGxFgB,EAAU,KAEND,EAAU,IAAI9B,EAAkB0B,EAAKR,uBAAwBnB,KAC9D,CAAC2B,EAAKR,qBAGTa,EAAU,KACNrB,EAAS,CAAEgB,OAAME,QAAOD,SAAQE,aACjC,CAACH,EAAME,EAAOD,EAAQE,IAEzB,MAAMG,EAAWC,EAA4B,CACzCtB,UAAWA,EACXuB,eAAgBT,IAOpB,OAJAM,EAAU,KACNxB,EAAgByB,EAASG,UAC1B,CAAC5B,IAGA6B,EAACC,EAAAA,CAASzB,GAAIA,EAAI0B,mBAAoB,CAAC,sBAAuBC,MAAO,QAASC,YAAa,2BACvFJ,EAACK,EAAAA,CACGH,mBAAoB,CAAC,UACrBI,qBAAsBlB,EAAgB,sBACtCN,mBAAoBQ,EAAKR,qBAE5BQ,EAAKR,qBAAuBjB,EAAoBE,OAASiC,EAACO,EAAAA,CAAW5B,KAAMA,IAG3EW,EAAKR,qBAAuBjB,EAAoBC,OAC7CkC,EAACQ,EAAAA,CACGL,MAAO1B,EAAKgC,IAAI,gBAChBP,mBAAoB,CAAC,SAAU,SAC/BQ,aAAcC,EAAgBlC,EAAMc,EAAOzB,MAAOW,EAAKgC,IAAI,iBAC3DG,IAAK,MACLC,KAAM,QACNpC,KAAMA,EACNqC,WAAW,GAEXd,EAACe,EAAAA,CACGF,KAAM,QACNG,MAAO1B,EAAKxB,MACZmD,QAAS7B,EAAgB,QAAS,SAClC8B,OAAQ9B,EAAgB,QAAS,QACjC+B,YAAa9C,GAAcP,MAC3BsD,UAAU,EACVC,aAAc,WAKzB/B,EAAKR,qBAAuBjB,EAAoBG,KAC7CgC,EAACQ,EAAAA,CACGL,MAAO1B,EAAKgC,IAAI,OAChBP,mBAAoB,CAAC,SAAU,OAC/BQ,aAAcC,EAAgBlC,EAAMc,EAAOvB,IAAKS,EAAKgC,IAAI,QACzDI,KAAM,MACNpC,KAAMA,EACNqC,WAAW,GAEXd,EAACsB,EAAAA,CACGT,KAAM,MACNG,MAAO1B,EAAKtB,IACZiD,QAAS7B,EAAgB,MAAO,SAChC8B,OAAQ9B,EAAgB,MAAO,QAC/B+B,YAAa9C,GAAcL,IAC3BoD,UAAU,EACVC,kBAAcE,KAKzBjC,EAAKR,qBAAuBjB,EAAoBI,OAC7C+B,EAACQ,EAAAA,CACGL,MAAO1B,EAAKgC,IAAI,2BAChBP,mBAAoB,CAAC,SAAU,SAC/BQ,aAAcC,EAAgBlC,EAAMc,EAAOtB,MAAOQ,EAAKgC,IAAI,4BAC3DI,KAAM,QACNpC,KAAMA,EACNqC,WAAW,GAEXd,EAACsB,EAAAA,CACGT,KAAM,QACNG,MAAO1B,EAAKrB,MACZgD,QAAS7B,EAAgB,QAAS,SAClC8B,OAAQ9B,EAAgB,QAAS,QACjC+B,YAAa9C,GAAcJ,MAC3BmD,UAAU,EACVC,kBAAcE,KAK1BvB,EAACwB,EAAAA,CAAgB/C,KAAMA,EAAMa,KAAMA,EAAMF,gBAAiBA,EAAiBG,OAAQA,EAAQlB,aAAcA,IAGrH"}
1
+ {"version":3,"file":"PayIDInput.js","sources":["../../../../../src/components/PayTo/components/PayIDInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport IdentifierSelector, { PayToIdentifierEnum } from './IdentifierSelector';\nimport { useEffect, useMemo, useRef } from 'preact/hooks';\nimport { useFormWithA11y } from '../../../utils/useForm';\nimport PayToPhone from './PayToPhone';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { payIdValidationRules } from './validate';\nimport { getUniqueId } from '../../../utils/idGenerator';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\n\nexport interface PayIdFormData {\n email: string;\n phone: string;\n abn: string;\n orgid: string;\n firstName: string;\n lastName: string;\n phoneNumber?: string;\n phonePrefix?: string;\n selectedIdentifier: PayToIdentifierEnum;\n}\n\nexport interface PayIDInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: PayIdFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['selectedIdentifier', 'firstName', 'lastName'];\n\nconst IDENTIFIER_SCHEMA = {\n [PayToIdentifierEnum.email]: ['email'],\n [PayToIdentifierEnum.phone]: ['phoneNumber', 'phonePrefix'],\n [PayToIdentifierEnum.abn]: ['abn'],\n [PayToIdentifierEnum.orgid]: ['orgid']\n};\n\nexport default function PayIDInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: Readonly<PayIDInputProps>) {\n const { i18n } = useCoreContext();\n\n const instructionId = useMemo(() => getUniqueId('payid-instruction'), []);\n\n const form = useFormWithA11y<PayIdFormData>({\n schema: BASE_SCHEMA,\n defaultData: { selectedIdentifier: PayToIdentifierEnum.phone, ...defaultData },\n rules: payIdValidationRules,\n formatters: phoneFormatters,\n formHolder: `#${id}`\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid, setSchema } = form;\n\n // handle the changes of identifier, each identifier gets its own schema\n useEffect(() => {\n // get the correct schema for each identifier and merge it with the base\n setSchema([...IDENTIFIER_SCHEMA[data.selectedIdentifier], ...BASE_SCHEMA]);\n }, [data.selectedIdentifier]);\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset\n id={id}\n classNameModifiers={['payto__payid_input']}\n label={'PayID'}\n description={'payto.payid.description'}\n // this is needed for the identifier selector to know which element to describe since\n // Select doesn't automatically associate the fieldset description (at least on VoiceOver)\n descriptionId={instructionId}\n >\n <IdentifierSelector\n classNameModifiers={['col-40']}\n onSelectedIdentifier={handleChangeFor('selectedIdentifier')}\n selectedIdentifier={data.selectedIdentifier}\n describedBy={instructionId}\n />\n {data.selectedIdentifier === PayToIdentifierEnum.phone && <PayToPhone form={form} />}\n\n {/* TODO probably worth refactoring this into either re-usable components or builder */}\n {data.selectedIdentifier === PayToIdentifierEnum.email && (\n <Field\n label={i18n.get('shopperEmail')}\n classNameModifiers={['col-60', 'email']}\n errorMessage={getErrorMessage(i18n, errors.email, i18n.get('shopperEmail'))}\n dir={'ltr'}\n name={'email'}\n i18n={i18n}\n errorLive={true}\n >\n <InputEmail\n name={'email'}\n value={data.email}\n onInput={handleChangeFor('email', 'input')}\n onBlur={handleChangeFor('email', 'blur')}\n placeholder={placeholders?.email}\n required={true}\n autocomplete={'email'}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.abn && (\n <Field\n label={i18n.get('ABN')}\n classNameModifiers={['col-60', 'abn']}\n errorMessage={getErrorMessage(i18n, errors.abn, i18n.get('ABN'))}\n name={'ABN'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'abn'}\n value={data.abn}\n onInput={handleChangeFor('abn', 'input')}\n onBlur={handleChangeFor('abn', 'blur')}\n placeholder={placeholders?.abn}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.orgid && (\n <Field\n label={i18n.get('payto.payid.label.orgid')}\n classNameModifiers={['col-60', 'orgid']}\n errorMessage={getErrorMessage(i18n, errors.orgid, i18n.get('payto.payid.label.orgid'))}\n name={'orgid'}\n i18n={i18n}\n errorLive={true}\n >\n <InputText\n name={'orgid'}\n value={data.orgid}\n onInput={handleChangeFor('orgid', 'input')}\n onBlur={handleChangeFor('orgid', 'blur')}\n placeholder={placeholders?.orgid}\n required={true}\n autocomplete={undefined}\n />\n </Field>\n )}\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","IDENTIFIER_SCHEMA","PayToIdentifierEnum","email","phone","abn","orgid","PayIDInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","instructionId","useMemo","getUniqueId","form","useFormWithA11y","schema","selectedIdentifier","rules","payIdValidationRules","formatters","phoneFormatters","formHolder","handleChangeFor","triggerValidation","data","errors","valid","isValid","setSchema","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","descriptionId","IdentifierSelector","onSelectedIdentifier","describedBy","PayToPhone","Field","get","errorMessage","getErrorMessage","dir","name","errorLive","InputEmail","value","onInput","onBlur","placeholder","required","autocomplete","InputText","undefined","PayToNameFields"],"mappings":"88BAyCA,MAAMA,EAAc,CAAC,qBAAsB,YAAa,YAElDC,EAAoB,CACtB,CAACC,EAAoBC,OAAQ,CAAC,SAC9B,CAACD,EAAoBE,OAAQ,CAAC,cAAe,eAC7C,CAACF,EAAoBG,KAAM,CAAC,OAC5B,CAACH,EAAoBI,OAAQ,CAAC,UAGnB,SAASC,GAAWC,gBAAEA,EAAeC,YAAEA,EAAWC,aAAEA,EAAYC,SAAEA,EAAQC,UAAEA,EAASC,GAAEA,IAClG,MAAMC,KAAEA,GAASC,IAEXC,EAAgBC,EAAQ,IAAMC,EAAY,qBAAsB,IAEhEC,EAAOC,EAA+B,CACxCC,OAAQrB,EACRS,YAAa,CAAEa,mBAAoBpB,EAAoBE,SAAUK,GACjEc,MAAOC,EACPC,WAAYC,EACZC,WAAY,IAAId,OAEde,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,EAAOC,UAAEA,GAAcf,EAGxFgB,EAAU,KAEND,EAAU,IAAIjC,EAAkB6B,EAAKR,uBAAwBtB,KAC9D,CAAC8B,EAAKR,qBAGTa,EAAU,KACNxB,EAAS,CAAEmB,OAAME,QAAOD,SAAQE,aACjC,CAACH,EAAME,EAAOD,EAAQE,IAEzB,MAAMG,EAAWC,EAA4B,CACzCzB,UAAWA,EACX0B,eAAgBT,IAOpB,OAJAM,EAAU,KACN3B,EAAgB4B,EAASG,UAC1B,CAAC/B,IAGAgC,EAACC,EAAAA,CACG5B,GAAIA,EACJ6B,mBAAoB,CAAC,sBACrBC,MAAO,QACPC,YAAa,0BAGbC,cAAe7B,GAEfwB,EAACM,EAAAA,CACGJ,mBAAoB,CAAC,UACrBK,qBAAsBnB,EAAgB,sBACtCN,mBAAoBQ,EAAKR,mBACzB0B,YAAahC,IAEhBc,EAAKR,qBAAuBpB,EAAoBE,OAASoC,EAACS,EAAAA,CAAW9B,KAAMA,IAG3EW,EAAKR,qBAAuBpB,EAAoBC,OAC7CqC,EAACU,EAAAA,CACGP,MAAO7B,EAAKqC,IAAI,gBAChBT,mBAAoB,CAAC,SAAU,SAC/BU,aAAcC,EAAgBvC,EAAMiB,EAAO5B,MAAOW,EAAKqC,IAAI,iBAC3DG,IAAK,MACLC,KAAM,QACNzC,KAAMA,EACN0C,WAAW,GAEXhB,EAACiB,EAAAA,CACGF,KAAM,QACNG,MAAO5B,EAAK3B,MACZwD,QAAS/B,EAAgB,QAAS,SAClCgC,OAAQhC,EAAgB,QAAS,QACjCiC,YAAanD,GAAcP,MAC3B2D,UAAU,EACVC,aAAc,WAKzBjC,EAAKR,qBAAuBpB,EAAoBG,KAC7CmC,EAACU,EAAAA,CACGP,MAAO7B,EAAKqC,IAAI,OAChBT,mBAAoB,CAAC,SAAU,OAC/BU,aAAcC,EAAgBvC,EAAMiB,EAAO1B,IAAKS,EAAKqC,IAAI,QACzDI,KAAM,MACNzC,KAAMA,EACN0C,WAAW,GAEXhB,EAACwB,EAAAA,CACGT,KAAM,MACNG,MAAO5B,EAAKzB,IACZsD,QAAS/B,EAAgB,MAAO,SAChCgC,OAAQhC,EAAgB,MAAO,QAC/BiC,YAAanD,GAAcL,IAC3ByD,UAAU,EACVC,kBAAcE,KAKzBnC,EAAKR,qBAAuBpB,EAAoBI,OAC7CkC,EAACU,EAAAA,CACGP,MAAO7B,EAAKqC,IAAI,2BAChBT,mBAAoB,CAAC,SAAU,SAC/BU,aAAcC,EAAgBvC,EAAMiB,EAAOzB,MAAOQ,EAAKqC,IAAI,4BAC3DI,KAAM,QACNzC,KAAMA,EACN0C,WAAW,GAEXhB,EAACwB,EAAAA,CACGT,KAAM,QACNG,MAAO5B,EAAKxB,MACZqD,QAAS/B,EAAgB,QAAS,SAClCgC,OAAQhC,EAAgB,QAAS,QACjCiC,YAAanD,GAAcJ,MAC3BwD,UAAU,EACVC,kBAAcE,KAK1BzB,EAAC0B,EAAAA,CAAgBpD,KAAMA,EAAMgB,KAAMA,EAAMF,gBAAiBA,EAAiBG,OAAQA,EAAQrB,aAAcA,IAGrH"}
@@ -1,2 +1,2 @@
1
- import{isEmpty as e}from"../../../utils/validator-utils.js";import{ERROR_FIELD_REQUIRED as a,ERROR_FIELD_INVALID as r}from"../../../core/Errors/constants.js";const s=/^((\d{9})|(\d{11}))$/,l=/`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/,i=/^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/,o=/^[0-9]{1,29}$/,d=(s,l,i)=>e(s)?(i.errorMessage=a,null):(i.errorMessage=r,l.test(s)),t={validate:e=>d(e,i,t),errorMessage:"abn.invalid",modes:["blur"]},m={validate:e=>d(e,s,m),errorMessage:"abn.invalid",modes:["blur"]},n={validate:e=>d(e,l,n),errorMessage:"orgid.invalid",modes:["blur"]},b={default:{validate:e=>e&&e.length>0,errorMessage:a,modes:["blur"]},email:t,abn:m,orgid:n,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]},phoneNumber:{modes:["blur"],validate:a=>e(a)?null:o.test(a),errorMessage:"mobileNumber.invalid"},phonePrefix:{modes:["blur"],validate:e=>!!e,errorMessage:"mobileNumber.invalid"}},u=/^\d{6}$/,v=/^[ -~]{1,28}$/,g={validate:e=>d(e,u,g),errorMessage:"bsb.invalid",modes:["blur"]},M={validate:e=>d(e,v,M),errorMessage:"bankAccountNumber.invalid",modes:["blur"]},N={bsb:g,bankAccountNumber:M,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]}};export{N as bsbValidationRules,b as payIdValidationRules,d as validationFromRegex};
1
+ import{isEmpty as e}from"../../../utils/validator-utils.js";import{ERROR_FIELD_REQUIRED as r,ERROR_FIELD_INVALID as a}from"../../../core/Errors/constants.js";const s=/^((\d{9})|(\d{11}))$/,l=/`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/,o=/^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/,i=/^[0-9]{1,29}$/,d=(s,l,o)=>e(s)?(o.errorMessage=r,null):(o.errorMessage=a,l.test(s)),t={validate:e=>d(e,o,t),errorMessage:"abn.invalid",modes:["blur"]},n={validate:e=>d(e,s,n),errorMessage:"abn.invalid",modes:["blur"]},m={validate:e=>d(e,l,m),errorMessage:"orgid.invalid",modes:["blur"]},u={default:{validate:e=>e&&e.length>0,errorMessage:r,modes:["blur"]},email:t,abn:n,orgid:m,firstName:{validate:r=>!e(r)||null,errorMessage:"payto.errors.accountHolderFirstName.invalid",modes:["blur"]},lastName:{validate:r=>!e(r)||null,errorMessage:"payto.errors.accountHolderLastName.invalid",modes:["blur"]},phoneNumber:{modes:["blur"],validate:r=>e(r)?null:i.test(r),errorMessage:"mobileNumber.invalid"},phonePrefix:{modes:["blur"],validate:e=>!!e,errorMessage:"mobileNumber.invalid"}},b=/^\d{6}$/,v=/^[ -~]{1,28}$/,g={validate:e=>d(e,b,g),errorMessage:"bsb.invalid",modes:["blur"]},c={validate:e=>d(e,v,c),errorMessage:"bankAccountNumber.invalid",modes:["blur"]},M={bsb:g,bankAccountNumber:c,firstName:{validate:r=>!e(r)||null,errorMessage:"payto.errors.accountHolderFirstName.invalid",modes:["blur"]},lastName:{validate:r=>!e(r)||null,errorMessage:"payto.errors.accountHolderLastName.invalid",modes:["blur"]}};export{M as bsbValidationRules,u as payIdValidationRules,d as validationFromRegex};
2
2
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sources":["../../../../../src/components/PayTo/components/validate.ts"],"sourcesContent":["import { ValidatorRule, ValidatorRules } from '../../../utils/Validator/types';\nimport { isEmpty } from '../../../utils/validator-utils';\nimport { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../../../core/Errors/constants';\n\nconst abnRegex = /^((\\d{9})|(\\d{11}))$/;\n\nconst orgidRegex = /`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/;\n\nconst emailRegex =\n /^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/;\n\n// Full phone number regex with country code: ^+\\[0-9\\]{1,3}-\\[1-9\\]{1,1}\\[0-9\\]{1,29}$\nconst phoneNumberRegexWithoutCountryCode = /^[0-9]{1,29}$/;\n\nexport const validationFromRegex = (value: string, regex: RegExp, validationRule: ValidatorRule): boolean | null => {\n // null is returned here for legacy reasons\n // check comment on hasError() ValidatorRulesResult.ts:17\n if (isEmpty(value)) {\n validationRule.errorMessage = ERROR_FIELD_REQUIRED;\n return null;\n }\n validationRule.errorMessage = ERROR_FIELD_INVALID;\n return regex.test(value);\n};\n\nconst emailValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, emailRegex, emailValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst abnValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, abnRegex, abnValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst orgidValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, orgidRegex, orgidValidatorRule),\n errorMessage: 'orgid.invalid',\n modes: ['blur']\n};\n\nexport const payIdValidationRules: ValidatorRules = {\n default: {\n validate: value => {\n return value && value.length > 0;\n },\n errorMessage: ERROR_FIELD_REQUIRED,\n modes: ['blur']\n },\n email: emailValidatorRule,\n abn: abnValidatorRule,\n orgid: orgidValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n },\n phoneNumber: {\n modes: ['blur'],\n validate: value => {\n return isEmpty(value) ? null : phoneNumberRegexWithoutCountryCode.test(value);\n },\n errorMessage: 'mobileNumber.invalid'\n },\n phonePrefix: {\n modes: ['blur'],\n validate: phonePrefix => !!phonePrefix,\n errorMessage: 'mobileNumber.invalid'\n }\n};\n\n//original regex /^\\d{6}-[ -~]{1,28}$/\nconst bsbRegex = /^\\d{6}$/;\nconst bankAccountNumberRegex = /^[ -~]{1,28}$/;\n\nconst bsbValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bsbRegex, bsbValidatorRule),\n errorMessage: 'bsb.invalid',\n modes: ['blur']\n};\n\nconst bankAccountNumberValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bankAccountNumberRegex, bankAccountNumberValidatorRule),\n errorMessage: 'bankAccountNumber.invalid',\n modes: ['blur']\n};\n\nexport const bsbValidationRules: ValidatorRules = {\n bsb: bsbValidatorRule,\n bankAccountNumber: bankAccountNumberValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n }\n};\n"],"names":["abnRegex","orgidRegex","emailRegex","phoneNumberRegexWithoutCountryCode","validationFromRegex","value","regex","validationRule","isEmpty","errorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","test","emailValidatorRule","validate","modes","abnValidatorRule","orgidValidatorRule","payIdValidationRules","default","length","email","abn","orgid","firstName","lastName","phoneNumber","phonePrefix","bsbRegex","bankAccountNumberRegex","bsbValidatorRule","bankAccountNumberValidatorRule","bsbValidationRules","bsb","bankAccountNumber"],"mappings":"8JAIA,MAAMA,EAAW,uBAEXC,EAAa,sCAEbC,EACF,sKAGEC,EAAqC,gBAE9BC,EAAsB,CAACC,EAAeC,EAAeC,IAG1DC,EAAQH,IACRE,EAAeE,aAAeC,EACvB,OAEXH,EAAeE,aAAeE,EACvBL,EAAMM,KAAKP,IAGhBQ,EAAoC,CACtCC,SAAUT,GAASD,EAAoBC,EAAOH,EAAYW,GAC1DJ,aAAc,cACdM,MAAO,CAAC,SAGNC,EAAkC,CACpCF,SAAUT,GAASD,EAAoBC,EAAOL,EAAUgB,GACxDP,aAAc,cACdM,MAAO,CAAC,SAGNE,EAAoC,CACtCH,SAAUT,GAASD,EAAoBC,EAAOJ,EAAYgB,GAC1DR,aAAc,gBACdM,MAAO,CAAC,SAGCG,EAAuC,CAChDC,QAAS,CACLL,SAAUT,GACCA,GAASA,EAAMe,OAAS,EAEnCX,aAAcC,EACdK,MAAO,CAAC,SAEZM,MAAOR,EACPS,IAAKN,EACLO,MAAON,EACPO,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC,SAEZW,YAAa,CACTX,MAAO,CAAC,QACRD,SAAUT,GACCG,EAAQH,GAAS,KAAOF,EAAmCS,KAAKP,GAE3EI,aAAc,wBAElBkB,YAAa,CACTZ,MAAO,CAAC,QACRD,SAAUa,KAAiBA,EAC3BlB,aAAc,yBAKhBmB,EAAW,UACXC,EAAyB,gBAEzBC,EAAkC,CACpChB,SAAUT,GAASD,EAAoBC,EAAOuB,EAAUE,GACxDrB,aAAc,cACdM,MAAO,CAAC,SAGNgB,EAAgD,CAClDjB,SAAUT,GAASD,EAAoBC,EAAOwB,EAAwBE,GACtEtB,aAAc,4BACdM,MAAO,CAAC,SAGCiB,EAAqC,CAC9CC,IAAKH,EACLI,kBAAmBH,EACnBP,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC"}
1
+ {"version":3,"file":"validate.js","sources":["../../../../../src/components/PayTo/components/validate.ts"],"sourcesContent":["import { ValidatorRule, ValidatorRules } from '../../../utils/Validator/types';\nimport { isEmpty } from '../../../utils/validator-utils';\nimport { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../../../core/Errors/constants';\n\nconst abnRegex = /^((\\d{9})|(\\d{11}))$/;\n\nconst orgidRegex = /`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/;\n\nconst emailRegex =\n /^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/;\n\n// Full phone number regex with country code: ^+\\[0-9\\]{1,3}-\\[1-9\\]{1,1}\\[0-9\\]{1,29}$\nconst phoneNumberRegexWithoutCountryCode = /^[0-9]{1,29}$/;\n\nexport const validationFromRegex = (value: string, regex: RegExp, validationRule: ValidatorRule): boolean | null => {\n // null is returned here for legacy reasons\n // check comment on hasError() ValidatorRulesResult.ts:17\n if (isEmpty(value)) {\n validationRule.errorMessage = ERROR_FIELD_REQUIRED;\n return null;\n }\n validationRule.errorMessage = ERROR_FIELD_INVALID;\n return regex.test(value);\n};\n\nconst emailValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, emailRegex, emailValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst abnValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, abnRegex, abnValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst orgidValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, orgidRegex, orgidValidatorRule),\n errorMessage: 'orgid.invalid',\n modes: ['blur']\n};\n\nexport const payIdValidationRules: ValidatorRules = {\n default: {\n validate: value => {\n return value && value.length > 0;\n },\n errorMessage: ERROR_FIELD_REQUIRED,\n modes: ['blur']\n },\n email: emailValidatorRule,\n abn: abnValidatorRule,\n orgid: orgidValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'payto.errors.accountHolderFirstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'payto.errors.accountHolderLastName.invalid',\n modes: ['blur']\n },\n phoneNumber: {\n modes: ['blur'],\n validate: value => {\n return isEmpty(value) ? null : phoneNumberRegexWithoutCountryCode.test(value);\n },\n errorMessage: 'mobileNumber.invalid'\n },\n phonePrefix: {\n modes: ['blur'],\n validate: phonePrefix => !!phonePrefix,\n errorMessage: 'mobileNumber.invalid'\n }\n};\n\n//original regex /^\\d{6}-[ -~]{1,28}$/\nconst bsbRegex = /^\\d{6}$/;\nconst bankAccountNumberRegex = /^[ -~]{1,28}$/;\n\nconst bsbValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bsbRegex, bsbValidatorRule),\n errorMessage: 'bsb.invalid',\n modes: ['blur']\n};\n\nconst bankAccountNumberValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bankAccountNumberRegex, bankAccountNumberValidatorRule),\n errorMessage: 'bankAccountNumber.invalid',\n modes: ['blur']\n};\n\nexport const bsbValidationRules: ValidatorRules = {\n bsb: bsbValidatorRule,\n bankAccountNumber: bankAccountNumberValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'payto.errors.accountHolderFirstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'payto.errors.accountHolderLastName.invalid',\n modes: ['blur']\n }\n};\n"],"names":["abnRegex","orgidRegex","emailRegex","phoneNumberRegexWithoutCountryCode","validationFromRegex","value","regex","validationRule","isEmpty","errorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","test","emailValidatorRule","validate","modes","abnValidatorRule","orgidValidatorRule","payIdValidationRules","default","length","email","abn","orgid","firstName","lastName","phoneNumber","phonePrefix","bsbRegex","bankAccountNumberRegex","bsbValidatorRule","bankAccountNumberValidatorRule","bsbValidationRules","bsb","bankAccountNumber"],"mappings":"8JAIA,MAAMA,EAAW,uBAEXC,EAAa,sCAEbC,EACF,sKAGEC,EAAqC,gBAE9BC,EAAsB,CAACC,EAAeC,EAAeC,IAG1DC,EAAQH,IACRE,EAAeE,aAAeC,EACvB,OAEXH,EAAeE,aAAeE,EACvBL,EAAMM,KAAKP,IAGhBQ,EAAoC,CACtCC,SAAUT,GAASD,EAAoBC,EAAOH,EAAYW,GAC1DJ,aAAc,cACdM,MAAO,CAAC,SAGNC,EAAkC,CACpCF,SAAUT,GAASD,EAAoBC,EAAOL,EAAUgB,GACxDP,aAAc,cACdM,MAAO,CAAC,SAGNE,EAAoC,CACtCH,SAAUT,GAASD,EAAoBC,EAAOJ,EAAYgB,GAC1DR,aAAc,gBACdM,MAAO,CAAC,SAGCG,EAAuC,CAChDC,QAAS,CACLL,SAAUT,GACCA,GAASA,EAAMe,OAAS,EAEnCX,aAAcC,EACdK,MAAO,CAAC,SAEZM,MAAOR,EACPS,IAAKN,EACLO,MAAON,EACPO,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,8CACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,6CACdM,MAAO,CAAC,SAEZW,YAAa,CACTX,MAAO,CAAC,QACRD,SAAUT,GACCG,EAAQH,GAAS,KAAOF,EAAmCS,KAAKP,GAE3EI,aAAc,wBAElBkB,YAAa,CACTZ,MAAO,CAAC,QACRD,SAAUa,KAAiBA,EAC3BlB,aAAc,yBAKhBmB,EAAW,UACXC,EAAyB,gBAEzBC,EAAkC,CACpChB,SAAUT,GAASD,EAAoBC,EAAOuB,EAAUE,GACxDrB,aAAc,cACdM,MAAO,CAAC,SAGNgB,EAAgD,CAClDjB,SAAUT,GAASD,EAAoBC,EAAOwB,EAAwBE,GACtEtB,aAAc,4BACdM,MAAO,CAAC,SAGCiB,EAAqC,CAC9CC,IAAKH,EACLI,kBAAmBH,EACnBP,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,8CACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,6CACdM,MAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR } from './constants';\nimport { existy } from '../../utils/commonUtils';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport { TxVariants } from '../tx-variants';\nimport { ChallengeResolveData, LegacyChallengeResolveData, ThreeDS2ChallengeConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2Challenge extends UIElement<ThreeDS2ChallengeConfiguration> {\n public static readonly type = TxVariants.threeDS2Challenge;\n\n public static readonly defaultProps = {\n dataKey: 'threeDSResult',\n size: DEFAULT_CHALLENGE_WINDOW_SIZE,\n type: THREEDS2_CHALLENGE\n };\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2Challenge - it will have the same timestamp as the \"creq sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.challengeIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n /**\n * Will make a call to onAdditionalDetails (as set in actionTypes.ts) for the regular, \"native\" flow.\n * However, if the action to create this component came from the 3DS2InMDFlow process it will instead equal a call to the onComplete callback\n * (as defined in the 3DS2InMDFlow and passed in as a config prop).\n */\n onComplete(state: LegacyChallengeResolveData | ChallengeResolveData) {\n if (this.props.isMDFlow) {\n this.props.on3DS2RedirectFlowComplete?.(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back challenge calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n // existy used because threeds2InMDFlow might send an empty string for paymentData and we should be allowed to proceed with this\n if (!existy(this.props.paymentData)) {\n /**\n * The presence of props.isMDFlow indicates the action to create this component came from the threeds2InMDFlow process which passes (an empty) paymentsData.\n * The regular, \"native\" flow uses the authorisationToken from the 3DS2 action, which actionTypes.ts assigns to a property called paymentData\n */\n const dataTypeForError = hasOwnProperty(this.props, 'isMDFlow') ? 'paymentData' : 'authorisationToken';\n\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No ${dataTypeForError} received. 3DS2 Challenge cannot proceed`));\n\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_CHALLENGE_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n return (\n <PrepareChallenge\n {...this.props}\n onComplete={this.onComplete}\n onSubmitAnalytics={this.submitAnalytics}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2Challenge;\n"],"names":["ThreeDS2Challenge","UIElement","beforeRender","onComplete","state","this","props","isMDFlow","on3DS2RedirectFlowComplete","elementRef","super","unmount","componentToRender","existy","paymentData","dataTypeForError","hasOwnProperty","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_CHALLENGE_ERROR","submitAnalytics","h","PrepareChallenge","onSubmitAnalytics","onActionHandled","args","_define_property","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","challengeIframeLoaded","actionDescription","TxVariants","threeDS2Challenge","defaultProps","dataKey","size","DEFAULT_CHALLENGE_WINDOW_SIZE","THREEDS2_CHALLENGE"],"mappings":"q5BAaA,MAAMA,UAA0BC,EASTC,YAAAA,GAEnB,CAoBAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMC,SACXF,KAAKC,MAAME,6BAA6BJ,EAAOC,KAAKI,YAEpDC,MAAMP,WAAWC,GAGrBC,KAAKM,SACT,CAEmBC,iBAAAA,GAEf,IAAKC,EAAOR,KAAKC,MAAMQ,aAAc,CAKjC,MAAMC,EAAmBC,EAAeX,KAAKC,MAAO,YAAc,cAAgB,qBAElFD,KAAKC,MAAMW,QAAQ,IAAIC,EAAmBC,EAAW,MAAMJ,8CAE3D,MAAMK,EAAQ,IAAIC,EAAoB,CAClCC,UAAWjB,KAAKkB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFA1B,KAAK2B,gBAAgBZ,GAEd,IACX,CAEA,OACIa,EAACC,EAAAA,IACO7B,KAAKC,MACTH,WAAYE,KAAKF,WACjBgC,kBAAmB9B,KAAK2B,gBACxBI,gBAAiB/B,KAAK+B,iBAGlC,mBAxEJ1B,SAAA2B,GAaIC,EAAAjC,KAAU+B,kBAAmBG,IACzB,MAAMnB,EAAQ,IAAIoB,EAAkB,CAChClB,UAAWjB,KAAKkB,KAChBA,KAAMkB,EAAaZ,SACnBa,QAASC,EAAgBC,sBACzBd,QAASS,EAAOM,oBAGpBxC,KAAK2B,gBAAgBZ,GAErBV,MAAM0B,gBAAgBG,MAtB1BD,EADEtC,EACqBuB,OAAOuB,EAAWC,mBAEzCT,EAHEtC,EAGqBgD,eAAe,CAClCC,QAAS,gBACTC,KAAMC,EACN5B,KAAM6B"}
1
+ {"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR } from './constants';\nimport { existy } from '../../utils/commonUtils';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport { TxVariants } from '../tx-variants';\nimport { ChallengeResolveData, ThreeDS2ChallengeConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2Challenge extends UIElement<ThreeDS2ChallengeConfiguration> {\n public static readonly type = TxVariants.threeDS2Challenge;\n\n public static readonly defaultProps = {\n dataKey: 'threeDSResult',\n size: DEFAULT_CHALLENGE_WINDOW_SIZE,\n type: THREEDS2_CHALLENGE\n };\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2Challenge - it will have the same timestamp as the \"creq sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.challengeIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n /**\n * Will make a call to onAdditionalDetails (as set in actionTypes.ts) for the regular, \"native\" flow.\n * However, if the action to create this component came from the 3DS2InMDFlow process it will instead equal a call to the onComplete callback\n * (as defined in the 3DS2InMDFlow and passed in as a config prop).\n */\n onComplete(state: ChallengeResolveData) {\n if (this.props.isMDFlow) {\n this.props.on3DS2RedirectFlowComplete?.(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back challenge calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n // existy used because threeds2InMDFlow might send an empty string for paymentData and we should be allowed to proceed with this\n if (!existy(this.props.paymentData)) {\n /**\n * The presence of props.isMDFlow indicates the action to create this component came from the threeds2InMDFlow process which passes (an empty) paymentsData.\n * The regular, \"native\" flow uses the authorisationToken from the 3DS2 action, which actionTypes.ts assigns to a property called paymentData\n */\n const dataTypeForError = hasOwnProperty(this.props, 'isMDFlow') ? 'paymentData' : 'authorisationToken';\n\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No ${dataTypeForError} received. 3DS2 Challenge cannot proceed`));\n\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_CHALLENGE_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n return (\n <PrepareChallenge\n {...this.props}\n onComplete={this.onComplete}\n onSubmitAnalytics={this.submitAnalytics}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2Challenge;\n"],"names":["ThreeDS2Challenge","UIElement","beforeRender","onComplete","state","this","props","isMDFlow","on3DS2RedirectFlowComplete","elementRef","super","unmount","componentToRender","existy","paymentData","dataTypeForError","hasOwnProperty","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_CHALLENGE_ERROR","submitAnalytics","h","PrepareChallenge","onSubmitAnalytics","onActionHandled","args","_define_property","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","challengeIframeLoaded","actionDescription","TxVariants","threeDS2Challenge","defaultProps","dataKey","size","DEFAULT_CHALLENGE_WINDOW_SIZE","THREEDS2_CHALLENGE"],"mappings":"q5BAaA,MAAMA,UAA0BC,EASTC,YAAAA,GAEnB,CAoBAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMC,SACXF,KAAKC,MAAME,6BAA6BJ,EAAOC,KAAKI,YAEpDC,MAAMP,WAAWC,GAGrBC,KAAKM,SACT,CAEmBC,iBAAAA,GAEf,IAAKC,EAAOR,KAAKC,MAAMQ,aAAc,CAKjC,MAAMC,EAAmBC,EAAeX,KAAKC,MAAO,YAAc,cAAgB,qBAElFD,KAAKC,MAAMW,QAAQ,IAAIC,EAAmBC,EAAW,MAAMJ,8CAE3D,MAAMK,EAAQ,IAAIC,EAAoB,CAClCC,UAAWjB,KAAKkB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFA1B,KAAK2B,gBAAgBZ,GAEd,IACX,CAEA,OACIa,EAACC,EAAAA,IACO7B,KAAKC,MACTH,WAAYE,KAAKF,WACjBgC,kBAAmB9B,KAAK2B,gBACxBI,gBAAiB/B,KAAK+B,iBAGlC,mBAxEJ1B,SAAA2B,GAaIC,EAAAjC,KAAU+B,kBAAmBG,IACzB,MAAMnB,EAAQ,IAAIoB,EAAkB,CAChClB,UAAWjB,KAAKkB,KAChBA,KAAMkB,EAAaZ,SACnBa,QAASC,EAAgBC,sBACzBd,QAASS,EAAOM,oBAGpBxC,KAAK2B,gBAAgBZ,GAErBV,MAAM0B,gBAAgBG,MAtB1BD,EADEtC,EACqBuB,OAAOuB,EAAWC,mBAEzCT,EAHEtC,EAGqBgD,eAAe,CAClCC,QAAS,gBACTC,KAAMC,EACN5B,KAAM6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { FingerprintResolveData, LegacyFingerprintResolveData, ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './constants';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static readonly type = TxVariants.threeDS2Fingerprint;\n\n public static readonly defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2DeviceFingerprint - it will have the same timestamp as the \"threeDSMethodData sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.fingerprintIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n /**\n * Can be called directly from PrepareFingerprint (MDFlow) or after the call to /submitThreeDS2Fingerprint endpoint (native flow)\n */\n onComplete(state: LegacyFingerprintResolveData | FingerprintResolveData) {\n if (this.props.isMDFlow) {\n this.props.on3DS2RedirectFlowComplete?.(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates the action to create this component came from the 3DS2InMDFlow process and upon completion should call the\n * passed onComplete callback (as defined in the 3DS2InMDFlow) instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow\n */\n return (\n <PrepareFingerprint\n {...this.props}\n // For MDFlow will bypass the /submitThreeDS2Fingerprint endpoint\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","beforeRender","onComplete","state","this","props","isMDFlow","on3DS2RedirectFlowComplete","elementRef","super","unmount","componentToRender","existy","paymentData","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_FINGERPRINT_ERROR","submitAnalytics","h","PrepareFingerprint","callSubmit3DS2Fingerprint","onSubmitAnalytics","onActionHandled","args","_define_property","bind","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","fingerprintIframeLoaded","actionDescription","TxVariants","threeDS2Fingerprint","defaultProps","dataKey","THREEDS2_FINGERPRINT"],"mappings":"+2BAaA,MAAMA,UAAkCC,EAUjBC,YAAAA,GAEnB,CAkBAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMC,SACXF,KAAKC,MAAME,6BAA6BJ,EAAOC,KAAKI,YAEpDC,MAAMP,WAAWC,GAGrBC,KAAKM,SACT,CAEmBC,iBAAAA,GAKf,IAAKC,EAAOR,KAAKC,MAAMQ,aAAc,CACjCT,KAAKC,MAAMS,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrD,MAAMC,EAAQ,IAAIC,EAAoB,CAClCC,UAAWf,KAAKgB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAxB,KAAKyB,gBAAgBZ,GAEd,IACX,CAMA,OACIa,EAACC,EAAAA,IACO3B,KAAKC,MAETH,WAAYE,KAAKC,MAAMC,SAAWF,KAAKF,WAAaE,KAAK4B,0BACzDC,kBAAmB7B,KAAKyB,gBACxBK,gBAAiB9B,KAAK8B,iBAGlC,mBA1EJzB,SAAA0B,GAQIC,OAAQJ,4BAA4BA,EAA0BK,KAAKjC,OAMnEgC,EAAAhC,KAAU8B,kBAAmBI,IACzB,MAAMrB,EAAQ,IAAIsB,EAAkB,CAChCpB,UAAWf,KAAKgB,KAChBA,KAAMoB,EAAad,SACnBe,QAASC,EAAgBC,wBACzBhB,QAASW,EAAOM,oBAGpBxC,KAAKyB,gBAAgBZ,GAErBR,MAAMyB,gBAAgBI,MAvB1BF,EADErC,EACqBqB,OAAOyB,EAAWC,qBAEzCV,EAHErC,EAGqBgD,eAAe,CAClCC,QAAS,oBACT5B,KAAM6B"}
1
+ {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { FingerprintResolveData, ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './constants';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static readonly type = TxVariants.threeDS2Fingerprint;\n\n public static readonly defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2DeviceFingerprint - it will have the same timestamp as the \"threeDSMethodData sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.fingerprintIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n /**\n * Can be called directly from PrepareFingerprint (MDFlow) or after the call to /submitThreeDS2Fingerprint endpoint (native flow)\n */\n onComplete(state: FingerprintResolveData) {\n if (this.props.isMDFlow) {\n this.props.on3DS2RedirectFlowComplete?.(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates the action to create this component came from the 3DS2InMDFlow process and upon completion should call the\n * passed onComplete callback (as defined in the 3DS2InMDFlow) instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow\n */\n return (\n <PrepareFingerprint\n {...this.props}\n // For MDFlow will bypass the /submitThreeDS2Fingerprint endpoint\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","beforeRender","onComplete","state","this","props","isMDFlow","on3DS2RedirectFlowComplete","elementRef","super","unmount","componentToRender","existy","paymentData","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_FINGERPRINT_ERROR","submitAnalytics","h","PrepareFingerprint","callSubmit3DS2Fingerprint","onSubmitAnalytics","onActionHandled","args","_define_property","bind","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","fingerprintIframeLoaded","actionDescription","TxVariants","threeDS2Fingerprint","defaultProps","dataKey","THREEDS2_FINGERPRINT"],"mappings":"+2BAaA,MAAMA,UAAkCC,EAUjBC,YAAAA,GAEnB,CAkBAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMC,SACXF,KAAKC,MAAME,6BAA6BJ,EAAOC,KAAKI,YAEpDC,MAAMP,WAAWC,GAGrBC,KAAKM,SACT,CAEmBC,iBAAAA,GAKf,IAAKC,EAAOR,KAAKC,MAAMQ,aAAc,CACjCT,KAAKC,MAAMS,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrD,MAAMC,EAAQ,IAAIC,EAAoB,CAClCC,UAAWf,KAAKgB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAxB,KAAKyB,gBAAgBZ,GAEd,IACX,CAMA,OACIa,EAACC,EAAAA,IACO3B,KAAKC,MAETH,WAAYE,KAAKC,MAAMC,SAAWF,KAAKF,WAAaE,KAAK4B,0BACzDC,kBAAmB7B,KAAKyB,gBACxBK,gBAAiB9B,KAAK8B,iBAGlC,mBA1EJzB,SAAA0B,GAQIC,OAAQJ,4BAA4BA,EAA0BK,KAAKjC,OAMnEgC,EAAAhC,KAAU8B,kBAAmBI,IACzB,MAAMrB,EAAQ,IAAIsB,EAAkB,CAChCpB,UAAWf,KAAKgB,KAChBA,KAAMoB,EAAad,SACnBe,QAASC,EAAgBC,wBACzBhB,QAASW,EAAOM,oBAGpBxC,KAAKyB,gBAAgBZ,GAErBR,MAAMyB,gBAAgBI,MAvB1BF,EADErC,EACqBqB,OAAOyB,EAAWC,qBAEzCV,EAHErC,EAGqBgD,eAAe,CAClCC,QAAS,oBACT5B,KAAM6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DoChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/DoChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Iframe from '../../../internal/IFrame';\nimport Spinner from '../../../internal/Spinner';\nimport ThreeDS2Form from '../Form';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { encodeBase64URL } from '../utils';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { CHALLENGE_TIMEOUT, CHALLENGE_TIMEOUT_REJECT_OBJECT, THREEDS2_NUM } from '../../constants';\nimport { DoChallenge3DS2Props, DoChallenge3DS2State } from './types';\nimport { ThreeDS2FlowObject } from '../../types';\n\nconst iframeName = 'threeDSIframe';\n\nclass DoChallenge3DS2 extends Component<DoChallenge3DS2Props, DoChallenge3DS2State> {\n private processMessageHandler;\n private challengePromise: { cancel: () => void; promise: Promise<any> };\n\n constructor(props) {\n super(props);\n\n /**\n * Create and Base64Url encode a JSON object containing the serverTransactionID & threeDSMethodNotificationURL\n */\n const jsonStr = JSON.stringify(this.props.cReqData);\n const base64URLencodedData = encodeBase64URL(jsonStr);\n this.state = { base64URLencodedData, status: 'init' };\n }\n\n private iframeCallback = () => {\n this.setState({ status: 'iframeLoaded' });\n // On Test - actually calls-back 3 times: once for challenge screen, once again as challenge.html reloads after the challenge is submitted, and once for redirect to threeDSNotificationURL.\n // But for the purposes of calling the merchant defined onActionHandled callback - we only want to do it once\n if (this.state.status === 'init') {\n this.props.onActionHandled?.({ componentType: '3DS2Challenge', actionDescription: `${THREEDS2_NUM} challenge iframe loaded` });\n }\n };\n\n private get3DS2ChallengePromise(): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.props.postMessageDomain, resolve, reject, 'challengeResult');\n\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Render challenge\n this.challengePromise = promiseTimeout(CHALLENGE_TIMEOUT, this.get3DS2ChallengePromise(), CHALLENGE_TIMEOUT_REJECT_OBJECT);\n this.challengePromise.promise\n .then((resolveObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onCompleteChallenge(resolveObject);\n })\n /** Catch, for when Challenge times-out */\n .catch((rejectObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onErrorChallenge(rejectObject);\n });\n }\n\n componentWillUnmount() {\n if (this.challengePromise) this.challengePromise.cancel();\n window.removeEventListener('message', this.processMessageHandler);\n }\n\n render({ acsURL, cReqData, iframeSizeArr, onFormSubmit }, { base64URLencodedData, status }) {\n const [width, height] = iframeSizeArr;\n\n return (\n <div\n className={classNames([\n 'adyen-checkout__threeds2__challenge',\n `adyen-checkout__threeds2__challenge--${cReqData.challengeWindowSize}`\n ])}\n >\n {status !== 'iframeLoaded' && <Spinner />}\n\n <Iframe name={iframeName} width={width} height={height} callback={this.iframeCallback} />\n <ThreeDS2Form\n name={'cReqForm'}\n action={acsURL}\n target={iframeName}\n inputName={'creq'}\n inputValue={base64URLencodedData}\n onFormSubmit={onFormSubmit}\n />\n </div>\n );\n }\n}\n\nexport default DoChallenge3DS2;\n"],"names":["iframeName","DoChallenge3DS2","Component","get3DS2ChallengePromise","Promise","resolve","reject","this","processMessageHandler","getProcessMessageHandler","props","postMessageDomain","window","addEventListener","componentDidMount","challengePromise","promiseTimeout","CHALLENGE_TIMEOUT","CHALLENGE_TIMEOUT_REJECT_OBJECT","promise","then","resolveObject","removeEventListener","onCompleteChallenge","catch","rejectObject","onErrorChallenge","componentWillUnmount","cancel","render","acsURL","cReqData","iframeSizeArr","onFormSubmit","base64URLencodedData","status","width","height","h","div","className","classNames","challengeWindowSize","Spinner","Iframe","name","callback","iframeCallback","ThreeDS2Form","action","target","inputName","inputValue","constructor","super","_define_property","setState","state","onActionHandled","componentType","actionDescription","THREEDS2_NUM","jsonStr","JSON","stringify","encodeBase64URL"],"mappings":"2pBAYA,MAAMA,EAAa,gBAEnB,MAAMC,UAAwBC,EAwBlBC,uBAAAA,GACJ,OAAO,IAAIC,QAAQ,CAACC,EAASC,KAIzBC,KAAKC,sBAAwBC,EAAyBF,KAAKG,MAAMC,kBAAmBN,EAASC,EAAQ,mBAErGM,OAAOC,iBAAiB,UAAWN,KAAKC,wBAEhD,CAEAM,iBAAAA,GAEIP,KAAKQ,iBAAmBC,EAAeC,EAAmBV,KAAKJ,0BAA2Be,GAC1FX,KAAKQ,iBAAiBI,QACjBC,KAAMC,IACHT,OAAOU,oBAAoB,UAAWf,KAAKC,uBAC3CD,KAAKG,MAAMa,oBAAoBF,KAGlCG,MAAOC,IACJb,OAAOU,oBAAoB,UAAWf,KAAKC,uBAC3CD,KAAKG,MAAMgB,iBAAiBD,IAExC,CAEAE,oBAAAA,GACQpB,KAAKQ,kBAAkBR,KAAKQ,iBAAiBa,SACjDhB,OAAOU,oBAAoB,UAAWf,KAAKC,sBAC/C,CAEAqB,MAAAA,EAAOC,OAAEA,EAAMC,SAAEA,EAAQC,cAAEA,EAAaC,aAAEA,IAAgBC,qBAAEA,EAAoBC,OAAEA,IAC9E,MAAOC,EAAOC,GAAUL,EAExB,OACIM,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,sCACA,wCAAwCV,EAASW,yBAGzC,iBAAXP,GAA6BG,EAACK,EAAAA,MAE/BL,EAACM,EAAAA,CAAOC,KAAM7C,EAAYoC,MAAOA,EAAOC,OAAQA,EAAQS,SAAUvC,KAAKwC,iBACvET,EAACU,EAAAA,CACGH,KAAM,WACNI,OAAQnB,EACRoB,OAAQlD,EACRmD,UAAW,OACXC,WAAYlB,EACZD,aAAcA,IAI9B,CA1EA,WAAAoB,CAAY3C,GACR4C,MAAM5C,GAJV6C,EAAAhD,KAAQC,6BAAR,GACA+C,EAAAhD,KAAQQ,wBAAR,GAaAwC,EAAAhD,KAAQwC,iBAAiB,KACrBxC,KAAKiD,SAAS,CAAErB,OAAQ,iBAGE,SAAtB5B,KAAKkD,MAAMtB,QACX5B,KAAKG,MAAMgD,kBAAkB,CAAEC,cAAe,gBAAiBC,kBAAmB,GAAGC,gCAVzF,MAAMC,EAAUC,KAAKC,UAAUzD,KAAKG,MAAMqB,UACpCG,EAAuB+B,EAAgBH,GAC7CvD,KAAKkD,MAAQ,CAAEvB,uBAAsBC,OAAQ,OACjD"}
1
+ {"version":3,"file":"DoChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/DoChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Iframe from '../../../internal/IFrame';\nimport Spinner from '../../../internal/Spinner';\nimport ThreeDS2Form from '../Form';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { encodeBase64URL } from '../utils';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { CHALLENGE_TIMEOUT, CHALLENGE_TIMEOUT_REJECT_OBJECT, THREEDS2_NUM } from '../../constants';\nimport { DoChallenge3DS2Props, DoChallenge3DS2State } from './types';\nimport { ThreeDS2FlowObject } from '../../types';\n\nconst iframeName = 'threeDSIframe';\n\nclass DoChallenge3DS2 extends Component<DoChallenge3DS2Props, DoChallenge3DS2State> {\n private processMessageHandler: (event: Pick<MessageEvent, 'origin' | 'data'>) => string | boolean;\n private challengePromise: { promise: Promise<ThreeDS2FlowObject>; cancel: () => void };\n\n constructor(props: DoChallenge3DS2Props) {\n super(props);\n\n /**\n * Create and Base64Url encode a JSON object containing the serverTransactionID & threeDSMethodNotificationURL\n */\n const jsonStr = JSON.stringify(this.props.cReqData);\n const base64URLencodedData = encodeBase64URL(jsonStr);\n this.state = { base64URLencodedData, status: 'init' };\n }\n\n private iframeCallback = () => {\n this.setState({ status: 'iframeLoaded' });\n // On Test - actually calls-back 3 times: once for challenge screen, once again as challenge.html reloads after the challenge is submitted, and once for redirect to threeDSNotificationURL.\n // But for the purposes of calling the merchant defined onActionHandled callback - we only want to do it once\n if (this.state.status === 'init') {\n this.props.onActionHandled?.({ componentType: '3DS2Challenge', actionDescription: `${THREEDS2_NUM} challenge iframe loaded` });\n }\n };\n\n private get3DS2ChallengePromise(): Promise<ThreeDS2FlowObject> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.props.postMessageDomain, resolve, reject, 'challengeResult');\n\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Render challenge\n this.challengePromise = promiseTimeout(CHALLENGE_TIMEOUT, this.get3DS2ChallengePromise(), CHALLENGE_TIMEOUT_REJECT_OBJECT);\n this.challengePromise.promise\n .then((resolveObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onCompleteChallenge(resolveObject);\n })\n /** Catch, for when Challenge times-out */\n .catch((rejectObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onErrorChallenge(rejectObject);\n });\n }\n\n componentWillUnmount() {\n if (this.challengePromise) this.challengePromise.cancel();\n window.removeEventListener('message', this.processMessageHandler);\n }\n\n render({ acsURL, cReqData, iframeSizeArr, onFormSubmit }, { base64URLencodedData, status }) {\n const [width, height] = iframeSizeArr;\n\n return (\n <div\n className={classNames([\n 'adyen-checkout__threeds2__challenge',\n `adyen-checkout__threeds2__challenge--${cReqData.challengeWindowSize}`\n ])}\n >\n {status !== 'iframeLoaded' && <Spinner />}\n\n <Iframe name={iframeName} width={width} height={height} callback={this.iframeCallback} />\n <ThreeDS2Form\n name={'cReqForm'}\n action={acsURL}\n target={iframeName}\n inputName={'creq'}\n inputValue={base64URLencodedData}\n onFormSubmit={onFormSubmit}\n />\n </div>\n );\n }\n}\n\nexport default DoChallenge3DS2;\n"],"names":["iframeName","DoChallenge3DS2","Component","get3DS2ChallengePromise","Promise","resolve","reject","this","processMessageHandler","getProcessMessageHandler","props","postMessageDomain","window","addEventListener","componentDidMount","challengePromise","promiseTimeout","CHALLENGE_TIMEOUT","CHALLENGE_TIMEOUT_REJECT_OBJECT","promise","then","resolveObject","removeEventListener","onCompleteChallenge","catch","rejectObject","onErrorChallenge","componentWillUnmount","cancel","render","acsURL","cReqData","iframeSizeArr","onFormSubmit","base64URLencodedData","status","width","height","h","div","className","classNames","challengeWindowSize","Spinner","Iframe","name","callback","iframeCallback","ThreeDS2Form","action","target","inputName","inputValue","constructor","super","_define_property","setState","state","onActionHandled","componentType","actionDescription","THREEDS2_NUM","jsonStr","JSON","stringify","encodeBase64URL"],"mappings":"2pBAYA,MAAMA,EAAa,gBAEnB,MAAMC,UAAwBC,EAwBlBC,uBAAAA,GACJ,OAAO,IAAIC,QAAQ,CAACC,EAASC,KAIzBC,KAAKC,sBAAwBC,EAAyBF,KAAKG,MAAMC,kBAAmBN,EAASC,EAAQ,mBAErGM,OAAOC,iBAAiB,UAAWN,KAAKC,wBAEhD,CAEAM,iBAAAA,GAEIP,KAAKQ,iBAAmBC,EAAeC,EAAmBV,KAAKJ,0BAA2Be,GAC1FX,KAAKQ,iBAAiBI,QACjBC,KAAMC,IACHT,OAAOU,oBAAoB,UAAWf,KAAKC,uBAC3CD,KAAKG,MAAMa,oBAAoBF,KAGlCG,MAAOC,IACJb,OAAOU,oBAAoB,UAAWf,KAAKC,uBAC3CD,KAAKG,MAAMgB,iBAAiBD,IAExC,CAEAE,oBAAAA,GACQpB,KAAKQ,kBAAkBR,KAAKQ,iBAAiBa,SACjDhB,OAAOU,oBAAoB,UAAWf,KAAKC,sBAC/C,CAEAqB,MAAAA,EAAOC,OAAEA,EAAMC,SAAEA,EAAQC,cAAEA,EAAaC,aAAEA,IAAgBC,qBAAEA,EAAoBC,OAAEA,IAC9E,MAAOC,EAAOC,GAAUL,EAExB,OACIM,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,sCACA,wCAAwCV,EAASW,yBAGzC,iBAAXP,GAA6BG,EAACK,EAAAA,MAE/BL,EAACM,EAAAA,CAAOC,KAAM7C,EAAYoC,MAAOA,EAAOC,OAAQA,EAAQS,SAAUvC,KAAKwC,iBACvET,EAACU,EAAAA,CACGH,KAAM,WACNI,OAAQnB,EACRoB,OAAQlD,EACRmD,UAAW,OACXC,WAAYlB,EACZD,aAAcA,IAI9B,CA1EA,WAAAoB,CAAY3C,GACR4C,MAAM5C,GAJV6C,EAAAhD,KAAQC,6BAAR,GACA+C,EAAAhD,KAAQQ,wBAAR,GAaAwC,EAAAhD,KAAQwC,iBAAiB,KACrBxC,KAAKiD,SAAS,CAAErB,OAAQ,iBAGE,SAAtB5B,KAAKkD,MAAMtB,QACX5B,KAAKG,MAAMgD,kBAAkB,CAAEC,cAAe,gBAAiBC,kBAAmB,GAAGC,gCAVzF,MAAMC,EAAUC,KAAKC,UAAUzD,KAAKG,MAAMqB,UACpCG,EAAuB+B,EAAgBH,GAC7CvD,KAAKkD,MAAQ,CAAEvB,uBAAsBC,OAAQ,OACjD"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as r}from"../../../../external/preact/dist/preact.js";import t from"./DoChallenge3DS2.js";import{isErrorObject as s,createChallengeResolveData as o,prepareChallengeData as n}from"../utils.js";import a from"../../../internal/Img/Img.js";import{hasOwnProperty as i}from"../../../../utils/hasOwnProperty.js";import l from"../../../../core/Context/useImage.js";import p,{ERROR as c}from"../../../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_CHALLENGE_ERROR as h,MISSING_TOKEN_IN_ACTION_MSG as u,THREEDS2_NUM as m,THREEDS2_CHALLENGE as S}from"../../constants.js";import{isValidHttpUrl as d}from"../../../../utils/isValidURL.js";import{AnalyticsLogEvent as g,LogEventSubtype as D,LogEventType as E}from"../../../../core/Analytics/events/AnalyticsLogEvent.js";import{ErrorEventCode as _,AnalyticsErrorEvent as T,ErrorEventType as f}from"../../../../core/Analytics/events/AnalyticsErrorEvent.js";function C(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class I extends e{componentDidMount(){if(!s(this.state.challengeData)){const e="test"===this.props.environment&&this.props._environmentUrls?.api?.includes("http://localhost:8080"),{acsURL:r}=this.state.challengeData;if(!d(r,e)){this.setError({errorInfo:`${_.THREEDS2_TOKEN_IS_MISSING_ACSURL}: ${this.props.i18n.get("err.gen.9102")}`},!0);const e=new T({component:this.props.type,code:_.THREEDS2_TOKEN_IS_MISSING_ACSURL,errorType:f.threeDS2,message:`${h}: Decoded token is missing a valid acsURL property`});return this.props.onSubmitAnalytics(e),void console.debug("### PrepareChallenge3DS2::exiting:: no valid acsURL")}const{acsTransID:t,messageVersion:s,threeDSServerTransID:o}=this.state.challengeData.cReqData;if(!t||!s||!o){this.setError({errorInfo:`${_.THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS}: ${this.props.i18n.get("err.gen.9102")}`},!0);const e=new T({component:this.props.type,code:_.THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS,errorType:f.threeDS2,message:`${h}: Decoded token is missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)`});return this.props.onSubmitAnalytics(e),void console.debug("### PrepareChallenge3DS2::exiting:: missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)")}this.setState({status:"performingChallenge"})}else{const e=this.state.challengeData.error,r=e.includes(u)?_.THREEDS2_ACTION_IS_MISSING_TOKEN:_.THREEDS2_TOKEN_DECODE_OR_PARSING_FAILED;this.setError({errorInfo:`${r}: ${this.props.i18n.get("err.gen.9102")}`},!0);const t=new T({component:this.props.type,code:r,errorType:f.threeDS2,message:`${h}: ${e}`});this.props.onSubmitAnalytics(t),console.debug("### PrepareChallenge3DS2::exiting:: no challengeData")}}setStatusComplete(e,r=null){this.setState({status:"complete"},()=>{const t=o(this.props.dataKey,e.transStatus,this.props.paymentData);let s;r&&console.debug("### PrepareChallenge3DS2::errorCodeObject::",r);const n=r||e;if(n.errorCode){const e={code:"timeout"===n.errorCode?_.THREEDS2_TIMEOUT:_.THREEDS2_NO_TRANSSTATUS,errorType:f.threeDS2};s=new T({component:this.props.type,message:n.message,...e}),this.props.onSubmitAnalytics(s)}let a;switch(e?.transStatus){case"Y":a="success";break;case"N":a="failed";break;case"U":a=r?"timeout":"cancelled"}e?.errorCode&&(a="noTransStatus"),s=new g({component:this.props.type,type:E.threeDS2,subType:D.challengeCompleted,message:`${m} challenge has completed`,result:a}),this.props.onSubmitAnalytics(s),this.props.onComplete(t)})}setError(e,r){this.setState({status:"error",errorInfo:e.errorInfo}),r&&this.props.onError(new p(c,e.errorInfo,{cause:e.errorObj}))}render(e,{challengeData:s}){const o=l();return"performingChallenge"===this.state.status?r(t,{onCompleteChallenge:e=>{let r=null;if(i(e.result,"errorCode")&&e.result.errorCode.length&&(r={errorCode:e.result.errorCode,message:`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`},this.props.isMDFlow&&this.props.onError(new p(c,`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`,{cause:e.result.errorCode}))),!e.result){this.setError({errorInfo:`${h}: ${this.props.i18n.get("3ds.chal.805",{values:{result:'"result"'}})}`,errorObj:e},!0);const r=new T({component:this.props.type,code:_.THREEDS2_CHALLENGE_RESOLVED_WITHOUT_RESULT_PROP,errorType:f.threeDS2,message:`${h}: challenge resolved without a "result" object`});return this.props.onSubmitAnalytics(r),void console.debug('### PrepareChallenge3DS2::exiting:: challenge resolved without a "result" object')}this.setStatusComplete(e.result,r)},onErrorChallenge:e=>{if(i(e,"errorCode")){const r={errorCode:e.errorCode,message:`${S}: ${e.errorCode}`};return this.props.isMDFlow&&this.props.onError(new p(c,`${h}: '3DS2 challenge timed out'`,{cause:e.errorCode})),void this.setStatusComplete(e.result,r)}},...s,onActionHandled:this.props.onActionHandled,onFormSubmit:this.onFormSubmit}):"error"===this.state.status?r("div",{className:"adyen-checkout__threeds2-challenge-error"},r(a,{className:"adyen-checkout__status__icon adyen-checkout__status__icon--error",src:o({imageFolder:"components/"})("error"),alt:""}),r("div",{className:"adyen-checkout__status__text"},this.state.errorInfo?this.state.errorInfo:this.props.i18n.get("error.message.unknown"))):null}constructor(e){if(super(e),C(this,"onFormSubmit",e=>{const r=new g({component:this.props.type,type:E.threeDS2,subType:D.challengeDataSentWeb,message:e});this.props.onSubmitAnalytics(r)}),this.props.token){const e=n({token:this.props.token,size:this.props.challengeWindowSize||this.props.size});this.state={status:"init",challengeData:e}}else this.state={challengeData:{success:!1,error:u}},console.debug(`${h}: ${u}`)}}C(I,"defaultProps",{onComplete:()=>{},onError:()=>{},isMDFlow:!1});export{I as default};
1
+ import{Component as e,createElement as r}from"../../../../external/preact/dist/preact.js";import t from"./DoChallenge3DS2.js";import{isErrorObject as s,createChallengeResolveData as o,prepareChallengeData as n}from"../utils.js";import i from"../../../internal/Img/Img.js";import{hasOwnProperty as a}from"../../../../utils/hasOwnProperty.js";import l from"../../../../core/Context/useImage.js";import p,{ERROR as c}from"../../../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_CHALLENGE_ERROR as h,MISSING_TOKEN_IN_ACTION_MSG as u,THREEDS2_NUM as m,THREEDS2_CHALLENGE as S}from"../../constants.js";import{isValidHttpUrl as g}from"../../../../utils/isValidURL.js";import{AnalyticsLogEvent as d,LogEventSubtype as D,LogEventType as E}from"../../../../core/Analytics/events/AnalyticsLogEvent.js";import{ErrorEventCode as _,AnalyticsErrorEvent as T,ErrorEventType as I}from"../../../../core/Analytics/events/AnalyticsErrorEvent.js";function f(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class C extends e{componentDidMount(){if(!s(this.state.challengeData)){const e="test"===this.props.environment&&this.props._environmentUrls?.api?.includes("http://localhost:8080"),{acsURL:r,postMessageDomain:t}=this.state.challengeData,s=g(r,e),o=g(t,e);if(!s||!o){const e=s?_.THREEDS2_CHALLENGE_TOKEN_IS_MISSING_THREEDSNOTIFICATIONURL:_.THREEDS2_TOKEN_IS_MISSING_ACSURL,r=s?"threeDSNotificationURL":"acsURL";this.setError({errorInfo:`${e}: ${this.props.i18n.get("err.gen.9102")}`},!0);const n=new T({component:this.props.type,code:e,errorType:I.threeDS2,message:`${h}: Decoded token is missing a valid ${r} property`});return this.props.onSubmitAnalytics(n),void console.debug(`### PrepareChallenge3DS2::exiting:: no valid ${r}.${o?"":` postMessageDomain=${t}`}`)}const{acsTransID:n,messageVersion:i,threeDSServerTransID:a}=this.state.challengeData.cReqData;if(!n||!i||!a){this.setError({errorInfo:`${_.THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS}: ${this.props.i18n.get("err.gen.9102")}`},!0);const e=new T({component:this.props.type,code:_.THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS,errorType:I.threeDS2,message:`${h}: Decoded token is missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)`});return this.props.onSubmitAnalytics(e),void console.debug("### PrepareChallenge3DS2::exiting:: missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)")}this.setState({status:"performingChallenge"})}else{const e=this.state.challengeData.error,r=e.includes(u)?_.THREEDS2_ACTION_IS_MISSING_TOKEN:_.THREEDS2_TOKEN_DECODE_OR_PARSING_FAILED;this.setError({errorInfo:`${r}: ${this.props.i18n.get("err.gen.9102")}`},!0);const t=new T({component:this.props.type,code:r,errorType:I.threeDS2,message:`${h}: ${e}`});this.props.onSubmitAnalytics(t),console.debug("### PrepareChallenge3DS2::exiting:: no challengeData")}}setStatusComplete(e,r=null){this.setState({status:"complete"},()=>{const t=o(this.props.dataKey,e.transStatus,this.props.paymentData);let s;r&&console.debug("### PrepareChallenge3DS2::errorCodeObject::",r);const n=r||e;if(n.errorCode){const e={code:"timeout"===n.errorCode?_.THREEDS2_TIMEOUT:_.THREEDS2_NO_TRANSSTATUS,errorType:I.threeDS2};s=new T({component:this.props.type,message:n.message,...e}),this.props.onSubmitAnalytics(s)}let i;switch(e?.transStatus){case"Y":i="success";break;case"N":i="failed";break;case"U":i=r?"timeout":"cancelled"}e?.errorCode&&(i="noTransStatus"),s=new d({component:this.props.type,type:E.threeDS2,subType:D.challengeCompleted,message:`${m} challenge has completed`,result:i}),this.props.onSubmitAnalytics(s),this.props.onComplete(t)})}setError(e,r){this.setState({status:"error",errorInfo:e.errorInfo}),r&&this.props.onError(new p(c,e.errorInfo,{cause:e.errorObj}))}render(e,{challengeData:s}){const o=s,n=l();return"performingChallenge"===this.state.status?r(t,{onCompleteChallenge:e=>{let r=null;if(a(e.result,"errorCode")&&e.result.errorCode.length&&(r={errorCode:e.result.errorCode,message:`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`},this.props.isMDFlow&&this.props.onError(new p(c,`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`,{cause:e.result.errorCode}))),!e.result){this.setError({errorInfo:`${h}: ${this.props.i18n.get("3ds.chal.805",{values:{result:'"result"'}})}`,errorObj:e},!0);const r=new T({component:this.props.type,code:_.THREEDS2_CHALLENGE_RESOLVED_WITHOUT_RESULT_PROP,errorType:I.threeDS2,message:`${h}: challenge resolved without a "result" object`});return this.props.onSubmitAnalytics(r),void console.debug('### PrepareChallenge3DS2::exiting:: challenge resolved without a "result" object')}this.setStatusComplete(e.result,r)},onErrorChallenge:e=>{if(a(e,"errorCode")){const r={errorCode:e.errorCode,message:`${S}: ${e.errorCode}`};return this.props.isMDFlow&&this.props.onError(new p(c,`${h}: '3DS2 challenge timed out'`,{cause:e.errorCode})),void this.setStatusComplete(e.result,r)}},...o,onActionHandled:this.props.onActionHandled,onFormSubmit:this.onFormSubmit}):"error"===this.state.status?r("div",{className:"adyen-checkout__threeds2-challenge-error"},r(i,{className:"adyen-checkout__status__icon adyen-checkout__status__icon--error",src:n({imageFolder:"components/"})("error"),alt:""}),r("div",{className:"adyen-checkout__status__text"},this.state.errorInfo?this.state.errorInfo:this.props.i18n.get("error.message.unknown"))):null}constructor(e){if(super(e),f(this,"onFormSubmit",e=>{const r=new d({component:this.props.type,type:E.threeDS2,subType:D.challengeDataSentWeb,message:e});this.props.onSubmitAnalytics(r)}),this.props.token){const e=n({token:this.props.token,size:this.props.challengeWindowSize||this.props.size});this.state={status:"init",challengeData:e}}else this.state={challengeData:{success:!1,error:u}},console.debug(`${h}: ${u}`)}}f(C,"defaultProps",{onComplete:()=>{},onError:()=>{},isMDFlow:!1});export{C as default};
2
2
  //# sourceMappingURL=PrepareChallenge3DS2.js.map