@paypal/checkout-components 5.0.256 → 5.0.257

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 (185) hide show
  1. package/README.md +8 -0
  2. package/__sdk__.js +76 -76
  3. package/dist/button.js +1 -1
  4. package/globals.js +28 -30
  5. package/package.json +6 -4
  6. package/src/actions/save/index.js +17 -12
  7. package/src/constants/button.js +36 -36
  8. package/src/constants/class.js +32 -30
  9. package/src/constants/index.js +3 -3
  10. package/src/constants/misc.js +14 -12
  11. package/src/declarations.js +19 -19
  12. package/src/funding/applepay/config.jsx +51 -50
  13. package/src/funding/applepay/index.js +1 -1
  14. package/src/funding/applepay/style.scoped.scss +1 -1
  15. package/src/funding/applepay/template.jsx +16 -11
  16. package/src/funding/bancontact/config.jsx +48 -37
  17. package/src/funding/bancontact/index.js +1 -2
  18. package/src/funding/blik/config.jsx +48 -37
  19. package/src/funding/blik/index.js +1 -2
  20. package/src/funding/boleto/config.jsx +50 -39
  21. package/src/funding/boleto/index.js +1 -2
  22. package/src/funding/card/amex/config.js +9 -8
  23. package/src/funding/card/amex/index.js +1 -2
  24. package/src/funding/card/config.jsx +246 -177
  25. package/src/funding/card/discover/config.js +9 -7
  26. package/src/funding/card/discover/index.js +1 -2
  27. package/src/funding/card/elo/config.js +6 -7
  28. package/src/funding/card/elo/index.js +1 -2
  29. package/src/funding/card/hiper/config.js +9 -7
  30. package/src/funding/card/hiper/index.js +1 -2
  31. package/src/funding/card/index.js +1 -1
  32. package/src/funding/card/jcb/config.js +6 -7
  33. package/src/funding/card/jcb/index.js +1 -2
  34. package/src/funding/card/mastercard/config.js +9 -7
  35. package/src/funding/card/mastercard/index.js +1 -2
  36. package/src/funding/card/visa/config.js +9 -7
  37. package/src/funding/card/visa/index.js +1 -2
  38. package/src/funding/common.jsx +242 -216
  39. package/src/funding/config.js +212 -65
  40. package/src/funding/content.jsx +1946 -337
  41. package/src/funding/credit/config.jsx +74 -57
  42. package/src/funding/credit/index.js +1 -2
  43. package/src/funding/eps/config.jsx +45 -37
  44. package/src/funding/eps/index.js +1 -2
  45. package/src/funding/funding.js +193 -100
  46. package/src/funding/giropay/config.jsx +48 -38
  47. package/src/funding/giropay/index.js +1 -2
  48. package/src/funding/ideal/config.jsx +48 -37
  49. package/src/funding/ideal/index.js +1 -2
  50. package/src/funding/index.js +2 -2
  51. package/src/funding/itau/config.jsx +41 -41
  52. package/src/funding/itau/index.js +1 -1
  53. package/src/funding/maxima/config.jsx +25 -19
  54. package/src/funding/maxima/index.js +1 -2
  55. package/src/funding/mercadopago/config.jsx +48 -37
  56. package/src/funding/mercadopago/index.js +1 -2
  57. package/src/funding/multibanco/config.jsx +50 -39
  58. package/src/funding/multibanco/index.js +1 -2
  59. package/src/funding/mybank/config.jsx +48 -37
  60. package/src/funding/mybank/index.js +1 -2
  61. package/src/funding/oxxo/config.jsx +50 -39
  62. package/src/funding/oxxo/index.js +1 -2
  63. package/src/funding/p24/config.jsx +45 -37
  64. package/src/funding/p24/index.js +1 -2
  65. package/src/funding/paidy/config.jsx +50 -39
  66. package/src/funding/paidy/index.js +1 -1
  67. package/src/funding/paylater/config.jsx +118 -111
  68. package/src/funding/paylater/index.js +1 -2
  69. package/src/funding/paypal/config.jsx +43 -46
  70. package/src/funding/paypal/index.js +1 -2
  71. package/src/funding/paypal/style.scoped.scss +80 -74
  72. package/src/funding/paypal/template.jsx +450 -354
  73. package/src/funding/payu/config.jsx +50 -39
  74. package/src/funding/payu/index.js +1 -1
  75. package/src/funding/satispay/config.jsx +50 -39
  76. package/src/funding/satispay/index.js +1 -1
  77. package/src/funding/sepa/config.jsx +19 -13
  78. package/src/funding/sepa/index.js +1 -2
  79. package/src/funding/sofort/config.jsx +48 -37
  80. package/src/funding/sofort/index.js +1 -2
  81. package/src/funding/trustly/config.jsx +50 -39
  82. package/src/funding/trustly/index.js +1 -2
  83. package/src/funding/venmo/config.jsx +80 -75
  84. package/src/funding/venmo/index.js +1 -2
  85. package/src/funding/venmo/style.scoped.scss +30 -32
  86. package/src/funding/venmo/template.jsx +56 -57
  87. package/src/funding/verkkopankki/config.jsx +50 -39
  88. package/src/funding/verkkopankki/index.js +1 -1
  89. package/src/funding/wechatpay/config.jsx +48 -37
  90. package/src/funding/wechatpay/index.js +1 -2
  91. package/src/funding/zimpler/config.jsx +19 -13
  92. package/src/funding/zimpler/index.js +1 -2
  93. package/src/interface/actions.js +1 -1
  94. package/src/interface/button.js +60 -44
  95. package/src/interface/card-fields.js +11 -8
  96. package/src/interface/fields.js +7 -4
  97. package/src/interface/marks.js +4 -4
  98. package/src/interface/payment-fields.js +7 -4
  99. package/src/interface/wallet.js +4 -4
  100. package/src/lib/errors.js +7 -7
  101. package/src/lib/index.js +5 -5
  102. package/src/lib/isRTLLanguage.js +3 -3
  103. package/src/lib/perceived-latency-instrumentation.js +54 -36
  104. package/src/lib/security.js +21 -17
  105. package/src/lib/session.js +39 -35
  106. package/src/marks/component.jsx +114 -65
  107. package/src/marks/index.js +1 -2
  108. package/src/marks/template.jsx +79 -65
  109. package/src/types.js +48 -48
  110. package/src/ui/buttons/button.jsx +311 -249
  111. package/src/ui/buttons/buttonDesigns/control.jsx +3 -5
  112. package/src/ui/buttons/buttonDesigns/divideLogoAnimation.jsx +127 -99
  113. package/src/ui/buttons/buttonDesigns/index.js +78 -75
  114. package/src/ui/buttons/buttonDesigns/inlineLogoTextDesign.jsx +102 -82
  115. package/src/ui/buttons/buttonDesigns/script.jsx +24 -18
  116. package/src/ui/buttons/buttonDesigns/types.js +6 -7
  117. package/src/ui/buttons/buttons.jsx +318 -212
  118. package/src/ui/buttons/config.js +62 -59
  119. package/src/ui/buttons/content.jsx +304 -119
  120. package/src/ui/buttons/index.js +1 -1
  121. package/src/ui/buttons/menu-button/index.js +1 -1
  122. package/src/ui/buttons/menu-button/menu-button.jsx +29 -22
  123. package/src/ui/buttons/menu-button/menu-button.scoped.scss +16 -17
  124. package/src/ui/buttons/poweredBy.jsx +23 -23
  125. package/src/ui/buttons/props.js +677 -529
  126. package/src/ui/buttons/script.jsx +182 -160
  127. package/src/ui/buttons/spinner.jsx +4 -6
  128. package/src/ui/buttons/style.jsx +15 -14
  129. package/src/ui/buttons/styles/base.js +24 -16
  130. package/src/ui/buttons/styles/button.js +24 -22
  131. package/src/ui/buttons/styles/color.js +118 -118
  132. package/src/ui/buttons/styles/custom.js +30 -24
  133. package/src/ui/buttons/styles/index.js +1 -1
  134. package/src/ui/buttons/styles/labels.js +17 -13
  135. package/src/ui/buttons/styles/page.js +3 -3
  136. package/src/ui/buttons/styles/responsive.js +226 -118
  137. package/src/ui/buttons/tagline.jsx +53 -54
  138. package/src/ui/chevron.jsx +27 -16
  139. package/src/ui/index.js +3 -3
  140. package/src/ui/loading.jsx +25 -18
  141. package/src/ui/text/index.js +1 -1
  142. package/src/ui/text/style.scoped.scss +25 -26
  143. package/src/ui/text/text.jsx +42 -20
  144. package/src/ui/tracking.jsx +18 -11
  145. package/src/zoid/buttons/component.jsx +820 -684
  146. package/src/zoid/buttons/container.jsx +140 -107
  147. package/src/zoid/buttons/index.js +1 -1
  148. package/src/zoid/buttons/prerender.jsx +84 -64
  149. package/src/zoid/buttons/util.js +346 -254
  150. package/src/zoid/card-fields/component.jsx +581 -549
  151. package/src/zoid/card-fields/index.js +1 -1
  152. package/src/zoid/card-fields/prerender.jsx +20 -17
  153. package/src/zoid/card-form/component.js +155 -141
  154. package/src/zoid/card-form/index.js +1 -1
  155. package/src/zoid/checkout/component.jsx +314 -282
  156. package/src/zoid/checkout/config.js +2 -2
  157. package/src/zoid/checkout/content.js +190 -154
  158. package/src/zoid/checkout/hacks.js +31 -28
  159. package/src/zoid/checkout/index.js +2 -2
  160. package/src/zoid/checkout/props.js +27 -33
  161. package/src/zoid/installments/component.jsx +83 -70
  162. package/src/zoid/installments/index.js +1 -1
  163. package/src/zoid/installments/props.js +1 -1
  164. package/src/zoid/menu/component.jsx +53 -48
  165. package/src/zoid/menu/index.js +1 -1
  166. package/src/zoid/menu/props.js +1 -3
  167. package/src/zoid/modal/component.jsx +119 -106
  168. package/src/zoid/modal/index.js +1 -1
  169. package/src/zoid/modal/props.js +1 -3
  170. package/src/zoid/payment-fields/component.jsx +215 -191
  171. package/src/zoid/payment-fields/container.jsx +73 -64
  172. package/src/zoid/payment-fields/index.js +1 -1
  173. package/src/zoid/payment-fields/prerender.jsx +16 -14
  174. package/src/zoid/payment-fields/props.js +6 -6
  175. package/src/zoid/qr-code/component.jsx +131 -115
  176. package/src/zoid/qr-code/container.jsx +74 -68
  177. package/src/zoid/qr-code/index.js +1 -1
  178. package/src/zoid/qr-code/prerender.jsx +17 -12
  179. package/src/zoid/qr-code/types.js +2 -2
  180. package/src/zoid/wallet/component.jsx +298 -260
  181. package/src/zoid/wallet/container.jsx +73 -64
  182. package/src/zoid/wallet/index.js +1 -1
  183. package/src/zoid/wallet/prerender.jsx +14 -14
  184. package/src/zoid/wallet/props.js +4 -4
  185. package/src/lib/getLogoCDNExperiment.js +0 -25
