@paykka/card-checkout-ui 0.16.0 → 0.17.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 (204) hide show
  1. package/dist/card-checkout-ui.js +23 -23
  2. package/dist/card-checkout-ui.umd.cjs +23 -23
  3. package/dist/es/api/modules/get-browser-params.js +1 -1
  4. package/dist/es/components/DropIn/index.js +145 -1
  5. package/dist/es/components/GuideCard/index.js +19 -1
  6. package/dist/es/components/index.js +18 -0
  7. package/dist/es/components/internal/icons/IconBancomatPay.js +33 -0
  8. package/dist/es/components/internal/icons/IconBizum.js +33 -0
  9. package/dist/es/components/internal/icons/IconDragonPay.js +42 -0
  10. package/dist/es/components/internal/icons/IconEPS.js +44 -0
  11. package/dist/es/components/internal/icons/IconFpx.js +42 -0
  12. package/dist/es/components/internal/icons/IconMbWay.js +33 -0
  13. package/dist/es/components/internal/icons/IconMultibanco.js +34 -0
  14. package/dist/es/components/internal/icons/IconMyBank.js +38 -0
  15. package/dist/es/components/internal/icons/IconOnlineBankingEstonia.js +42 -0
  16. package/dist/es/components/internal/icons/IconOnlineBankingFinland.js +42 -0
  17. package/dist/es/components/internal/icons/IconOnlineBankingIndonesia.js +42 -0
  18. package/dist/es/components/internal/icons/IconOnlineBankingLatvia.js +42 -0
  19. package/dist/es/components/internal/icons/IconOnlineBankingLithuania.js +42 -0
  20. package/dist/es/components/internal/icons/IconOnlineBankingThailand.js +42 -0
  21. package/dist/es/components/internal/icons/IconPayByBank.js +42 -0
  22. package/dist/es/components/internal/icons/IconPayU.js +27 -0
  23. package/dist/es/components/internal/icons/IconSatispay.js +34 -0
  24. package/dist/es/components/internal/icons/IconUpi.js +42 -0
  25. package/dist/es/components/wallets/BancomatPay/BancomatPay.js +155 -0
  26. package/dist/es/components/wallets/BancomatPay/bancomat-pay.js +1 -0
  27. package/dist/es/components/wallets/BancomatPay/index.js +1 -0
  28. package/dist/es/components/wallets/BancomatPay/type.js +1 -0
  29. package/dist/es/components/wallets/Bizum/Bizum.js +155 -0
  30. package/dist/es/components/wallets/Bizum/bizum2.js +1 -0
  31. package/dist/es/components/wallets/Bizum/index.js +1 -0
  32. package/dist/es/components/wallets/Bizum/type.js +1 -0
  33. package/dist/es/components/wallets/DragonPay/DragonPay.js +180 -0
  34. package/dist/es/components/wallets/DragonPay/dragon-pay.js +1 -0
  35. package/dist/es/components/wallets/DragonPay/index.js +1 -0
  36. package/dist/es/components/wallets/DragonPay/type.js +1 -0
  37. package/dist/es/components/wallets/EPS/EPS.js +183 -0
  38. package/dist/es/components/wallets/EPS/eps2.js +1 -0
  39. package/dist/es/components/wallets/EPS/index.js +1 -0
  40. package/dist/es/components/wallets/EPS/type.js +1 -0
  41. package/dist/es/components/wallets/Fpx/Fpx.js +180 -0
  42. package/dist/es/components/wallets/Fpx/fpx2.js +1 -0
  43. package/dist/es/components/wallets/Fpx/index.js +1 -0
  44. package/dist/es/components/wallets/Fpx/type.js +1 -0
  45. package/dist/es/components/wallets/MbWay/MbWay.js +155 -0
  46. package/dist/es/components/wallets/MbWay/index.js +1 -0
  47. package/dist/es/components/wallets/MbWay/mb-way.js +1 -0
  48. package/dist/es/components/wallets/MbWay/type.js +1 -0
  49. package/dist/es/components/wallets/Multibanco/Multibanco.js +155 -0
  50. package/dist/es/components/wallets/Multibanco/index.js +1 -0
  51. package/dist/es/components/wallets/Multibanco/multibanco2.js +1 -0
  52. package/dist/es/components/wallets/Multibanco/type.js +1 -0
  53. package/dist/es/components/wallets/MyBank/MyBank.js +165 -0
  54. package/dist/es/components/wallets/MyBank/index.js +1 -0
  55. package/dist/es/components/wallets/MyBank/my-bank.js +1 -0
  56. package/dist/es/components/wallets/MyBank/type.js +1 -0
  57. package/dist/es/components/wallets/OnlineBankingEstonia/OnlineBankingEstonia.js +180 -0
  58. package/dist/es/components/wallets/OnlineBankingEstonia/index.js +1 -0
  59. package/dist/es/components/wallets/OnlineBankingEstonia/online-banking-estonia.js +1 -0
  60. package/dist/es/components/wallets/OnlineBankingEstonia/type.js +1 -0
  61. package/dist/es/components/wallets/OnlineBankingFinland/OnlineBankingFinland.js +180 -0
  62. package/dist/es/components/wallets/OnlineBankingFinland/index.js +1 -0
  63. package/dist/es/components/wallets/OnlineBankingFinland/online-banking-finland.js +1 -0
  64. package/dist/es/components/wallets/OnlineBankingFinland/type.js +1 -0
  65. package/dist/es/components/wallets/OnlineBankingIndonesia/OnlineBankingIndonesia.js +180 -0
  66. package/dist/es/components/wallets/OnlineBankingIndonesia/index.js +1 -0
  67. package/dist/es/components/wallets/OnlineBankingIndonesia/online-banking-indonesia.js +1 -0
  68. package/dist/es/components/wallets/OnlineBankingIndonesia/type.js +1 -0
  69. package/dist/es/components/wallets/OnlineBankingLatvia/OnlineBankingLatvia.js +180 -0
  70. package/dist/es/components/wallets/OnlineBankingLatvia/index.js +1 -0
  71. package/dist/es/components/wallets/OnlineBankingLatvia/online-banking-latvia.js +1 -0
  72. package/dist/es/components/wallets/OnlineBankingLatvia/type.js +1 -0
  73. package/dist/es/components/wallets/OnlineBankingLithuania/OnlineBankingLithuania.js +180 -0
  74. package/dist/es/components/wallets/OnlineBankingLithuania/index.js +1 -0
  75. package/dist/es/components/wallets/OnlineBankingLithuania/online-banking-lithuania.js +1 -0
  76. package/dist/es/components/wallets/OnlineBankingLithuania/type.js +1 -0
  77. package/dist/es/components/wallets/OnlineBankingThailand/OnlineBankingThailand.js +180 -0
  78. package/dist/es/components/wallets/OnlineBankingThailand/index.js +1 -0
  79. package/dist/es/components/wallets/OnlineBankingThailand/online-banking-thailand.js +1 -0
  80. package/dist/es/components/wallets/OnlineBankingThailand/type.js +1 -0
  81. package/dist/es/components/wallets/PayByBank/PayByBank.js +212 -0
  82. package/dist/es/components/wallets/PayByBank/index.js +1 -0
  83. package/dist/es/components/wallets/PayByBank/pay-by-bank.js +1 -0
  84. package/dist/es/components/wallets/PayByBank/type.js +1 -0
  85. package/dist/es/components/wallets/PayU/PayU.js +186 -0
  86. package/dist/es/components/wallets/PayU/index.js +1 -0
  87. package/dist/es/components/wallets/PayU/payu2.js +1 -0
  88. package/dist/es/components/wallets/PayU/type.js +1 -0
  89. package/dist/es/components/wallets/Satispay/Satispay.js +198 -0
  90. package/dist/es/components/wallets/Satispay/index.js +1 -0
  91. package/dist/es/components/wallets/Satispay/satispay2.js +1 -0
  92. package/dist/es/components/wallets/Satispay/type.js +1 -0
  93. package/dist/es/components/wallets/Upi/Upi.js +180 -0
  94. package/dist/es/components/wallets/Upi/index.js +1 -0
  95. package/dist/es/components/wallets/Upi/type.js +1 -0
  96. package/dist/es/components/wallets/Upi/upi2.js +1 -0
  97. package/dist/es/components/wallets/index.js +18 -0
  98. package/dist/es/constant.js +110 -2
  99. package/dist/es/core/logger.js +1 -1
  100. package/dist/es/core.js +480 -480
  101. package/dist/es/i18n/locales/de-DE.js +19 -1
  102. package/dist/es/i18n/locales/en-GB.js +19 -1
  103. package/dist/es/i18n/locales/es-ES.js +19 -1
  104. package/dist/es/i18n/locales/fr-FR.js +19 -1
  105. package/dist/es/i18n/locales/ja-JP.js +19 -1
  106. package/dist/es/i18n/locales/ko-KR.js +19 -1
  107. package/dist/es/i18n/locales/nl-NL.js +19 -1
  108. package/dist/es/i18n/locales/pt-PT.js +19 -1
  109. package/dist/es/i18n/locales/ru-RU.js +19 -1
  110. package/dist/es/i18n/locales/zh-CN.js +19 -1
  111. package/dist/es/i18n/locales/zh-HK.js +19 -1
  112. package/dist/es/i18n/locales/zh-TW.js +19 -1
  113. package/dist/es/index.js +36 -0
  114. package/dist/es/style.css +1 -1
  115. package/dist/style.css +1 -1
  116. package/dist/types/components/DropIn/type.d.ts +1 -1
  117. package/dist/types/components/internal/icons/IconBancomatPay.d.ts +2 -0
  118. package/dist/types/components/internal/icons/IconBizum.d.ts +2 -0
  119. package/dist/types/components/internal/icons/IconDragonPay.d.ts +2 -0
  120. package/dist/types/components/internal/icons/IconEPS.d.ts +2 -0
  121. package/dist/types/components/internal/icons/IconFpx.d.ts +2 -0
  122. package/dist/types/components/internal/icons/IconMbWay.d.ts +2 -0
  123. package/dist/types/components/internal/icons/IconMultibanco.d.ts +2 -0
  124. package/dist/types/components/internal/icons/IconMyBank.d.ts +2 -0
  125. package/dist/types/components/internal/icons/IconOnlineBankingEstonia.d.ts +2 -0
  126. package/dist/types/components/internal/icons/IconOnlineBankingFinland.d.ts +2 -0
  127. package/dist/types/components/internal/icons/IconOnlineBankingIndonesia.d.ts +2 -0
  128. package/dist/types/components/internal/icons/IconOnlineBankingLatvia.d.ts +2 -0
  129. package/dist/types/components/internal/icons/IconOnlineBankingLithuania.d.ts +2 -0
  130. package/dist/types/components/internal/icons/IconOnlineBankingThailand.d.ts +2 -0
  131. package/dist/types/components/internal/icons/IconPayByBank.d.ts +2 -0
  132. package/dist/types/components/internal/icons/IconPayU.d.ts +2 -0
  133. package/dist/types/components/internal/icons/IconSatispay.d.ts +2 -0
  134. package/dist/types/components/internal/icons/IconUpi.d.ts +2 -0
  135. package/dist/types/components/internal/icons/index.d.ts +18 -0
  136. package/dist/types/components/wallets/BancomatPay/BancomatPay.d.ts +15 -0
  137. package/dist/types/components/wallets/BancomatPay/index.d.ts +2 -0
  138. package/dist/types/components/wallets/BancomatPay/type.d.ts +7 -0
  139. package/dist/types/components/wallets/Bizum/Bizum.d.ts +15 -0
  140. package/dist/types/components/wallets/Bizum/index.d.ts +2 -0
  141. package/dist/types/components/wallets/Bizum/type.d.ts +7 -0
  142. package/dist/types/components/wallets/DragonPay/DragonPay.d.ts +16 -0
  143. package/dist/types/components/wallets/DragonPay/index.d.ts +2 -0
  144. package/dist/types/components/wallets/DragonPay/type.d.ts +6 -0
  145. package/dist/types/components/wallets/EPS/EPS.d.ts +15 -0
  146. package/dist/types/components/wallets/EPS/index.d.ts +2 -0
  147. package/dist/types/components/wallets/EPS/type.d.ts +7 -0
  148. package/dist/types/components/wallets/Fpx/Fpx.d.ts +16 -0
  149. package/dist/types/components/wallets/Fpx/index.d.ts +2 -0
  150. package/dist/types/components/wallets/Fpx/type.d.ts +6 -0
  151. package/dist/types/components/wallets/MbWay/MbWay.d.ts +15 -0
  152. package/dist/types/components/wallets/MbWay/index.d.ts +2 -0
  153. package/dist/types/components/wallets/MbWay/type.d.ts +7 -0
  154. package/dist/types/components/wallets/Multibanco/Multibanco.d.ts +15 -0
  155. package/dist/types/components/wallets/Multibanco/index.d.ts +2 -0
  156. package/dist/types/components/wallets/Multibanco/type.d.ts +7 -0
  157. package/dist/types/components/wallets/MyBank/MyBank.d.ts +15 -0
  158. package/dist/types/components/wallets/MyBank/index.d.ts +2 -0
  159. package/dist/types/components/wallets/MyBank/type.d.ts +7 -0
  160. package/dist/types/components/wallets/OnlineBankingEstonia/OnlineBankingEstonia.d.ts +16 -0
  161. package/dist/types/components/wallets/OnlineBankingEstonia/index.d.ts +2 -0
  162. package/dist/types/components/wallets/OnlineBankingEstonia/type.d.ts +6 -0
  163. package/dist/types/components/wallets/OnlineBankingFinland/OnlineBankingFinland.d.ts +16 -0
  164. package/dist/types/components/wallets/OnlineBankingFinland/index.d.ts +2 -0
  165. package/dist/types/components/wallets/OnlineBankingFinland/type.d.ts +6 -0
  166. package/dist/types/components/wallets/OnlineBankingIndonesia/OnlineBankingIndonesia.d.ts +16 -0
  167. package/dist/types/components/wallets/OnlineBankingIndonesia/index.d.ts +2 -0
  168. package/dist/types/components/wallets/OnlineBankingIndonesia/type.d.ts +6 -0
  169. package/dist/types/components/wallets/OnlineBankingLatvia/OnlineBankingLatvia.d.ts +16 -0
  170. package/dist/types/components/wallets/OnlineBankingLatvia/index.d.ts +2 -0
  171. package/dist/types/components/wallets/OnlineBankingLatvia/type.d.ts +6 -0
  172. package/dist/types/components/wallets/OnlineBankingLithuania/OnlineBankingLithuania.d.ts +16 -0
  173. package/dist/types/components/wallets/OnlineBankingLithuania/index.d.ts +2 -0
  174. package/dist/types/components/wallets/OnlineBankingLithuania/type.d.ts +6 -0
  175. package/dist/types/components/wallets/OnlineBankingThailand/OnlineBankingThailand.d.ts +16 -0
  176. package/dist/types/components/wallets/OnlineBankingThailand/index.d.ts +2 -0
  177. package/dist/types/components/wallets/OnlineBankingThailand/type.d.ts +6 -0
  178. package/dist/types/components/wallets/PayByBank/PayByBank.d.ts +16 -0
  179. package/dist/types/components/wallets/PayByBank/index.d.ts +2 -0
  180. package/dist/types/components/wallets/PayByBank/type.d.ts +6 -0
  181. package/dist/types/components/wallets/PayU/PayU.d.ts +15 -0
  182. package/dist/types/components/wallets/PayU/index.d.ts +2 -0
  183. package/dist/types/components/wallets/PayU/type.d.ts +7 -0
  184. package/dist/types/components/wallets/Satispay/Satispay.d.ts +15 -0
  185. package/dist/types/components/wallets/Satispay/index.d.ts +2 -0
  186. package/dist/types/components/wallets/Satispay/type.d.ts +7 -0
  187. package/dist/types/components/wallets/Upi/Upi.d.ts +16 -0
  188. package/dist/types/components/wallets/Upi/index.d.ts +2 -0
  189. package/dist/types/components/wallets/Upi/type.d.ts +6 -0
  190. package/dist/types/components/wallets/index.d.ts +18 -0
  191. package/dist/types/constant.d.ts +37 -1
  192. package/dist/types/i18n/locales/de-DE.d.ts +18 -0
  193. package/dist/types/i18n/locales/en-GB.d.ts +18 -0
  194. package/dist/types/i18n/locales/es-ES.d.ts +18 -0
  195. package/dist/types/i18n/locales/fr-FR.d.ts +18 -0
  196. package/dist/types/i18n/locales/ja-JP.d.ts +18 -0
  197. package/dist/types/i18n/locales/ko-KR.d.ts +18 -0
  198. package/dist/types/i18n/locales/nl-NL.d.ts +18 -0
  199. package/dist/types/i18n/locales/pt-PT.d.ts +18 -0
  200. package/dist/types/i18n/locales/ru-RU.d.ts +18 -0
  201. package/dist/types/i18n/locales/zh-CN.d.ts +18 -0
  202. package/dist/types/i18n/locales/zh-HK.d.ts +18 -0
  203. package/dist/types/i18n/locales/zh-TW.d.ts +18 -0
  204. package/package.json +1 -1
