@paypal/checkout-components 5.0.236 → 5.0.238

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.
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { VerkkopankkiLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getVerkkopankkiConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  automatic: false,
14
16
 
@@ -18,6 +20,23 @@ export function getVerkkopankkiConfig() : FundingSourceConfig {
18
20
 
19
21
  shippingChange: false,
20
22
 
21
- Logo: ({ logoColor, optional }) => VerkkopankkiLogo({ logoColor, optional })
23
+ Logo: ({ logoColor, optional }) => VerkkopankkiLogo({ logoColor, optional }),
24
+
25
+ Label: ({ logo, ...opts }) => {
26
+ if (__WEB__) {
27
+ return logo;
28
+ }
29
+
30
+ const apmLogo = (
31
+ <Fragment>
32
+ { logo }<Space /><Text animate optional>Verkkopankki</Text>
33
+ </Fragment>
34
+ );
35
+
36
+ return (<BasicLabel
37
+ { ...opts }
38
+ logo={ apmLogo }
39
+ />);
40
+ }
22
41
  };
23
42
  }
@@ -2,13 +2,15 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { WechatpayLogo } from '@paypal/sdk-logos/src';
5
+ import { Fragment, node } from '@krakenjs/jsx-pragmatic/src';
5
6
 
6
7
  import { BUTTON_LAYOUT } from '../../constants';
7
- import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from '../common';
8
+ import { DEFAULT_APM_FUNDING_CONFIG, type FundingSourceConfig, BasicLabel } from '../common';
9
+ import { Text, Space } from '../../ui/text';
8
10
 
9
11
  export function getWechatpayConfig() : FundingSourceConfig {
10
12
  return {
11
- ...DEFAULT_FUNDING_CONFIG,
13
+ ...DEFAULT_APM_FUNDING_CONFIG,
12
14
 
13
15
  shippingChange: false,
14
16
 
@@ -16,6 +18,23 @@ export function getWechatpayConfig() : FundingSourceConfig {
16
18
  BUTTON_LAYOUT.VERTICAL
17
19
  ],
18
20
 
19
- Logo: ({ logoColor, optional }) => WechatpayLogo({ logoColor, optional })
21
+ Logo: ({ logoColor, optional }) => WechatpayLogo({ logoColor, optional }),
22
+
23
+ Label: ({ logo, ...opts }) => {
24
+ if (__WEB__) {
25
+ return logo;
26
+ }
27
+
28
+ const apmLogo = (
29
+ <Fragment>
30
+ { logo }<Space /><Text animate optional>WeChat Pay</Text>
31
+ </Fragment>
32
+ );
33
+
34
+ return (<BasicLabel
35
+ { ...opts }
36
+ logo={ apmLogo }
37
+ />);
38
+ }
20
39
  };
21
40
  }
@@ -8,6 +8,7 @@ import { allowIframe as _allowIframe } from '../lib';
8
8
  import { getCheckoutComponent, type CheckoutComponent } from '../zoid/checkout';
9
9
  import { getButtonsComponent, type ButtonsComponent } from '../zoid/buttons';
10
10
  import { getCardFormComponent, type CardFormComponent } from '../zoid/card-form';
11
+ import { getPaymentFieldsComponent, type PaymentFieldsComponent } from '../zoid/payment-fields';
11
12
  import { getMenuComponent, type MenuComponent } from '../zoid/menu';
12
13
  import { getInstallmentsComponent, type InstallmentsComponent } from '../zoid/installments';
13
14
  import { Buttons as _ButtonsTemplate } from '../ui/buttons';
@@ -32,6 +33,10 @@ export const CardForm : LazyProtectedExport<CardFormComponent> = {
32
33
  __get__: () => protectedExport(getCardFormComponent())
33
34
  };
34
35
 
36
+ export const PaymentFields : LazyProtectedExport<PaymentFieldsComponent> = {
37
+ __get__: () => protectedExport(getPaymentFieldsComponent())
38
+ };
39
+
35
40
  export const Menu : LazyProtectedExport<MenuComponent> = {
36
41
  __get__: () => protectedExport(getMenuComponent())
37
42
  };
@@ -2,7 +2,7 @@
2
2
  /** @jsx node */
3
3
 
4
4
  import { node, type ElementNode } from '@krakenjs/jsx-pragmatic/src';
5
- import { FUNDING, WALLET_INSTRUMENT } from '@paypal/sdk-constants/src';
5
+ import { FUNDING, WALLET_INSTRUMENT, APM_LIST } from '@paypal/sdk-constants/src';
6
6
  import { noop } from '@krakenjs/belter/src';
7
7
 
8
8
  import type { Wallet, WalletInstrument } from '../../types';
@@ -124,6 +124,10 @@ export function Buttons(props : ButtonsProps) : ElementNode {
124
124
  }
125
125
  }
126
126
 
