@paypal/checkout-components 5.0.412-alpha-84b7728.0 → 5.0.412
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.
- package/dist/button.js +1 -1
- package/dist/saved-payment-methods.js +1 -0
- package/dist/test/button.js +1 -1
- package/package.json +2 -2
- package/src/funding/common.jsx +0 -6
- package/src/funding/itau/config.jsx +5 -15
- package/src/funding/sepa/config.jsx +1 -29
- package/src/lib/appSwitchResume.js +4 -1
- package/src/lib/appSwithResume.test.js +19 -0
- package/src/ui/buttons/config.js +26 -50
- package/src/ui/buttons/poweredBy.jsx +3 -8
- package/src/ui/buttons/props.js +29 -2
- package/src/ui/buttons/props.test.js +42 -0
- package/src/ui/buttons/styles/button.js +3 -21
- package/src/ui/buttons/styles/color.js +41 -59
- package/src/ui/buttons/styles/labels.js +0 -1
- package/src/ui/buttons/styles/responsive.js +39 -69
- package/src/ui/buttons/styles/styleUtils.js +5 -9
- package/src/ui/buttons/styles/styleUtils.test.js +54 -18
- package/src/ui/buttons/tagline.jsx +3 -1
- package/src/ui/saved-payment-methods/index.js +3 -0
- package/src/ui/saved-payment-methods/template.jsx +255 -0
- package/src/ui/saved-payment-methods/template.test.jsx +23 -0
- package/src/zoid/saved-payment-methods/container.jsx +0 -1
- package/src/zoid/saved-payment-methods/prerender.jsx +9 -19
- package/src/ui/buttons/styles/disableMaxHeightConfig.test.js +0 -71
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paypal/checkout-components",
|
|
3
|
-
"version": "5.0.412
|
|
3
|
+
"version": "5.0.412",
|
|
4
4
|
"description": "PayPal Checkout components, for integrating checkout products.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
"@paypal/funding-components": "^1.0.31",
|
|
124
124
|
"@paypal/sdk-client": "^4.0.199",
|
|
125
125
|
"@paypal/sdk-constants": "^1.0.156",
|
|
126
|
-
"@paypal/sdk-logos": "^2.3.
|
|
126
|
+
"@paypal/sdk-logos": "^2.3.2"
|
|
127
127
|
},
|
|
128
128
|
"lint-staged": {
|
|
129
129
|
"**/*": "prettier --write --ignore-unknown"
|
package/src/funding/common.jsx
CHANGED
|
@@ -256,8 +256,6 @@ export const DEFAULT_APM_FUNDING_CONFIG: FundingSourceConfig = {
|
|
|
256
256
|
BUTTON_COLOR.SILVER,
|
|
257
257
|
BUTTON_COLOR.WHITE,
|
|
258
258
|
BUTTON_COLOR.BLACK,
|
|
259
|
-
BUTTON_COLOR.REBRAND_BLACK,
|
|
260
|
-
BUTTON_COLOR.REBRAND_WHITE,
|
|
261
259
|
],
|
|
262
260
|
|
|
263
261
|
logoColors: {
|
|
@@ -265,8 +263,6 @@ export const DEFAULT_APM_FUNDING_CONFIG: FundingSourceConfig = {
|
|
|
265
263
|
[BUTTON_COLOR.SILVER]: LOGO_COLOR.BLACK,
|
|
266
264
|
[BUTTON_COLOR.WHITE]: LOGO_COLOR.BLACK,
|
|
267
265
|
[BUTTON_COLOR.BLACK]: LOGO_COLOR.WHITE,
|
|
268
|
-
[BUTTON_COLOR.REBRAND_BLACK]: LOGO_COLOR.WHITE,
|
|
269
|
-
[BUTTON_COLOR.REBRAND_WHITE]: LOGO_COLOR.BLACK,
|
|
270
266
|
},
|
|
271
267
|
|
|
272
268
|
textColors: {
|
|
@@ -274,8 +270,6 @@ export const DEFAULT_APM_FUNDING_CONFIG: FundingSourceConfig = {
|
|
|
274
270
|
[BUTTON_COLOR.BLACK]: TEXT_COLOR.WHITE,
|
|
275
271
|
[BUTTON_COLOR.SILVER]: TEXT_COLOR.BLACK,
|
|
276
272
|
[BUTTON_COLOR.WHITE]: TEXT_COLOR.BLACK,
|
|
277
|
-
[BUTTON_COLOR.REBRAND_BLACK]: TEXT_COLOR.WHITE,
|
|
278
|
-
[BUTTON_COLOR.REBRAND_WHITE]: TEXT_COLOR.BLACK,
|
|
279
273
|
},
|
|
280
274
|
|
|
281
275
|
secondaryColors: {
|
|
@@ -24,32 +24,22 @@ export function getItauConfig(): FundingSourceConfig {
|
|
|
24
24
|
return ItauLogoInlineSVG({ logoColor, optional });
|
|
25
25
|
},
|
|
26
26
|
|
|
27
|
-
colors: [
|
|
28
|
-
BUTTON_COLOR.DEFAULT,
|
|
29
|
-
BUTTON_COLOR.DARKBLUE,
|
|
30
|
-
BUTTON_COLOR.BLUE,
|
|
31
|
-
BUTTON_COLOR.BLACK,
|
|
32
|
-
BUTTON_COLOR.REBRAND_BLACK,
|
|
33
|
-
BUTTON_COLOR.REBRAND_WHITE,
|
|
34
|
-
],
|
|
27
|
+
colors: [BUTTON_COLOR.DARKBLUE, BUTTON_COLOR.BLUE, BUTTON_COLOR.BLACK],
|
|
35
28
|
|
|
36
29
|
logoColors: {
|
|
37
|
-
[BUTTON_COLOR.DEFAULT]: LOGO_COLOR.WHITE,
|
|
38
30
|
[BUTTON_COLOR.DARKBLUE]: LOGO_COLOR.WHITE,
|
|
39
31
|
[BUTTON_COLOR.BLUE]: LOGO_COLOR.WHITE,
|
|
40
32
|
[BUTTON_COLOR.BLACK]: LOGO_COLOR.WHITE,
|
|
41
|
-
[BUTTON_COLOR.REBRAND_BLACK]: LOGO_COLOR.WHITE,
|
|
42
|
-
[BUTTON_COLOR.REBRAND_WHITE]: LOGO_COLOR.BLACK,
|
|
43
33
|
},
|
|
44
34
|
|
|
45
35
|
secondaryColors: {
|
|
46
36
|
...DEFAULT_FUNDING_CONFIG.secondaryColors,
|
|
47
37
|
|
|
48
|
-
[DEFAULT]: BUTTON_COLOR.
|
|
49
|
-
[BUTTON_COLOR.GOLD]: BUTTON_COLOR.
|
|
38
|
+
[DEFAULT]: BUTTON_COLOR.DARKBLUE,
|
|
39
|
+
[BUTTON_COLOR.GOLD]: BUTTON_COLOR.DARKBLUE,
|
|
50
40
|
[BUTTON_COLOR.BLUE]: BUTTON_COLOR.BLUE,
|
|
51
|
-
[BUTTON_COLOR.SILVER]: BUTTON_COLOR.
|
|
52
|
-
[BUTTON_COLOR.WHITE]: BUTTON_COLOR.
|
|
41
|
+
[BUTTON_COLOR.SILVER]: BUTTON_COLOR.DARKBLUE,
|
|
42
|
+
[BUTTON_COLOR.WHITE]: BUTTON_COLOR.DARKBLUE,
|
|
53
43
|
},
|
|
54
44
|
};
|
|
55
45
|
}
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
import {
|
|
5
5
|
SepaLogoInlineSVG,
|
|
6
6
|
SepaLogoExternalImage,
|
|
7
|
-
LOGO_COLOR,
|
|
8
7
|
} from "@paypal/sdk-logos/src";
|
|
9
8
|
|
|
10
|
-
import {
|
|
9
|
+
import { BUTTON_LAYOUT } from "../../constants";
|
|
11
10
|
import { DEFAULT_FUNDING_CONFIG, type FundingSourceConfig } from "../common";
|
|
12
11
|
|
|
13
12
|
export function getSepaConfig(): FundingSourceConfig {
|
|
@@ -16,33 +15,6 @@ export function getSepaConfig(): FundingSourceConfig {
|
|
|
16
15
|
|
|
17
16
|
layouts: [BUTTON_LAYOUT.VERTICAL],
|
|
18
17
|
|
|
19
|
-
colors: [
|
|
20
|
-
BUTTON_COLOR.DEFAULT,
|
|
21
|
-
BUTTON_COLOR.SILVER,
|
|
22
|
-
BUTTON_COLOR.BLACK,
|
|
23
|
-
BUTTON_COLOR.WHITE,
|
|
24
|
-
BUTTON_COLOR.REBRAND_BLACK,
|
|
25
|
-
BUTTON_COLOR.REBRAND_WHITE,
|
|
26
|
-
],
|
|
27
|
-
|
|
28
|
-
logoColors: {
|
|
29
|
-
[BUTTON_COLOR.DEFAULT]: LOGO_COLOR.BLACK,
|
|
30
|
-
[BUTTON_COLOR.SILVER]: LOGO_COLOR.BLACK,
|
|
31
|
-
[BUTTON_COLOR.WHITE]: LOGO_COLOR.BLACK,
|
|
32
|
-
[BUTTON_COLOR.BLACK]: LOGO_COLOR.WHITE,
|
|
33
|
-
[BUTTON_COLOR.REBRAND_BLACK]: LOGO_COLOR.WHITE,
|
|
34
|
-
[BUTTON_COLOR.REBRAND_WHITE]: LOGO_COLOR.BLACK,
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
textColors: {
|
|
38
|
-
[BUTTON_COLOR.DEFAULT]: TEXT_COLOR.BLACK,
|
|
39
|
-
[BUTTON_COLOR.SILVER]: TEXT_COLOR.BLACK,
|
|
40
|
-
[BUTTON_COLOR.WHITE]: TEXT_COLOR.BLACK,
|
|
41
|
-
[BUTTON_COLOR.BLACK]: TEXT_COLOR.WHITE,
|
|
42
|
-
[BUTTON_COLOR.REBRAND_BLACK]: TEXT_COLOR.WHITE,
|
|
43
|
-
[BUTTON_COLOR.REBRAND_WHITE]: TEXT_COLOR.BLACK,
|
|
44
|
-
},
|
|
45
|
-
|
|
46
18
|
Logo: ({ logoColor, optional }) => {
|
|
47
19
|
if (__WEB__) {
|
|
48
20
|
return SepaLogoExternalImage({ logoColor, optional });
|
|
@@ -44,7 +44,10 @@ function parseHashFragment(): {| hash: string, queryString: string |} {
|
|
|
44
44
|
) {
|
|
45
45
|
return {
|
|
46
46
|
hash: possibleAction,
|
|
47
|
-
|
|
47
|
+
// Normalize embedded ? → & so parseQuery can extract all params.
|
|
48
|
+
// XOOS bug appends ?token=... inside a fragment, producing
|
|
49
|
+
// "merchantHash?token=EC-123" instead of "merchantHash&token=EC-123".
|
|
50
|
+
queryString: hashString.slice(ampersandIndex + 1).replace("?", "&"),
|
|
48
51
|
};
|
|
49
52
|
}
|
|
50
53
|
}
|
|
@@ -424,6 +424,25 @@ describe("app switch resume flow", () => {
|
|
|
424
424
|
expect(isAppSwitchResumeFlow()).toEqual(true);
|
|
425
425
|
});
|
|
426
426
|
|
|
427
|
+
test("#onCancel&hash?token=... - XOOS malformed URL with token after merchant hash", () => {
|
|
428
|
+
// DTXOOS-3741: XOOS appends ?token=... after the merchant's hash fragment,
|
|
429
|
+
// producing hash?token=EC-123. The embedded ? must be normalized to & so that
|
|
430
|
+
// parseQuery can extract the token correctly.
|
|
431
|
+
vi.spyOn(window, "location", "get").mockReturnValue({
|
|
432
|
+
hash: `#onCancel&hash?token=${orderID}&button_session_id=${buttonSessionID}`,
|
|
433
|
+
search: "",
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
const params = getAppSwitchResumeParams();
|
|
437
|
+
|
|
438
|
+
expect(params).toEqual({
|
|
439
|
+
buttonSessionID,
|
|
440
|
+
checkoutState: "onCancel",
|
|
441
|
+
orderID,
|
|
442
|
+
});
|
|
443
|
+
expect(isAppSwitchResumeFlow()).toEqual(true);
|
|
444
|
+
});
|
|
445
|
+
|
|
427
446
|
test("#onApprove?token=...&hash?param=value - native app return with ? delimiter and merchant hash containing ?", () => {
|
|
428
447
|
// Native app uses ? delimiter, and merchant hash also contains ?.
|
|
429
448
|
// The first ? splits action from params; the second ? is just part of param values.
|
package/src/ui/buttons/config.js
CHANGED
|
@@ -27,22 +27,6 @@ export const BUTTON_RELATIVE_STYLE = {
|
|
|
27
27
|
VERTICAL_MARGIN: 30,
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
// Rebrand label container height as a ratio of button height (0.5 = 50%).
|
|
31
|
-
// The PayPal logo's translateY is derived from this value to keep the logo
|
|
32
|
-
// visually centered. If this ratio changes, the translateY percentage must
|
|
33
|
-
// be recalculated: translateY = LOGO_VISUAL_OFFSET / LABEL_HEIGHT_RATIO.
|
|
34
|
-
// Additionally, the Venmo and Card glyph viewBox/height in @paypal/sdk-logos
|
|
35
|
-
// must be updated to match the new label container height.
|
|
36
|
-
export const REBRAND_LABEL_HEIGHT_RATIO = 0.5;
|
|
37
|
-
|
|
38
|
-
// Fixed visual offset of the PayPal logo as a fraction of total button height.
|
|
39
|
-
// translateY percentage = LOGO_VISUAL_OFFSET / LABEL_HEIGHT_RATIO
|
|
40
|
-
// Current: 0.06 / 0.5 = 0.12 (12%)
|
|
41
|
-
const LOGO_VISUAL_OFFSET = 0.06;
|
|
42
|
-
export const REBRAND_LOGO_TRANSLATE_Y: number = Math.round(
|
|
43
|
-
(LOGO_VISUAL_OFFSET / REBRAND_LABEL_HEIGHT_RATIO) * 100
|
|
44
|
-
);
|
|
45
|
-
|
|
46
30
|
type ButtonStyleMap = {
|
|
47
31
|
[$Values<typeof BUTTON_SIZE>]: {|
|
|
48
32
|
defaultWidth: number,
|
|
@@ -69,8 +53,8 @@ type ButtonRedesignStyleMap = {
|
|
|
69
53
|
maxHeight: number,
|
|
70
54
|
minWidth: number,
|
|
71
55
|
maxWidth: number,
|
|
72
|
-
gap
|
|
73
|
-
fontSize
|
|
56
|
+
gap?: number,
|
|
57
|
+
fontSize?: number,
|
|
74
58
|
|},
|
|
75
59
|
};
|
|
76
60
|
|
|
@@ -185,7 +169,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
185
169
|
minWidth: 50,
|
|
186
170
|
maxWidth: 75,
|
|
187
171
|
gap: 3,
|
|
188
|
-
fontSize:
|
|
172
|
+
fontSize: 12,
|
|
189
173
|
},
|
|
190
174
|
|
|
191
175
|
[BUTTON_REDESIGN_SIZE.TINY]: {
|
|
@@ -195,7 +179,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
195
179
|
minWidth: 75,
|
|
196
180
|
maxWidth: 200,
|
|
197
181
|
gap: 3,
|
|
198
|
-
fontSize:
|
|
182
|
+
fontSize: 12,
|
|
199
183
|
},
|
|
200
184
|
|
|
201
185
|
[BUTTON_REDESIGN_SIZE.SMALL]: {
|
|
@@ -204,8 +188,8 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
204
188
|
maxHeight: 35,
|
|
205
189
|
minWidth: 200,
|
|
206
190
|
maxWidth: 250,
|
|
207
|
-
gap:
|
|
208
|
-
fontSize:
|
|
191
|
+
gap: 3,
|
|
192
|
+
fontSize: 14,
|
|
209
193
|
},
|
|
210
194
|
|
|
211
195
|
[BUTTON_REDESIGN_SIZE.MEDIUM_SMALL]: {
|
|
@@ -215,7 +199,7 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
215
199
|
minWidth: 250,
|
|
216
200
|
maxWidth: 300,
|
|
217
201
|
gap: 4,
|
|
218
|
-
fontSize:
|
|
202
|
+
fontSize: 16,
|
|
219
203
|
},
|
|
220
204
|
|
|
221
205
|
[BUTTON_REDESIGN_SIZE.MEDIUM_BIG]: {
|
|
@@ -224,8 +208,8 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
224
208
|
maxHeight: 45,
|
|
225
209
|
minWidth: 300,
|
|
226
210
|
maxWidth: 350,
|
|
227
|
-
gap:
|
|
228
|
-
fontSize:
|
|
211
|
+
gap: 4,
|
|
212
|
+
fontSize: 16,
|
|
229
213
|
},
|
|
230
214
|
|
|
231
215
|
[BUTTON_REDESIGN_SIZE.LARGE_SMALL]: {
|
|
@@ -235,17 +219,17 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
235
219
|
minWidth: 350,
|
|
236
220
|
maxWidth: 425,
|
|
237
221
|
gap: 5,
|
|
238
|
-
fontSize:
|
|
222
|
+
fontSize: 18,
|
|
239
223
|
},
|
|
240
224
|
|
|
241
225
|
[BUTTON_REDESIGN_SIZE.LARGE_BIG]: {
|
|
242
|
-
defaultHeight:
|
|
226
|
+
defaultHeight: 45,
|
|
243
227
|
minHeight: 50,
|
|
244
228
|
maxHeight: 55,
|
|
245
229
|
minWidth: 425,
|
|
246
230
|
maxWidth: 500,
|
|
247
231
|
gap: 5,
|
|
248
|
-
fontSize:
|
|
232
|
+
fontSize: 20,
|
|
249
233
|
},
|
|
250
234
|
|
|
251
235
|
[BUTTON_REDESIGN_SIZE.XL_SMALL]: {
|
|
@@ -253,36 +237,28 @@ export const BUTTON_REDESIGN_STYLE: ButtonRedesignStyleMap = {
|
|
|
253
237
|
minHeight: 55,
|
|
254
238
|
maxHeight: 60,
|
|
255
239
|
minWidth: 500,
|
|
256
|
-
maxWidth:
|
|
240
|
+
maxWidth: 550,
|
|
257
241
|
gap: 6,
|
|
258
|
-
fontSize:
|
|
242
|
+
fontSize: 22,
|
|
259
243
|
},
|
|
260
|
-
};
|
|
261
244
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
XL_BIG: {
|
|
245
|
+
[BUTTON_REDESIGN_SIZE.XL_BIG]: {
|
|
246
|
+
defaultHeight: 55,
|
|
265
247
|
minHeight: 60,
|
|
266
248
|
maxHeight: 65,
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
},
|
|
270
|
-
XXL_SMALL: {
|
|
271
|
-
minHeight: 65,
|
|
272
|
-
maxHeight: 70,
|
|
273
|
-
gap: 7,
|
|
274
|
-
fontSize: 22,
|
|
275
|
-
},
|
|
276
|
-
XXL_BIG: {
|
|
277
|
-
minHeight: 70,
|
|
278
|
-
maxHeight: 75,
|
|
249
|
+
minWidth: 550,
|
|
250
|
+
maxWidth: 650,
|
|
279
251
|
gap: 7,
|
|
280
252
|
fontSize: 24,
|
|
281
253
|
},
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
254
|
+
|
|
255
|
+
[BUTTON_REDESIGN_SIZE.XXL]: {
|
|
256
|
+
defaultHeight: 55,
|
|
257
|
+
minHeight: 65,
|
|
258
|
+
maxHeight: 100,
|
|
259
|
+
minWidth: 650,
|
|
260
|
+
maxWidth: 750,
|
|
261
|
+
gap: 7,
|
|
286
262
|
fontSize: 26,
|
|
287
263
|
},
|
|
288
264
|
};
|
|
@@ -9,7 +9,6 @@ import { CLASS, BUTTON_COLOR_REBRAND } from "../../constants";
|
|
|
9
9
|
import { Text } from "../text";
|
|
10
10
|
|
|
11
11
|
import { buttonContent } from "./content";
|
|
12
|
-
import { REBRAND_LOGO_TRANSLATE_Y } from "./config";
|
|
13
12
|
|
|
14
13
|
const POWERED_BY_PAYPAL_STYLE = `
|
|
15
14
|
.${CLASS.POWERED_BY} {
|
|
@@ -82,7 +81,7 @@ export function PoweredByPayPal({
|
|
|
82
81
|
.${CLASS.POWERED_BY} {
|
|
83
82
|
text-align: center;
|
|
84
83
|
margin: 10px auto;
|
|
85
|
-
height:
|
|
84
|
+
height: 18px;
|
|
86
85
|
font-family: PayPal Plain, system-ui, -apple-system, Roboto, "Segoe UI", Helvetica-Neue, Helvetica, Arial, sans-serif;
|
|
87
86
|
font-size: 10px;
|
|
88
87
|
font-weight: 400;
|
|
@@ -97,13 +96,9 @@ export function PoweredByPayPal({
|
|
|
97
96
|
.${CLASS.POWERED_BY} > .${LOGO_CLASS.LOGO} {
|
|
98
97
|
display: inline-block;
|
|
99
98
|
vertical-align: middle;
|
|
100
|
-
height:
|
|
101
|
-
line-height:
|
|
99
|
+
height: 18px;
|
|
100
|
+
line-height: 18px;
|
|
102
101
|
font-size: 10px;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.${CLASS.POWERED_BY} > .${LOGO_CLASS.LOGO} {
|
|
106
|
-
transform: translateY(${REBRAND_LOGO_TRANSLATE_Y}%);
|
|
107
102
|
}
|
|
108
103
|
`;
|
|
109
104
|
|
package/src/ui/buttons/props.js
CHANGED
|
@@ -813,6 +813,27 @@ export function determineRandomButtonColor({
|
|
|
813
813
|
};
|
|
814
814
|
}
|
|
815
815
|
|
|
816
|
+
export function hasInvalidScriptOptionsForFullRedesign({
|
|
817
|
+
fundingSource,
|
|
818
|
+
}: {|
|
|
819
|
+
fundingSource?: ?$Values<typeof FUNDING>,
|
|
820
|
+
|}): boolean {
|
|
821
|
+
const validFundingSourcesForRedesign = [
|
|
822
|
+
undefined,
|
|
823
|
+
FUNDING.PAYPAL,
|
|
824
|
+
FUNDING.VENMO,
|
|
825
|
+
FUNDING.PAYLATER,
|
|
826
|
+
FUNDING.CREDIT,
|
|
827
|
+
FUNDING.CARD,
|
|
828
|
+
];
|
|
829
|
+
|
|
830
|
+
if (validFundingSourcesForRedesign.includes(fundingSource)) {
|
|
831
|
+
return false;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
return true;
|
|
835
|
+
}
|
|
836
|
+
|
|
816
837
|
export function throwErrorForInvalidButtonColor({
|
|
817
838
|
fundingSource,
|
|
818
839
|
fundingSourceColors,
|
|
@@ -897,10 +918,13 @@ export function getColorForFullRedesign({
|
|
|
897
918
|
[BUTTON_COLOR.BLUE]: BUTTON_COLOR.REBRAND_BLUE,
|
|
898
919
|
[BUTTON_COLOR.DARKBLUE]: BUTTON_COLOR.REBRAND_BLUE,
|
|
899
920
|
[BUTTON_COLOR.GOLD]: BUTTON_COLOR.REBRAND_BLUE,
|
|
921
|
+
|
|
922
|
+
// not mapped yet since the styles are not setup
|
|
923
|
+
// These should never be hit since legacy experience should be set
|
|
900
924
|
[BUTTON_COLOR.BLACK]: BUTTON_COLOR.REBRAND_BLACK,
|
|
901
925
|
[BUTTON_COLOR.WHITE]: BUTTON_COLOR.REBRAND_WHITE,
|
|
902
926
|
[BUTTON_COLOR.SILVER]: BUTTON_COLOR.REBRAND_WHITE,
|
|
903
|
-
[BUTTON_COLOR.DEFAULT]: BUTTON_COLOR.
|
|
927
|
+
[BUTTON_COLOR.DEFAULT]: BUTTON_COLOR.REBRAND_BLUE,
|
|
904
928
|
|
|
905
929
|
// normalizeButtonStyle gets called multiple times and
|
|
906
930
|
// it can be called after color is already be mapped to rebranded style
|
|
@@ -940,6 +964,9 @@ export function getButtonColorExperience({
|
|
|
940
964
|
}: GetButtonColorExperienceArgs): "abTest" | "fullRebrand" | "legacy" {
|
|
941
965
|
const { isPaypalRebrandEnabled, isPaypalRebrandABTestEnabled } =
|
|
942
966
|
experiment || {};
|
|
967
|
+
const rejectRedesign = hasInvalidScriptOptionsForFullRedesign({
|
|
968
|
+
fundingSource,
|
|
969
|
+
});
|
|
943
970
|
|
|
944
971
|
if (!isPaypalRebrandEnabled) {
|
|
945
972
|
return "legacy";
|
|
@@ -950,7 +977,7 @@ export function getButtonColorExperience({
|
|
|
950
977
|
return fundingSource === FUNDING.PAYPAL ? "abTest" : "legacy";
|
|
951
978
|
}
|
|
952
979
|
|
|
953
|
-
return "fullRebrand";
|
|
980
|
+
return rejectRedesign ? "legacy" : "fullRebrand";
|
|
954
981
|
}
|
|
955
982
|
|
|
956
983
|
export function getButtonColor({
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
getColorForABTest,
|
|
12
12
|
getDefaultColorForFundingSource,
|
|
13
13
|
throwErrorForInvalidButtonColor,
|
|
14
|
+
hasInvalidScriptOptionsForFullRedesign,
|
|
14
15
|
determineRandomButtonColor,
|
|
15
16
|
getColorABTestFromStorage,
|
|
16
17
|
} from "./props";
|
|
@@ -127,6 +128,47 @@ describe("determineRandomButtonColor", () => {
|
|
|
127
128
|
});
|
|
128
129
|
});
|
|
129
130
|
|
|
131
|
+
describe("hasInvalidScriptOptionsForFullRedesign", () => {
|
|
132
|
+
const validFundingSources = [
|
|
133
|
+
FUNDING.PAYPAL,
|
|
134
|
+
FUNDING.PAYLATER,
|
|
135
|
+
FUNDING.CREDIT,
|
|
136
|
+
FUNDING.CARD,
|
|
137
|
+
FUNDING.VENMO,
|
|
138
|
+
];
|
|
139
|
+
const invalidFundingSources = [FUNDING.APPLEPAY, FUNDING.IDEAL];
|
|
140
|
+
|
|
141
|
+
// Test valid funding sources
|
|
142
|
+
validFundingSources.forEach((fundingSource) => {
|
|
143
|
+
it(`should return false for fundingSource: ${fundingSource}`, () => {
|
|
144
|
+
const result = hasInvalidScriptOptionsForFullRedesign({
|
|
145
|
+
fundingSource,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
expect(result).toBe(false);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Test invalid funding sources
|
|
153
|
+
invalidFundingSources.forEach((fundingSource) => {
|
|
154
|
+
it(`should return true for fundingSource: ${fundingSource}`, () => {
|
|
155
|
+
const result = hasInvalidScriptOptionsForFullRedesign({
|
|
156
|
+
fundingSource,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
expect(result).toBe(true);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
it("should return true when funding source is null", () => {
|
|
164
|
+
const result = hasInvalidScriptOptionsForFullRedesign({
|
|
165
|
+
fundingSource: null,
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
expect(result).toBe(true);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
|
|
130
172
|
describe("throwErrorForInvalidButtonColor", () => {
|
|
131
173
|
it("should throw error with appropriate message for invalid color", () => {
|
|
132
174
|
expect(() => {
|
|
@@ -4,10 +4,6 @@ import { ENV } from "@paypal/sdk-constants/src";
|
|
|
4
4
|
import { LOGO_CLASS } from "@paypal/sdk-logos/src";
|
|
5
5
|
|
|
6
6
|
import { CLASS } from "../../../constants";
|
|
7
|
-
import {
|
|
8
|
-
REBRAND_LABEL_HEIGHT_RATIO,
|
|
9
|
-
REBRAND_LOGO_TRANSLATE_Y,
|
|
10
|
-
} from "../config";
|
|
11
7
|
|
|
12
8
|
const MIN_VAULT_BUTTON_WIDTH = 250;
|
|
13
9
|
|
|
@@ -108,8 +104,8 @@ export const buttonStyle = `
|
|
|
108
104
|
|
|
109
105
|
.${CLASS.BUTTON} .${CLASS.SPINNER} {
|
|
110
106
|
position: absolute;
|
|
111
|
-
height:
|
|
112
|
-
|
|
107
|
+
height: 40px;
|
|
108
|
+
width: 40px;
|
|
113
109
|
top: 50%;
|
|
114
110
|
left: 50%;
|
|
115
111
|
transform: translateX(-50%) translateY(-50%);
|
|
@@ -175,7 +171,7 @@ export const buttonRebrandStyle = `
|
|
|
175
171
|
align-items: center;
|
|
176
172
|
justify-content: center;
|
|
177
173
|
flex-wrap: nowrap;
|
|
178
|
-
height:
|
|
174
|
+
height: 76%;
|
|
179
175
|
min-width: 0px;
|
|
180
176
|
position: relative;
|
|
181
177
|
}
|
|
@@ -204,19 +200,6 @@ export const buttonRebrandStyle = `
|
|
|
204
200
|
height: 100%;
|
|
205
201
|
}
|
|
206
202
|
|
|
207
|
-
.${CLASS.BUTTON_REBRAND} .${CLASS.BUTTON_LABEL} > .${CLASS.LOGO_REBRAND} {
|
|
208
|
-
// transform: translateY(${REBRAND_LOGO_TRANSLATE_Y}%);
|
|
209
|
-
transform: translateY(10%); //update me!!
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.${CLASS.BUTTON_REBRAND}[data-funding-source=wechatpay] .${CLASS.TEXT},
|
|
213
|
-
.${CLASS.BUTTON_REBRAND}[data-funding-source=satispay] .${CLASS.TEXT},
|
|
214
|
-
.${CLASS.BUTTON_REBRAND}[data-funding-source=giropay] .${CLASS.TEXT},
|
|
215
|
-
.${CLASS.BUTTON_REBRAND}[data-funding-source=paidy] .${CLASS.TEXT},
|
|
216
|
-
.${CLASS.BUTTON_REBRAND}[data-funding-source=trustly] .${CLASS.TEXT} {
|
|
217
|
-
transform: translateY(-1px);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
203
|
.${CLASS.BUTTON_REBRAND} .${CLASS.TAGLINE} {
|
|
221
204
|
max-width: 100%;
|
|
222
205
|
font-size: initial;
|
|
@@ -224,6 +207,5 @@ export const buttonRebrandStyle = `
|
|
|
224
207
|
display: block;
|
|
225
208
|
text-align: center;
|
|
226
209
|
width: auto;
|
|
227
|
-
margin-top: 8px;
|
|
228
210
|
}
|
|
229
211
|
`;
|
|
@@ -151,7 +151,7 @@ export const buttonColorStyle = `
|
|
|
151
151
|
.${CLASS.BUTTON_REBRAND}:focus {
|
|
152
152
|
outline: none;
|
|
153
153
|
}
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
.${CLASS.BUTTON_REBRAND}:focus::after {
|
|
156
156
|
content: '';
|
|
157
157
|
position: absolute;
|
|
@@ -160,7 +160,7 @@ export const buttonColorStyle = `
|
|
|
160
160
|
bottom: 3px;
|
|
161
161
|
left: 3px;
|
|
162
162
|
border: 0.125rem solid #FFFFFF;
|
|
163
|
-
border-radius:
|
|
163
|
+
border-radius: inherit;
|
|
164
164
|
box-shadow: 0 0 0 0.2rem #0066F5;
|
|
165
165
|
pointer-events: none;
|
|
166
166
|
}
|
|
@@ -249,14 +249,6 @@ export const buttonColorStyle = `
|
|
|
249
249
|
background: #E62601;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT} {
|
|
253
|
-
background: #003087;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT} {
|
|
257
|
-
background: #eee;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
252
|
/* APM button hover actions */
|
|
261
253
|
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
|
|
262
254
|
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
|
|
@@ -275,62 +267,52 @@ export const buttonColorStyle = `
|
|
|
275
267
|
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
|
|
276
268
|
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
|
|
277
269
|
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover,
|
|
278
|
-
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover
|
|
279
|
-
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover {
|
|
270
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:hover {
|
|
280
271
|
filter: brightness(1.2);
|
|
281
272
|
overflow: inherit;
|
|
282
273
|
}
|
|
283
274
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
.${CLASS.BUTTON}
|
|
291
|
-
.${CLASS.BUTTON}
|
|
292
|
-
.${CLASS.BUTTON}
|
|
293
|
-
.${CLASS.BUTTON}
|
|
294
|
-
.${CLASS.BUTTON}
|
|
295
|
-
.${CLASS.BUTTON}
|
|
296
|
-
.${CLASS.BUTTON}
|
|
297
|
-
.${CLASS.BUTTON}
|
|
298
|
-
.${CLASS.BUTTON}
|
|
299
|
-
.${CLASS.BUTTON}
|
|
300
|
-
.${CLASS.BUTTON}
|
|
301
|
-
.${CLASS.BUTTON}
|
|
302
|
-
.${CLASS.BUTTON}
|
|
303
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
304
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
305
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
306
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
307
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
308
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
309
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus {
|
|
275
|
+
/* APM button on focus actions */
|
|
276
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
277
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
278
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
279
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
280
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
281
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
282
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
283
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
284
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
285
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
286
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
287
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
288
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
289
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
290
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
291
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
292
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus,
|
|
293
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus {
|
|
310
294
|
outline: none;
|
|
311
295
|
}
|
|
312
296
|
|
|
313
|
-
/* APM button after focus actions
|
|
314
|
-
.${CLASS.BUTTON}
|
|
315
|
-
.${CLASS.BUTTON}
|
|
316
|
-
.${CLASS.BUTTON}
|
|
317
|
-
.${CLASS.BUTTON}
|
|
318
|
-
.${CLASS.BUTTON}
|
|
319
|
-
.${CLASS.BUTTON}
|
|
320
|
-
.${CLASS.BUTTON}
|
|
321
|
-
.${CLASS.BUTTON}
|
|
322
|
-
.${CLASS.BUTTON}
|
|
323
|
-
.${CLASS.BUTTON}
|
|
324
|
-
.${CLASS.BUTTON}
|
|
325
|
-
.${CLASS.BUTTON}
|
|
326
|
-
.${CLASS.BUTTON}
|
|
327
|
-
.${CLASS.BUTTON}
|
|
328
|
-
.${CLASS.BUTTON}
|
|
329
|
-
.${CLASS.BUTTON}
|
|
330
|
-
.${CLASS.BUTTON}
|
|
331
|
-
.${CLASS.BUTTON}
|
|
332
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.ITAU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
333
|
-
.${CLASS.BUTTON}:not(.${CLASS.BUTTON_REBRAND})[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SEPA}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after {
|
|
297
|
+
/* APM button after focus actions */
|
|
298
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BLIK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
299
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BANCONTACT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
300
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
301
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.BOLETOBANCARIO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
302
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.EPS}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
303
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.GIROPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
304
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.IDEAL}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
305
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MERCADOPAGO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
306
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MULTIBANCO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
307
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.MYBANK}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
308
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.OXXO}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
309
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.P24}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
310
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SOFORT}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
311
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.TRUSTLY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
312
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAYU}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
313
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.SATISPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
314
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.PAIDY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after,
|
|
315
|
+
.${CLASS.BUTTON}[${ATTRIBUTE.FUNDING_SOURCE}=${FUNDING.WECHATPAY}].${CLASS.COLOR}-${BUTTON_COLOR.DEFAULT}:focus::after {
|
|
334
316
|
content: '';
|
|
335
317
|
position: absolute;
|
|
336
318
|
top: 5px;
|