@@ -1,66 +1,75 @@
1
1
  /* @flow */
2
2
  /** @jsx node */
3
3
 
4
- import { destroyElement, toCSS, type EventEmitterType } from '@krakenjs/belter/src';
5
- import { node, type ChildType } from '@krakenjs/jsx-pragmatic/src';
6
- import { EVENT } from '@krakenjs/zoid/src';
4
+ import {
5
+ destroyElement,
6
+ toCSS,
7
+ type EventEmitterType,
8
+ } from "@krakenjs/belter/src";
9
+ import { node, type ChildType } from "@krakenjs/jsx-pragmatic/src";
10
+ import { EVENT } from "@krakenjs/zoid/src";
7
11
 
8
12
  const CLASS = {
9
- VISIBLE: 'visible',
10
- INVISIBLE: 'invisible',
11
- COMPONENT_FRAME: 'component-frame',
12
- PRERENDER_FRAME: 'prerender-frame'
13
+ VISIBLE: "visible",
14
+ INVISIBLE: "invisible",
15
+ COMPONENT_FRAME: "component-frame",
16
+ PRERENDER_FRAME: "prerender-frame",
13
17
  };
14
18
 
15
19
  type WalletContainerOptions = {|
16
- uid : string,
17
- frame : ?HTMLIFrameElement,
18
- prerenderFrame : ?HTMLIFrameElement,
19
- event : EventEmitterType,
20
- nonce? : ?string
20
+ uid: string,
21
+ frame: ?HTMLIFrameElement,
22
+ prerenderFrame: ?HTMLIFrameElement,
23
+ event: EventEmitterType,
24
+ nonce?: ?string,
21
25
  |};