127
+ const isAPM = fundingSources.some(src => {
128
+ return APM_LIST.includes(src);
129
+ });
130
+
127
131
  const instruments = getWalletInstruments({ wallet, fundingSources, layout, onShippingChange, onShippingAddressChange, onShippingOptionsChange });
128
132
 
129
133
  const isWallet = (
@@ -210,6 +214,12 @@ export function Buttons(props : ButtonsProps) : ElementNode {
210
214
  : null
211
215
  }
212
216
 
217
+ {
218
+ (isAPM)
219
+ ? <div id="payment-fields-container" className="payment-fields-container"/>
220
+ : null
221
+ }
222
+
213
223
  {
214
224
  (layout === BUTTON_LAYOUT.VERTICAL && fundingSources.indexOf(FUNDING.CARD) !== -1 && !inlineExperience)
215
225
  ? <PoweredByPayPal
@@ -62,6 +62,140 @@ export const buttonColorStyle = `
62
62
  background: #008CFF;
63
63
  }
64
64
 
65
+ /* For APM funding sources, default button color to be defined by payment scheme branding guidelines */
66
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
67
+ background: #2C2E2F;
68
+ }
69
+
70
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
71
+ background: linear-gradient(to right, #1E3764, #005AB9);
72
+ }
73
+
74
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
75
+ background: #2C2E2F;
76
+ }
77
+
78
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
79
+ background: #2C2E2F;
80
+ }
81
+
82
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
83
+ background: #C8036F;
84
+ }
85
+
86
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
87
+ background: #003A7D;
88
+ }
89
+
90
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
91
+ background: #2C2E2F;
92
+ }
93
+
94
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
95
+ background: #1D2647;
96
+ }
97
+
98
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
99
+ background: #1866AB;
100
+ }
101
+
102
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
103
+ background: #1A4B67;
104
+ }
105
+
106
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
107
+ background: #D8232A;
108
+ }
109
+
110
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
111
+ background: #D03238;
112
+ }
113
+
114
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
115
+ background: #393A41;
116
+ }
117
+
118
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
119
+ background: #003140;
120
+ }
121
+
122
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
123
+ background: #005596;
124
+ }
125
+
126
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT } {
127
+ background: #4D4D4D;
128
+ }
129
+
130
+ /* APM button hover actions */
131
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
132
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
133
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
134
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
135
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
136
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
137
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
138
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
139
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
140
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
141
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
142
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
143
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
144
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
145
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover,
146
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:hover {
147
+ filter: brightness(1.2);
148
+ }
149
+
150
+ /* APM button on focus actions */
151
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
152
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
153
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
154
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
155
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
156
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
157
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
158
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
159
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
160
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
161
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
162
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
163
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
164
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
165
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus,
166
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus {
167
+ outline: none;
168
+ }
169
+
170
+ /* APM button after focus actions */
171
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BLIK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
172
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BANCONTACT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
173
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
174
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.BOLETOBANCARIO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
175
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.EPS }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
176
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.GIROPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
177
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.IDEAL }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
178
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MERCADOPAGO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
179
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MULTIBANCO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
180
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.MYBANK }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
181
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.OXXO }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
182
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.P24 }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
183
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.SOFORT }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
184
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.TRUSTLY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
185
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.VERKKOPANKKI }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after,
186
+ .${ CLASS.BUTTON }[${ ATTRIBUTE.FUNDING_SOURCE }=${ FUNDING.WECHATPAY }].${ CLASS.COLOR }-${ BUTTON_COLOR.DEFAULT }:focus::after {
187
+ content: '';
188
+ position: absolute;
189
+ top: 5px;
190
+ right: 5px;
191
+ bottom: 5px;
192
+ left: 5px;
193
+ border: 0.125rem solid #009cde;
194
+ border-radius: inherit;
195
+ box-shadow: 0 0 0 0.5rem #0000a6;
196
+ pointer-events: none;
197
+ }
198
+
65
199
  @media (hover:hover) {
66
200
  .${ CLASS.BUTTON }.${ CLASS.COLOR }-${ BUTTON_COLOR.BLUE }:hover {
67
201
  filter: brightness(0.95);
@@ -122,6 +122,32 @@ export function getPaymentFieldsComponent() : PaymentFieldsComponent {
122
122
  required: false
123
123
  },
124
124
 
125
+ onError: {
126
+ type: 'function',
127
+ required: false
128
+ },
129
+
130
+ onContinue: {
131
+ type: 'function',
132
+ required: false
133
+ },
134
+
135
+ onClose: {
136
+ type: 'function',
137
+ required: false
138
+ },
139
+
140
+ showActionButtons: {
141
+ type: 'boolean',
142
+ queryParam: true,
143
+ required: false
144
+ },
145
+
146
+ onFieldsClose: {
147
+ type: 'function',
148
+ required: false
149
+ },
150
+
125
151
  buyerCountry: {
126
152
  type: 'string',
127
153
  queryParam: true,