@@ -0,0 +1,180 @@
1
+ import { w, F, y, A, h, u, b } from "../../../core.js";
2
+ import { useBEM } from "../../../hooks/useBEM.js";
3
+ import { CoreContext } from "../../../core/context.js";
4
+ import "../../../utils/card-brand/brands.js";
5
+ import "../../../utils/system-info/get-browser-info.js";
6
+ import { normalizedClass } from "../../../utils/format.js";
7
+ import { PaymentMethod, PaymentCategory, COMMON_CLASS_NAME } from "../../../constant.js";
8
+ import "../../../out/fraud-detection.js";
9
+ import { usePayState } from "../../../hooks/usePayState.js";
10
+ import { useBaseWallet } from "../../../hooks/useBaseWallet.js";
11
+ import { createEmailCore, EmailField } from "../../EmailField/EmailField.js";
12
+ import "../../internal/Form/type.js";
13
+ import "../../internal/Form/context.js";
14
+ import "../../internal/Form/FormItem.js";
15
+ import { Form } from "../../internal/Form/Form.js";
16
+ import { DEFAULT_ADDRESS, AddressField } from "../../AddressField/index.js";
17
+ import { Info } from "../../internal/Info/Info.js";
18
+ import "./online-banking-estonia.js";
19
+ import { GuideCard } from "../../GuideCard/index.js";
20
+ import { PaymentButton } from "../../PaymentButton/index.js";
21
+ const { bem } = useBEM("online-banking-estonia");
22
+ const fieldClassNames = bem("field");
23
+ const CURR_PAYMENT_METHOD = PaymentMethod.ONLINE_BANKING_ESTONIA;
24
+ const OnlineBankingEstonia = w((props, ref) => {
25
+ const {
26
+ session,
27
+ core,
28
+ showGuideCard = true,
29
+ hidePaymentButton = false
30
+ } = props;
31
+ F(ref, () => ({
32
+ stopRetry: () => stopRetry(),
33
+ startRetry: (timeout) => startRetry(timeout),
34
+ updateAddress: () => {
35
+ var _a;
36
+ if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
37
+ return;
38
+ const address = addressCore.getAddressState();
39
+ form.address = address;
40
+ setForm(form);
41
+ (_a = addressFieldRef.current) == null ? void 0 : _a.update(address);
42
+ validateFormSilently();
43
+ },
44
+ updateEmail: () => {
45
+ var _a;
46
+ if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
47
+ return;
48
+ form.email = emailState.email;
49
+ setForm(form);
50
+ (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
51
+ validateFormSilently();
52
+ },
53
+ payment: () => {
54
+ hidePaymentButton && onSubmit();
55
+ }
56
+ }));
57
+ const { i18n, sessionReady, disabled } = usePayState(session, props.core);
58
+ y(() => {
59
+ if (!sessionReady)
60
+ return;
61
+ const { country, bill = {} } = (session == null ? void 0 : session.checkout) || {};
62
+ country && addressCore.setCountry(country);
63
+ form.address.country = country;
64
+ form.email = bill.email ?? "";
65
+ }, [sessionReady]);
66
+ const {
67
+ isEnabled,
68
+ fieldStatus,
69
+ paymentButtonStatus,
70
+ setPaymentButtonStatus,
71
+ errorMessage,
72
+ setErrorMessage,
73
+ payment,
74
+ startRetry,
75
+ stopRetry,
76
+ getPaymentMethodContext
77
+ } = useBaseWallet(CURR_PAYMENT_METHOD, props, {
78
+ getFormData: () => {
79
+ return {
80
+ ...form
81
+ };
82
+ }
83
+ });
84
+ const addressCore = core.getAddressCore();
85
+ const emailState = createEmailCore();
86
+ const addressFieldRef = A(null);
87
+ const emailFieldRef = A(null);
88
+ const formRef = A(null);
89
+ const [form, setForm] = h({
90
+ email: "",
91
+ address: { ...DEFAULT_ADDRESS }
92
+ });
93
+ const [validated, setValidated] = h(false);
94
+ const validateFormSilently = () => {
95
+ var _a;
96
+ (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => setValidated(true)).catch(() => setValidated(false));
97
+ };
98
+ const setFormRef = (dom) => {
99
+ formRef.current = dom;
100
+ dom && validateFormSilently();
101
+ };
102
+ y(() => validateFormSilently(), [form]);
103
+ const onSubmit = () => {
104
+ var _a;
105
+ setErrorMessage("");
106
+ (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
107
+ var _a2;
108
+ (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
109
+ const submitResult = await ((_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors, getPaymentMethodContext()));
110
+ if (submitResult === false)
111
+ return;
112
+ if (errors) {
113
+ setPaymentButtonStatus("unSubmit");
114
+ return;
115
+ }
116
+ setPaymentButtonStatus("loading");
117
+ await payment();
118
+ });
119
+ };
120
+ const Email = () => {
121
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.email.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
122
+ EmailField,
123
+ {
124
+ ref: emailFieldRef,
125
+ value: form.email,
126
+ disabled: (fieldStatus == null ? void 0 : fieldStatus.email.disabled) || disabled
127
+ }
128
+ ) }) });
129
+ };
130
+ const Address = () => {
131
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
132
+ AddressField,
133
+ {
134
+ ref: addressFieldRef,
135
+ value: form.address,
136
+ disabled,
137
+ onChange: (value) => setForm(Object.assign(form, { address: value }))
138
+ }
139
+ ) }) });
140
+ };
141
+ const Button = () => {
142
+ return /* @__PURE__ */ u(
143
+ PaymentButton,
144
+ {
145
+ className: bem("button"),
146
+ status: paymentButtonStatus,
147
+ disabled,
148
+ verified: validated,
149
+ onClick: onSubmit
150
+ }
151
+ );
152
+ };
153
+ const ErrorMessage = () => {
154
+ return /* @__PURE__ */ u(b, { children: !!errorMessage && /* @__PURE__ */ u(Info, { content: errorMessage }) });
155
+ };
156
+ return /* @__PURE__ */ u(
157
+ CoreContext.Provider,
158
+ {
159
+ value: {
160
+ i18n,
161
+ session,
162
+ core
163
+ },
164
+ children: isEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
165
+ showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.ONLINE_BANKING_ESTONIA }),
166
+ /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
167
+ Email(),
168
+ Address(),
169
+ /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
170
+ ErrorMessage(),
171
+ !hidePaymentButton && Button()
172
+ ] })
173
+ ] }) })
174
+ ] })
175
+ }
176
+ );
177
+ });
178
+ export {
179
+ OnlineBankingEstonia
180
+ };
@@ -0,0 +1 @@
1
+ import "./OnlineBankingEstonia.js";
@@ -0,0 +1,180 @@
1
+ import { w, F, y, A, h, u, b } from "../../../core.js";
2
+ import { useBEM } from "../../../hooks/useBEM.js";
3
+ import { CoreContext } from "../../../core/context.js";
4
+ import "../../../utils/card-brand/brands.js";
5
+ import "../../../utils/system-info/get-browser-info.js";
6
+ import { normalizedClass } from "../../../utils/format.js";
7
+ import { PaymentMethod, PaymentCategory, COMMON_CLASS_NAME } from "../../../constant.js";
8
+ import "../../../out/fraud-detection.js";
9
+ import { usePayState } from "../../../hooks/usePayState.js";
10
+ import { useBaseWallet } from "../../../hooks/useBaseWallet.js";
11
+ import { createEmailCore, EmailField } from "../../EmailField/EmailField.js";
12
+ import "../../internal/Form/type.js";
13
+ import "../../internal/Form/context.js";
14
+ import "../../internal/Form/FormItem.js";
15
+ import { Form } from "../../internal/Form/Form.js";
16
+ import { DEFAULT_ADDRESS, AddressField } from "../../AddressField/index.js";
17
+ import { Info } from "../../internal/Info/Info.js";
18
+ import "./online-banking-finland.js";
19
+ import { GuideCard } from "../../GuideCard/index.js";
20
+ import { PaymentButton } from "../../PaymentButton/index.js";
21
+ const { bem } = useBEM("online-banking-finland");
22
+ const fieldClassNames = bem("field");
23
+ const CURR_PAYMENT_METHOD = PaymentMethod.ONLINE_BANKING_FINLAND;
24
+ const OnlineBankingFinland = w((props, ref) => {
25
+ const {
26
+ session,
27
+ core,
28
+ showGuideCard = true,
29
+ hidePaymentButton = false
30
+ } = props;
31
+ F(ref, () => ({
32
+ stopRetry: () => stopRetry(),
33
+ startRetry: (timeout) => startRetry(timeout),
34
+ updateAddress: () => {
35
+ var _a;
36
+ if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
37
+ return;
38
+ const address = addressCore.getAddressState();
39
+ form.address = address;
40
+ setForm(form);
41
+ (_a = addressFieldRef.current) == null ? void 0 : _a.update(address);
42
+ validateFormSilently();
43
+ },
44
+ updateEmail: () => {
45
+ var _a;
46
+ if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
47
+ return;
48
+ form.email = emailState.email;
49
+ setForm(form);
50
+ (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
51
+ validateFormSilently();
52
+ },
53
+ payment: () => {
54
+ hidePaymentButton && onSubmit();
55
+ }
56
+ }));
57
+ const { i18n, sessionReady, disabled } = usePayState(session, props.core);
58
+ y(() => {
59
+ if (!sessionReady)
60
+ return;
61
+ const { country, bill = {} } = (session == null ? void 0 : session.checkout) || {};
62
+ country && addressCore.setCountry(country);
63
+ form.address.country = country;
64
+ form.email = bill.email ?? "";
65
+ }, [sessionReady]);
66
+ const {
67
+ isEnabled,
68
+ fieldStatus,
69
+ paymentButtonStatus,
70
+ setPaymentButtonStatus,
71
+ errorMessage,
72
+ setErrorMessage,
73
+ payment,
74
+ startRetry,
75
+ stopRetry,
76
+ getPaymentMethodContext
77
+ } = useBaseWallet(CURR_PAYMENT_METHOD, props, {
78
+ getFormData: () => {
79
+ return {
80
+ ...form
81
+ };
82
+ }
83
+ });
84
+ const addressCore = core.getAddressCore();
85
+ const emailState = createEmailCore();
86
+ const addressFieldRef = A(null);
87
+ const emailFieldRef = A(null);
88
+ const formRef = A(null);
89
+ const [form, setForm] = h({
90
+ email: "",
91
+ address: { ...DEFAULT_ADDRESS }
92
+ });
93
+ const [validated, setValidated] = h(false);
94
+ const validateFormSilently = () => {
95
+ var _a;
96
+ (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => setValidated(true)).catch(() => setValidated(false));
97
+ };
98
+ const setFormRef = (dom) => {
99
+ formRef.current = dom;
100
+ dom && validateFormSilently();
101
+ };
102
+ y(() => validateFormSilently(), [form]);
103
+ const onSubmit = () => {
104
+ var _a;
105
+ setErrorMessage("");
106
+ (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
107
+ var _a2;
108
+ (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
109
+ const submitResult = await ((_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors, getPaymentMethodContext()));
110
+ if (submitResult === false)
111
+ return;
112
+ if (errors) {
113
+ setPaymentButtonStatus("unSubmit");
114
+ return;
115
+ }
116
+ setPaymentButtonStatus("loading");
117
+ await payment();
118
+ });
119
+ };
120
+ const Email = () => {
121
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.email.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
122
+ EmailField,
123
+ {
124
+ ref: emailFieldRef,
125
+ value: form.email,
126
+ disabled: (fieldStatus == null ? void 0 : fieldStatus.email.disabled) || disabled
127
+ }
128
+ ) }) });
129
+ };
130
+ const Address = () => {
131
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
132
+ AddressField,
133
+ {
134
+ ref: addressFieldRef,
135
+ value: form.address,
136
+ disabled,
137
+ onChange: (value) => setForm(Object.assign(form, { address: value }))
138
+ }
139
+ ) }) });
140
+ };
141
+ const Button = () => {
142
+ return /* @__PURE__ */ u(
143
+ PaymentButton,
144
+ {
145
+ className: bem("button"),
146
+ status: paymentButtonStatus,
147
+ disabled,
148
+ verified: validated,
149
+ onClick: onSubmit
150
+ }
151
+ );
152
+ };
153
+ const ErrorMessage = () => {
154
+ return /* @__PURE__ */ u(b, { children: !!errorMessage && /* @__PURE__ */ u(Info, { content: errorMessage }) });
155
+ };
156
+ return /* @__PURE__ */ u(
157
+ CoreContext.Provider,
158
+ {
159
+ value: {
160
+ i18n,
161
+ session,
162
+ core
163
+ },
164
+ children: isEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
165
+ showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.ONLINE_BANKING_FINLAND }),
166
+ /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
167
+ Email(),
168
+ Address(),
169
+ /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
170
+ ErrorMessage(),
171
+ !hidePaymentButton && Button()
172
+ ] })
173
+ ] }) })
174
+ ] })
175
+ }
176
+ );
177
+ });
178
+ export {
179
+ OnlineBankingFinland
180
+ };
@@ -0,0 +1 @@
1
+ import "./OnlineBankingFinland.js";
@@ -0,0 +1,180 @@
1
+ import { w, F, y, A, h, u, b } from "../../../core.js";
2
+ import { useBEM } from "../../../hooks/useBEM.js";
3
+ import { CoreContext } from "../../../core/context.js";
4
+ import "../../../utils/card-brand/brands.js";
5
+ import "../../../utils/system-info/get-browser-info.js";
6
+ import { normalizedClass } from "../../../utils/format.js";
7
+ import { PaymentMethod, PaymentCategory, COMMON_CLASS_NAME } from "../../../constant.js";
8
+ import "../../../out/fraud-detection.js";
9
+ import { usePayState } from "../../../hooks/usePayState.js";
10
+ import { useBaseWallet } from "../../../hooks/useBaseWallet.js";
11
+ import { createEmailCore, EmailField } from "../../EmailField/EmailField.js";
12
+ import "../../internal/Form/type.js";
13
+ import "../../internal/Form/context.js";
14
+ import "../../internal/Form/FormItem.js";
15
+ import { Form } from "../../internal/Form/Form.js";
16
+ import { DEFAULT_ADDRESS, AddressField } from "../../AddressField/index.js";
17
+ import { Info } from "../../internal/Info/Info.js";
18
+ import "./online-banking-indonesia.js";
19
+ import { GuideCard } from "../../GuideCard/index.js";
20
+ import { PaymentButton } from "../../PaymentButton/index.js";
21
+ const { bem } = useBEM("online-banking-indonesia");
22
+ const fieldClassNames = bem("field");
23
+ const CURR_PAYMENT_METHOD = PaymentMethod.ONLINE_BANKING_INDONESIA;
24
+ const OnlineBankingIndonesia = w((props, ref) => {
25
+ const {
26
+ session,
27
+ core,
28
+ showGuideCard = true,
29
+ hidePaymentButton = false
30
+ } = props;
31
+ F(ref, () => ({
32
+ stopRetry: () => stopRetry(),
33
+ startRetry: (timeout) => startRetry(timeout),
34
+ updateAddress: () => {
35
+ var _a;
36
+ if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
37
+ return;
38
+ const address = addressCore.getAddressState();
39
+ form.address = address;
40
+ setForm(form);
41
+ (_a = addressFieldRef.current) == null ? void 0 : _a.update(address);
42
+ validateFormSilently();
43
+ },
44
+ updateEmail: () => {
45
+ var _a;
46
+ if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
47
+ return;
48
+ form.email = emailState.email;
49
+ setForm(form);
50
+ (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
51
+ validateFormSilently();
52
+ },
53
+ payment: () => {
54
+ hidePaymentButton && onSubmit();
55
+ }
56
+ }));
57
+ const { i18n, sessionReady, disabled } = usePayState(session, props.core);
58
+ y(() => {
59
+ if (!sessionReady)
60
+ return;
61
+ const { country, bill = {} } = (session == null ? void 0 : session.checkout) || {};
62
+ country && addressCore.setCountry(country);
63
+ form.address.country = country;
64
+ form.email = bill.email ?? "";
65
+ }, [sessionReady]);
66
+ const {
67
+ isEnabled,
68
+ fieldStatus,
69
+ paymentButtonStatus,
70
+ setPaymentButtonStatus,
71
+ errorMessage,
72
+ setErrorMessage,
73
+ payment,
74
+ startRetry,
75
+ stopRetry,
76
+ getPaymentMethodContext
77
+ } = useBaseWallet(CURR_PAYMENT_METHOD, props, {
78
+ getFormData: () => {
79
+ return {
80
+ ...form
81
+ };
82
+ }
83
+ });
84
+ const addressCore = core.getAddressCore();
85
+ const emailState = createEmailCore();
86
+ const addressFieldRef = A(null);
87
+ const emailFieldRef = A(null);
88
+ const formRef = A(null);
89
+ const [form, setForm] = h({
90
+ email: "",
91
+ address: { ...DEFAULT_ADDRESS }
92
+ });
93
+ const [validated, setValidated] = h(false);
94
+ const validateFormSilently = () => {
95
+ var _a;
96
+ (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => setValidated(true)).catch(() => setValidated(false));
97
+ };
98
+ const setFormRef = (dom) => {
99
+ formRef.current = dom;
100
+ dom && validateFormSilently();
101
+ };
102
+ y(() => validateFormSilently(), [form]);
103
+ const onSubmit = () => {
104
+ var _a;
105
+ setErrorMessage("");
106
+ (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
107
+ var _a2;
108
+ (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
109
+ const submitResult = await ((_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors, getPaymentMethodContext()));
110
+ if (submitResult === false)
111
+ return;
112
+ if (errors) {
113
+ setPaymentButtonStatus("unSubmit");
114
+ return;
115
+ }
116
+ setPaymentButtonStatus("loading");
117
+ await payment();
118
+ });
119
+ };
120
+ const Email = () => {
121
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.email.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
122
+ EmailField,
123
+ {
124
+ ref: emailFieldRef,
125
+ value: form.email,
126
+ disabled: (fieldStatus == null ? void 0 : fieldStatus.email.disabled) || disabled
127
+ }
128
+ ) }) });
129
+ };
130
+ const Address = () => {
131
+ return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
132
+ AddressField,
133
+ {
134
+ ref: addressFieldRef,
135
+ value: form.address,
136
+ disabled,
137
+ onChange: (value) => setForm(Object.assign(form, { address: value }))
138
+ }
139
+ ) }) });
140
+ };
141
+ const Button = () => {
142
+ return /* @__PURE__ */ u(
143
+ PaymentButton,
144
+ {
145
+ className: bem("button"),
146
+ status: paymentButtonStatus,
147
+ disabled,
148
+ verified: validated,
149
+ onClick: onSubmit
150
+ }
151
+ );
152
+ };
153
+ const ErrorMessage = () => {
154
+ return /* @__PURE__ */ u(b, { children: !!errorMessage && /* @__PURE__ */ u(Info, { content: errorMessage }) });
155
+ };
156
+ return /* @__PURE__ */ u(
157
+ CoreContext.Provider,
158
+ {
159
+ value: {
160
+ i18n,
161
+ session,
162
+ core
163
+ },
164
+ children: isEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
165
+ showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.ONLINE_BANKING_INDONESIA }),
166
+ /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
167
+ Email(),
168
+ Address(),
169
+ /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
170
+ ErrorMessage(),
171
+ !hidePaymentButton && Button()
172
+ ] })
173
+ ] }) })
174
+ ] })
175
+ }
176
+ );
177
+ });
178
+ export {
179
+ OnlineBankingIndonesia
180
+ };
@@ -0,0 +1 @@
1
+ import "./OnlineBankingIndonesia.js";