22
26
 
23
- export function WalletContainer({ uid, frame, prerenderFrame, event, nonce } : WalletContainerOptions) : ?ChildType {
24
-
25
- if (!frame || !prerenderFrame) {
26
- throw new Error(`Expected frame and prerenderframe`);
27
- }
28
-
29
- frame.classList.add(CLASS.COMPONENT_FRAME);
30
- prerenderFrame.classList.add(CLASS.PRERENDER_FRAME);
31
-
32
- frame.classList.add(CLASS.INVISIBLE);
33
- prerenderFrame.classList.add(CLASS.VISIBLE);
34
-
35
- event.on(EVENT.RENDERED, () => {
36
- prerenderFrame.classList.remove(CLASS.VISIBLE);
37
- prerenderFrame.classList.add(CLASS.INVISIBLE);
38
-
39
- frame.classList.remove(CLASS.INVISIBLE);
40
- frame.classList.add(CLASS.VISIBLE);
41
-
42
- setTimeout(() => {
43
- destroyElement(prerenderFrame);
44
- }, 1000);
27
+ export function WalletContainer({
28
+ uid,
29
+ frame,
30
+ prerenderFrame,
31
+ event,
32
+ nonce,
33
+ }: WalletContainerOptions): ?ChildType {
34
+ if (!frame || !prerenderFrame) {
35
+ throw new Error(`Expected frame and prerenderframe`);
36
+ }
37
+
38
+ frame.classList.add(CLASS.COMPONENT_FRAME);
39
+ prerenderFrame.classList.add(CLASS.PRERENDER_FRAME);
40
+
41
+ frame.classList.add(CLASS.INVISIBLE);
42
+ prerenderFrame.classList.add(CLASS.VISIBLE);
43
+
44
+ event.on(EVENT.RENDERED, () => {
45
+ prerenderFrame.classList.remove(CLASS.VISIBLE);
46
+ prerenderFrame.classList.add(CLASS.INVISIBLE);
47
+
48
+ frame.classList.remove(CLASS.INVISIBLE);
49
+ frame.classList.add(CLASS.VISIBLE);
50
+
51
+ setTimeout(() => {
52
+ destroyElement(prerenderFrame);
53
+ }, 1000);
54
+ });
55
+
56
+ const setupAutoResize = (el) => {
57
+ event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {
58
+ if (typeof newWidth === "number") {
59
+ el.style.width = toCSS(newWidth);
60
+ }
61
+
62
+ if (typeof newHeight === "number") {
63
+ el.style.height = toCSS(newHeight);
64
+ }
45
65
  });
66
+ };
46
67
 
47
- const setupAutoResize = (el) => {
48
- event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {
49
- if (typeof newWidth === 'number') {
50
- el.style.width = toCSS(newWidth);
51
- }
52
-
53
- if (typeof newHeight === 'number') {
54
- el.style.height = toCSS(newHeight);
55
- }
56
- });
57
- };
58
-
59
- const element = (
60
- <div id={ uid } onRender={ setupAutoResize }>
61
- <style nonce={ nonce }>
62
- {`
63
- #${ uid } {
68
+ const element = (
69
+ <div id={uid} onRender={setupAutoResize}>
70
+ <style nonce={nonce}>
71
+ {`
72
+ #${uid} {
64
73
  position: relative;
65
74
  display: inline-block;
66
75
  width: 100%;
@@ -73,18 +82,18 @@ export function WalletContainer({ uid, frame, prerenderFrame, event, nonce } : W
73
82
  }
74
83
 
75
84
  @media only screen and (min-width: 0px) {
76
- #${ uid } {
85
+ #${uid} {
77
86
  min-height: 50px;
78
87
  }
79
88
  }
80
89
 
81
90
  @media only screen and (min-width: 600px) {
82
- #${ uid } {
91
+ #${uid} {
83
92
  min-height: 60px;
84
93
  }
85
94
  }
86
95
 
87
- #${ uid } > iframe {
96
+ #${uid} > iframe {
88
97
  position: absolute;
89
98
  top: 0;
90
99
  left: 0;
@@ -92,30 +101,30 @@ export function WalletContainer({ uid, frame, prerenderFrame, event, nonce } : W
92
101
  height: 100%;
93
102
  }
94
103
 
95
- #${ uid } > iframe.${ CLASS.COMPONENT_FRAME } {
104
+ #${uid} > iframe.${CLASS.COMPONENT_FRAME} {
96
105
  z-index: 100;
97
106
  }
98
107
 
99
- #${ uid } > iframe.${ CLASS.PRERENDER_FRAME } {
108
+ #${uid} > iframe.${CLASS.PRERENDER_FRAME} {
100
109
  transition: opacity .2s linear;
101
110
  z-index: 200;
102
111
  }
