@rebilly/framepay-react 7.2.1 → 8.1.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.
package/CHANGELOG.md CHANGED
@@ -1 +1,6 @@
1
- ## [7.2.1](https://github.com/Rebilly/rebilly/compare/framepay-react-v7.2.0...framepay-react-v7.2.1) (2024-11-13)
1
+ ## [8.1.0](https://github.com/Rebilly/rebilly/compare/framepay-react-v8.0.0...framepay-react-v8.1.0) (2024-11-14)
2
+
3
+
4
+ ### Features
5
+
6
+ * **framepay-react:** add samsung-pay ([#8436](https://github.com/Rebilly/rebilly/issues/8436)) ([fd93a05](https://github.com/Rebilly/rebilly/commit/fd93a05853926c16ea9d83a5fe5ea678d7fafb47))
package/README.md CHANGED
@@ -23,6 +23,7 @@ This package is a wrapper for [FramePay](https://www.rebilly.com/docs/dev-docs/f
23
23
  - [withFramePayCardComponent (Card props)](#withframepaycardcomponent-card-props)
24
24
  - [withFramePayBankComponent (Bank props)](#withframepaybankcomponent-bank-props)
25
25
  - [withFramePayApplePayComponent (Apple Pay props)](#withframepayapplepaycomponent-apple-pay-props)
26
+ - [withFramePaySamsungPayComponent (Samsung Pay props)](#withframepaysamsungpaycomponent-samsung-pay-props)
26
27
  - [withFramePayGooglePayComponent (Google Pay props)](#withframepaygooglepaycomponent-google-pay-props)
27
28
  - [withFramePayPaypalComponent (Paypal props)](#withframepaypaypalcomponent-paypal-props)
28
29
  - [With FramePay (`withFramePay`) HOC](#with-framepay-withframepay-hoc)
@@ -42,16 +43,16 @@ This package is a wrapper for [FramePay](https://www.rebilly.com/docs/dev-docs/f
42
43
  ### FramePay documentation
43
44
  For more information on FramePay see its [official documentation](https://www.rebilly.com/docs/dev-docs/framepay/).
44
45
 
45
- ### Demos
46
- - [Use with react-redux (CodeSandbox)](https://codesandbox.io/s/n089y731x4)
47
- - [Use with react-router (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4)
46
+ ### Demos
47
+ - [Use with react-redux (CodeSandbox)](https://codesandbox.io/s/n089y731x4)
48
+ - [Use with react-router (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4)
48
49
  - [Examples from README file (CodeSandbox, React 14/15)](https://codesandbox.io/s/8ly7ml77y9)
49
- - [Multiple Payment Methods (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethods.js)
50
- - [Multiple Payment Methods Short version (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethodsShort.js)
51
- - [Separated fields for the payment card method (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/PaymentCardSeparated.js)
52
- - [Other Payment Methods (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/OtherPaymentMethods.js)
53
- - [TypeScript (CodeSandbox)](https://codesandbox.io/s/j74n80zk5w)
54
- - [More examples from the E2E tests](test/e2e/fixtures)
50
+ - [Multiple Payment Methods (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethods.js)
51
+ - [Multiple Payment Methods Short version (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethodsShort.js)
52
+ - [Separated fields for the payment card method (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/PaymentCardSeparated.js)
53
+ - [Other Payment Methods (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/OtherPaymentMethods.js)
54
+ - [TypeScript (CodeSandbox)](https://codesandbox.io/s/j74n80zk5w)
55
+ - [More examples from the E2E tests](test/e2e/fixtures)
55
56
 
56
57
  ### Installation
57
58
  Install using [Yarn](https://yarnpkg.com/en/):
@@ -69,7 +70,7 @@ npm install @rebilly/framepay-react --save
69
70
  > The example described in this readme can be found [here (CodeSandbox)](https://codesandbox.io/s/8ly7ml77y9)
70
71
 
71
72
  #### The FramePay context (`FramePayProvider`)
72
- FramePayProvider provides settings to the FramePay API. See [Framepay.initialize](https://www.rebilly.com/docs/dev-docs/framepay-global-reference/#framepay.initialize) for a list of all configuration options.
73
+ FramePayProvider provides settings to the FramePay API. See [Framepay.initialize](https://www.rebilly.com/docs/dev-docs/framepay-global-reference/#framepay.initialize) for a list of all configuration options.
73
74
 
74
75
  ```jsx harmony
75
76
  // index.js
@@ -98,9 +99,9 @@ publishableKey="pk_sandbox_1234567890"
98
99
  #### Setting up your payment form
99
100
 
100
101
  ###### WARNING
101
- Please, don't implementing the unmount functionality, use the examples.
102
+ Please, don't implementing the unmount functionality, use the examples.
102
103
 
103
- The react lifecycle methods already implemented in the library.
104
+ The react lifecycle methods already implemented in the library.
104
105
 
105
106
  ###### withFramePay (All props)
106
107
  - Framepay - [FramePay's namespace](https://www.rebilly.com/docs/dev-docs/framepay-global-reference)
@@ -112,6 +113,7 @@ The react lifecycle methods already implemented in the library.
112
113
  - `CardExpiryElement`
113
114
  - `CardNumberElement`
114
115
  - `ApplePayElement`
116
+ - `SamsungPayElement`
115
117
  - `GooglePayElement`
116
118
  - `PaypalElement`
117
119
 
@@ -119,7 +121,7 @@ The react lifecycle methods already implemented in the library.
119
121
  - Framepay
120
122
  - `CardElement`
121
123
  - `CardCvvElement`
122
- - `CardExpiryElement`
124
+ - `CardExpiryElement`
123
125
  - `CardNumberElement`
124
126
 
125
127
  ###### withFramePayBankComponent (Bank props)
@@ -132,6 +134,10 @@ The react lifecycle methods already implemented in the library.
132
134
  - Framepay
133
135
  - `ApplePayElement`
134
136
 
137
+ ###### withFramePaySamsungPayComponent (Samsung Pay props)
138
+ - Framepay
139
+ - `SamsungPayElement`
140
+
135
141
  ###### withFramePayGooglePayComponent (Google Pay props)
136
142
  - Framepay
137
143
  - `GooglePayElement`
@@ -141,11 +147,11 @@ The react lifecycle methods already implemented in the library.
141
147
  - `PaypalElement`
142
148
 
143
149
  ##### With FramePay (`withFramePay`) HOC
144
- This simple FramePay HOC is used to provide the `Framepay` API in your component. It is most commonly used in combination with multiple payment methods.
150
+ This simple FramePay HOC is used to provide the `Framepay` API in your component. It is most commonly used in combination with multiple payment methods.
145
151
 
146
- - [Payment cards and ACH (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethods.js)
147
- - [Payment cards and ACH Short version (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethodsShort.js)
148
- - [Alternative methods (Bitcoin) (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/OtherPaymentMethods.js)
152
+ - [Payment cards and ACH (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethods.js)
153
+ - [Payment cards and ACH Short version (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/MultiplePaymentMethodsShort.js)
154
+ - [Alternative methods (Bitcoin) (CodeSandbox)](https://codesandbox.io/s/z2q2lx9ry4?module=/src/elements/OtherPaymentMethods.js)
149
155
 
150
156
  ##### Card elements (`withFramePayCardComponent`) HOC
151
157
 
@@ -269,7 +275,7 @@ export default withFramePayBankComponent(MyBankPageComponent);
269
275
  The **framepay-react** package supports all the [FramePay](https://www.rebilly.com/docs/dev-docs/framepay/) initialization settings.
270
276
  See [Framepay.initialize](https://www.rebilly.com/docs/dev-docs/framepay-global-reference/#framepay.initialize) for all customizations.
271
277
 
272
- Additionally `injectStyle` is available. When defined in the `FramePayProvider` it will add the default FramePay CSS in the header of your application.
278
+ Additionally `injectStyle` is available. When defined in the `FramePayProvider` it will add the default FramePay CSS in the header of your application.
273
279
 
274
280
  ```jsx harmony
275
281
  <FramePayProvider injectStyle publishableKey="pk_sandbox_1234567890">
package/build/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SUPPORTED_CARD_BRANDS } from './lib/constants';
2
- import { withFramePay, withFramePayApplePayComponent, withFramePayBankComponent, withFramePayCardComponent, withFramePayGooglePayComponent, withFramePayIBANComponent, withFramePayPaypalComponent } from './lib/components/injector';
2
+ import { withFramePay, withFramePayApplePayComponent, withFramePaySamsungPayComponent, withFramePayBankComponent, withFramePayCardComponent, withFramePayGooglePayComponent, withFramePayIBANComponent, withFramePayPaypalComponent } from './lib/components/injector';
3
3
  import FramePayProvider from './lib/components/provider';
4
- import { FramePayApplePayProps, FramePayBankProps, FramePayCardProps, FramePayComponentProps, FramePayGooglePayProps, FramePayIBANProps, FramePayPaypalProps } from '../types/injector';
5
- export { SUPPORTED_CARD_BRANDS, FramePayProvider, withFramePay, withFramePayCardComponent, withFramePayBankComponent, withFramePayIBANComponent, withFramePayApplePayComponent, withFramePayGooglePayComponent, withFramePayPaypalComponent, FramePayComponentProps, FramePayCardProps, FramePayBankProps, FramePayIBANProps, FramePayApplePayProps, FramePayGooglePayProps, FramePayPaypalProps, };
4
+ import { FramePayApplePayProps, FramePaySamsungPayProps, FramePayBankProps, FramePayCardProps, FramePayComponentProps, FramePayGooglePayProps, FramePayIBANProps, FramePayPaypalProps } from '../types/injector';
5
+ export { SUPPORTED_CARD_BRANDS, FramePayProvider, withFramePay, withFramePayCardComponent, withFramePayBankComponent, withFramePayIBANComponent, withFramePayApplePayComponent, withFramePaySamsungPayComponent, withFramePayGooglePayComponent, withFramePayPaypalComponent, FramePayComponentProps, FramePayCardProps, FramePayBankProps, FramePayIBANProps, FramePayApplePayProps, FramePaySamsungPayProps, FramePayGooglePayProps, FramePayPaypalProps, };
package/build/index.js CHANGED
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.withFramePayPaypalComponent = exports.withFramePayGooglePayComponent = exports.withFramePayApplePayComponent = exports.withFramePayIBANComponent = exports.withFramePayBankComponent = exports.withFramePayCardComponent = exports.withFramePay = exports.FramePayProvider = exports.SUPPORTED_CARD_BRANDS = void 0;
6
+ exports.withFramePayPaypalComponent = exports.withFramePayGooglePayComponent = exports.withFramePaySamsungPayComponent = exports.withFramePayApplePayComponent = exports.withFramePayIBANComponent = exports.withFramePayBankComponent = exports.withFramePayCardComponent = exports.withFramePay = exports.FramePayProvider = exports.SUPPORTED_CARD_BRANDS = void 0;
7
7
  var constants_1 = require("./lib/constants");
8
8
  Object.defineProperty(exports, "SUPPORTED_CARD_BRANDS", { enumerable: true, get: function () { return constants_1.SUPPORTED_CARD_BRANDS; } });
9
9
  var injector_1 = require("./lib/components/injector");
10
10
  Object.defineProperty(exports, "withFramePay", { enumerable: true, get: function () { return injector_1.withFramePay; } });
11
11
  Object.defineProperty(exports, "withFramePayApplePayComponent", { enumerable: true, get: function () { return injector_1.withFramePayApplePayComponent; } });
12
+ Object.defineProperty(exports, "withFramePaySamsungPayComponent", { enumerable: true, get: function () { return injector_1.withFramePaySamsungPayComponent; } });
12
13
  Object.defineProperty(exports, "withFramePayBankComponent", { enumerable: true, get: function () { return injector_1.withFramePayBankComponent; } });
13
14
  Object.defineProperty(exports, "withFramePayCardComponent", { enumerable: true, get: function () { return injector_1.withFramePayCardComponent; } });
14
15
  Object.defineProperty(exports, "withFramePayGooglePayComponent", { enumerable: true, get: function () { return injector_1.withFramePayGooglePayComponent; } });
@@ -16,4 +17,4 @@ Object.defineProperty(exports, "withFramePayIBANComponent", { enumerable: true,
16
17
  Object.defineProperty(exports, "withFramePayPaypalComponent", { enumerable: true, get: function () { return injector_1.withFramePayPaypalComponent; } });
17
18
  var provider_1 = __importDefault(require("./lib/components/provider"));
18
19
  exports.FramePayProvider = provider_1.default;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQXdEO0FBeUJwRCxzR0F6QkssaUNBQXFCLE9BeUJMO0FBdkJ6QixzREFRbUM7QUFpQi9CLDZGQXhCQSx1QkFBWSxPQXdCQTtBQUlaLDhHQTNCQSx3Q0FBNkIsT0EyQkE7QUFGN0IsMEdBeEJBLG9DQUF5QixPQXdCQTtBQUR6QiwwR0F0QkEsb0NBQXlCLE9Bc0JBO0FBSXpCLCtHQXpCQSx5Q0FBOEIsT0F5QkE7QUFGOUIsMEdBdEJBLG9DQUF5QixPQXNCQTtBQUd6Qiw0R0F4QkEsc0NBQTJCLE9Bd0JBO0FBckIvQix1RUFBeUQ7QUFjckQsMkJBZEcsa0JBQWdCLENBY0gifQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQXdEO0FBMkJwRCxzR0EzQkssaUNBQXFCLE9BMkJMO0FBekJ6QixzREFTbUM7QUFrQi9CLDZGQTFCQSx1QkFBWSxPQTBCQTtBQUlaLDhHQTdCQSx3Q0FBNkIsT0E2QkE7QUFDN0IsZ0hBN0JBLDBDQUErQixPQTZCQTtBQUgvQiwwR0F6QkEsb0NBQXlCLE9BeUJBO0FBRHpCLDBHQXZCQSxvQ0FBeUIsT0F1QkE7QUFLekIsK0dBM0JBLHlDQUE4QixPQTJCQTtBQUg5QiwwR0F2QkEsb0NBQXlCLE9BdUJBO0FBSXpCLDRHQTFCQSxzQ0FBMkIsT0EwQkE7QUF2Qi9CLHVFQUF5RDtBQWVyRCwyQkFmRyxrQkFBZ0IsQ0FlSCJ9
@@ -29,6 +29,7 @@ var exportKeys = [
29
29
  'FramePayProvider',
30
30
  'withFramePay',
31
31
  'withFramePayApplePayComponent',
32
+ 'withFramePaySamsungPayComponent',
32
33
  'withFramePayCardComponent',
33
34
  'withFramePayBankComponent',
34
35
  'withFramePayGooglePayComponent',
@@ -40,4 +41,4 @@ describe('lib/index', function () {
40
41
  expect(Object.keys(lib).sort()).toEqual(exportKeys);
41
42
  });
42
43
  });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBK0I7QUFFL0IsSUFBTSxVQUFVLEdBQTBCO0lBQ3RDLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLCtCQUErQjtJQUMvQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLGdDQUFnQztJQUNoQywyQkFBMkI7SUFDM0IsNkJBQTZCO0NBQ2hDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFVCxRQUFRLENBQUMsV0FBVyxFQUFFO0lBQ2xCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRTtRQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBK0I7QUFFL0IsSUFBTSxVQUFVLEdBQTBCO0lBQ3RDLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLCtCQUErQjtJQUMvQixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQixnQ0FBZ0M7SUFDaEMsMkJBQTJCO0lBQzNCLDZCQUE2QjtDQUNoQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRVQsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNsQixFQUFFLENBQUMsZ0NBQWdDLEVBQUU7UUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ import BaseElement from './base-element';
2
+ export default class SamsungPayElement extends BaseElement<SamsungPayProps, SamsungPayState> {
3
+ setupElement(): void;
4
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var framepay_error_1 = __importDefault(require("../../framepay-error"));
22
+ var base_element_1 = __importDefault(require("./base-element"));
23
+ var SamsungPayElement = /** @class */ (function (_super) {
24
+ __extends(SamsungPayElement, _super);
25
+ function SamsungPayElement() {
26
+ return _super !== null && _super.apply(this, arguments) || this;
27
+ }
28
+ SamsungPayElement.prototype.setupElement = function () {
29
+ var _this = this;
30
+ var Framepay = this.props.Framepay;
31
+ var makeElement = function () {
32
+ // elementNode already checked in BaseElement.handleSetupElement
33
+ // just ts checks fix
34
+ if (!_this.elementNode) {
35
+ throw (0, framepay_error_1.default)({
36
+ code: framepay_error_1.default.codes.elementMountError,
37
+ details: "SamsungPayElement invalid elementNode",
38
+ });
39
+ }
40
+ try {
41
+ return Framepay.samsungPay.mount(_this.elementNode);
42
+ }
43
+ catch (e) {
44
+ throw (0, framepay_error_1.default)({
45
+ code: framepay_error_1.default.codes.elementMountError,
46
+ details: "SamsungPayElement error in remote api call",
47
+ trace: e,
48
+ });
49
+ }
50
+ };
51
+ var element = makeElement();
52
+ this.setState({ element: element });
53
+ };
54
+ return SamsungPayElement;
55
+ }(base_element_1.default));
56
+ exports.default = SamsungPayElement;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Ftc3VuZ3BheS1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3NhbXN1bmdwYXktZWxlbWVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3RUFBaUQ7QUFDakQsZ0VBQXlDO0FBRXpDO0lBQStDLHFDQUc5QztJQUhEOztJQStCQSxDQUFDO0lBM0JHLHdDQUFZLEdBQVo7UUFBQSxpQkEwQkM7UUF6QlcsSUFBQSxRQUFRLEdBQUssSUFBSSxDQUFDLEtBQUssU0FBZixDQUFnQjtRQUVoQyxJQUFNLFdBQVcsR0FBRztZQUNoQixnRUFBZ0U7WUFDaEUscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBQSx3QkFBYSxFQUFDO29CQUNoQixJQUFJLEVBQUUsd0JBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO29CQUMzQyxPQUFPLEVBQUUsdUNBQXVDO2lCQUNuRCxDQUFDLENBQUM7WUFDUCxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUNELE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBQSx3QkFBYSxFQUFDO29CQUNoQixJQUFJLEVBQUUsd0JBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO29CQUMzQyxPQUFPLEVBQUUsNENBQTRDO29CQUNyRCxLQUFLLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsSUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQUFDLEFBL0JELENBQStDLHNCQUFXLEdBK0J6RCJ9
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { FramePayApplePayProps, FramePayBankProps, FramePayCardProps, FramePayComponentProps, FramePayGooglePayProps, FramePayIBANProps, FramePayPaypalProps } from '../../../types/injector';
2
+ import type { FramePayApplePayProps, FramePaySamsungPayProps, FramePayBankProps, FramePayCardProps, FramePayComponentProps, FramePayGooglePayProps, FramePayIBANProps, FramePayPaypalProps } from '../../../types/injector';
3
3
  export declare function withFramePay<OriginalProps extends object>(WrappedComponent: React.ComponentType<OriginalProps & FramePayComponentProps>): {
4
4
  new (props: OriginalProps | Readonly<OriginalProps>): {
5
5
  render(): JSX.Element;
@@ -250,6 +250,56 @@ export declare function withFramePayApplePayComponent<OriginalProps extends obje
250
250
  readonly displayName: string;
251
251
  contextType?: React.Context<any> | undefined;
252
252
  };
253
+ export declare function withFramePaySamsungPayComponent<OriginalProps extends object>(WrappedComponent: React.ComponentType<OriginalProps & FramePaySamsungPayProps>): {
254
+ new (props: OriginalProps | Readonly<OriginalProps>): {
255
+ render(): JSX.Element;
256
+ context: unknown;
257
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<OriginalProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
258
+ forceUpdate(callback?: (() => void) | undefined): void;
259
+ readonly props: Readonly<OriginalProps>;
260
+ state: Readonly<{}>;
261
+ refs: {
262
+ [key: string]: React.ReactInstance;
263
+ };
264
+ componentDidMount?(): void;
265
+ shouldComponentUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): boolean;
266
+ componentWillUnmount?(): void;
267
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
268
+ getSnapshotBeforeUpdate?(prevProps: Readonly<OriginalProps>, prevState: Readonly<{}>): any;
269
+ componentDidUpdate?(prevProps: Readonly<OriginalProps>, prevState: Readonly<{}>, snapshot?: any): void;
270
+ componentWillMount?(): void;
271
+ UNSAFE_componentWillMount?(): void;
272
+ componentWillReceiveProps?(nextProps: Readonly<OriginalProps>, nextContext: any): void;
273
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<OriginalProps>, nextContext: any): void;
274
+ componentWillUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): void;
275
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): void;
276
+ };
277
+ new (props: OriginalProps, context: any): {
278
+ render(): JSX.Element;
279
+ context: unknown;
280
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<OriginalProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
281
+ forceUpdate(callback?: (() => void) | undefined): void;
282
+ readonly props: Readonly<OriginalProps>;
283
+ state: Readonly<{}>;
284
+ refs: {
285
+ [key: string]: React.ReactInstance;
286
+ };
287
+ componentDidMount?(): void;
288
+ shouldComponentUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): boolean;
289
+ componentWillUnmount?(): void;
290
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
291
+ getSnapshotBeforeUpdate?(prevProps: Readonly<OriginalProps>, prevState: Readonly<{}>): any;
292
+ componentDidUpdate?(prevProps: Readonly<OriginalProps>, prevState: Readonly<{}>, snapshot?: any): void;
293
+ componentWillMount?(): void;
294
+ UNSAFE_componentWillMount?(): void;
295
+ componentWillReceiveProps?(nextProps: Readonly<OriginalProps>, nextContext: any): void;
296
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<OriginalProps>, nextContext: any): void;
297
+ componentWillUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): void;
298
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<OriginalProps>, nextState: Readonly<{}>, nextContext: any): void;
299
+ };
300
+ readonly displayName: string;
301
+ contextType?: React.Context<any> | undefined;
302
+ };
253
303
  export declare function withFramePayGooglePayComponent<OriginalProps extends object>(WrappedComponent: React.ComponentType<OriginalProps & FramePayGooglePayProps>): {
254
304
  new (props: OriginalProps | Readonly<OriginalProps>): {
255
305
  render(): JSX.Element;
@@ -53,10 +53,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
53
53
  return (mod && mod.__esModule) ? mod : { "default": mod };
54
54
  };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
- exports.withFramePayPaypalComponent = exports.withFramePayGooglePayComponent = exports.withFramePayApplePayComponent = exports.withFramePayIBANComponent = exports.withFramePayBankComponent = exports.withFramePayCardComponent = exports.withFramePay = void 0;
56
+ exports.withFramePayPaypalComponent = exports.withFramePayGooglePayComponent = exports.withFramePaySamsungPayComponent = exports.withFramePayApplePayComponent = exports.withFramePayIBANComponent = exports.withFramePayBankComponent = exports.withFramePayCardComponent = exports.withFramePay = void 0;
57
57
  var React = __importStar(require("react"));
58
58
  var context_1 = require("../context");
59
59
  var applepay_element_1 = __importDefault(require("./elements/applepay-element"));
60
+ var samsungpay_element_1 = __importDefault(require("./elements/samsungpay-element"));
60
61
  var bank_element_1 = __importDefault(require("./elements/bank-element"));
61
62
  var card_element_1 = __importDefault(require("./elements/card-element"));
62
63
  var googlepay_element_1 = __importDefault(require("./elements/googlepay-element"));
@@ -205,6 +206,19 @@ var elementsFabric = function (type) {
205
206
  ApplePayElement: ApplePayElement,
206
207
  };
207
208
  }
209
+ if (type === 'samsungPay') {
210
+ /**
211
+ * Samsung Pay
212
+ */
213
+ var SamsungPayElement = Hoc('SamsungPayElement', samsungpay_element_1.default, function (data) {
214
+ return ({
215
+ Framepay: makeFramepayProps(data),
216
+ });
217
+ });
218
+ return {
219
+ SamsungPayElement: SamsungPayElement,
220
+ };
221
+ }
208
222
  if (type === 'googlePay') {
209
223
  /**
210
224
  * Google Pay
@@ -238,7 +252,7 @@ var elementsFabric = function (type) {
238
252
  };
239
253
  function withFramePay(WrappedComponent) {
240
254
  var _a;
241
- var elements = __assign(__assign(__assign(__assign(__assign(__assign({}, elementsFabric('card')), elementsFabric('bankAccount')), elementsFabric('iban')), elementsFabric('applePay')), elementsFabric('googlePay')), elementsFabric('paypal'));
255
+ var elements = __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, elementsFabric('card')), elementsFabric('bankAccount')), elementsFabric('iban')), elementsFabric('applePay')), elementsFabric('samsungPay')), elementsFabric('googlePay')), elementsFabric('paypal'));
242
256
  return _a = /** @class */ (function (_super) {
243
257
  __extends(class_2, _super);
244
258
  function class_2() {
@@ -336,9 +350,9 @@ function withFramePayApplePayComponent(WrappedComponent) {
336
350
  _a;
337
351
  }
338
352
  exports.withFramePayApplePayComponent = withFramePayApplePayComponent;
339
- function withFramePayGooglePayComponent(WrappedComponent) {
353
+ function withFramePaySamsungPayComponent(WrappedComponent) {
340
354
  var _a;
341
- var elements = elementsFabric('googlePay');
355
+ var elements = elementsFabric('samsungPay');
342
356
  return _a = /** @class */ (function (_super) {
343
357
  __extends(class_7, _super);
344
358
  function class_7() {
@@ -352,13 +366,13 @@ function withFramePayGooglePayComponent(WrappedComponent) {
352
366
  };
353
367
  return class_7;
354
368
  }(React.Component)),
355
- _a.displayName = "withFramePayGooglePayComponent(".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component', ")"),
369
+ _a.displayName = "withFramePaySamsungPayComponent(".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component', ")"),
356
370
  _a;
357
371
  }
358
- exports.withFramePayGooglePayComponent = withFramePayGooglePayComponent;
359
- function withFramePayPaypalComponent(WrappedComponent) {
372
+ exports.withFramePaySamsungPayComponent = withFramePaySamsungPayComponent;
373
+ function withFramePayGooglePayComponent(WrappedComponent) {
360
374
  var _a;
361
- var elements = elementsFabric('paypal');
375
+ var elements = elementsFabric('googlePay');
362
376
  return _a = /** @class */ (function (_super) {
363
377
  __extends(class_8, _super);
364
378
  function class_8() {
@@ -372,8 +386,28 @@ function withFramePayPaypalComponent(WrappedComponent) {
372
386
  };
373
387
  return class_8;
374
388
  }(React.Component)),
389
+ _a.displayName = "withFramePayGooglePayComponent(".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component', ")"),
390
+ _a;
391
+ }
392
+ exports.withFramePayGooglePayComponent = withFramePayGooglePayComponent;
393
+ function withFramePayPaypalComponent(WrappedComponent) {
394
+ var _a;
395
+ var elements = elementsFabric('paypal');
396
+ return _a = /** @class */ (function (_super) {
397
+ __extends(class_9, _super);
398
+ function class_9() {
399
+ return _super !== null && _super.apply(this, arguments) || this;
400
+ }
401
+ class_9.prototype.render = function () {
402
+ var _this = this;
403
+ return (React.createElement(context_1.ContextConsumer, null, function (data) {
404
+ return (React.createElement(WrappedComponent, __assign({}, _this.props, elements, { Framepay: makeFramepayProps(data) })));
405
+ }));
406
+ };
407
+ return class_9;
408
+ }(React.Component)),
375
409
  _a.displayName = "withFramePayPaypalComponent(".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component', ")"),
376
410
  _a;
377
411
  }
378
412
  exports.withFramePayPaypalComponent = withFramePayPaypalComponent;
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5qZWN0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpREFBaUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakQsMkNBQStCO0FBQy9CLHNDQUE2QztBQUM3QyxpRkFBbUU7QUFDbkUseUVBQTJEO0FBQzNELHlFQUEyRDtBQUMzRCxtRkFBcUU7QUFDckUseUVBQTJEO0FBQzNELDZFQUErRDtBQVkvRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsSUFBcUI7SUFDNUMsT0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO0tBQ3BCLENBQWtCO0FBSG5CLENBR21CLENBQUM7QUFFeEIsU0FBUyxHQUFHLENBQ1IsSUFBWSxFQUNaLGdCQUF3QyxFQUN4QyxRQUEyQzs7SUFFM0M7WUFBcUIsMkJBQXNCO1lBQXBDOztZQW1CUCxDQUFDO1lBZEcsd0JBQU0sR0FBTjtnQkFBQSxpQkFhQztnQkFaRyxPQUFPLENBQ0gsb0JBQUMseUJBQWUsUUFDWCxVQUFDLElBQXFCO29CQUNuQixJQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hDLE9BQU8sQ0FDSCxvQkFBQyxnQkFBZ0IsZUFDSixLQUFJLENBQUMsS0FBSyxFQUFLLFFBQVEsRUFDbEMsQ0FDTCxDQUFDO2dCQUNOLENBQUMsQ0FDYSxDQUNyQixDQUFDO1lBQ04sQ0FBQztZQUNMLGNBQUM7UUFBRCxDQUFDLEFBbkJNLENBQWMsS0FBSyxDQUFDLFNBQVM7UUFDaEIsY0FBVyxHQUFHLHNCQUFlLElBQUksY0FDN0MsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLElBQUksSUFBSSxXQUFXLE1BQ3BFO1dBZ0JOO0FBQ04sQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxVQUFDLElBQXFCO0lBQ3pDLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ2xCOztXQUVHO1FBRUg7O1dBRUc7UUFDSCxJQUFNLFdBQVcsR0FBRyxHQUFHLENBQ25CLGFBQWEsRUFDYixzQkFBb0IsRUFDcEIsVUFBQyxJQUFxQjtZQUNsQixPQUFBLENBQUM7Z0JBQ0csUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDakMsV0FBVyxFQUFFLE1BQU07YUFDUixDQUFBO1FBSGYsQ0FHZSxDQUN0QixDQUFDO1FBRUYsT0FBTztZQUNILFdBQVcsYUFBQTtTQUNkLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDekI7OztXQUdHO1FBRUg7O1dBRUc7UUFDSCxJQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FDOUIsd0JBQXdCLEVBQ3hCLHNCQUFvQixFQUNwQixVQUFDLElBQXFCO1lBQ2xCLE9BQUEsQ0FBQztnQkFDRyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxXQUFXLEVBQUUsaUJBQWlCO2FBQ25CLENBQUE7UUFIZixDQUdlLENBQ3RCLENBQUM7UUFFRjs7V0FFRztRQUNILElBQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUNoQywwQkFBMEIsRUFDMUIsc0JBQW9CLEVBQ3BCLFVBQUMsSUFBcUI7WUFDbEIsT0FBQSxDQUFDO2dCQUNHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxtQkFBbUI7YUFDckIsQ0FBQTtRQUhmLENBR2UsQ0FDdEIsQ0FBQztRQUVGOztXQUVHO1FBQ0gsSUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQ2hDLDBCQUEwQixFQUMxQixzQkFBb0IsRUFDcEIsVUFBQyxJQUFxQjtZQUNsQixPQUFBLENBQUM7Z0JBQ0csUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDakMsV0FBVyxFQUFFLG1CQUFtQjthQUNyQixDQUFBO1FBSGYsQ0FHZSxDQUN0QixDQUFDO1FBRUYsT0FBTztZQUNILHdCQUF3QiwwQkFBQTtZQUN4QixzQkFBc0Isd0JBQUE7WUFDdEIsd0JBQXdCLDBCQUFBO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDbEI7OztXQUdHO1FBQ0gsSUFBTSxXQUFXLEdBQUcsR0FBRyxDQUNuQixhQUFhLEVBQ2Isc0JBQW9CLEVBQ3BCLFVBQUMsSUFBcUI7WUFDbEIsT0FBQSxDQUFDO2dCQUNHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7YUFDdEIsQ0FBQTtRQUZmLENBRWUsQ0FDdEIsQ0FBQztRQUVGOztXQUVHO1FBQ0gsSUFBTSxjQUFjLEdBQUcsR0FBRyxDQUN0QixnQkFBZ0IsRUFDaEIsc0JBQW9CLEVBQ3BCLFVBQUMsSUFBcUI7WUFDbEIsT0FBQSxDQUFDO2dCQUNHLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxTQUFTO2FBQ1gsQ0FBQTtRQUhmLENBR2UsQ0FDdEIsQ0FBQztRQUVGOztXQUVHO1FBQ0gsSUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQ3pCLG1CQUFtQixFQUNuQixzQkFBb0IsRUFDcEIsVUFBQyxJQUFxQjtZQUNsQixPQUFBLENBQUM7Z0JBQ0csUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDakMsV0FBVyxFQUFFLFlBQVk7YUFDZCxDQUFBO1FBSGYsQ0FHZSxDQUN0QixDQUFDO1FBRUY7O1dBRUc7UUFDSCxJQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FDekIsbUJBQW1CLEVBQ25CLHNCQUFvQixFQUNwQixVQUFDLElBQXFCO1lBQ2xCLE9BQUEsQ0FBQztnQkFDRyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxXQUFXLEVBQUUsWUFBWTthQUNkLENBQUE7UUFIZixDQUdlLENBQ3RCLENBQUM7UUFFRixPQUFPO1lBQ0gsY0FBYyxnQkFBQTtZQUNkLFdBQVcsYUFBQTtZQUNYLGlCQUFpQixtQkFBQTtZQUNqQixpQkFBaUIsbUJBQUE7U0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN0Qjs7V0FFRztRQUVILElBQU0sZUFBZSxHQUFHLEdBQUcsQ0FDdkIsaUJBQWlCLEVBQ2pCLDBCQUF3QixFQUN4QixVQUFDLElBQXFCO1lBQ2xCLE9BQUEsQ0FBQztnQkFDRyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2FBQ2xCLENBQUE7UUFGbkIsQ0FFbUIsQ0FDMUIsQ0FBQztRQUVGLE9BQU87WUFDSCxlQUFlLGlCQUFBO1NBQ2xCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDdkI7O1dBRUc7UUFFSCxJQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FDeEIsa0JBQWtCLEVBQ2xCLDJCQUF5QixFQUN6QixVQUFDLElBQXFCO1lBQ2xCLE9BQUEsQ0FBQztnQkFDRyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2FBQ2pCLENBQUE7UUFGcEIsQ0FFb0IsQ0FDM0IsQ0FBQztRQUVGLE9BQU87WUFDSCxnQkFBZ0Isa0JBQUE7U0FDbkIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNwQjs7V0FFRztRQUVILElBQU0sYUFBYSxHQUFHLEdBQUcsQ0FDckIsZUFBZSxFQUNmLHdCQUFzQixFQUN0QixVQUFDLElBQXFCO1lBQ2xCLE9BQUEsQ0FBQztnQkFDRyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2FBQ3BCLENBQUE7UUFGakIsQ0FFaUIsQ0FDeEIsQ0FBQztRQUVGLE9BQU87WUFDSCxhQUFhLGVBQUE7U0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0VBQWdFLENBQ25FLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixTQUFnQixZQUFZLENBQ3hCLGdCQUVDOztJQUVELElBQU0sUUFBUSxHQUFHLDBEQUNWLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FDdEIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxHQUM3QixjQUFjLENBQUMsTUFBTSxDQUFDLEdBQ3RCLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FDMUIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxHQUMzQixjQUFjLENBQUMsUUFBUSxDQUFDLENBQ0osQ0FBQztJQUM1QjtZQUFxQiwyQkFBa0M7WUFBaEQ7O1lBc0JQLENBQUM7WUFqQkcsd0JBQU0sR0FBTjtnQkFBQSxpQkFnQkM7Z0JBZkcsT0FBTyxDQUNILG9CQUFDLHlCQUFlLFFBQ1gsVUFBQyxJQUFxQjtvQkFDbkIsT0FBTyxDQUNILG9CQUFDLGdCQUFnQixlQUVOLEtBQUksQ0FBQyxLQUFLLEVBQ1YsUUFBUSxJQUNYLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFFdkMsQ0FDTCxDQUFDO2dCQUNOLENBQUMsQ0FDYSxDQUNyQixDQUFDO1lBQ04sQ0FBQztZQUNMLGNBQUM7UUFBRCxDQUFDLEFBdEJNLENBQWMsS0FBSyxDQUFDLFNBQVM7UUFDaEIsY0FBVyxHQUFHLHVCQUMxQixnQkFBZ0IsQ0FBQyxXQUFXLElBQUksZ0JBQWdCLENBQUMsSUFBSSxJQUFJLFdBQVcsTUFDcEU7V0FtQk47QUFDTixDQUFDO0FBcENELG9DQW9DQztBQUVELFNBQWdCLHlCQUF5QixDQUNyQyxnQkFBd0U7O0lBRXhFLElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQXNCLENBQUM7SUFDN0Q7WUFBcUIsMkJBQWtDO1lBQWhEOztZQXNCUCxDQUFDO1lBakJHLHdCQUFNLEdBQU47Z0JBQUEsaUJBZ0JDO2dCQWZHLE9BQU8sQ0FDSCxvQkFBQyx5QkFBZSxRQUNYLFVBQUMsSUFBcUI7b0JBQ25CLE9BQU8sQ0FDSCxvQkFBQyxnQkFBZ0IsZUFFTixLQUFJLENBQUMsS0FBSyxFQUNWLFFBQVEsSUFDWCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBRXZDLENBQ0wsQ0FBQztnQkFDTixDQUFDLENBQ2EsQ0FDckIsQ0FBQztZQUNOLENBQUM7WUFDTCxjQUFDO1FBQUQsQ0FBQyxBQXRCTSxDQUFjLEtBQUssQ0FBQyxTQUFTO1FBQ2hCLGNBQVcsR0FBRyxvQ0FDMUIsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLElBQUksSUFBSSxXQUFXLE1BQ3BFO1dBbUJOO0FBQ04sQ0FBQztBQTNCRCw4REEyQkM7QUFFRCxTQUFnQix5QkFBeUIsQ0FDckMsZ0JBQXdFOztJQUV4RSxJQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFzQixDQUFDO0lBQ3BFO1lBQXFCLDJCQUFrQztZQUFoRDs7WUFzQlAsQ0FBQztZQWpCRyx3QkFBTSxHQUFOO2dCQUFBLGlCQWdCQztnQkFmRyxPQUFPLENBQ0gsb0JBQUMseUJBQWUsUUFDWCxVQUFDLElBQXFCO29CQUNuQixPQUFPLENBQ0gsb0JBQUMsZ0JBQWdCLGVBRU4sS0FBSSxDQUFDLEtBQUssRUFDVixRQUFRLElBQ1gsUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUV2QyxDQUNMLENBQUM7Z0JBQ04sQ0FBQyxDQUNhLENBQ3JCLENBQUM7WUFDTixDQUFDO1lBQ0wsY0FBQztRQUFELENBQUMsQUF0Qk0sQ0FBYyxLQUFLLENBQUMsU0FBUztRQUNoQixjQUFXLEdBQUcsb0NBQzFCLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksV0FBVyxNQUNwRTtXQW1CTjtBQUNOLENBQUM7QUEzQkQsOERBMkJDO0FBRUQsU0FBZ0IseUJBQXlCLENBQ3JDLGdCQUF3RTs7SUFFeEUsSUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsQ0FBQztJQUM3RDtZQUFxQiwyQkFBa0M7WUFBaEQ7O1lBc0JQLENBQUM7WUFqQkcsd0JBQU0sR0FBTjtnQkFBQSxpQkFnQkM7Z0JBZkcsT0FBTyxDQUNILG9CQUFDLHlCQUFlLFFBQ1gsVUFBQyxJQUFxQjtvQkFDbkIsT0FBTyxDQUNILG9CQUFDLGdCQUFnQixlQUVOLEtBQUksQ0FBQyxLQUFLLEVBQ1YsUUFBUSxJQUNYLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFFdkMsQ0FDTCxDQUFDO2dCQUNOLENBQUMsQ0FDYSxDQUNyQixDQUFDO1lBQ04sQ0FBQztZQUNMLGNBQUM7UUFBRCxDQUFDLEFBdEJNLENBQWMsS0FBSyxDQUFDLFNBQVM7UUFDaEIsY0FBVyxHQUFHLG9DQUMxQixnQkFBZ0IsQ0FBQyxXQUFXLElBQUksZ0JBQWdCLENBQUMsSUFBSSxJQUFJLFdBQVcsTUFDcEU7V0FtQk47QUFDTixDQUFDO0FBM0JELDhEQTJCQztBQUVELFNBQWdCLDZCQUE2QixDQUN6QyxnQkFFQzs7SUFFRCxJQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUEwQixDQUFDO0lBQ3JFO1lBQXFCLDJCQUFrQztZQUFoRDs7WUFzQlAsQ0FBQztZQWpCRyx3QkFBTSxHQUFOO2dCQUFBLGlCQWdCQztnQkFmRyxPQUFPLENBQ0gsb0JBQUMseUJBQWUsUUFDWCxVQUFDLElBQXFCO29CQUNuQixPQUFPLENBQ0gsb0JBQUMsZ0JBQWdCLGVBRU4sS0FBSSxDQUFDLEtBQUssRUFDVixRQUFRLElBQ1gsUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUV2QyxDQUNMLENBQUM7Z0JBQ04sQ0FBQyxDQUNhLENBQ3JCLENBQUM7WUFDTixDQUFDO1lBQ0wsY0FBQztRQUFELENBQUMsQUF0Qk0sQ0FBYyxLQUFLLENBQUMsU0FBUztRQUNoQixjQUFXLEdBQUcsd0NBQzFCLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksV0FBVyxNQUNwRTtXQW1CTjtBQUNOLENBQUM7QUE3QkQsc0VBNkJDO0FBRUQsU0FBZ0IsOEJBQThCLENBQzFDLGdCQUVDOztJQUVELElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQTJCLENBQUM7SUFDdkU7WUFBcUIsMkJBQWtDO1lBQWhEOztZQXNCUCxDQUFDO1lBakJHLHdCQUFNLEdBQU47Z0JBQUEsaUJBZ0JDO2dCQWZHLE9BQU8sQ0FDSCxvQkFBQyx5QkFBZSxRQUNYLFVBQUMsSUFBcUI7b0JBQ25CLE9BQU8sQ0FDSCxvQkFBQyxnQkFBZ0IsZUFFTixLQUFJLENBQUMsS0FBSyxFQUNWLFFBQVEsSUFDWCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBRXZDLENBQ0wsQ0FBQztnQkFDTixDQUFDLENBQ2EsQ0FDckIsQ0FBQztZQUNOLENBQUM7WUFDTCxjQUFDO1FBQUQsQ0FBQyxBQXRCTSxDQUFjLEtBQUssQ0FBQyxTQUFTO1FBQ2hCLGNBQVcsR0FBRyx5Q0FDMUIsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLElBQUksSUFBSSxXQUFXLE1BQ3BFO1dBbUJOO0FBQ04sQ0FBQztBQTdCRCx3RUE2QkM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FDdkMsZ0JBQTBFOztJQUUxRSxJQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUF3QixDQUFDO0lBQ2pFO1lBQXFCLDJCQUFrQztZQUFoRDs7WUFzQlAsQ0FBQztZQWpCRyx3QkFBTSxHQUFOO2dCQUFBLGlCQWdCQztnQkFmRyxPQUFPLENBQ0gsb0JBQUMseUJBQWUsUUFDWCxVQUFDLElBQXFCO29CQUNuQixPQUFPLENBQ0gsb0JBQUMsZ0JBQWdCLGVBRU4sS0FBSSxDQUFDLEtBQUssRUFDVixRQUFRLElBQ1gsUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUV2QyxDQUNMLENBQUM7Z0JBQ04sQ0FBQyxDQUNhLENBQ3JCLENBQUM7WUFDTixDQUFDO1lBQ0wsY0FBQztRQUFELENBQUMsQUF0Qk0sQ0FBYyxLQUFLLENBQUMsU0FBUztRQUNoQixjQUFXLEdBQUcsc0NBQzFCLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksV0FBVyxNQUNwRTtXQW1CTjtBQUNOLENBQUM7QUEzQkQsa0VBMkJDIn0=
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5qZWN0b3IudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpREFBaUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakQsMkNBQStCO0FBQy9CLHNDQUE2QztBQUM3QyxpRkFBbUU7QUFDbkUscUZBQXVFO0FBQ3ZFLHlFQUEyRDtBQUMzRCx5RUFBMkQ7QUFDM0QsbUZBQXFFO0FBQ3JFLHlFQUEyRDtBQUMzRCw2RUFBK0Q7QUFhL0QsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLElBQXFCO0lBQzVDLE9BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDekMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztLQUNwQixDQUFrQjtBQUhuQixDQUdtQixDQUFDO0FBRXhCLFNBQVMsR0FBRyxDQUNSLElBQVksRUFDWixnQkFBd0MsRUFDeEMsUUFBMkM7O0lBRTNDO1lBQXFCLDJCQUFzQjtZQUFwQzs7WUFtQlAsQ0FBQztZQWRHLHdCQUFNLEdBQU47Z0JBQUEsaUJBYUM7Z0JBWkcsT0FBTyxDQUNILG9CQUFDLHlCQUFlLFFBQ1gsVUFBQyxJQUFxQjtvQkFDbkIsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQyxPQUFPLENBQ0gsb0JBQUMsZ0JBQWdCLGVBQ0osS0FBSSxDQUFDLEtBQUssRUFBSyxRQUFRLEVBQ2xDLENBQ0wsQ0FBQztnQkFDTixDQUFDLENBQ2EsQ0FDckIsQ0FBQztZQUNOLENBQUM7WUFDTCxjQUFDO1FBQUQsQ0FBQyxBQW5CTSxDQUFjLEtBQUssQ0FBQyxTQUFTO1FBQ2hCLGNBQVcs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebilly/framepay-react",
3
- "version": "7.2.1",
3
+ "version": "8.1.0",
4
4
  "description": "A React wrapper for Rebilly's FramePay offering out-of-the-box support for Redux and other common React features",
5
5
  "main": "build/index.js",
6
6
  "author": "Rebilly",
package/src/index.spec.ts CHANGED
@@ -5,6 +5,7 @@ const exportKeys: ReadonlyArray<string> = [
5
5
  'FramePayProvider',
6
6
  'withFramePay',
7
7
  'withFramePayApplePayComponent',
8
+ 'withFramePaySamsungPayComponent',
8
9
  'withFramePayCardComponent',
9
10
  'withFramePayBankComponent',
10
11
  'withFramePayGooglePayComponent',
package/src/index.ts CHANGED
@@ -3,6 +3,7 @@ import { SUPPORTED_CARD_BRANDS } from './lib/constants';
3
3
  import {
4
4
  withFramePay,
5
5
  withFramePayApplePayComponent,
6
+ withFramePaySamsungPayComponent,
6
7
  withFramePayBankComponent,
7
8
  withFramePayCardComponent,
8
9
  withFramePayGooglePayComponent,
@@ -14,6 +15,7 @@ import FramePayProvider from './lib/components/provider';
14
15
 
15
16
  import {
16
17
  FramePayApplePayProps,
18
+ FramePaySamsungPayProps,
17
19
  FramePayBankProps,
18
20
  FramePayCardProps,
19
21
  FramePayComponentProps,
@@ -30,6 +32,7 @@ export {
30
32
  withFramePayBankComponent,
31
33
  withFramePayIBANComponent,
32
34
  withFramePayApplePayComponent,
35
+ withFramePaySamsungPayComponent,
33
36
  withFramePayGooglePayComponent,
34
37
  withFramePayPaypalComponent,
35
38
  FramePayComponentProps,
@@ -37,6 +40,7 @@ export {
37
40
  FramePayBankProps,
38
41
  FramePayIBANProps,
39
42
  FramePayApplePayProps,
43
+ FramePaySamsungPayProps,
40
44
  FramePayGooglePayProps,
41
45
  FramePayPaypalProps,
42
46
  };
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import FramePayError from '../../framepay-error';
3
+ import BaseElement from './base-element';
4
+
5
+ export default class SamsungPayElement extends BaseElement<
6
+ SamsungPayProps,
7
+ SamsungPayState
8
+ > {
9
+ setupElement() {
10
+ const { Framepay } = this.props;
11
+
12
+ const makeElement = () => {
13
+ // elementNode already checked in BaseElement.handleSetupElement
14
+ // just ts checks fix
15
+ if (!this.elementNode) {
16
+ throw FramePayError({
17
+ code: FramePayError.codes.elementMountError,
18
+ details: `SamsungPayElement invalid elementNode`,
19
+ });
20
+ }
21
+
22
+ try {
23
+ return Framepay.samsungPay.mount(this.elementNode);
24
+ } catch (e) {
25
+ throw FramePayError({
26
+ code: FramePayError.codes.elementMountError,
27
+ details: `SamsungPayElement error in remote api call`,
28
+ trace: e,
29
+ });
30
+ }
31
+ };
32
+
33
+ const element = makeElement();
34
+ this.setState({ element });
35
+ }
36
+ }
@@ -3,6 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import { ContextConsumer } from '../context';
5
5
  import ApplePayElementComponent from './elements/applepay-element';
6
+ import SamsungPayElementComponent from './elements/samsungpay-element';
6
7
  import BankElementComponent from './elements/bank-element';
7
8
  import CardElementComponent from './elements/card-element';
8
9
  import GooglePayElementComponent from './elements/googlepay-element';
@@ -11,6 +12,7 @@ import PaypalElementComponent from './elements/paypal-element';
11
12
 
12
13
  import type {
13
14
  FramePayApplePayProps,
15
+ FramePaySamsungPayProps,
14
16
  FramePayBankProps,
15
17
  FramePayCardProps,
16
18
  FramePayComponentProps,
@@ -213,6 +215,25 @@ const elementsFabric = (type: PaymentElements): object => {
213
215
  };
214
216
  }
215
217
 
218
+ if (type === 'samsungPay') {
219
+ /**
220
+ * Samsung Pay
221
+ */
222
+
223
+ const SamsungPayElement = Hoc(
224
+ 'SamsungPayElement',
225
+ SamsungPayElementComponent,
226
+ (data: FramePayContext) =>
227
+ ({
228
+ Framepay: makeFramepayProps(data),
229
+ } as SamsungPayProps),
230
+ );
231
+
232
+ return {
233
+ SamsungPayElement,
234
+ };
235
+ }
236
+
216
237
  if (type === 'googlePay') {
217
238
  /**
218
239
  * Google Pay
@@ -269,6 +290,7 @@ export function withFramePay<OriginalProps extends object>(
269
290
  ...elementsFabric('bankAccount'),
270
291
  ...elementsFabric('iban'),
271
292
  ...elementsFabric('applePay'),
293
+ ...elementsFabric('samsungPay'),
272
294
  ...elementsFabric('googlePay'),
273
295
  ...elementsFabric('paypal'),
274
296
  } as FramePayComponentProps;
@@ -415,6 +437,37 @@ export function withFramePayApplePayComponent<OriginalProps extends object>(
415
437
  };
416
438
  }
417
439
 
440
+ export function withFramePaySamsungPayComponent<OriginalProps extends object>(
441
+ WrappedComponent: React.ComponentType<
442
+ OriginalProps & FramePaySamsungPayProps
443
+ >,
444
+ ) {
445
+ const elements = elementsFabric('samsungPay') as FramePaySamsungPayProps;
446
+ return class extends React.Component<OriginalProps, {}> {
447
+ static readonly displayName = `withFramePaySamsungPayComponent(${
448
+ WrappedComponent.displayName || WrappedComponent.name || 'Component'
449
+ })`;
450
+
451
+ render() {
452
+ return (
453
+ <ContextConsumer>
454
+ {(data: FramePayContext) => {
455
+ return (
456
+ <WrappedComponent
457
+ {...{
458
+ ...this.props,
459
+ ...elements,
460
+ Framepay: makeFramepayProps(data),
461
+ }}
462
+ />
463
+ );
464
+ }}
465
+ </ContextConsumer>
466
+ );
467
+ }
468
+ };
469
+ }
470
+
418
471
  export function withFramePayGooglePayComponent<OriginalProps extends object>(
419
472
  WrappedComponent: React.ComponentType<
420
473
  OriginalProps & FramePayGooglePayProps
@@ -2,6 +2,7 @@ setTimeout(() => {
2
2
  const node = document.createElement('ul');
3
3
  [
4
4
  'apple-pay',
5
+ 'samsung-pay',
5
6
  'bank-separate',
6
7
  'card-separate',
7
8
  'card-separate-rebilly-fields',
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <title>Test Samsung Pay</title>
7
+ </head>
8
+
9
+ <body>
10
+ <div id="app"></div>
11
+ <script src="samsung-pay.js"></script>
12
+ <script src="nav.js"></script>
13
+ </body>
14
+
15
+ </html>
@@ -0,0 +1,59 @@
1
+ import React, { Component } from 'react';
2
+ import ReactDOM from 'react-dom';
3
+
4
+ import {
5
+ FramePayProvider,
6
+ withFramePaySamsungPayComponent,
7
+ } from '../../../build';
8
+ import { prettyDebugRender, ReactVersion } from './util';
9
+ import './style.css';
10
+
11
+ const params = {
12
+ publishableKey: 'pk_sandbox_S95ATjj4hXZs-T9QpZq1ENl2tDSrUkCGv98utc9',
13
+ organizationId: '5977150c-1c97-4dd4-9860-6bb2bab070b4',
14
+ websiteId: 'demo.com',
15
+ transactionData: {
16
+ amount: 10,
17
+ currency: 'USD',
18
+ label: 'Purchase label 1',
19
+ },
20
+ };
21
+
22
+ class App extends Component {
23
+ constructor(props) {
24
+ super(props);
25
+ this.state = {
26
+ token: null,
27
+ };
28
+ }
29
+
30
+ render() {
31
+ return (
32
+ <FramePayProvider
33
+ injectStyle
34
+ {...params}
35
+ onReady={() => {
36
+ console.log('FramePayProvider.onReady');
37
+ }}
38
+ onError={(err) => {
39
+ console.error('FramePayProvider.onError', err);
40
+ }}
41
+ onTokenReady={(token) => this.setState({ token })}
42
+ >
43
+ <div>
44
+ {ReactVersion()}
45
+ <div>
46
+ <h3>FramePay version: {this.props.Framepay.version}</h3>
47
+ <div className="flex-wrapper">
48
+ {prettyDebugRender(this.state)}
49
+ <this.props.SamsungPayElement />
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </FramePayProvider>
54
+ );
55
+ }
56
+ }
57
+
58
+ const WrappedApp = withFramePaySamsungPayComponent(App);
59
+ ReactDOM.render(<WrappedApp />, document.getElementById('app'));
@@ -55,6 +55,15 @@ interface ApplePayProps extends FramepayProps {
55
55
  readonly id?: string;
56
56
  }
57
57
 
58
+ interface SamsungPayFramepayProps extends FramepayProps {
59
+ readonly samsungPay: SamsungPayPaymentMethod;
60
+ }
61
+
62
+ interface SamsungPayProps extends FramepayProps {
63
+ readonly Framepay: SamsungPayFramepayProps;
64
+ readonly id?: string;
65
+ }
66
+
58
67
  interface GooglePayFramepayProps extends FramepayProps {
59
68
  readonly googlePay: GooglePayPaymentMethod;
60
69
  }
@@ -87,6 +96,10 @@ interface ApplePayState extends PaymentComponentState {
87
96
  readonly element: PaymentElement | null;
88
97
  }
89
98
 
99
+ interface SamsungPayState extends PaymentComponentState {
100
+ readonly element: PaymentElement | null;
101
+ }
102
+
90
103
  interface GooglePayState extends PaymentComponentState {
91
104
  readonly element: PaymentElement | null;
92
105
  }
@@ -18,6 +18,7 @@ export interface FramePayComponentProps {
18
18
 
19
19
  // Express method components
20
20
  readonly ApplePayElement: React.ElementType;
21
+ readonly SamsungPayElement: React.ElementType;
21
22
  readonly GooglePayElement: React.ElementType;
22
23
  readonly PaypalElement: React.ElementType;
23
24
  }
@@ -47,6 +48,11 @@ export interface FramePayApplePayProps {
47
48
  readonly ApplePayElement: React.ElementType;
48
49
  }
49
50
 
51
+ export interface FramePaySamsungPayProps {
52
+ readonly Framepay: FramepayProps;
53
+ readonly SamsungPayElement: React.ElementType;
54
+ }
55
+
50
56
  export interface FramePayGooglePayProps {
51
57
  readonly Framepay: FramepayProps;
52
58
  readonly GooglePayElement: React.ElementType;
@@ -40,6 +40,7 @@ export interface FramepayApi {
40
40
  readonly bankAccount: BankPaymentMethod;
41
41
  readonly iban: IBANPaymentMethod;
42
42
  readonly applePay: ApplePayPaymentMethod;
43
+ readonly samsungPay: SamsungPayPaymentMethod;
43
44
  readonly googlePay: GooglePayPaymentMethod;
44
45
  readonly paypal: PaypalPaymentMethod;
45
46
  readonly createToken: (
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SamsungPay Payment element
3
+ */
4
+
5
+ /**
6
+ * SamsungPay Payment Method
7
+ */
8
+ declare type SamsungPayPaymentElementTypes = {
9
+ readonly form: HTMLElement | React.Component;
10
+ readonly extraData?: Object;
11
+ };
12
+
13
+ interface SamsungPayPaymentMethod extends PaymentElementWrapper {
14
+ readonly mount: (
15
+ node: HTMLElement | HTMLDivElement,
16
+ options?: SamsungPayPaymentElementTypes,
17
+ ) => PaymentElement;
18
+ }
@@ -3,5 +3,6 @@ type PaymentElements =
3
3
  | 'bankAccount'
4
4
  | 'iban'
5
5
  | 'applePay'
6
+ | 'samsungPay'
6
7
  | 'googlePay'
7
8
  | 'paypal';
@@ -108,6 +108,10 @@ interface ApplePayDisplayOptions {
108
108
  readonly buttonLanguage: string;
109
109
  }
110
110
 
111
+ interface SamsungPayDisplayOptions {
112
+ readonly buttonColor: 'white' | 'black';
113
+ }
114
+
111
115
  interface GooglePayDisplayOptions {
112
116
  readonly buttonType: string;
113
117
  readonly buttonColor: string;
@@ -131,6 +135,7 @@ interface FramePaySettings {
131
135
  readonly classes?: FramePaySettingsClasses;
132
136
  readonly card?: FramePayCardSettings;
133
137
  readonly applePay?: ApplePayDisplayOptions;
138
+ readonly samsungPay?: SamsungPayDisplayOptions;
134
139
  readonly googlePay?: GooglePayDisplayOptions;
135
140
  readonly paypal?: PaypalDisplayOptions;
136
141
  readonly riskMetadata?: FramePaySettingsRiskMetadata;