103
112
 
104
- #${ uid } > iframe.${ CLASS.VISIBLE } {
113
+ #${uid} > iframe.${CLASS.VISIBLE} {
105
114
  opacity: 1;
106
115
  }
107
116
 
108
- #${ uid } > iframe.${ CLASS.INVISIBLE } {
117
+ #${uid} > iframe.${CLASS.INVISIBLE} {
109
118
  opacity: 0;
110
119
  pointer-events: none;
111
120
  }
112
121
  `}
113
- </style>
122
+ </style>
114
123
 
115
- <node el={ frame } />
116
- <node el={ prerenderFrame } />
117
- </div>
118
- );
124
+ <node el={frame} />
125
+ <node el={prerenderFrame} />
126
+ </div>
127
+ );
119
128
 
120
- return element;
129
+ return element;
121
130
  }
@@ -1,3 +1,3 @@
1
1
  /* @flow */
2
2
 
3
- export * from './component';
3
+ export * from "./component";
@@ -1,19 +1,19 @@
1
1
  /* @flow */
2
2
  /** @jsx node */
3
3
 
4
- import { node, type ChildType } from '@krakenjs/jsx-pragmatic/src';
4
+ import { node, type ChildType } from "@krakenjs/jsx-pragmatic/src";
5
5
 
6
6
  type PrerenderedWalletProps = {|
7
- nonce : ?string
7
+ nonce: ?string,
8
8
  |};
9
9
 
10
- export function WalletPrerender({ nonce } : PrerenderedWalletProps) : ChildType {
11
- return (
12
- <html>
13
- <body>
14
- <style
15
- nonce={ nonce }
16
- innerHTML={ `
10
+ export function WalletPrerender({ nonce }: PrerenderedWalletProps): ChildType {
11
+ return (
12
+ <html>
13
+ <body>
14
+ <style
15
+ nonce={nonce}
16
+ innerHTML={`
17
17
  html, body {
18
18
  padding: 0;
19
19
  margin: 0;
@@ -49,9 +49,9 @@ export function WalletPrerender({ nonce } : PrerenderedWalletProps) : ChildType
49
49
  transform: translateX(150%);
50
50
  }
51
51
  }
52
- ` }
53
- />
54
- </body>
55
- </html>
56
- );
52
+ `}
53
+ />
54
+ </body>
55
+ </html>
56
+ );
57
57
  }
@@ -1,9 +1,9 @@
1
1
  /* @flow */
2
2
 
3
- import { FUNDING } from '@paypal/sdk-constants/src';
3
+ import { FUNDING } from "@paypal/sdk-constants/src";
4
4
 
5
5
  export type WalletProps = {|
6
- nonce : ?string,
7
- fundingSource : $Values<typeof FUNDING>,
8
- userIDToken : ?string
6
+ nonce: ?string,
7
+ fundingSource: $Values<typeof FUNDING>,
8
+ userIDToken: ?string,
9
9
  |};
@@ -1,25 +0,0 @@
1
- /* @flow */
2
-
3
- import { createExperiment } from "@paypal/sdk-client/src";
4
- import type { Experiment } from "@krakenjs/belter/src";
5
- import type { ChildType } from "@krakenjs/jsx-pragmatic/src";
6
-
7
- export function getLogoCDNExperiment(): Experiment {
8
- return createExperiment("enable_logo_cdn_experiment", 100);
9
- }
10
-
11
- export function enableLogoCDNExperiment<T>(
12
- logo: (T) => ChildType,
13
- logoOptions: T
14
- ): ChildType {
15
- // enable logo CDN experiment for first render only
16
- if (__WEB__) {
17
- const logoCDNExperiment = getLogoCDNExperiment();
18
- const loadFromCDN = logoCDNExperiment.isEnabled();
19
-
20
- return logo({ ...logoOptions, loadFromCDN });
21
- }
22
-
23
- // continue using inline svg for second render
24
- return logo(logoOptions);
25
- }