@primer-io/checkout-web 2.31.0 → 2.31.1
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 +7 -0
- package/README.md +67 -833
- package/dist/Primer.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @primer-io/checkout-web
|
|
2
2
|
|
|
3
|
+
## 2.31.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 41f65031: Allow PayPal button to take the full width
|
|
8
|
+
- 927ca586: fix a regression that prevented onCheckoutFail to return the payment object when available
|
|
9
|
+
|
|
3
10
|
## 2.31.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
<br/>
|
|
2
2
|
|
|
3
|
-
<h1 align="center"
|
|
3
|
+
<h1 align="center">
|
|
4
|
+
<img src="https://github.com/primer-io/example-web-checkout/blob/master/images/primer-logo.png?raw=true" height="24px">
|
|
5
|
+
Primer Web SDK
|
|
6
|
+
</h1>
|
|
4
7
|
|
|
5
|
-
<
|
|
6
|
-
<h3 align="center">
|
|
8
|
+
<h3 align="center">
|
|
7
9
|
|
|
8
10
|
[Primer's](https://primer.io) Official Universal Checkout Web SDK
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
</div>
|
|
12
|
+
</h3>
|
|
12
13
|
|
|
13
14
|
<p align="center">
|
|
14
|
-
|
|
15
15
|
<img src="https://img.shields.io/npm/v/@primer-io/checkout-web" />
|
|
16
|
-
<!-- Potentially add test coverage in the future -->
|
|
17
16
|
</p>
|
|
18
17
|
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
<div align="center">
|
|
19
|
+
<img src="https://github.com/primer-io/example-web-checkout/blob/master/images/checkout-banner.gif?raw=true" width="50%"/>
|
|
20
|
+
</div>
|
|
22
21
|
|
|
23
22
|
<br/>
|
|
24
23
|
<br/>
|
|
25
24
|
|
|
26
25
|
# 💪 Features of the Web SDK
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
💳 Create great payment experiences with our highly customizable Universal Checkout
|
|
28
|
+
|
|
29
|
+
🧩 Connect and configure any new payment method without a single line of code
|
|
30
|
+
|
|
31
|
+
✅ Dynamically handle 3DS 2.0 across processors and be SCA ready
|
|
32
|
+
|
|
33
|
+
♻️ Store payment methods for one-click checkout, recurring and repeat payments
|
|
34
|
+
|
|
35
|
+
📱 Proprietary Apple & Google Pay integrations that work with any PSP
|
|
36
|
+
|
|
37
|
+
🔒 Always PCI compliant without redirecting customers
|
|
34
38
|
|
|
35
39
|
<br/>
|
|
36
40
|
|
|
37
41
|
# 📚 Documentation
|
|
38
42
|
|
|
39
|
-
Consider looking at the following resources:
|
|
40
|
-
|
|
41
43
|
- [Documentation](https://primer.io/docs)
|
|
42
|
-
- [
|
|
44
|
+
- [SDK reference](https://primer.io/docs/sdk/web/2.x.x)
|
|
43
45
|
- [API reference](https://apiref.primer.io/docs)
|
|
44
46
|
- [Changelogs](https://primer.io/docs/changelog/sdk-changelog/web)
|
|
45
47
|
|
|
@@ -47,15 +49,17 @@ Consider looking at the following resources:
|
|
|
47
49
|
|
|
48
50
|
# 💡 Support
|
|
49
51
|
|
|
50
|
-
For any support or integration related queries, feel free to [
|
|
52
|
+
For any support or integration related queries, feel free to [contact us](mailto:https://support@primer.io).
|
|
51
53
|
|
|
52
54
|
<br/>
|
|
53
55
|
|
|
54
56
|
# 📋 Prerequisites
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
🔑 Generate a client token by [creating a client session](https://primer.io/docs/api/#operation/create_client_side_token_client_session_post) in your backend
|
|
59
|
+
|
|
60
|
+
🧱 Prepare a container in which to render Universal Checkout
|
|
61
|
+
|
|
62
|
+
🎉 _That's it!_
|
|
59
63
|
|
|
60
64
|
<br/>
|
|
61
65
|
|
|
@@ -63,28 +67,28 @@ For any support or integration related queries, feel free to [Contact Us](mailto
|
|
|
63
67
|
|
|
64
68
|
## With npm (recommended)
|
|
65
69
|
|
|
66
|
-
Our Web SDK is available on npm under the name [`@primer-io/checkout-web`](https://www.npmjs.com/package/@primer-io/checkout-web).
|
|
70
|
+
Our Web SDK is available on `npm` under the name [`@primer-io/checkout-web`](https://www.npmjs.com/package/@primer-io/checkout-web).
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
That package includes TypeScript definitions.
|
|
69
73
|
|
|
70
74
|
```bash
|
|
75
|
+
# With npm
|
|
76
|
+
npm install @primer-io/checkout-web
|
|
77
|
+
|
|
78
|
+
# With pnpm
|
|
79
|
+
pnpm add @primer-io/checkout-web
|
|
71
80
|
|
|
72
81
|
# With yarn
|
|
73
82
|
yarn add @primer-io/checkout-web
|
|
74
|
-
|
|
75
|
-
# With npm
|
|
76
|
-
npm install --save @primer-io/checkout-web
|
|
77
|
-
|
|
78
83
|
```
|
|
79
84
|
|
|
80
85
|
Then import `Primer` in your application
|
|
81
86
|
|
|
82
|
-
```
|
|
87
|
+
```ts
|
|
83
88
|
import { Primer } from '@primer-io/checkout-web';
|
|
84
89
|
|
|
85
|
-
// For example
|
|
86
90
|
Primer.showUniversalCheckout(clientToken, {
|
|
87
|
-
|
|
91
|
+
// options...
|
|
88
92
|
});
|
|
89
93
|
```
|
|
90
94
|
|
|
@@ -105,569 +109,75 @@ Ensure that you're providing the desired version in the script tag. In the case
|
|
|
105
109
|
|
|
106
110
|
`Primer.min.js` will add the `Primer` object to the global scope.
|
|
107
111
|
|
|
108
|
-
```
|
|
112
|
+
```ts
|
|
109
113
|
const { Primer } = window;
|
|
110
114
|
|
|
111
|
-
// For example
|
|
112
115
|
Primer.showUniversalCheckout(clientToken, {
|
|
113
|
-
|
|
116
|
+
// options...
|
|
114
117
|
});
|
|
115
118
|
```
|
|
116
119
|
|
|
117
120
|
# 🎉 Ways of integrating the SDK
|
|
118
121
|
|
|
119
|
-
The simplest way to integrate with Primer is with our **Drop-In
|
|
122
|
+
The simplest way to integrate with Primer is with our **Drop-In Checkout**.
|
|
120
123
|
With just a few lines of code, you can display a fully in-context checkout UI with all your payment methods.
|
|
121
124
|
|
|
122
125
|
Where there is a need for more customization and control over the checkout experience, a headless version of Primer’s Universal Checkout is available.
|
|
123
|
-
You can use Headless Universal Checkout with your own UI, giving you more flexibility and allowing you to move faster when making design changes, while still having Primer capture sensitive PCI card data or other form data.
|
|
126
|
+
You can use **Headless Universal Checkout** with your own UI, giving you more flexibility and allowing you to move faster when making design changes, while still having Primer capture sensitive PCI card data or other form data.
|
|
124
127
|
|
|
125
128
|
<br/>
|
|
126
129
|
|
|
127
|
-
# Drop-In
|
|
130
|
+
# Drop-In Checkout
|
|
128
131
|
|
|
129
132
|
## 🚀 Quick start
|
|
130
133
|
|
|
131
|
-
Take a look at our [Quick Start Guide](https://primer.io/docs/
|
|
134
|
+
Take a look at our [Quick Start Guide](https://primer.io/docs/payments/universal-checkout/drop-in/get-started/web) for accepting your first payment with Drop-in Checkout.
|
|
132
135
|
|
|
133
136
|
## 👩💻 Usage
|
|
134
137
|
|
|
135
138
|
### 🔍 Rendering the checkout
|
|
136
139
|
|
|
137
|
-
Availing
|
|
140
|
+
Availing Drop-in Checkout is as easy as implementing one line of code:
|
|
138
141
|
|
|
139
|
-
```
|
|
142
|
+
```ts
|
|
140
143
|
import { Primer } from '@primer-io/checkout-web';
|
|
141
144
|
|
|
142
|
-
const
|
|
143
|
-
clientToken,
|
|
144
|
-
options,
|
|
145
|
-
);
|
|
145
|
+
const checkout = await Primer.showUniversalCheckout(clientToken, options);
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
Below is an example of a basic implementation of Universal Checkout:
|
|
149
149
|
|
|
150
|
-
```
|
|
150
|
+
```ts
|
|
151
151
|
const clientToken = '...'; // client token retrieved from your backend
|
|
152
152
|
|
|
153
153
|
const options = {
|
|
154
|
-
//
|
|
154
|
+
// container element which will contain the checkout
|
|
155
155
|
container: '#container',
|
|
156
156
|
|
|
157
157
|
onCheckoutComplete({ payment }) {
|
|
158
|
-
// Notifies you that a payment was created
|
|
159
|
-
//
|
|
160
|
-
//
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const universalCheckout = await Primer.showUniversalCheckout(
|
|
165
|
-
clientToken,
|
|
166
|
-
options,
|
|
167
|
-
);
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Note that there are more options which can be passed to Universal Checkout. Please refer to the section below for more information.
|
|
171
|
-
|
|
172
|
-
### Wait for Universal Checkout to be loaded
|
|
173
|
-
|
|
174
|
-
`Primer.showUniversalCheckout(clientToken, options)` returns a Promise that is resolved when Universal Checkout has been properly rendered on the page.
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
// With await
|
|
178
|
-
try {
|
|
179
|
-
const universalCheckout = await Primer.showUniversalCheckout(
|
|
180
|
-
clientToken,
|
|
181
|
-
options,
|
|
182
|
-
);
|
|
183
|
-
console.log('Universal Checkout is ready!');
|
|
184
|
-
} catch (e) {
|
|
185
|
-
console.log('Failed to show Universal Checkout', e);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// With then/catch
|
|
189
|
-
Primer.showUniversalCheckout(clientToken, options)
|
|
190
|
-
.then((universalCheckout) => {
|
|
191
|
-
console.log('Universal Checkout is ready!');
|
|
192
|
-
})
|
|
193
|
-
.catch((e) => {
|
|
194
|
-
console.log('Failed to show Universal Checkout', e);
|
|
195
|
-
});
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
<br/>
|
|
199
|
-
|
|
200
|
-
## 🧰 Checkout Options
|
|
201
|
-
|
|
202
|
-
When calling `showUniversalCheckout` you can provide Universal Checkout with some configuration options.
|
|
203
|
-
|
|
204
|
-
These options range from callbacks notifying you of the current payment's status, to styling options for certain UI elements.
|
|
205
|
-
|
|
206
|
-
Below are some options to consider when integrating Universal Checkout:
|
|
207
|
-
|
|
208
|
-
### 🚀 **General Options**
|
|
209
|
-
|
|
210
|
-
#### ⚙️ _Container and locale_
|
|
211
|
-
|
|
212
|
-
| option | Type | Description | |
|
|
213
|
-
| ----------- | --------------------- | ----------------------------------------------------------------------------------------- | -------- |
|
|
214
|
-
| `container` | `string` or `Element` | The container element in which the checkout should be rendered | required |
|
|
215
|
-
| `locale` | `string` | This option forces the locale. By default, the locale will be set to the browser's locale | optional |
|
|
216
|
-
|
|
217
|
-
<br/>
|
|
218
|
-
|
|
219
|
-
#### ⚙️ _Payment Lifecycle Callbacks_
|
|
220
|
-
|
|
221
|
-
Callbacks can be provided to Universal Checkout which will notify you on certain checkout events such as payment creation.
|
|
222
|
-
|
|
223
|
-
These callbacks can be used to inform you on the current state of the checkout.
|
|
224
|
-
|
|
225
|
-
We strongly recommend you to implement `onCheckoutComplete` to redirect the user to an order confirmation page when the payment is successful:
|
|
226
|
-
|
|
227
|
-
```javascript
|
|
228
|
-
const options = {
|
|
229
|
-
/* Other checkout options ... */
|
|
230
|
-
|
|
231
|
-
onPaymentCreationStart() {
|
|
232
|
-
// Notifies you before the checkout tokenizes a payment method
|
|
233
|
-
// and creates a payment
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
onBeforePaymentCreate(data, handler) {
|
|
237
|
-
// Notifies you that a payment will be created
|
|
238
|
-
// Update your UI accordingly
|
|
239
|
-
// e.g. Show custom loading UI, etc.
|
|
240
|
-
// Abort or continue with payment creation
|
|
241
|
-
// Primer will continue with payment creation if onBeforePaymentCreate is not implemented
|
|
242
|
-
|
|
243
|
-
// ⚠️ You MUST call one of the functions of the `handler` if `onBeforePaymentCreate` is implemented
|
|
244
|
-
|
|
245
|
-
// Choose to abort a payment
|
|
246
|
-
return handler.abortPaymentCreation();
|
|
247
|
-
|
|
248
|
-
// Choose to continue with payment creation
|
|
249
|
-
return handler.continuePaymentCreation();
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
onCheckoutComplete({ payment }) {
|
|
253
|
-
// Notifies you that a payment was created
|
|
254
|
-
// Move on to next step in your checkout flow:
|
|
255
|
-
// e.g. Show a success message, giving access to the service, fulfilling the order, ...
|
|
256
|
-
},
|
|
257
|
-
|
|
258
|
-
onCheckoutFail(error, { payment }, handler) {
|
|
259
|
-
// Notifies you that the checkout flow has failed and a payment could not be created
|
|
260
|
-
// This callback can also be used to display an error state within your own UI.
|
|
261
|
-
|
|
262
|
-
// ⚠️ `handler` is undefined if the SDK does not expect anything from you
|
|
263
|
-
if (!handler) {
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// ⚠️ If `handler` exists, you MUST call one of the functions of the handler
|
|
268
|
-
|
|
269
|
-
// Show a default error message
|
|
270
|
-
return handler.showErrorMessage();
|
|
271
|
-
|
|
272
|
-
// Show a custom error message
|
|
273
|
-
return handler.showErrorMessage('This is my custom error message');
|
|
274
|
-
},
|
|
275
|
-
};
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
<br/>
|
|
279
|
-
|
|
280
|
-
#### ⚙️ _Client Session Lifecycle Callbacks_
|
|
281
|
-
|
|
282
|
-
Callbacks can be provided to Universal Checkout which will notify you on client session update events.
|
|
283
|
-
|
|
284
|
-
```javascript
|
|
285
|
-
const options = {
|
|
286
|
-
/* Other checkout options ... */
|
|
287
|
-
|
|
288
|
-
onBeforeClientSessionUpdate() {
|
|
289
|
-
// Notifies you that the client session is in the process of being updated
|
|
290
|
-
// Use it to show a loading indicator on your UI
|
|
291
|
-
},
|
|
292
|
-
|
|
293
|
-
onClientSessionUpdate(clientSession) {
|
|
294
|
-
// Notifies you when the client session has been updated by the checkout
|
|
295
|
-
// Returns updated client session
|
|
296
|
-
// Updated client session can be used to inform your UI
|
|
297
|
-
// e.g. update tax, shipping or discount amounts displayed to your customers
|
|
298
|
-
},
|
|
299
|
-
};
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
#### ⚙️ _Payment Method Callbacks_
|
|
305
|
-
|
|
306
|
-
To receive updates on which payment method was selected by a customer, you can use the following callback:
|
|
307
|
-
|
|
308
|
-
```javascript
|
|
309
|
-
const options = {
|
|
310
|
-
/* Other checkout options ... */
|
|
311
|
-
|
|
312
|
-
onPaymentMethodAction(action, { paymentMethodType }) {
|
|
313
|
-
// Notifies you when a specific payment method has been selected or unselected
|
|
314
|
-
// action will either be 'PAYMENT_METHOD_SELECTED' or 'PAYMENT_METHOD_UNSELECTED'
|
|
315
|
-
},
|
|
316
|
-
};
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
---
|
|
320
|
-
|
|
321
|
-
### 💳 **Payment Methods Options**
|
|
322
|
-
|
|
323
|
-
Learn more about the [payment method specific options](https://www.notion.so/primerio/Checkout-Documentation-589aeae3387a4025917db6e29810ebaf).
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
### 🎨 **Customization Options**
|
|
328
|
-
|
|
329
|
-
Learn more about the [customization options](https://primer.io/docs/accept-payments/customize-universal-checkout/web).
|
|
330
|
-
|
|
331
|
-
#### ⚙️ _Styling_
|
|
332
|
-
|
|
333
|
-
| option | Type | Description | Default | |
|
|
334
|
-
| ------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -------- |
|
|
335
|
-
| `style` | Object | Custom style applied to the UI. <br /> Learn more about the capabilities in our [Customization Guide](docs/accept-payments/customize-universal-checkout/web/#styling-universal-checkout) | Default style | optional |
|
|
336
|
-
|
|
337
|
-
#### ⚙️ _Form Options_
|
|
338
|
-
|
|
339
|
-
| option | Type | Description | Default | |
|
|
340
|
-
| ------------------------- | ------- | --------------------------------------------- | ------- | -------- |
|
|
341
|
-
| `form.inputLabelsVisible` | Boolean | Choose whether to show the label above inputs | true | optional |
|
|
342
|
-
|
|
343
|
-
#### ⚙️ _Submit Button Options & Callbacks_
|
|
344
|
-
|
|
345
|
-
Universal Checkout allows you to use your own submit button for submitting forms. By default, the built-in submit button will be favored:
|
|
346
|
-
|
|
347
|
-
| option | Type | Description | Default | |
|
|
348
|
-
| ------------------------------- | ------- | ----------------------------------------------------------------------------------- | ------- | -------- |
|
|
349
|
-
| `submitButton.useBuiltInButton` | Boolean | Set whether to use built-in submit button or to display your own custom button | true | optional |
|
|
350
|
-
| `submitButton.amountVisible` | Boolean | Set whether the total order amount should be displayed in the submit button content | false | optional |
|
|
351
|
-
|
|
352
|
-
<br/>
|
|
353
|
-
|
|
354
|
-
Note that when **disabling** the built-in submit button and using your own custom submit button, it is **required** to implement the `submit()` function in order to notify Universal Checkout of form submissions. <br />
|
|
355
|
-
Read more about the `submit()` function in the [Manual Form Submission](#manual-form-submission) section referenced below.
|
|
356
|
-
|
|
357
|
-
<br/>
|
|
358
|
-
|
|
359
|
-
When using your own custom submit button, it's important to use the following callbacks to ensure that your submit button is in the correct state and in sync with the checkout as your customers interact with it:
|
|
360
|
-
|
|
361
|
-
```javascript
|
|
362
|
-
const options = {
|
|
363
|
-
/* Other options ... */
|
|
364
|
-
|
|
365
|
-
submitButton: {
|
|
366
|
-
useBuiltInButton: false, // Default to true
|
|
367
|
-
|
|
368
|
-
// Callback for receiving the submit button's visible state in the current scene
|
|
369
|
-
onVisible(isVisible, context: { currentSceneId }) {
|
|
370
|
-
// Show or hide your custom submit button
|
|
371
|
-
},
|
|
372
|
-
|
|
373
|
-
// Callback for receiving the submit button's disabled state in the current scene
|
|
374
|
-
onDisable(isDisabled, context: { currentSceneId }) {
|
|
375
|
-
// Disable or enable your custom submit button
|
|
376
|
-
},
|
|
377
|
-
|
|
378
|
-
// Callback for receiving the submit button's loading state in the current scene
|
|
379
|
-
onLoading(isLoading, context: { currentSceneId }) {
|
|
380
|
-
// Show your submit button in a loading state
|
|
381
|
-
},
|
|
382
|
-
|
|
383
|
-
// Callback for receiving the submit button's content in the current scene
|
|
384
|
-
onContentChange(content, context: { currentSceneId }) {
|
|
385
|
-
// Set your submit button's content with either the content provided or your own custom content
|
|
386
|
-
},
|
|
387
|
-
},
|
|
388
|
-
};
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
<br/>
|
|
392
|
-
|
|
393
|
-
#### ⚙️ _Processing Indicator Options_
|
|
394
|
-
|
|
395
|
-
Show a processing indicator overlay on top of the checkout when submitting a form:
|
|
396
|
-
|
|
397
|
-
| option | Type | Description | Default | |
|
|
398
|
-
| ----------------------------- | ------- | -------------------------------------------------------------------------------- | ------- | -------- |
|
|
399
|
-
| `processingIndicator.visible` | Boolean | Choose whether a processing indicator overlay should be shown on form submission | true | optional |
|
|
400
|
-
|
|
401
|
-
<br/>
|
|
402
|
-
|
|
403
|
-
#### ⚙️ _Error Message Options & Callbacks_
|
|
404
|
-
|
|
405
|
-
When Universal Checkout encounters errors processing payments, these errors will be shown to your users by default, below the submit button.
|
|
406
|
-
|
|
407
|
-
If you want to show your own error messages, you have the option to disable the default, built-in error messages:
|
|
408
|
-
|
|
409
|
-
| option | Type | Description | Default | |
|
|
410
|
-
| ----------------------- | ------- | ----------------------------------------------------------------- | ------- | -------- |
|
|
411
|
-
| `errorMessage.disabled` | Boolean | Choose whether to allow Universal Checkout to show error messages | false | optional |
|
|
412
|
-
|
|
413
|
-
<br/>
|
|
414
|
-
|
|
415
|
-
You can use the following callbacks to get notified when Universal Checkout intends to display an error message. By using these callbacks, you can respond with your own UI changes and avail a custom error message:
|
|
416
|
-
|
|
417
|
-
```javascript
|
|
418
|
-
const options = {
|
|
419
|
-
/* Other options ... */
|
|
420
|
-
|
|
421
|
-
errorMessage: {
|
|
422
|
-
disabled: false, // Default to false
|
|
423
|
-
|
|
424
|
-
// A callback for when the error message should be displayed
|
|
425
|
-
onErrorMessageShow(message) {
|
|
426
|
-
// Choose to use provided message for own purposes
|
|
427
|
-
},
|
|
428
|
-
|
|
429
|
-
// A callback for when the error message should be hidden
|
|
430
|
-
onErrorMessageHide() {
|
|
431
|
-
// Update own UI accordingly
|
|
432
|
-
},
|
|
433
|
-
},
|
|
434
|
-
};
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
<br/>
|
|
438
|
-
|
|
439
|
-
#### ⚙️ _Success Screen Options_
|
|
440
|
-
|
|
441
|
-
When the checkout is succefully complete, Universal Checkout displays a success scene with a default success message _"Your payment was successful!"_.
|
|
442
|
-
|
|
443
|
-
Set the option `successScreen` to modify the behavior of the success scene.
|
|
444
|
-
|
|
445
|
-
```javascript
|
|
446
|
-
const options = {
|
|
447
|
-
/* Other options ... */
|
|
448
|
-
|
|
449
|
-
// Remove the success screen
|
|
450
|
-
successScreen: false,
|
|
451
|
-
|
|
452
|
-
// Change the message of the default success screen
|
|
453
|
-
successScreen: {
|
|
454
|
-
type: 'CHECK',
|
|
455
|
-
title: 'This is a custom success message!',
|
|
456
|
-
},
|
|
457
|
-
};
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
---
|
|
461
|
-
|
|
462
|
-
### 🔨 **Advanced Options**
|
|
463
|
-
|
|
464
|
-
#### ⚙️ _Manual Payment Creation & Tokenization Lifecycle Callbacks_
|
|
465
|
-
|
|
466
|
-
By default, Universal Checkout will automatically create payments and manage their lifecycles on your behalf. The manual payment creation flow used in previous Web SDK versions is still supported.
|
|
467
|
-
|
|
468
|
-
Check our [Manual Payment Creation guide](https://primer.io/docs/accept-payments/advanced-checkout-configuration/manual).
|
|
469
|
-
|
|
470
|
-
<!--
|
|
471
|
-
|
|
472
|
-
By default, Universal Checkout will automatically create payments and manage their lifecycles on your behalf.
|
|
473
|
-
|
|
474
|
-
The manual payment creation flow used in previous Web SDK versions is still supported. To activate it, make sure to:
|
|
475
|
-
|
|
476
|
-
- set `paymentHandling` to `MANUAL`
|
|
477
|
-
- implement `onTokenizeSuccess` and `onResumeSuccess`
|
|
478
|
-
|
|
479
|
-
```javascript
|
|
480
|
-
const options = {
|
|
481
|
-
/* Other checkout options ... */
|
|
482
|
-
|
|
483
|
-
paymentHandling: 'MANUAL',
|
|
484
|
-
|
|
485
|
-
async onTokenizeSuccess(paymentMethodTokenData, handler) {
|
|
486
|
-
// Send the Payment Method Token to your server
|
|
487
|
-
// to create a payment using Payments API
|
|
488
|
-
// const response = await createPayment(paymentMethodTokenData.token);
|
|
489
|
-
|
|
490
|
-
// Call `handler.handleFailure` to cancel the flow and display an error message
|
|
491
|
-
if (!response) {
|
|
492
|
-
return handler.handleFailure(
|
|
493
|
-
'The payment failed. Please try with another payment method.',
|
|
494
|
-
);
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
// If a new clientToken is available, call `handler.continueWithNewClientToken` to refresh the client session.
|
|
498
|
-
// The checkout will automatically perform the action required by the Workflow.
|
|
499
|
-
if (response.requiredAction.clientToken) {
|
|
500
|
-
return hander.continueWithNewClientToken(response.requiredAction.clientToken);
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
// Display the success screen
|
|
504
|
-
return hander.handleSuccess();
|
|
505
|
-
},
|
|
506
|
-
|
|
507
|
-
async onResumeSuccess(resumeTokenData, handler) {
|
|
508
|
-
// Send the resume token to your server to resume the payment
|
|
509
|
-
// const response = await resumePayment(resumeTokenData.resumeToken);
|
|
510
|
-
|
|
511
|
-
// Call `handler.handlehandleFailureError` to cancel the flow and display an error message
|
|
512
|
-
if (!response) {
|
|
513
|
-
return handler.handleFailure(
|
|
514
|
-
'The payment failed. Please try with another payment method.',
|
|
515
|
-
);
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
// If a new clientToken is available, call `handler.continueWithNewClientToken` to refresh the client session.
|
|
519
|
-
// The checkout will automatically perform the action required by the Workflow
|
|
520
|
-
if (response.requiredAction.clientToken) {
|
|
521
|
-
return hander.continueWithNewClientToken(response.requiredAction.clientToken);
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
// Display the success screen
|
|
525
|
-
return hander.handleSuccess();
|
|
158
|
+
// Notifies you that a payment was created,
|
|
159
|
+
// so that you can move to next the step in your checkout flow.
|
|
160
|
+
// For example:
|
|
161
|
+
// - showing a success message
|
|
162
|
+
// - giving access to the service
|
|
163
|
+
// - fulfilling the order
|
|
526
164
|
},
|
|
527
165
|
};
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
Additional optional callbacks are available:
|
|
531
|
-
|
|
532
|
-
```javascript
|
|
533
|
-
const options = {
|
|
534
|
-
/* Other checkout options ... */
|
|
535
|
-
|
|
536
|
-
async onTokenizeShouldStart({ paymentMethodType }) {
|
|
537
|
-
// Return true if tokenization is allowed to start
|
|
538
|
-
return true;
|
|
539
|
-
|
|
540
|
-
// Return false if tokenization is not allowed to start
|
|
541
|
-
// This is likely to happen if the user has not properly filled in a form owned by you
|
|
542
|
-
return false;
|
|
543
|
-
},
|
|
544
|
-
|
|
545
|
-
onTokenizeDidNotStart(reason) {
|
|
546
|
-
// Tokenization did not start
|
|
547
|
-
|
|
548
|
-
if (reason === 'TOKENIZATION_DISABLED') {
|
|
549
|
-
// Tokenization has been disabled with `setTokenizationEnabled`
|
|
550
|
-
} else if (reason === 'TOKENIZATION_SHOULD_NOT_START') {
|
|
551
|
-
// Tokenization has been disabled by returning false in `onTokenizeShouldStart`
|
|
552
|
-
}
|
|
553
|
-
},
|
|
554
|
-
|
|
555
|
-
onTokenizeStart() {
|
|
556
|
-
// Tokenization has started
|
|
557
|
-
},
|
|
558
|
-
|
|
559
|
-
onResumeError(error) {
|
|
560
|
-
// Resuming has failed
|
|
561
|
-
},
|
|
562
|
-
};
|
|
563
|
-
```
|
|
564
|
-
|
|
565
|
-
-->
|
|
566
|
-
|
|
567
|
-
#### ⚙️ _Show the flow for a single payment method_
|
|
568
|
-
|
|
569
|
-
The payment methods featuring a dedicated screen allows you to directly display their flow. For that, make sure to:
|
|
570
|
-
|
|
571
|
-
- Set `uxFlow` to `SINGLE_PAYMENT_METHOD_CHECKOUT`
|
|
572
|
-
- Set `paymentMethod` to the payment method you want to display
|
|
573
|
-
|
|
574
|
-
```javascript
|
|
575
|
-
const options = {
|
|
576
|
-
/* Other options ... */
|
|
577
|
-
|
|
578
|
-
uxFlow: 'SINGLE_PAYMENT_METHOD_CHECKOUT',
|
|
579
|
-
paymentMethod: 'PAYMENT_CARD',
|
|
580
|
-
};
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
Payment methods that supports this flow
|
|
584
|
-
|
|
585
|
-
- Card: `PAYMENT_CARD`
|
|
586
|
-
- Klarna: `KLARNA`
|
|
587
|
-
- GoCardless: `GOCARDLESS`
|
|
588
|
-
|
|
589
|
-
#### ⚙️ _Customizable Payment Method Button options_
|
|
590
|
-
|
|
591
|
-
Some payment methods enables you to customize the payment method button.
|
|
592
|
-
|
|
593
|
-
| option | Type | Description | Default | |
|
|
594
|
-
| ------------ | ------ | -------------------------------------------------------------------------------- | ------------------- | -------- |
|
|
595
|
-
| `logoSrc` | String | Data URL representing the logo you want to display in the payment method button. | | required |
|
|
596
|
-
| `background` | String | Color of the background of the payment method button. | | required |
|
|
597
|
-
| `logoAlt` | String | Accessibility marker for the payment method button | | required |
|
|
598
|
-
| `text` | String | Label to display to the right of `logoSrc` | Only show `logoSrc` | optional |
|
|
599
|
-
|
|
600
|
-
Payment methods that supports this flow
|
|
601
|
-
|
|
602
|
-
- Gift Cards with Mollie: `PAYMENT_CARD`
|
|
603
|
-
|
|
604
|
-
## 🔧 <a id="checkout-methods"></a> Checkout Methods
|
|
605
166
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
### **Updating the Client Session**
|
|
609
|
-
|
|
610
|
-
When updating the client session, after the checkout has been initialized, you will receive a client token in the response returned from `PATCH /client-session`.
|
|
611
|
-
|
|
612
|
-
In order for the checkout to know that you have updated the client session, you will need to pass this new client token back to the checkout:
|
|
613
|
-
|
|
614
|
-
```javascript
|
|
615
|
-
const universalCheckout = await Primer.showUniversalCheckout(
|
|
616
|
-
clientToken,
|
|
617
|
-
options,
|
|
618
|
-
);
|
|
619
|
-
|
|
620
|
-
// Refresh client session by calling refreshClientSession
|
|
621
|
-
// This will result in Universal Checkout having access to the latest changes made to the client session
|
|
622
|
-
universalCheckout.refreshClientSession();
|
|
167
|
+
const checkout = await Primer.showUniversalCheckout(clientToken, options);
|
|
623
168
|
```
|
|
624
169
|
|
|
625
|
-
Note that
|
|
170
|
+
Note that more options can be passed to Drop-in Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/2.x.x/primer/showUniversalCheckout) for more information.
|
|
626
171
|
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
The checkout provides a method for manually calling submit. This is useful when using your own custom submit button.
|
|
630
|
-
|
|
631
|
-
```javascript
|
|
632
|
-
const universalCheckout = await Primer.showUniversalCheckout(
|
|
633
|
-
clientToken,
|
|
634
|
-
options,
|
|
635
|
-
);
|
|
636
|
-
|
|
637
|
-
const handleMySubmitButtonClick = () => {
|
|
638
|
-
// Forward all submit button clicks to the SDK
|
|
639
|
-
universalCheckout.submit();
|
|
640
|
-
};
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
<br/>
|
|
644
|
-
|
|
645
|
-
### **Disabling Tokenization and Payment Creation**
|
|
646
|
-
|
|
647
|
-
The checkout provides `setPaymentCreationEnabled` and `setTokenizationEnabled` to enable or disable tokenization and payment creation. Use this if you would like to prevent users from paying because your side of the checkout is not valid.
|
|
648
|
-
|
|
649
|
-
These two functions can be used interchangibly.
|
|
172
|
+
# Headless Universal Checkout
|
|
650
173
|
|
|
651
|
-
|
|
652
|
-
const universalCheckout = await Primer.showUniversalCheckout(
|
|
653
|
-
clientToken,
|
|
654
|
-
options,
|
|
655
|
-
);
|
|
174
|
+
## 🚀 Quick start
|
|
656
175
|
|
|
657
|
-
|
|
658
|
-
universalCheckout.setPaymentCreationEnabled(false);
|
|
659
|
-
universalCheckout.setTokenizationEnabled(false);
|
|
660
|
-
|
|
661
|
-
// Enable payment creation
|
|
662
|
-
universalCheckout.setPaymentCreationEnabled(true);
|
|
663
|
-
universalCheckout.setTokenizationEnabled(true);
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
# Headless Universal Checkout
|
|
176
|
+
Take a look at the [Quick Start Guide](https://primer.io/docs/payments/universal-checkout/headless/get-started/web) for accepting your first payment with Headless Checkout.
|
|
667
177
|
|
|
668
178
|
## 👩💻 Usage
|
|
669
179
|
|
|
670
|
-
### 🔍 Initialize
|
|
180
|
+
### 🔍 Initialize Headless Checkout
|
|
671
181
|
|
|
672
182
|
Once you have a client token, you can initialize Primer’s Headless Checkout with `Primer.createHeadless(clientToken)`.
|
|
673
183
|
|
|
@@ -677,33 +187,33 @@ Payment methods are added and configured through Primer's Dashboard. The listene
|
|
|
677
187
|
|
|
678
188
|
Below is an example of a basic implementation of Headless Universal Checkout:
|
|
679
189
|
|
|
680
|
-
```
|
|
190
|
+
```ts
|
|
681
191
|
const clientToken = '...'; // client token retrieved from your backend
|
|
682
192
|
|
|
683
193
|
async function onAvailablePaymentMethodsLoad(paymentMethods) {
|
|
684
194
|
for (const paymentMethod of paymentMethods) {
|
|
685
195
|
switch (paymentMethod.type) {
|
|
196
|
+
// configure your card form
|
|
686
197
|
case 'PAYMENT_CARD': {
|
|
687
|
-
// Configure your card form
|
|
688
198
|
// await configureCardForm();
|
|
689
199
|
break;
|
|
690
200
|
}
|
|
201
|
+
// render the payment method button
|
|
691
202
|
case 'PAYPAL': {
|
|
692
|
-
// Render the payment method button
|
|
693
203
|
// configurePayPalButton();
|
|
694
204
|
break;
|
|
695
205
|
}
|
|
206
|
+
// render the payment method button
|
|
696
207
|
case 'APPLE_PAY': {
|
|
697
|
-
// Render the payment method button
|
|
698
208
|
// configureApplePayButton();
|
|
699
209
|
break;
|
|
700
210
|
}
|
|
211
|
+
// render the payment method button
|
|
701
212
|
case 'GOOGLE_PAY': {
|
|
702
|
-
// Render the payment method button
|
|
703
213
|
// configureGooglePayButton();
|
|
704
214
|
break;
|
|
705
215
|
}
|
|
706
|
-
//
|
|
216
|
+
// more payment methods to follow
|
|
707
217
|
}
|
|
708
218
|
}
|
|
709
219
|
}
|
|
@@ -714,7 +224,6 @@ function onCheckoutComplete({ payment }) {
|
|
|
714
224
|
|
|
715
225
|
function onCheckoutFail(error, { payment }, handler) {
|
|
716
226
|
console.error('onCheckoutFail', error, payment);
|
|
717
|
-
|
|
718
227
|
handler?.showErrorMessage('fail');
|
|
719
228
|
}
|
|
720
229
|
|
|
@@ -733,16 +242,7 @@ await headless.start();
|
|
|
733
242
|
console.log('Headless Universal Checkout is loaded!');
|
|
734
243
|
```
|
|
735
244
|
|
|
736
|
-
Note that
|
|
737
|
-
|
|
738
|
-
### 🧰 onAvailablePaymentMethodsLoad
|
|
739
|
-
|
|
740
|
-
`onAvailablePaymentMethodsLoad` return a list of objects, each representing a payment method. This what each object is made of:
|
|
741
|
-
|
|
742
|
-
| option | Type | Description | |
|
|
743
|
-
| ------------- | ---------------------------- | -------------------------------------------------------------------------- | -------- |
|
|
744
|
-
| `type` | `string` | The payment method type. e.g. `PAYMENT_CARD`, `PAYPAL`, `ADYEN_IDEAL`, ... | required |
|
|
745
|
-
| `managerType` | `CARD`, `NATIVE`, `REDIRECT` | The type of manager to instantiate with `createPaymentMethodManager` | required |
|
|
245
|
+
Note that more options can be passed to Headless Checkout. Please refer to the [SDK Reference](https://primer.io/docs/sdk/web/2.x.x/primer-headless-checkout/configure) for more information.
|
|
746
246
|
|
|
747
247
|
### 🚀 Create your UI
|
|
748
248
|
|
|
@@ -752,270 +252,4 @@ Primer enables you to create the UI that suits your needs, using the provided in
|
|
|
752
252
|
|
|
753
253
|
Handling payment methods is done by instantiating a payment method manager using `createPaymentMethodManager(paymentMethodType: string, options)`. The instance of the manager depends on `managerType`.
|
|
754
254
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
When the payment method's `managerType` is `CARD` (relevant for the payment method type `PAYMENT_CARD`), use the payment method manager to build your own card form using Primer input elements.
|
|
758
|
-
|
|
759
|
-
See the relevant (documentation)[https://primer.io/docs/accept-payments/headless-universal-checkout/web/#show-card-components] for further instructions.
|
|
760
|
-
|
|
761
|
-
##### Handle native payment method buttons
|
|
762
|
-
|
|
763
|
-
When the payment method's `managerType` is `NATIVE`, use the payment method manager to render the payment method button to your customers.
|
|
764
|
-
|
|
765
|
-
See the relevant (documentation)[https://primer.io/docs/accept-payments/headless-universal-checkout/web/#render-the-button] for further instructions
|
|
766
|
-
|
|
767
|
-
##### Handle redirect payment methods
|
|
768
|
-
|
|
769
|
-
When the payment method's `managerType` is `REDIRECT`, use the payment method manager to start the redirect flow.
|
|
770
|
-
|
|
771
|
-
See the relevant (documentation)[https://primer.io/docs/accept-payments/headless-universal-checkout/web#step-4c-handle-payment-methods-with-redirect] for further instructions.
|
|
772
|
-
|
|
773
|
-
### 🧰 Headless Options
|
|
774
|
-
|
|
775
|
-
| option | Type | Description | |
|
|
776
|
-
| ----------------- | -------- | ----------------------------------------------------------------------------------------- | -------- |
|
|
777
|
-
| `paymentHandling` | `string` | Either `AUTO` (default) or `MANUAL` | optional |
|
|
778
|
-
| `locale` | `string` | This option forces the locale. By default, the locale will be set to the browser's locale | optional |
|
|
779
|
-
|
|
780
|
-
<br/>
|
|
781
|
-
|
|
782
|
-
### 🧰 Headless Methods
|
|
783
|
-
|
|
784
|
-
When you call `primer.createHeadless(clientToken)`, you get an instance of `PrimerHeadlessCheckout`:
|
|
785
|
-
|
|
786
|
-
```typescript
|
|
787
|
-
export interface PrimerHeadlessCheckout {
|
|
788
|
-
// Set the configuration of the headless checkout
|
|
789
|
-
configure: (options: HeadlessUniversalCheckoutOptions) => void;
|
|
790
|
-
// Start the headless checkout
|
|
791
|
-
start: () => void;
|
|
792
|
-
// Create a payment method manager
|
|
793
|
-
createPaymentMethodManager;
|
|
794
|
-
}
|
|
795
|
-
```
|
|
796
|
-
|
|
797
|
-
#### `createPaymentMethodManager`
|
|
798
|
-
|
|
799
|
-
`createPaymentMethodManager` creates a manager based on the provided payment method type.
|
|
800
|
-
|
|
801
|
-
And the following managers (with their methods):
|
|
802
|
-
|
|
803
|
-
`CardPaymentMethodManager`
|
|
804
|
-
|
|
805
|
-
| Method | Parameters | Output | Description |
|
|
806
|
-
| -------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- |
|
|
807
|
-
| `createHostedInputs` | - | `{cardNumberInput: HeadlessHostedInput, expiryInput: HeadlessHostedInput, cvvInput: HeadlessHostedInput}` | Creates instances of the hosted inputs. |
|
|
808
|
-
| `createHostedInput` | `name: CreditCardFieldName` | `HeadlessHostedInput` | Creates a hosted input based on the type. |
|
|
809
|
-
| `removeHostedInputs` | - | - | Removes all of the hosted input fields from the DOM. |
|
|
810
|
-
| `setCardholderName` | `cardholderName: string` | - | Set the cardholder name. |
|
|
811
|
-
| `validate` | - | `Promise<Validation>` | Validates all the hosted inputs. |
|
|
812
|
-
| `submit` | - | - | Submits all the data from the hosted inputs, tokenizes the card data and creates the payment. |
|
|
813
|
-
| `reset` | - | - | Resets all the inputs. |
|
|
814
|
-
|
|
815
|
-
`NativePaymentMethodManager`
|
|
816
|
-
|
|
817
|
-
| Method | Parameters | Output | Description |
|
|
818
|
-
| -------------- | ---------- | ----------------------------- | :---------------------------------------- |
|
|
819
|
-
| `createButton` | - | `HeadlessPaymentMethodButton` | Creates the button for the payment method |
|
|
820
|
-
|
|
821
|
-
`RedirectPaymentMethodManager`
|
|
822
|
-
|
|
823
|
-
| Method | Parameters | Output | Description |
|
|
824
|
-
| ------- | ---------- | --------------- | :---------------------------------------------------------------- |
|
|
825
|
-
| `start` | - | `Promise<void>` | Starts the redirect flow, shows a popup, and handle the web view. |
|
|
826
|
-
|
|
827
|
-
#### `getAssetsManager`
|
|
828
|
-
|
|
829
|
-
Use the `AssetsManager` to get access to assets for each of the available payment methods.
|
|
830
|
-
|
|
831
|
-
```typescript
|
|
832
|
-
const assetsManager = headless.getAssetsManager();
|
|
833
|
-
|
|
834
|
-
const assets: ButtonPaymentMethodAsset = await assetsManager.getPaymentMethodAsset(
|
|
835
|
-
'MOLLIE_IDEAL',
|
|
836
|
-
);
|
|
837
|
-
```
|
|
838
|
-
|
|
839
|
-
`ButtonPaymentMethodAsset`
|
|
840
|
-
|
|
841
|
-
| Field | Type | Description |
|
|
842
|
-
| ------------------- | -------- | :--------------------------------------------------------------------------------------------------------------------------------- |
|
|
843
|
-
| `iconUrl` | `object` | Object containing `colored`, `dark`and `light`: each being URL to download the icon of the payment method. |
|
|
844
|
-
| `paymentMethodName` | `string` | Human-readable payment method name. |
|
|
845
|
-
| `backgroundColor` | `string` | Object containing `colored`, `dark`and `light`: each being background color we encourage you to use for the payment method button. |
|
|
846
|
-
|
|
847
|
-
#### Values
|
|
848
|
-
|
|
849
|
-
Below are some types mentioned above:
|
|
850
|
-
|
|
851
|
-
| Type | Values |
|
|
852
|
-
| --------------------- | --------------------------------- |
|
|
853
|
-
| `CreditCardFieldName` | `cardNumber`, `expiryDate`, `cvv` |
|
|
854
|
-
|
|
855
|
-
#### Classes
|
|
856
|
-
|
|
857
|
-
Below are some classes mentioned above (and their methods):
|
|
858
|
-
|
|
859
|
-
`HeadlessHostedInput`
|
|
860
|
-
|
|
861
|
-
| Method | Parameters | Output | Description |
|
|
862
|
-
| ------------------ | -------------------------------------------------------- | ---------------------------- | :------------------------------------------------- |
|
|
863
|
-
| `getName` | - | `string` | Get the name of the hosted input |
|
|
864
|
-
| `getOptions` | - | `HeadlessHostedInputOptions` | Get all the available optons for the hosted input. |
|
|
865
|
-
| `setOptions` | `options: HeadlessHostedInputOptions` | - | Set options on the hosted input. |
|
|
866
|
-
| `addEventListener` | `event: EventTypes, callback: EventListener` | - | Add an event listener. |
|
|
867
|
-
| `render` | `container: string, options: HeadlessHostedInputOptions` | - | Render the hosted input in a container. |
|
|
868
|
-
| `focus` | - | - | Focus the hosted input UI. |
|
|
869
|
-
| `blur` | - | - | Blur the hosted input UI. |
|
|
870
|
-
| `setDisabled` | `status: boolean` | - | Disable the hosted input UI. |
|
|
871
|
-
|
|
872
|
-
`HeadlessPaymentMethodButton`
|
|
873
|
-
|
|
874
|
-
| Method | Parameters | Output | Description |
|
|
875
|
-
| ------------------ | ----------------------------------------------------------- | ------ | :----------------------------------- |
|
|
876
|
-
| `render` | `containerId: string, options: HeadlessButtonRenderOptions` | - | Render the button in your container. |
|
|
877
|
-
| `setDisabled` | `disabled: boolean` | - | Disable or enable the button. |
|
|
878
|
-
| `clean` | - | - | Hide the button. |
|
|
879
|
-
| `blur` | - | - | Unfocus the button. |
|
|
880
|
-
| `focus` | - | - | Focus the button. |
|
|
881
|
-
| `addEventListener` | `event: EventTypes, callback: EventListener` | - | Add an event listener. |
|
|
882
|
-
|
|
883
|
-
`HeadlessHostedInputOptions`
|
|
884
|
-
|
|
885
|
-
| Field | Type | Description |
|
|
886
|
-
| ------------- | --------------------- | :---------------------- |
|
|
887
|
-
| `placeholder` | `string` | Placeholder text. |
|
|
888
|
-
| `ariaLabel` | `string` | Label |
|
|
889
|
-
| `style` | `Record<string, any>` | All the style to apply. |
|
|
890
|
-
|
|
891
|
-
`HeadlessButtonRenderOptions`
|
|
892
|
-
|
|
893
|
-
| Field | Type | Description |
|
|
894
|
-
| ------- | ---------------------------------------------------------------------- | :---------------------- |
|
|
895
|
-
| `style` | <code>GooglePayStyles | PayPalStyles | ApplePayStyles</code> | All the style to apply. |
|
|
896
|
-
|
|
897
|
-
`Validation`
|
|
898
|
-
|
|
899
|
-
| Field | Type | Description |
|
|
900
|
-
| ------------------ | ------------------------ | :--------------------------------- |
|
|
901
|
-
| `valid` | `boolean` | Whether the value is valid or not. |
|
|
902
|
-
| `validationErrors` | `[InputValidationError]` | A list of validation errors. |
|
|
903
|
-
| `error` | `string` | The raw error. |
|
|
904
|
-
|
|
905
|
-
`InputValidationError`
|
|
906
|
-
|
|
907
|
-
| Field | Type | Description |
|
|
908
|
-
| --------- | -------- | :---------------------------------------- |
|
|
909
|
-
| `name` | `string` | A friendly name for the validation error. |
|
|
910
|
-
| `error` | `string` | The raw error. |
|
|
911
|
-
| `message` | `string` | The error message. |
|
|
912
|
-
|
|
913
|
-
`InputMetadata`
|
|
914
|
-
|
|
915
|
-
| Field | Type | Description |
|
|
916
|
-
| ----------- | --------- | :------------------------------------- |
|
|
917
|
-
| `errorCode` | `string` | An error code in the case of an error. |
|
|
918
|
-
| `error` | `string` | The raw error. |
|
|
919
|
-
| `valid` | `boolean` | Is the input data valid. |
|
|
920
|
-
| `active` | `boolean` | Is the input active. |
|
|
921
|
-
| `dirty` | `boolean` | Is the input dirty. |
|
|
922
|
-
| `touched` | `boolean` | Is the input touched. |
|
|
923
|
-
| `submitted` | `boolean` | Has the input been submitted |
|
|
924
|
-
|
|
925
|
-
`Payment`
|
|
926
|
-
|
|
927
|
-
| Field | Type | Description |
|
|
928
|
-
| ------------------- | ------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
929
|
-
| `id` | `string` | The payment ID. Used to look up the payment on the [Primer API](https://apiref.primer.io/reference/create_client_side_token_client_session_post). |
|
|
930
|
-
| `orderId` | `string` | Your provided order ID. |
|
|
931
|
-
| `paymentMethodData` | `PaymentMethodData` | Additional payment method data. |
|
|
932
|
-
|
|
933
|
-
`PrimerClientError`
|
|
934
|
-
|
|
935
|
-
| Field | Type | Description |
|
|
936
|
-
| --------------- | ----------- | :----------------------------------------- |
|
|
937
|
-
| `code` | `ErrorCode` | A unique error identifier. |
|
|
938
|
-
| `message` | `string` | The raw error message. |
|
|
939
|
-
| `diagnosticsId` | `string` | A unique ID to give to Primer for support. |
|
|
940
|
-
|
|
941
|
-
#### Style options
|
|
942
|
-
|
|
943
|
-
`PayPalStyles`
|
|
944
|
-
|
|
945
|
-
| Field | Type |
|
|
946
|
-
| --------------- | --------------------------------------------------------------------------------------------------------- |
|
|
947
|
-
| `buttonColor` | <code>'gold' | 'blue' | 'silver' | 'white' | 'black'</code> |
|
|
948
|
-
| `buttonShape` | <code>'pill' | 'rect'</code> |
|
|
949
|
-
| `buttonSize` | <code>'small' | 'medium' | 'large' | 'responsive'</code> |
|
|
950
|
-
| `buttonHeight` | <code>number</code> |
|
|
951
|
-
| `buttonLabel` | <code>'checkout' | 'credit' | 'pay' | 'buynow' | 'paypal' | 'installment'</code> |
|
|
952
|
-
| `buttonTagline` | <code>boolean</code> |
|
|
953
|
-
|
|
954
|
-
`GooglePayStyles`
|
|
955
|
-
|
|
956
|
-
| Field | Type |
|
|
957
|
-
| ------------- | ---------------------------------------------------- |
|
|
958
|
-
| `buttonColor` | <code>'default' | 'black' | 'white'</code> |
|
|
959
|
-
| `buttonType` | <code>'long' | 'short'</code> |
|
|
960
|
-
|
|
961
|
-
`ApplePayStyles`
|
|
962
|
-
|
|
963
|
-
| Field | Type |
|
|
964
|
-
| ------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
965
|
-
| `buttonColor` | <code>'default' | 'black' | 'white'</code> |
|
|
966
|
-
| `buttonType` | <code>'plain' | 'buy' | 'set-up' | 'donate' | 'check-out' | 'book' | 'subscribe'</code> |
|
|
967
|
-
| `buttonStyle` | <code>'white' | 'white-outline' | 'black'</code> |
|
|
968
|
-
|
|
969
|
-
### 🧰 Headless Events
|
|
970
|
-
|
|
971
|
-
#### Hosted Input Events
|
|
972
|
-
|
|
973
|
-
On a hosted input, you can listen to an event as follows:
|
|
974
|
-
|
|
975
|
-
```typescript
|
|
976
|
-
cardNumberInput.addEventListener('change', (...args) => {
|
|
977
|
-
console.log('cardNumberInput change', ...args);
|
|
978
|
-
});
|
|
979
|
-
```
|
|
980
|
-
|
|
981
|
-
And the following event types are supported:
|
|
982
|
-
|
|
983
|
-
```typescript
|
|
984
|
-
enum EventTypes {
|
|
985
|
-
CHANGE = 'change',
|
|
986
|
-
ERROR = 'error',
|
|
987
|
-
FOCUS = 'focus',
|
|
988
|
-
BLUR = 'blur',
|
|
989
|
-
}
|
|
990
|
-
```
|
|
991
|
-
|
|
992
|
-
#### Callbacks
|
|
993
|
-
|
|
994
|
-
You can register various callbacks on the headless checkout using `configure` as follows:
|
|
995
|
-
|
|
996
|
-
```typescript
|
|
997
|
-
...
|
|
998
|
-
// Create an instance of the headless checkout
|
|
999
|
-
const headless = await Primer.createHeadless(clientToken);
|
|
1000
|
-
|
|
1001
|
-
// Configure headless
|
|
1002
|
-
await headless.configure({
|
|
1003
|
-
onAvailablePaymentMethodsLoad,
|
|
1004
|
-
onCheckoutComplete,
|
|
1005
|
-
onCheckoutFail
|
|
1006
|
-
});
|
|
1007
|
-
```
|
|
1008
|
-
|
|
1009
|
-
The following callbacks are required:
|
|
1010
|
-
|
|
1011
|
-
| Callback | Parameters | Description |
|
|
1012
|
-
| ------------------------------- | ------------------------------------- | :------------------------------------------------- |
|
|
1013
|
-
| `onAvailablePaymentMethodsLoad` | `paymentMethods: PaymentMethodData[]` | Get the list of payment methods you should handle. |
|
|
1014
|
-
|
|
1015
|
-
The following callbacks are optional:
|
|
1016
|
-
|
|
1017
|
-
| Callback | Parameters | Description |
|
|
1018
|
-
| ----------------------- | ------------------------------------------------------- | :--------------------------------------------- |
|
|
1019
|
-
| `onBeforePaymentCreate` | `{payment: Payment}, handler` | Triggered before the payment is created. |
|
|
1020
|
-
| `onCheckoutComplete` | `{payment: Payment}` | Triggered on a successful payment. |
|
|
1021
|
-
| `onCheckoutFail` | `error: PrimerClientError, {payment: Payment}, handler` | Triggered if the payment fails for any reason. |
|
|
255
|
+
You can learn more about the supported payment method managers in our [SDK Reference](https://primer.io/docs/sdk/web/2.x.x/primer-headless-checkout/createPaymentMethodManager).
|
package/dist/Primer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Primer=e():t.Primer=e()}(this,(function(){return function(){var t={162:function(t,e,r){t.exports=r(47)},854:function(){},63:function(){},681:function(){},47:function(t){var e=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,i=Object.create(o.prototype),c=new S(n||[]);return i._invoke=function(t,e,r){var n=A;return function(o,i){if(n===_)throw new Error("Generator is already running");if(n===f){if("throw"===o)throw i;return L()}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var a=I(c,r);if(a){if(a===O)continue;return a}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===A)throw n=f,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=_;var u=E(t,e,r);if("normal"===u.type){if(n=r.done?f:l,u.arg===O)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n=f,r.method="throw",r.arg=u.arg)}}}(t,r,c),i}function E(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var A="suspendedStart",l="suspendedYield",_="executing",f="completed",O={};function p(){}function P(){}function h(){}var T={};T[i]=function(){return this};var N=Object.getPrototypeOf,d=N&&N(N(m([])));d&&d!==r&&n.call(d,i)&&(T=d);var R=h.prototype=p.prototype=Object.create(T);function D(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function y(t,e){function r(o,i,c,a){var u=E(t[o],t,i);if("throw"!==u.type){var s=u.arg,A=s.value;return A&&"object"==typeof A&&n.call(A,"__await")?e.resolve(A.__await).then((function(t){r("next",t,c,a)}),(function(t){r("throw",t,c,a)})):e.resolve(A).then((function(t){s.value=t,c(s)}),(function(t){return r("throw",t,c,a)}))}a(u.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function I(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method))return O;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return O}var o=E(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,O;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,O):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,O)}function v(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function m(t){if(t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,c=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return c.next=c}}return{next:L}}function L(){return{value:e,done:!0}}return P.prototype=R.constructor=h,h.constructor=P,P.displayName=u(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===P||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,u(t,a,"GeneratorFunction")),t.prototype=Object.create(R),t},t.awrap=function(t){return{__await:t}},D(y.prototype),y.prototype[c]=function(){return this},t.AsyncIterator=y,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var c=new y(s(e,r,n,o),i);return t.isGeneratorFunction(r)?c:c.next().then((function(t){return t.done?t.value:c.next()}))},D(R),u(R,a,"Generator"),R[i]=function(){return this},R.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=m,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return a.type="throw",a.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var c=this.tryEntries[i],a=c.completion;if("root"===c.tryLoc)return o("end");if(c.tryLoc<=this.prev){var u=n.call(c,"catchLoc"),s=n.call(c,"finallyLoc");if(u&&s){if(this.prev<c.catchLoc)return o(c.catchLoc,!0);if(this.prev<c.finallyLoc)return o(c.finallyLoc)}else if(u){if(this.prev<c.catchLoc)return o(c.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return o(c.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var c=i?i.completion:{};return c.type=t,c.arg=e,i?(this.method="next",this.next=i.finallyLoc,O):this.complete(c)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),O},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),C(r),O}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:m(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),O}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return function(){"use strict";r.r(n),r.d(n,{CheckoutUXFlow:function(){return Pe},ErrorCode:function(){return ve},EventTypes:function(){return Me},HeadlessManagerType:function(){return ge},PaymentFlow:function(){return he},PaymentInstrumentType:function(){return de},PaymentMethodData:function(){return be.PaymentMethodData},PaymentMethodType:function(){return Re},Primer:function(){return we},SuccessScreenType:function(){return Ye},ThreeDSecureStatus:function(){return Ne},TokenType:function(){return ye},preloadPrimer:function(){return Ie}});var t=r(162),e=r.n(t);function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function i(t,e){if(t){if("string"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i=[],c=!0,a=!1;try{for(r=r.call(t);!(c=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);c=!0);}catch(t){a=!0,o=t}finally{try{c||null==r.return||r.return()}finally{if(a)throw o}}return i}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e,r,n,o,i,c){try{var a=t[i](c),u=a.value}catch(t){return void r(t)}a.done?e(u):Promise.resolve(u).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function c(t){a(i,n,o,c,u,"next",t)}function u(t){a(i,n,o,c,u,"throw",t)}c(void 0)}))}}function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function E(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function l(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function f(t,e,r){return e&&_(t.prototype,e),r&&_(t,r),t}function O(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){return t?new Promise((function(e){return setTimeout(e,t)})):Promise.resolve()}var P=function(){function t(){l(this,t),O(this,"calls",void 0),O(this,"_handleCall",void 0),O(this,"handleMerge",void 0),O(this,"onCalling",void 0),O(this,"isScheduled",void 0),this.calls=[],this.handleCall=void 0,this.handleMerge=void 0,this.onCalling=void 0,this.isScheduled=!1}var r;return f(t,[{key:"handleCall",get:function(){return this._handleCall},set:function(t){this._handleCall=t,this._handleCall&&this.makeNextCallIfAllowed()}},{key:"call",value:function(t){var e,r,n=new Promise((function(t,n){e=t,r=n})),o={resolve:e,reject:r};if(this.handleMerge){var i=this.getNextCall();if(i){var c=this.handleMerge(i.data,t);i.data=c,i.promises.push(o)}else this.calls.push({data:t,promises:[o],isCalling:!1})}else this.calls.push({data:t,promises:[o],isCalling:!1});return this.makeNextCallIfAllowed(),n}},{key:"isCalling",get:function(){return this.isScheduled||!!this.calls.find((function(t){return t.isCalling}))}},{key:"getNextCall",value:function(){return this.calls.find((function(t){return!t.isCalling}))}},{key:"makeNextCallIfAllowed",value:function(){this.isScheduled||this.isCalling||0!==this.calls.length&&this.handleCall&&this.makeNextCall()}},{key:"makeNextCall",value:(r=u(e().mark((function t(){var r,n,o,i,c;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=this.getNextCall()){t.next=3;break}return t.abrupt("return");case 3:return this.isScheduled=!0,t.next=6,p(1);case 6:return o.isCalling=!0,null===(r=this.onCalling)||void 0===r||r.call(this,!0),t.prev=8,t.next=11,null===(i=this.handleCall)||void 0===i?void 0:i.call(this,o.data);case 11:c=t.sent,o.promises.forEach((function(t){return(0,t.resolve)(c)})),t.next=18;break;case 15:t.prev=15,t.t0=t.catch(8),o.promises.forEach((function(e){return(0,e.reject)(t.t0)}));case 18:this.calls.splice(0,1),this.isScheduled=!1,null===(n=this.onCalling)||void 0===n||n.call(this,!1),this.makeNextCallIfAllowed();case 22:case"end":return t.stop()}}),t,this,[[8,15]])}))),function(){return r.apply(this,arguments)})}]),t}();function h(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function T(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?h(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var N,d,R,D=function(t,e){return v("get",t,e)},y=function(t,e,r){return v("post",t,r,JSON.stringify(e))},I={"content-type":"application/json"},v=function(t,e,r,n){return new Promise((function(o,i){var a=new XMLHttpRequest,u=T(T({},I),r);function s(){try{return JSON.parse(a.responseText)}catch(t){}}a.open(t,e,!0),Object.entries(u).forEach((function(t){var e=c(t,2),r=e[0],n=e[1];return a.setRequestHeader(r,n)})),a.onload=function(){return o(s())},a.onerror=function(){return i(s())},a.send(n)}))};r(854),r(63);!function(t){t.REQUEST_START="REQUEST_START",t.REQUEST_END="REQUEST_END"}(N||(N={})),function(t){t.START="START",t.END="END"}(d||(d={})),function(t){t.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",t.CRASH_EVENT="CRASH_EVENT",t.TIMER_EVENT="TIMER_EVENT",t.MESSAGE_EVENT="MESSAGE_EVENT",t.V1_EVENT="V1_EVENT",t.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT"}(R||(R={}));var C,S=function(t,e){var r;try{switch(t){case"PRIMER_SDK_VERSION":r="v2.31.0";break;case"PRIMER_ASSETS_URL":r=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_CORE_API_URL":r=process.env.PRIMER_CORE_API_URL;break;case"PRIMER_PCI_API_URL":r=process.env.PRIMER_PCI_API_URL;break;case"PRIMER_MODULES_URL":r=process.env.PRIMER_MODULES_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":r=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;case"SENTRY_DSN":r=process.env.SENTRY_DSN}}catch(t){}return r||e};function m(){return L.apply(this,arguments)}function L(){return(L=u(e().mark((function t(){var r,n,o,i,c,a;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(("undefined"==typeof navigator?"undefined":s(navigator))!=="".concat(void 0)){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,null===(r=(n=navigator).getBattery)||void 0===r?void 0:r.call(n);case 4:return a=t.sent,t.abrupt("return",{memoryFootprint:null===(o=performance.memory)||void 0===o?void 0:o.usedJSHeapSize,screen:{height:null===(i=screen)||void 0===i?void 0:i.height,width:null===(c=screen)||void 0===c?void 0:c.width},platformVersion:navigator.platform,userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:null==a?void 0:a.level,batteryStatus:null!=a&&a.charging?C.CHARGING:C.NOT_CHARGING});case 6:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function M(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Y(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}!function(t){t.CHARGING="CHARGING",t.NOT_CHARGING="NOT_CHARGING"}(C||(C={}));var g=S("PRIMER_SDK_VERSION");function b(t,e,r){return w.apply(this,arguments)}function w(){return(w=u(e().mark((function t(r,n,o){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=M,t.t1=M({},o),t.t2={},t.t3=Date.now(),t.next=6,m();case 6:return t.t4=t.sent,t.t5=r,t.t6=n,t.t7=g,t.t8="WEB",t.t9={createdAt:t.t3,device:t.t4,eventType:t.t5,properties:t.t6,sdkVersion:t.t7,sdkType:t.t8},t.abrupt("return",(0,t.t0)(t.t1,t.t2,t.t9));case 13:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var U="https://analytics.production.data.primer.io/sdk-logs";function k(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.url,n=void 0===r?U:r,o=A(t,["url"]),i=new P;i.handleCall=function(t){return y(n,t)},i.handleMerge=function(t,e){return[].concat(E(t),E(e))};var c=function(t){return function(){var r=u(e().mark((function r(n){var c;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(("undefined"==typeof navigator?"undefined":s(navigator))!=="".concat(void 0)){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,b(t,n,o);case 4:return c=e.sent,e.next=7,i.call([c]);case 7:case"end":return e.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}()};return{crashEvent:c(R.CRASH_EVENT),messageEvent:c(R.MESSAGE_EVENT),networkCallEvent:c(R.NETWORK_CALL_EVENT),sdkFunctionEvent:c(R.SDK_FUNCTION_EVENT),timerEvent:c(R.TIMER_EVENT),v1Event:c(R.V1_EVENT)}}function B(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function x(t,e){return(x=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&x(t,e)}function G(t,e){if(e&&("object"===s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return B(t)}function j(t){return(j=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var F=function(){function t(e,r){l(this,t),O(this,"type",void 0),O(this,"displayName",void 0),O(this,"container",void 0),O(this,"remoteConfig",void 0),O(this,"options",void 0),this.type=e,this.displayName=r}return f(t,[{key:"specs",get:function(){return this.constructor.specs}},{key:"setOption",value:function(t,e){this.options&&(this.options[t]=e)}},{key:"setupAndValidate",value:function(){return Promise.resolve(!0)}},{key:"mount",value:function(){return Promise.resolve(!0)}},{key:"tokenize",value:function(t){return Promise.resolve()}},{key:"validate",value:function(){return Promise.resolve({valid:!0,validationErrors:[]})}},{key:"setDisabled",value:function(t){return Promise.resolve()}},{key:"focus",value:function(){}},{key:"blur",value:function(){}},{key:"getPaymentElement",value:function(){return null}},{key:"getStore",value:function(){}}]),t}();function K(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=j(t);if(e){var o=j(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return G(this,r)}}O(F,"specs",{key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1}),O(F,"create",(function(t,e,r,n){throw new Error("Cannot instantiate BasePaymentMethod")}));var V=function(t){H(o,t);var r,n=K(o);function o(){var t;l(this,o);for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return O(B(t=n.call.apply(n,[this].concat(r))),"remoteConfig",void 0),t}return f(o,[{key:"tokenize",value:(r=u(e().mark((function t(r){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)}))),function(t){return r.apply(this,arguments)})}]),o}(F);Map,Set;var W=function(){var t;return(null===(t=Q.randomUUID)||void 0===t?void 0:t.call(Q))||X()},X=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^z()>>t/4).toString(16)}))},z=function(){var t,e;return 15&(null!==(t=null===(e=Q.getRandomValues)||void 0===e?void 0:e.call(Q,new Uint8Array(1))[0])&&void 0!==t?t:16*Math.random())},Q=typeof crypto!=="".concat(void 0)?crypto:{};new Set(["post","get","delete"]),new Set(["post"]);var Z=function(t,e,r){return{callType:r?N.REQUEST_END:N.REQUEST_START,id:t,errorBody:(null==r?void 0:r.error)&&JSON.stringify(r.error),method:e.method,responseCode:null==r?void 0:r.status,url:e.url}};const J="3.6.1",q="function"==typeof atob,$="function"==typeof btoa,tt="function"==typeof Buffer,et="function"==typeof TextDecoder?new TextDecoder:void 0,rt="function"==typeof TextEncoder?new TextEncoder:void 0,nt=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],ot=(t=>{let e={};return t.forEach(((t,r)=>e[t]=r)),e})(nt),it=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,ct=String.fromCharCode.bind(String),at="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(t,e=(t=>t))=>new Uint8Array(Array.prototype.slice.call(t,0).map(e)),ut=t=>t.replace(/[+\/]/g,(t=>"+"==t?"-":"_")).replace(/=+$/m,""),st=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),Et=t=>{let e,r,n,o,i="";const c=t.length%3;for(let c=0;c<t.length;){if((r=t.charCodeAt(c++))>255||(n=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");e=r<<16|n<<8|o,i+=nt[e>>18&63]+nt[e>>12&63]+nt[e>>6&63]+nt[63&e]}return c?i.slice(0,c-3)+"===".substring(c):i},At=$?t=>btoa(t):tt?t=>Buffer.from(t,"binary").toString("base64"):Et,lt=tt?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let r=0,n=t.length;r<n;r+=4096)e.push(ct.apply(null,t.subarray(r,r+4096)));return At(e.join(""))},_t=(t,e=!1)=>e?ut(lt(t)):lt(t),ft=t=>{if(t.length<2)return(e=t.charCodeAt(0))<128?t:e<2048?ct(192|e>>>6)+ct(128|63&e):ct(224|e>>>12&15)+ct(128|e>>>6&63)+ct(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return ct(240|e>>>18&7)+ct(128|e>>>12&63)+ct(128|e>>>6&63)+ct(128|63&e)},Ot=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,pt=t=>t.replace(Ot,ft),Pt=tt?t=>Buffer.from(t,"utf8").toString("base64"):rt?t=>lt(rt.encode(t)):t=>At(pt(t)),ht=(t,e=!1)=>e?ut(Pt(t)):Pt(t),Tt=t=>ht(t,!0),Nt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,dt=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return ct(55296+(e>>>10))+ct(56320+(1023&e));case 3:return ct((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return ct((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},Rt=t=>t.replace(Nt,dt),Dt=t=>{if(t=t.replace(/\s+/g,""),!it.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));let e,r,n,o="";for(let i=0;i<t.length;)e=ot[t.charAt(i++)]<<18|ot[t.charAt(i++)]<<12|(r=ot[t.charAt(i++)])<<6|(n=ot[t.charAt(i++)]),o+=64===r?ct(e>>16&255):64===n?ct(e>>16&255,e>>8&255):ct(e>>16&255,e>>8&255,255&e);return o},yt=q?t=>atob(st(t)):tt?t=>Buffer.from(t,"base64").toString("binary"):Dt,It=tt?t=>at(Buffer.from(t,"base64")):t=>at(yt(t),(t=>t.charCodeAt(0))),vt=t=>It(St(t)),Ct=tt?t=>Buffer.from(t,"base64").toString("utf8"):et?t=>et.decode(It(t)):t=>Rt(yt(t)),St=t=>st(t.replace(/[-_]/g,(t=>"-"==t?"+":"/"))),mt=t=>Ct(St(t)),Lt=t=>({value:t,enumerable:!1,writable:!0,configurable:!0}),Yt=function(){const t=(t,e)=>Object.defineProperty(String.prototype,t,Lt(e));t("fromBase64",(function(){return mt(this)})),t("toBase64",(function(t){return ht(this,t)})),t("toBase64URI",(function(){return ht(this,!0)})),t("toBase64URL",(function(){return ht(this,!0)})),t("toUint8Array",(function(){return vt(this)}))},Mt=function(){const t=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,Lt(e));t("toBase64",(function(t){return _t(this,t)})),t("toBase64URI",(function(){return _t(this,!0)})),t("toBase64URL",(function(){return _t(this,!0)}))},gt={version:J,VERSION:"3.6.1",atob:yt,atobPolyfill:Dt,btoa:At,btoaPolyfill:Et,fromBase64:mt,toBase64:ht,encode:ht,encodeURI:Tt,encodeURL:Tt,utob:pt,btou:Rt,decode:mt,isValid:t=>{if("string"!=typeof t)return!1;const e=t.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:_t,toUint8Array:vt,extendString:Yt,extendUint8Array:Mt,extendBuiltins:()=>{Yt(),Mt()}};var bt={encode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.urlSafe,n=void 0!==r&&r;return gt.encode(t,n)},decode:gt.decode};function wt(t){var e=function(t){try{var e=c(t.split("."),2),r=e[0],n=e[1]||r;return JSON.parse(bt.decode(n))}catch(t){throw new Error(Bt)}}(t),r=1e3*e.exp;if(Date.now()>r)throw new Error("".concat(kt,". Expiration date: ").concat(new Date(r).toISOString()));return e}var Ut="The provided `clientToken`",kt="".concat(Ut," has expired"),Bt="".concat(Ut," is malformed");function xt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ht=function(t,e,r){return function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?xt(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):xt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({"primer-client-token":t,"primer-sdk-client":"WEB","primer-sdk-version":"v2.31.0","primer-sdk-checkout-session-id":e},r&&{"x-api-version":r})};function Gt(t,e,r){return jt.apply(this,arguments)}function jt(){return(jt=u(e().mark((function t(r,n,o){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,D("".concat(n,"/?withDisplayMetadata=true"),Ht(r,o,"2.1"));case 3:return t.abrupt("return",t.sent);case 6:throw t.prev=6,t.t0=t.catch(0),new Error(["Failed to initialize client",JSON.stringify(t.t0||void 0,void 0,2)].filter(Boolean).join(": "));case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}var Ft=function(t,e){return r=function(t,e){var r=document.createElement(t);return Object.entries(e).forEach((function(t){var e=c(t,2),n=e[0],o=e[1];return r.setAttribute(n,o)})),r}(t,e),document.head.appendChild(r);var r},Kt=function(t,e,r){return t.addEventListener(e,r)};function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Wt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Vt(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Vt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var Xt="Can't load Primer SDK",zt="".concat(Xt,"'s Stylesheet");var Qt,Zt=function(t,e,r,n,o){return new Promise((function(i,c){var a=Jt(t,r,e)||Ft(t,Wt(Wt({},n),{},O({},r,e)));Kt(a,"load",(function(){return i()})),Kt(a,"error",(function(){null==a||a.remove(),c(new Error(o))}))}))},Jt=function(t,e,r){return n="".concat(t,"[").concat(e,'^="').concat(r,'"]'),document.querySelector(n);var n};function qt(){return $t.apply(this,arguments)}function $t(){return($t=u(e().mark((function t(){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Qt){t.next=2;break}return t.abrupt("return",Qt);case 2:return Qt=Promise.all([ne(),re()]).then((function(t){return c(t,1)[0]})),t.abrupt("return",Qt);case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var te,ee,re=function(){return t="https://sdk.primer.io/web/v2.31.0/Checkout.css",Array.from(document.styleSheets).find((function(e){return e.href===t}))?Promise.resolve():Zt("link",t,"href",{rel:"stylesheet"},zt);var t},ne=function(){return(t="https://sdk.primer.io/web/v2.31.0/PrimerCoreSDK.min.js",e="script",Jt(e,"src",t)&&window.__Primer?Promise.resolve():Zt(e,t,"src",{async:"",crossorigin:"anonymous"},Xt)).then((function(){var t=window.__Primer;return delete window.__Primer,t})).catch((function(t){throw Qt=void 0,t}));var t,e},oe=Ae("createHeadless"),ie=Ae("showExpressCheckout"),ce=Ae("showUniversalCheckout"),ae=Ae("showVaultManager"),ue="LOAD_PERFORMANCE",se=W(),Ee=k({checkoutSessionId:se});function Ae(t){return u(e().mark((function r(){var n,o,i,a,u,s,E,A,l,_,f,O=arguments;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(i=O.length,a=new Array(i),u=0;u<i;u++)a[u]=O[u];return s=a[0],E=a[1],Ee.sdkFunctionEvent({name:t}),Ee.messageEvent({message:"create",messageType:ue,now:null===(n=(o=performance).now)||void 0===n?void 0:n.call(o)}),e.next=6,Promise.all([le(s),qt()]);case 6:return A=e.sent,l=c(A,2),_=l[0],f=l[1],e.abrupt("return",f[t](_,se,s,E));case 11:case"end":return e.stop()}}),r)})))}function le(t){return _e.apply(this,arguments)}function _e(){return(_e=u(e().mark((function t(r){var n,o,i,c,a,u,s,E,A,l;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=wt(r),o=n.accessToken,i=n.configurationUrl,c=n.analyticsUrlV2,Ee=k({checkoutSessionId:se,url:c}),a="".concat(i,"/?withDisplayMetadata=true"),u=W(),s={method:"get",url:a},Ee.networkCallEvent(Z(u,s)),t.next=8,Gt(o,i,se);case 8:return E=t.sent,A=E.primerAccountId,l=E.clientSession.clientSessionId,(Ee=k({checkoutSessionId:se,clientSessionId:l,primerAccountId:A,url:c})).networkCallEvent(Z(u,s,{data:E})),t.abrupt("return",E);case 14:case"end":return t.stop()}}),t)})))).apply(this,arguments)}Ee.messageEvent({message:"parsed",messageType:ue,now:null===(te=(ee=performance).now)||void 0===te?void 0:te.call(ee)});var fe,Oe,pe,Pe,he,Te,Ne,de,Re,De,ye,Ie=function(){return qt().then((function(){}))};!function(t){t.LOADING="Loading",t.THREE_DS="UniversalCheckout/3ds",t.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",t.MANAGE_PAYMENT_METHODS="VaultManager/Home",t.DIRECT_DEBIT_FORM="DirectDebit/Form",t.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",t.CREDIT_CARD_FORM="CreditCard/Form",t.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",t.SUCCESS_CHECK="UniversalCheckout/Success/Check"}(fe||(fe={})),function(t){t.ROOT="primer-checkout",t.ROOT_CONTENT="primer-checkout-content",t.SUBMIT_BUTTON="primer-checkout-submit-button",t.THREE_DS_MODAL="primer-checkout-3ds-modal",t.VAULT="primer-checkout-vault",t.VAULT_INLINE="primer-checkout-vault-inline",t.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",t.DIVIDER="primer-checkout-payment-method-divider",t.APM_BUTTONS="primer-checkout-apm-button-container",t.CARDHOLDER_NAME="primer-checkout-cardholder-name",t.CARDHOLDER_NAME_INPUT="primer-checkout-cardholder-name-input",t.ACTIONS="primer-checkout-actions",t.ACTIONS_MENU="primer-checkout-actions-menu",t.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",t.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",t.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",t.CARD_FORM="primer-checkout-card-form",t.DD_SWITCH="primer-checkout-switch-dd-inputs",t.DD_IBAN_FIELD="primer-checkout-dd-iban-field",t.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",t.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",t.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",t.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",t.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",t.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",t.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",t.DD_IBAN_INPUT="primer-checkout-dd-iban-input",t.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",t.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",t.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",t.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",t.ERROR_MESSAGE="primer-checkout-error-message"}(Oe||(Oe={})),function(t){t.TOKEN="PrimerCheckout__token",t.HIDDEN="PrimerCheckout--hidden",t.FOCUSED="PrimerCheckout--focused",t.SELECTED="PrimerCheckout--selected",t.LOADING="PrimerCheckout--loading",t.ERROR="PrimerCheckout--error",t.CARD_TYPE="PrimerCheckout__cardType",t.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",t.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",t.APM_BUTTON="PrimerCheckout__apmButton",t.EDIT_BUTTON="PrimerCheckout__editButton",t.MENU="PrimerCheckout__dropDownMenu",t.MENU_ITEM="PrimerCheckout__dropDownMenuItem",t.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",t.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",t.ENTER="PrimerCheckout--enter",t.ENTERING="PrimerCheckout--entering",t.ENTERED="PrimerCheckout--entered",t.EXIT="PrimerCheckout--exit",t.EXITING="PrimerCheckout--exiting",t.EXITED="PrimerCheckout--exited"}(pe||(pe={})),function(t){t.CHECKOUT="CHECKOUT",t.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",t.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",t.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",t.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT"}(Pe||(Pe={})),function(t){t.DEFAULT="DEFAULT",t.PREFER_VAULT="PREFER_VAULT"}(he||(he={})),function(t){t.TOKENIZE_STARTED="tokenize-started",t.TOKENIZE_ERROR="tokenize-error",t.TOKENIZE_SUCCESS="tokenize-success",t.TOKENIZE_DID_NOT_START="tokenize-did-not-start"}(Te||(Te={})),function(t){t.SUCCESS="AUTH_SUCCESS",t.FAILED="AUTH_FAILED",t.SKIPPED="SKIPPED",t.CHALLENGE="CHALLENGE"}(Ne||(Ne={})),function(t){t.WORLDPAY_IDEAL="WORLDPAY_IDEAL",t.ADYEN_KLARNA="ADYEN_KLARNA",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",t.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",t.ADYEN_EPS="ADYEN_EPS",t.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",t.OMISE_PROMPTPAY="OMISE_PROMPTPAY",t.OMISE_TRUEMONEY="OMISE_TRUEMONEY",t.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",t.PACYPAY_WECHAT="PACYPAY_WECHAT",t.PACYPAY_ALIPAY="PACYPAY_ALIPAY",t.ADYEN_MBWAY="ADYEN_MBWAY",t.XENDIT_DANA="XENDIT_DANA",t.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",t.ADYEN_PAYSHOP="ADYEN_PAYSHOP",t.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",t.CLEARPAY="CLEARPAY",t.RAPYD_FAST="RAPYD_FAST",t.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",t.RAPYD_GCASH="RAPYD_GCASH",t.RAPYD_POLI="RAPYD_POLI",t.RAPYD_GRABPAY="RAPYD_GRABPAY",t.PRIMER_PAYPAL="PRIMER_PAYPAL",t.TWOC2P="TWOC2P",t.NETS="NETS",t.STRIPE_GIROPAY="STRIPE_GIROPAY",t.MOLLIE_GIROPAY="MOLLIE_GIROPAY",t.MOLLIE_EPS="MOLLIE_EPS",t.PAY_NL_EPS="PAY_NL_EPS",t.PAY_NL_P24="PAY_NL_P24",t.MOLLIE_P24="MOLLIE_P24",t.MOLLIE_SOFORT="MOLLIE_SOFORT",t.COINBASE="COINBASE",t.OPENNODE="OPENNODE",t.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",t.XFERS_PAYNOW="XFERS_PAYNOW",t.CARD="PAYMENT_CARD",t.APPLE_PAY="APPLE_PAY",t.GOOGLE_PAY="GOOGLE_PAY",t.PAYPAL="PAYPAL_ORDER",t.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",t.GO_CARDLESS="GOCARDLESS",t.PAY_NL_IDEAL="PAY_NL_IDEAL",t.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",t.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",t.PAY_NL_PAYPAL="PAY_NL_PAYPAL",t.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",t.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",t.PAY_NL_GIROPAY="PAY_NL_GIROPAY",t.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",t.HOOLAH="HOOLAH",t.ADYEN_BLIK="ADYEN_BLIK",t.ADYEN_VIPPS="ADYEN_VIPPS",t.ADYEN_GIROPAY="ADYEN_GIROPAY",t.ADYEN_SOFORT="ADYEN_SOFORT",t.ADYEN_TRUSTLY="ADYEN_TRUSTLY",t.ADYEN_ALIPAY="ADYEN_ALIPAY",t.ADYEN_TWINT="ADYEN_TWINT",t.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",t.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",t.MOLLIE_IDEAL="MOLLIE_IDEAL",t.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",t.BUCKAROO_EPS="BUCKAROO_EPS",t.BUCKAROO_SOFORT="BUCKAROO_SOFORT",t.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",t.BUCKAROO_IDEAL="BUCKAROO_IDEAL",t.ATOME="ATOME"}(de||(de={})),function(t){t.WORLDPAY_IDEAL="WORLDPAY_IDEAL",t.ADYEN_KLARNA="ADYEN_KLARNA",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",t.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",t.ADYEN_EPS="ADYEN_EPS",t.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",t.OMISE_PROMPTPAY="OMISE_PROMPTPAY",t.OMISE_TRUEMONEY="OMISE_TRUEMONEY",t.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",t.PACYPAY_WECHAT="PACYPAY_WECHAT",t.PACYPAY_ALIPAY="PACYPAY_ALIPAY",t.ADYEN_MBWAY="ADYEN_MBWAY",t.XENDIT_DANA="XENDIT_DANA",t.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",t.ADYEN_PAYSHOP="ADYEN_PAYSHOP",t.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",t.CLEARPAY="CLEARPAY",t.RAPYD_FAST="RAPYD_FAST",t.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",t.RAPYD_GCASH="RAPYD_GCASH",t.RAPYD_POLI="RAPYD_POLI",t.RAPYD_GRABPAY="RAPYD_GRABPAY",t.PRIMER_PAYPAL="PRIMER_PAYPAL",t.TWOC2P="TWOC2P",t.NETS="NETS",t.STRIPE_GIROPAY="STRIPE_GIROPAY",t.MOLLIE_GIROPAY="MOLLIE_GIROPAY",t.MOLLIE_EPS="MOLLIE_EPS",t.PAY_NL_EPS="PAY_NL_EPS",t.PAY_NL_P24="PAY_NL_P24",t.MOLLIE_P24="MOLLIE_P24",t.MOLLIE_SOFORT="MOLLIE_SOFORT",t.COINBASE="COINBASE",t.OPENNODE="OPENNODE",t.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",t.XFERS_PAYNOW="XFERS_PAYNOW",t.PAYMENT_CARD="PAYMENT_CARD",t.APPLE_PAY="APPLE_PAY",t.GOOGLE_PAY="GOOGLE_PAY",t.PAYPAL="PAYPAL",t.GO_CARDLESS="GOCARDLESS",t.KLARNA="KLARNA",t.PAY_NL_IDEAL="PAY_NL_IDEAL",t.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",t.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",t.PAY_NL_PAYPAL="PAY_NL_PAYPAL",t.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",t.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",t.PAY_NL_GIROPAY="PAY_NL_GIROPAY",t.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",t.HOOLAH="HOOLAH",t.ADYEN_BLIK="ADYEN_BLIK",t.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",t.ADYEN_VIPPS="ADYEN_VIPPS",t.ADYEN_GIROPAY="ADYEN_GIROPAY",t.ADYEN_SOFORT="ADYEN_SOFORT",t.ADYEN_TRUSTLY="ADYEN_TRUSTLY",t.ADYEN_ALIPAY="ADYEN_ALIPAY",t.ADYEN_TWINT="ADYEN_TWINT",t.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",t.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",t.MOLLIE_IDEAL="MOLLIE_IDEAL",t.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",t.BUCKAROO_EPS="BUCKAROO_EPS",t.BUCKAROO_SOFORT="BUCKAROO_SOFORT",t.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",t.BUCKAROO_IDEAL="BUCKAROO_IDEAL",t.ATOME="ATOME"}(Re||(Re={})),function(t){t.PAYMENT_CARD="PAYMENT_CARD",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD"}(De||(De={})),function(t){t.SINGLE_USE="SINGLE_USE",t.MULTI_USE="MULTI_USE"}(ye||(ye={}));var ve;O({},de.PAYPAL_VAULTED,Re.PAYPAL);function Ce(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function Se(t,e,r){return(Ce()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&x(o,r.prototype),o}).apply(null,arguments)}function me(t){var e="function"==typeof Map?new Map:void 0;return function(t){if(null===t||(t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return Se(t,arguments,j(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),x(n,t)}(t)}function Le(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=j(t);if(e){var o=j(this).constructor;Reflect.construct(n,arguments,o)}else n.apply(this,arguments);return G(this,r)}}!function(t){t.INITIALIZATION_ERROR="INITIALIZATION_ERROR",t.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",t.PRIMER_TEARDOWN="PRIMER_TEARDOWN",t.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",t.THREE_DS_SETUP_ERROR="THREE_DS_SETUP_ERROR",t.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",t.THREE_DS_NEGOTIATION_ERROR="THREE_DS_NEGOTIATION_ERROR",t.TOKENIZATION_ERROR="TOKENIZATION_ERROR",t.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",t.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",t.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",t.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_SETUP",t.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",t.RESUME_ERROR="RESUME_ERROR",t.TAX_ERROR="TAX_ERROR",t.VALIDATION_ERROR="VALIDATION_ERROR",t.PAYMENT_FAILED="PAYMENT_FAILED",t.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",t.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",t.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",t.INVALID_ARGUMENT="INVALID_ARGUMENT"}(ve||(ve={}));Error;var Ye,Me,ge,be=r(681);!function(t){t.PAYMENT_METHOD="PAYMENT_METHOD",t.CHECK="CHECK"}(Ye||(Ye={})),function(t){t.CHANGE="change",t.ERROR="error",t.FOCUS="focus",t.BLUR="blur",t.CLICK="click",t.CLOSE="close"}(Me||(Me={})),function(t){t.CARD="CARD",t.NATIVE="NATIVE",t.REDIRECT="REDIRECT"}(ge||(ge={}));var we={SDK_VERSION:"v2.31.0",createHeadless:oe,showExpressCheckout:ie,showUniversalCheckout:ce,showVaultManager:ae}}(),n}()}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Primer=e():t.Primer=e()}(this,(function(){return function(){var t={162:function(t,e,r){t.exports=r(47)},854:function(){},63:function(){},681:function(){},47:function(t){var e=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,i=Object.create(o.prototype),c=new S(n||[]);return i._invoke=function(t,e,r){var n=A;return function(o,i){if(n===_)throw new Error("Generator is already running");if(n===f){if("throw"===o)throw i;return L()}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var a=I(c,r);if(a){if(a===O)continue;return a}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===A)throw n=f,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=_;var u=E(t,e,r);if("normal"===u.type){if(n=r.done?f:l,u.arg===O)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n=f,r.method="throw",r.arg=u.arg)}}}(t,r,c),i}function E(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var A="suspendedStart",l="suspendedYield",_="executing",f="completed",O={};function p(){}function P(){}function h(){}var T={};T[i]=function(){return this};var N=Object.getPrototypeOf,d=N&&N(N(m([])));d&&d!==r&&n.call(d,i)&&(T=d);var R=h.prototype=p.prototype=Object.create(T);function D(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function y(t,e){function r(o,i,c,a){var u=E(t[o],t,i);if("throw"!==u.type){var s=u.arg,A=s.value;return A&&"object"==typeof A&&n.call(A,"__await")?e.resolve(A.__await).then((function(t){r("next",t,c,a)}),(function(t){r("throw",t,c,a)})):e.resolve(A).then((function(t){s.value=t,c(s)}),(function(t){return r("throw",t,c,a)}))}a(u.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function I(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method))return O;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return O}var o=E(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,O;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,O):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,O)}function v(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function m(t){if(t){var r=t[i];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,c=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return c.next=c}}return{next:L}}function L(){return{value:e,done:!0}}return P.prototype=R.constructor=h,h.constructor=P,P.displayName=u(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===P||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,u(t,a,"GeneratorFunction")),t.prototype=Object.create(R),t},t.awrap=function(t){return{__await:t}},D(y.prototype),y.prototype[c]=function(){return this},t.AsyncIterator=y,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var c=new y(s(e,r,n,o),i);return t.isGeneratorFunction(r)?c:c.next().then((function(t){return t.done?t.value:c.next()}))},D(R),u(R,a,"Generator"),R[i]=function(){return this},R.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=m,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return a.type="throw",a.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var c=this.tryEntries[i],a=c.completion;if("root"===c.tryLoc)return o("end");if(c.tryLoc<=this.prev){var u=n.call(c,"catchLoc"),s=n.call(c,"finallyLoc");if(u&&s){if(this.prev<c.catchLoc)return o(c.catchLoc,!0);if(this.prev<c.finallyLoc)return o(c.finallyLoc)}else if(u){if(this.prev<c.catchLoc)return o(c.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<c.finallyLoc)return o(c.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var c=i?i.completion:{};return c.type=t,c.arg=e,i?(this.method="next",this.next=i.finallyLoc,O):this.complete(c)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),O},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),C(r),O}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:m(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),O}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return function(){"use strict";r.r(n),r.d(n,{CheckoutUXFlow:function(){return Pe},ErrorCode:function(){return ve},EventTypes:function(){return Me},HeadlessManagerType:function(){return ge},PaymentFlow:function(){return he},PaymentInstrumentType:function(){return de},PaymentMethodData:function(){return be.PaymentMethodData},PaymentMethodType:function(){return Re},Primer:function(){return we},SuccessScreenType:function(){return Ye},ThreeDSecureStatus:function(){return Ne},TokenType:function(){return ye},preloadPrimer:function(){return Ie}});var t=r(162),e=r.n(t);function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function i(t,e){if(t){if("string"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}}function c(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i=[],c=!0,a=!1;try{for(r=r.call(t);!(c=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);c=!0);}catch(t){a=!0,o=t}finally{try{c||null==r.return||r.return()}finally{if(a)throw o}}return i}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e,r,n,o,i,c){try{var a=t[i](c),u=a.value}catch(t){return void r(t)}a.done?e(u):Promise.resolve(u).then(n,o)}function u(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function c(t){a(i,n,o,c,u,"next",t)}function u(t){a(i,n,o,c,u,"throw",t)}c(void 0)}))}}function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function E(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function l(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function f(t,e,r){return e&&_(t.prototype,e),r&&_(t,r),t}function O(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){return t?new Promise((function(e){return setTimeout(e,t)})):Promise.resolve()}var P=function(){function t(){l(this,t),O(this,"calls",void 0),O(this,"_handleCall",void 0),O(this,"handleMerge",void 0),O(this,"onCalling",void 0),O(this,"isScheduled",void 0),this.calls=[],this.handleCall=void 0,this.handleMerge=void 0,this.onCalling=void 0,this.isScheduled=!1}var r;return f(t,[{key:"handleCall",get:function(){return this._handleCall},set:function(t){this._handleCall=t,this._handleCall&&this.makeNextCallIfAllowed()}},{key:"call",value:function(t){var e,r,n=new Promise((function(t,n){e=t,r=n})),o={resolve:e,reject:r};if(this.handleMerge){var i=this.getNextCall();if(i){var c=this.handleMerge(i.data,t);i.data=c,i.promises.push(o)}else this.calls.push({data:t,promises:[o],isCalling:!1})}else this.calls.push({data:t,promises:[o],isCalling:!1});return this.makeNextCallIfAllowed(),n}},{key:"isCalling",get:function(){return this.isScheduled||!!this.calls.find((function(t){return t.isCalling}))}},{key:"getNextCall",value:function(){return this.calls.find((function(t){return!t.isCalling}))}},{key:"makeNextCallIfAllowed",value:function(){this.isScheduled||this.isCalling||0!==this.calls.length&&this.handleCall&&this.makeNextCall()}},{key:"makeNextCall",value:(r=u(e().mark((function t(){var r,n,o,i,c;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=this.getNextCall()){t.next=3;break}return t.abrupt("return");case 3:return this.isScheduled=!0,t.next=6,p(1);case 6:return o.isCalling=!0,null===(r=this.onCalling)||void 0===r||r.call(this,!0),t.prev=8,t.next=11,null===(i=this.handleCall)||void 0===i?void 0:i.call(this,o.data);case 11:c=t.sent,o.promises.forEach((function(t){return(0,t.resolve)(c)})),t.next=18;break;case 15:t.prev=15,t.t0=t.catch(8),o.promises.forEach((function(e){return(0,e.reject)(t.t0)}));case 18:this.calls.splice(0,1),this.isScheduled=!1,null===(n=this.onCalling)||void 0===n||n.call(this,!1),this.makeNextCallIfAllowed();case 22:case"end":return t.stop()}}),t,this,[[8,15]])}))),function(){return r.apply(this,arguments)})}]),t}();function h(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function T(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?h(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var N,d,R,D=function(t,e){return v("get",t,e)},y=function(t,e,r){return v("post",t,r,JSON.stringify(e))},I={"content-type":"application/json"},v=function(t,e,r,n){return new Promise((function(o,i){var a=new XMLHttpRequest,u=T(T({},I),r);function s(){try{return JSON.parse(a.responseText)}catch(t){}}a.open(t,e,!0),Object.entries(u).forEach((function(t){var e=c(t,2),r=e[0],n=e[1];return a.setRequestHeader(r,n)})),a.onload=function(){return o(s())},a.onerror=function(){return i(s())},a.send(n)}))};r(854),r(63);!function(t){t.REQUEST_START="REQUEST_START",t.REQUEST_END="REQUEST_END"}(N||(N={})),function(t){t.START="START",t.END="END"}(d||(d={})),function(t){t.NETWORK_CALL_EVENT="NETWORK_CALL_EVENT",t.CRASH_EVENT="CRASH_EVENT",t.TIMER_EVENT="TIMER_EVENT",t.MESSAGE_EVENT="MESSAGE_EVENT",t.V1_EVENT="V1_EVENT",t.SDK_FUNCTION_EVENT="SDK_FUNCTION_EVENT"}(R||(R={}));var C,S=function(t,e){var r;try{switch(t){case"PRIMER_SDK_VERSION":r="v2.31.1";break;case"PRIMER_ASSETS_URL":r=process.env.PRIMER_ASSETS_URL;break;case"PRIMER_CORE_API_URL":r=process.env.PRIMER_CORE_API_URL;break;case"PRIMER_PCI_API_URL":r=process.env.PRIMER_PCI_API_URL;break;case"PRIMER_MODULES_URL":r=process.env.PRIMER_MODULES_URL;break;case"PRIMER_BUILD_INTEGRATION_BUILDER":r=process.env.PRIMER_BUILD_INTEGRATION_BUILDER;break;case"SENTRY_DSN":r=process.env.SENTRY_DSN}}catch(t){}return r||e};function m(){return L.apply(this,arguments)}function L(){return(L=u(e().mark((function t(){var r,n,o,i,c,a;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(("undefined"==typeof navigator?"undefined":s(navigator))!=="".concat(void 0)){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,null===(r=(n=navigator).getBattery)||void 0===r?void 0:r.call(n);case 4:return a=t.sent,t.abrupt("return",{memoryFootprint:null===(o=performance.memory)||void 0===o?void 0:o.usedJSHeapSize,screen:{height:null===(i=screen)||void 0===i?void 0:i.height,width:null===(c=screen)||void 0===c?void 0:c.width},platformVersion:navigator.platform,userAgent:navigator.userAgent,locale:navigator.language,batteryLevel:null==a?void 0:a.level,batteryStatus:null!=a&&a.charging?C.CHARGING:C.NOT_CHARGING});case 6:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function M(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Y(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Y(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}!function(t){t.CHARGING="CHARGING",t.NOT_CHARGING="NOT_CHARGING"}(C||(C={}));var g=S("PRIMER_SDK_VERSION");function b(t,e,r){return w.apply(this,arguments)}function w(){return(w=u(e().mark((function t(r,n,o){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=M,t.t1=M({},o),t.t2={},t.t3=Date.now(),t.next=6,m();case 6:return t.t4=t.sent,t.t5=r,t.t6=n,t.t7=g,t.t8="WEB",t.t9={createdAt:t.t3,device:t.t4,eventType:t.t5,properties:t.t6,sdkVersion:t.t7,sdkType:t.t8},t.abrupt("return",(0,t.t0)(t.t1,t.t2,t.t9));case 13:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var U="https://analytics.production.data.primer.io/sdk-logs";function k(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.url,n=void 0===r?U:r,o=A(t,["url"]),i=new P;i.handleCall=function(t){return y(n,t)},i.handleMerge=function(t,e){return[].concat(E(t),E(e))};var c=function(t){return function(){var r=u(e().mark((function r(n){var c;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(("undefined"==typeof navigator?"undefined":s(navigator))!=="".concat(void 0)){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,b(t,n,o);case 4:return c=e.sent,e.next=7,i.call([c]);case 7:case"end":return e.stop()}}),r)})));return function(t){return r.apply(this,arguments)}}()};return{crashEvent:c(R.CRASH_EVENT),messageEvent:c(R.MESSAGE_EVENT),networkCallEvent:c(R.NETWORK_CALL_EVENT),sdkFunctionEvent:c(R.SDK_FUNCTION_EVENT),timerEvent:c(R.TIMER_EVENT),v1Event:c(R.V1_EVENT)}}function B(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function x(t,e){return(x=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function H(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&x(t,e)}function G(t,e){if(e&&("object"===s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return B(t)}function j(t){return(j=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var F=function(){function t(e,r){l(this,t),O(this,"type",void 0),O(this,"displayName",void 0),O(this,"container",void 0),O(this,"remoteConfig",void 0),O(this,"options",void 0),this.type=e,this.displayName=r}return f(t,[{key:"specs",get:function(){return this.constructor.specs}},{key:"setOption",value:function(t,e){this.options&&(this.options[t]=e)}},{key:"setupAndValidate",value:function(){return Promise.resolve(!0)}},{key:"mount",value:function(){return Promise.resolve(!0)}},{key:"tokenize",value:function(t){return Promise.resolve()}},{key:"validate",value:function(){return Promise.resolve({valid:!0,validationErrors:[]})}},{key:"setDisabled",value:function(t){return Promise.resolve()}},{key:"focus",value:function(){}},{key:"blur",value:function(){}},{key:"getPaymentElement",value:function(){return null}},{key:"getStore",value:function(){}}]),t}();function K(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=j(t);if(e){var o=j(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return G(this,r)}}O(F,"specs",{key:"__none__",canVault:!1,buttonManagedByPaymentMethod:!1,hasExportedButtonOptions:!1}),O(F,"create",(function(t,e,r,n){throw new Error("Cannot instantiate BasePaymentMethod")}));var V=function(t){H(o,t);var r,n=K(o);function o(){var t;l(this,o);for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return O(B(t=n.call.apply(n,[this].concat(r))),"remoteConfig",void 0),t}return f(o,[{key:"tokenize",value:(r=u(e().mark((function t(r){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:case"end":return t.stop()}}),t)}))),function(t){return r.apply(this,arguments)})}]),o}(F);Map,Set;var W=function(){var t;return(null===(t=Q.randomUUID)||void 0===t?void 0:t.call(Q))||X()},X=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^z()>>t/4).toString(16)}))},z=function(){var t,e;return 15&(null!==(t=null===(e=Q.getRandomValues)||void 0===e?void 0:e.call(Q,new Uint8Array(1))[0])&&void 0!==t?t:16*Math.random())},Q=typeof crypto!=="".concat(void 0)?crypto:{};new Set(["post","get","delete"]),new Set(["post"]);var Z=function(t,e,r){return{callType:r?N.REQUEST_END:N.REQUEST_START,id:t,errorBody:(null==r?void 0:r.error)&&JSON.stringify(r.error),method:e.method,responseCode:null==r?void 0:r.status,url:e.url}};const J="3.6.1",q="function"==typeof atob,$="function"==typeof btoa,tt="function"==typeof Buffer,et="function"==typeof TextDecoder?new TextDecoder:void 0,rt="function"==typeof TextEncoder?new TextEncoder:void 0,nt=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],ot=(t=>{let e={};return t.forEach(((t,r)=>e[t]=r)),e})(nt),it=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,ct=String.fromCharCode.bind(String),at="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(t,e=(t=>t))=>new Uint8Array(Array.prototype.slice.call(t,0).map(e)),ut=t=>t.replace(/[+\/]/g,(t=>"+"==t?"-":"_")).replace(/=+$/m,""),st=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),Et=t=>{let e,r,n,o,i="";const c=t.length%3;for(let c=0;c<t.length;){if((r=t.charCodeAt(c++))>255||(n=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");e=r<<16|n<<8|o,i+=nt[e>>18&63]+nt[e>>12&63]+nt[e>>6&63]+nt[63&e]}return c?i.slice(0,c-3)+"===".substring(c):i},At=$?t=>btoa(t):tt?t=>Buffer.from(t,"binary").toString("base64"):Et,lt=tt?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let r=0,n=t.length;r<n;r+=4096)e.push(ct.apply(null,t.subarray(r,r+4096)));return At(e.join(""))},_t=(t,e=!1)=>e?ut(lt(t)):lt(t),ft=t=>{if(t.length<2)return(e=t.charCodeAt(0))<128?t:e<2048?ct(192|e>>>6)+ct(128|63&e):ct(224|e>>>12&15)+ct(128|e>>>6&63)+ct(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return ct(240|e>>>18&7)+ct(128|e>>>12&63)+ct(128|e>>>6&63)+ct(128|63&e)},Ot=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,pt=t=>t.replace(Ot,ft),Pt=tt?t=>Buffer.from(t,"utf8").toString("base64"):rt?t=>lt(rt.encode(t)):t=>At(pt(t)),ht=(t,e=!1)=>e?ut(Pt(t)):Pt(t),Tt=t=>ht(t,!0),Nt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,dt=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return ct(55296+(e>>>10))+ct(56320+(1023&e));case 3:return ct((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return ct((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},Rt=t=>t.replace(Nt,dt),Dt=t=>{if(t=t.replace(/\s+/g,""),!it.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));let e,r,n,o="";for(let i=0;i<t.length;)e=ot[t.charAt(i++)]<<18|ot[t.charAt(i++)]<<12|(r=ot[t.charAt(i++)])<<6|(n=ot[t.charAt(i++)]),o+=64===r?ct(e>>16&255):64===n?ct(e>>16&255,e>>8&255):ct(e>>16&255,e>>8&255,255&e);return o},yt=q?t=>atob(st(t)):tt?t=>Buffer.from(t,"base64").toString("binary"):Dt,It=tt?t=>at(Buffer.from(t,"base64")):t=>at(yt(t),(t=>t.charCodeAt(0))),vt=t=>It(St(t)),Ct=tt?t=>Buffer.from(t,"base64").toString("utf8"):et?t=>et.decode(It(t)):t=>Rt(yt(t)),St=t=>st(t.replace(/[-_]/g,(t=>"-"==t?"+":"/"))),mt=t=>Ct(St(t)),Lt=t=>({value:t,enumerable:!1,writable:!0,configurable:!0}),Yt=function(){const t=(t,e)=>Object.defineProperty(String.prototype,t,Lt(e));t("fromBase64",(function(){return mt(this)})),t("toBase64",(function(t){return ht(this,t)})),t("toBase64URI",(function(){return ht(this,!0)})),t("toBase64URL",(function(){return ht(this,!0)})),t("toUint8Array",(function(){return vt(this)}))},Mt=function(){const t=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,Lt(e));t("toBase64",(function(t){return _t(this,t)})),t("toBase64URI",(function(){return _t(this,!0)})),t("toBase64URL",(function(){return _t(this,!0)}))},gt={version:J,VERSION:"3.6.1",atob:yt,atobPolyfill:Dt,btoa:At,btoaPolyfill:Et,fromBase64:mt,toBase64:ht,encode:ht,encodeURI:Tt,encodeURL:Tt,utob:pt,btou:Rt,decode:mt,isValid:t=>{if("string"!=typeof t)return!1;const e=t.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:_t,toUint8Array:vt,extendString:Yt,extendUint8Array:Mt,extendBuiltins:()=>{Yt(),Mt()}};var bt={encode:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.urlSafe,n=void 0!==r&&r;return gt.encode(t,n)},decode:gt.decode};function wt(t){var e=function(t){try{var e=c(t.split("."),2),r=e[0],n=e[1]||r;return JSON.parse(bt.decode(n))}catch(t){throw new Error(Bt)}}(t),r=1e3*e.exp;if(Date.now()>r)throw new Error("".concat(kt,". Expiration date: ").concat(new Date(r).toISOString()));return e}var Ut="The provided `clientToken`",kt="".concat(Ut," has expired"),Bt="".concat(Ut," is malformed");function xt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ht=function(t,e,r){return function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?xt(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):xt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({"primer-client-token":t,"primer-sdk-client":"WEB","primer-sdk-version":"v2.31.1","primer-sdk-checkout-session-id":e},r&&{"x-api-version":r})};function Gt(t,e,r){return jt.apply(this,arguments)}function jt(){return(jt=u(e().mark((function t(r,n,o){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,D("".concat(n,"/?withDisplayMetadata=true"),Ht(r,o,"2.1"));case 3:return t.abrupt("return",t.sent);case 6:throw t.prev=6,t.t0=t.catch(0),new Error(["Failed to initialize client",JSON.stringify(t.t0||void 0,void 0,2)].filter(Boolean).join(": "));case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}var Ft=function(t,e){return r=function(t,e){var r=document.createElement(t);return Object.entries(e).forEach((function(t){var e=c(t,2),n=e[0],o=e[1];return r.setAttribute(n,o)})),r}(t,e),document.head.appendChild(r);var r},Kt=function(t,e,r){return t.addEventListener(e,r)};function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Wt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Vt(Object(r),!0).forEach((function(e){O(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Vt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var Xt="Can't load Primer SDK",zt="".concat(Xt,"'s Stylesheet");var Qt,Zt=function(t,e,r,n,o){return new Promise((function(i,c){var a=Jt(t,r,e)||Ft(t,Wt(Wt({},n),{},O({},r,e)));Kt(a,"load",(function(){return i()})),Kt(a,"error",(function(){null==a||a.remove(),c(new Error(o))}))}))},Jt=function(t,e,r){return n="".concat(t,"[").concat(e,'^="').concat(r,'"]'),document.querySelector(n);var n};function qt(){return $t.apply(this,arguments)}function $t(){return($t=u(e().mark((function t(){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Qt){t.next=2;break}return t.abrupt("return",Qt);case 2:return Qt=Promise.all([ne(),re()]).then((function(t){return c(t,1)[0]})),t.abrupt("return",Qt);case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var te,ee,re=function(){return t="https://sdk.primer.io/web/v2.31.1/Checkout.css",Array.from(document.styleSheets).find((function(e){return e.href===t}))?Promise.resolve():Zt("link",t,"href",{rel:"stylesheet"},zt);var t},ne=function(){return(t="https://sdk.primer.io/web/v2.31.1/PrimerCoreSDK.min.js",e="script",Jt(e,"src",t)&&window.__Primer?Promise.resolve():Zt(e,t,"src",{async:"",crossorigin:"anonymous"},Xt)).then((function(){var t=window.__Primer;return delete window.__Primer,t})).catch((function(t){throw Qt=void 0,t}));var t,e},oe=Ae("createHeadless"),ie=Ae("showExpressCheckout"),ce=Ae("showUniversalCheckout"),ae=Ae("showVaultManager"),ue="LOAD_PERFORMANCE",se=W(),Ee=k({checkoutSessionId:se});function Ae(t){return u(e().mark((function r(){var n,o,i,a,u,s,E,A,l,_,f,O=arguments;return e().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(i=O.length,a=new Array(i),u=0;u<i;u++)a[u]=O[u];return s=a[0],E=a[1],Ee.sdkFunctionEvent({name:t}),Ee.messageEvent({message:"create",messageType:ue,now:null===(n=(o=performance).now)||void 0===n?void 0:n.call(o)}),e.next=6,Promise.all([le(s),qt()]);case 6:return A=e.sent,l=c(A,2),_=l[0],f=l[1],e.abrupt("return",f[t](_,se,s,E));case 11:case"end":return e.stop()}}),r)})))}function le(t){return _e.apply(this,arguments)}function _e(){return(_e=u(e().mark((function t(r){var n,o,i,c,a,u,s,E,A,l;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=wt(r),o=n.accessToken,i=n.configurationUrl,c=n.analyticsUrlV2,Ee=k({checkoutSessionId:se,url:c}),a="".concat(i,"/?withDisplayMetadata=true"),u=W(),s={method:"get",url:a},Ee.networkCallEvent(Z(u,s)),t.next=8,Gt(o,i,se);case 8:return E=t.sent,A=E.primerAccountId,l=E.clientSession.clientSessionId,(Ee=k({checkoutSessionId:se,clientSessionId:l,primerAccountId:A,url:c})).networkCallEvent(Z(u,s,{data:E})),t.abrupt("return",E);case 14:case"end":return t.stop()}}),t)})))).apply(this,arguments)}Ee.messageEvent({message:"parsed",messageType:ue,now:null===(te=(ee=performance).now)||void 0===te?void 0:te.call(ee)});var fe,Oe,pe,Pe,he,Te,Ne,de,Re,De,ye,Ie=function(){return qt().then((function(){}))};!function(t){t.LOADING="Loading",t.THREE_DS="UniversalCheckout/3ds",t.CHOOSE_PAYMENT_METHOD="UniversalCheckout/Home",t.MANAGE_PAYMENT_METHODS="VaultManager/Home",t.DIRECT_DEBIT_FORM="DirectDebit/Form",t.DIRECT_DEBIT_MANDATE="DirectDebit/Mandate",t.CREDIT_CARD_FORM="CreditCard/Form",t.SUCCESS_PAYMENT_METHOD="UniversalCheckout/Success/PaymentMethod",t.SUCCESS_CHECK="UniversalCheckout/Success/Check"}(fe||(fe={})),function(t){t.ROOT="primer-checkout",t.ROOT_CONTENT="primer-checkout-content",t.SUBMIT_BUTTON="primer-checkout-submit-button",t.THREE_DS_MODAL="primer-checkout-3ds-modal",t.VAULT="primer-checkout-vault",t.VAULT_INLINE="primer-checkout-vault-inline",t.NAVIGATE_PAYMENT_METHODS="primer-checkout-navigate-to-payment-methods",t.DIVIDER="primer-checkout-payment-method-divider",t.APM_BUTTONS="primer-checkout-apm-button-container",t.CARDHOLDER_NAME="primer-checkout-cardholder-name",t.CARDHOLDER_NAME_INPUT="primer-checkout-cardholder-name-input",t.ACTIONS="primer-checkout-actions",t.ACTIONS_MENU="primer-checkout-actions-menu",t.SAVE_PAYMENT_METHOD_CHECKBOX="primer-checkout-save-payment-method-input",t.SAVE_PAYMENT_METHOD_FIELD="primer-checkout-save-payment-method-field",t.SAVED_PAYMENT_METHODS_EMPTY="primer-checkout-saved-payment-methods-empty-text",t.CARD_FORM="primer-checkout-card-form",t.DD_SWITCH="primer-checkout-switch-dd-inputs",t.DD_IBAN_FIELD="primer-checkout-dd-iban-field",t.DD_LOCAL_FIELD="primer-checkout-dd-local-fields",t.DD_CUSTOMER_NAME_INPUT="primer-checkout-dd-customer-name-input",t.DD_CUSTOMER_EMAIL_INPUT="primer-checkout-dd-customer-email-input",t.DD_CUSTOMER_ADDRESS_LINE1="primer-checkout-dd-customer-address-input",t.DD_CUSTOMER_ADDRESS_LINE2="primer-checkout-dd-customer-address-line2-input",t.DD_CUSTOMER_ADDRESS_CITY="primer-checkout-dd-customer-city-input",t.DD_CUSTOMER_ADDRESS_POSTAL_CODE="primer-checkout-dd-customer-postal-code-input",t.DD_IBAN_INPUT="primer-checkout-dd-iban-input",t.DD_ACCOUNT_NUMBER_INPUT="primer-checkout-dd-account-number-input",t.DD_BANK_CODE_INPUT="primer-checkout-dd-bank-code-input",t.DD_BRANCH_CODE_INPUT="primer-checkout-dd-branch-code-input",t.DD_MANDATE_SMALL_PRINT="primer-checkout-small-print",t.ERROR_MESSAGE="primer-checkout-error-message"}(Oe||(Oe={})),function(t){t.TOKEN="PrimerCheckout__token",t.HIDDEN="PrimerCheckout--hidden",t.FOCUSED="PrimerCheckout--focused",t.SELECTED="PrimerCheckout--selected",t.LOADING="PrimerCheckout--loading",t.ERROR="PrimerCheckout--error",t.CARD_TYPE="PrimerCheckout__cardType",t.SAVED_PAYMENT_METHOD="PrimerCheckout__savedPaymentMethod",t.SAVED_PAYMENT_METHOD_CONTAINER="PrimerCheckout__savedPaymentMethodContainer",t.APM_BUTTON="PrimerCheckout__apmButton",t.EDIT_BUTTON="PrimerCheckout__editButton",t.MENU="PrimerCheckout__dropDownMenu",t.MENU_ITEM="PrimerCheckout__dropDownMenuItem",t.PAYMENT_METHOD_MENU_ITEM="PrimerCheckout__paymentMethodDropDownMenuItem",t.DELETE_PAYMENT_METHOD_BUTTON="PrimerCheckout__paymentMethodDropDownMenuItem__deleteButton",t.ENTER="PrimerCheckout--enter",t.ENTERING="PrimerCheckout--entering",t.ENTERED="PrimerCheckout--entered",t.EXIT="PrimerCheckout--exit",t.EXITING="PrimerCheckout--exiting",t.EXITED="PrimerCheckout--exited"}(pe||(pe={})),function(t){t.CHECKOUT="CHECKOUT",t.EXPRESS_CHECKOUT="EXPRESS_CHECKOUT",t.HEADLESS_CHECKOUT="HEADLESS_CHECKOUT",t.MANAGE_PAYMENT_METHODS="MANAGE_PAYMENT_METHODS",t.SINGLE_PAYMENT_METHOD_CHECKOUT="SINGLE_PAYMENT_METHOD_CHECKOUT"}(Pe||(Pe={})),function(t){t.DEFAULT="DEFAULT",t.PREFER_VAULT="PREFER_VAULT"}(he||(he={})),function(t){t.TOKENIZE_STARTED="tokenize-started",t.TOKENIZE_ERROR="tokenize-error",t.TOKENIZE_SUCCESS="tokenize-success",t.TOKENIZE_DID_NOT_START="tokenize-did-not-start"}(Te||(Te={})),function(t){t.SUCCESS="AUTH_SUCCESS",t.FAILED="AUTH_FAILED",t.SKIPPED="SKIPPED",t.CHALLENGE="CHALLENGE"}(Ne||(Ne={})),function(t){t.WORLDPAY_IDEAL="WORLDPAY_IDEAL",t.ADYEN_KLARNA="ADYEN_KLARNA",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",t.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",t.ADYEN_EPS="ADYEN_EPS",t.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",t.OMISE_PROMPTPAY="OMISE_PROMPTPAY",t.OMISE_TRUEMONEY="OMISE_TRUEMONEY",t.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",t.PACYPAY_WECHAT="PACYPAY_WECHAT",t.PACYPAY_ALIPAY="PACYPAY_ALIPAY",t.ADYEN_MBWAY="ADYEN_MBWAY",t.XENDIT_DANA="XENDIT_DANA",t.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",t.ADYEN_PAYSHOP="ADYEN_PAYSHOP",t.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",t.CLEARPAY="CLEARPAY",t.RAPYD_FAST="RAPYD_FAST",t.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",t.RAPYD_GCASH="RAPYD_GCASH",t.RAPYD_POLI="RAPYD_POLI",t.RAPYD_GRABPAY="RAPYD_GRABPAY",t.PRIMER_PAYPAL="PRIMER_PAYPAL",t.TWOC2P="TWOC2P",t.NETS="NETS",t.STRIPE_GIROPAY="STRIPE_GIROPAY",t.MOLLIE_GIROPAY="MOLLIE_GIROPAY",t.MOLLIE_EPS="MOLLIE_EPS",t.PAY_NL_EPS="PAY_NL_EPS",t.PAY_NL_P24="PAY_NL_P24",t.MOLLIE_P24="MOLLIE_P24",t.MOLLIE_SOFORT="MOLLIE_SOFORT",t.COINBASE="COINBASE",t.OPENNODE="OPENNODE",t.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",t.XFERS_PAYNOW="XFERS_PAYNOW",t.CARD="PAYMENT_CARD",t.APPLE_PAY="APPLE_PAY",t.GOOGLE_PAY="GOOGLE_PAY",t.PAYPAL="PAYPAL_ORDER",t.PAYPAL_VAULTED="PAYPAL_BILLING_AGREEMENT",t.GO_CARDLESS="GOCARDLESS",t.PAY_NL_IDEAL="PAY_NL_IDEAL",t.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",t.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",t.PAY_NL_PAYPAL="PAY_NL_PAYPAL",t.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",t.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",t.PAY_NL_GIROPAY="PAY_NL_GIROPAY",t.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",t.HOOLAH="HOOLAH",t.ADYEN_BLIK="ADYEN_BLIK",t.ADYEN_VIPPS="ADYEN_VIPPS",t.ADYEN_GIROPAY="ADYEN_GIROPAY",t.ADYEN_SOFORT="ADYEN_SOFORT",t.ADYEN_TRUSTLY="ADYEN_TRUSTLY",t.ADYEN_ALIPAY="ADYEN_ALIPAY",t.ADYEN_TWINT="ADYEN_TWINT",t.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",t.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",t.MOLLIE_IDEAL="MOLLIE_IDEAL",t.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",t.BUCKAROO_EPS="BUCKAROO_EPS",t.BUCKAROO_SOFORT="BUCKAROO_SOFORT",t.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",t.BUCKAROO_IDEAL="BUCKAROO_IDEAL",t.ATOME="ATOME"}(de||(de={})),function(t){t.WORLDPAY_IDEAL="WORLDPAY_IDEAL",t.ADYEN_KLARNA="ADYEN_KLARNA",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD",t.PAY_NL_KAARTDIRECT="PAY_NL_KAARTDIRECT",t.ADYEN_EPS="ADYEN_EPS",t.ADYEN_BANCONTACT_PAYCONIQ="ADYEN_BANCONTACT_PAYCONIQ",t.OMISE_PROMPTPAY="OMISE_PROMPTPAY",t.OMISE_TRUEMONEY="OMISE_TRUEMONEY",t.ADYEN_MULTIBANCO="ADYEN_MULTIBANCO",t.PACYPAY_WECHAT="PACYPAY_WECHAT",t.PACYPAY_ALIPAY="PACYPAY_ALIPAY",t.ADYEN_MBWAY="ADYEN_MBWAY",t.XENDIT_DANA="XENDIT_DANA",t.XENDIT_SHOPEEPAY="XENDIT_SHOPEEPAY",t.ADYEN_PAYSHOP="ADYEN_PAYSHOP",t.ADYEN_PAYTRAIL="ADYEN_PAYTRAIL",t.CLEARPAY="CLEARPAY",t.RAPYD_FAST="RAPYD_FAST",t.RAPYD_PROMPTPAY="RAPYD_PROMPTPAY",t.RAPYD_GCASH="RAPYD_GCASH",t.RAPYD_POLI="RAPYD_POLI",t.RAPYD_GRABPAY="RAPYD_GRABPAY",t.PRIMER_PAYPAL="PRIMER_PAYPAL",t.TWOC2P="TWOC2P",t.NETS="NETS",t.STRIPE_GIROPAY="STRIPE_GIROPAY",t.MOLLIE_GIROPAY="MOLLIE_GIROPAY",t.MOLLIE_EPS="MOLLIE_EPS",t.PAY_NL_EPS="PAY_NL_EPS",t.PAY_NL_P24="PAY_NL_P24",t.MOLLIE_P24="MOLLIE_P24",t.MOLLIE_SOFORT="MOLLIE_SOFORT",t.COINBASE="COINBASE",t.OPENNODE="OPENNODE",t.MOLLIE_GIFT_CARD="MOLLIE_GIFTCARD",t.XFERS_PAYNOW="XFERS_PAYNOW",t.PAYMENT_CARD="PAYMENT_CARD",t.APPLE_PAY="APPLE_PAY",t.GOOGLE_PAY="GOOGLE_PAY",t.PAYPAL="PAYPAL",t.GO_CARDLESS="GOCARDLESS",t.KLARNA="KLARNA",t.PAY_NL_IDEAL="PAY_NL_IDEAL",t.PAY_NL_SOFORT_BANKING="PAY_NL_SOFORT_BANKING",t.PAY_NL_BANCONTACT="PAY_NL_BANCONTACT",t.PAY_NL_PAYPAL="PAY_NL_PAYPAL",t.PAY_NL_CREDIT_TRANSFER="PAY_NL_CREDIT_TRANSFER",t.PAY_NL_DIRECT_DEBIT="PAY_NL_DIRECT_DEBIT",t.PAY_NL_GIROPAY="PAY_NL_GIROPAY",t.PAY_NL_PAYCONIQ="PAY_NL_PAYCONIQ",t.HOOLAH="HOOLAH",t.ADYEN_BLIK="ADYEN_BLIK",t.ADYEN_MOBILEPAY="ADYEN_MOBILEPAY",t.ADYEN_VIPPS="ADYEN_VIPPS",t.ADYEN_GIROPAY="ADYEN_GIROPAY",t.ADYEN_SOFORT="ADYEN_SOFORT",t.ADYEN_TRUSTLY="ADYEN_TRUSTLY",t.ADYEN_ALIPAY="ADYEN_ALIPAY",t.ADYEN_TWINT="ADYEN_TWINT",t.ADYEN_BANK_TRANSFER="ADYEN_BANK_TRANSFER",t.MOLLIE_BANCONTACT="MOLLIE_BANCONTACT",t.MOLLIE_IDEAL="MOLLIE_IDEAL",t.BUCKAROO_GIROPAY="BUCKAROO_GIROPAY",t.BUCKAROO_EPS="BUCKAROO_EPS",t.BUCKAROO_SOFORT="BUCKAROO_SOFORT",t.BUCKAROO_BANCONTACT="BUCKAROO_BANCONTACT",t.BUCKAROO_IDEAL="BUCKAROO_IDEAL",t.ATOME="ATOME"}(Re||(Re={})),function(t){t.PAYMENT_CARD="PAYMENT_CARD",t.ADYEN_BANCONTACT_CARD="ADYEN_BANCONTACT_CARD"}(De||(De={})),function(t){t.SINGLE_USE="SINGLE_USE",t.MULTI_USE="MULTI_USE"}(ye||(ye={}));var ve;O({},de.PAYPAL_VAULTED,Re.PAYPAL);function Ce(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function Se(t,e,r){return(Ce()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&x(o,r.prototype),o}).apply(null,arguments)}function me(t){var e="function"==typeof Map?new Map:void 0;return function(t){if(null===t||(t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return Se(t,arguments,j(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),x(n,t)}(t)}function Le(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=j(t);if(e){var o=j(this).constructor;Reflect.construct(n,arguments,o)}else n.apply(this,arguments);return G(this,r)}}!function(t){t.INITIALIZATION_ERROR="INITIALIZATION_ERROR",t.NO_PAYMENT_METHODS="NO_PAYMENT_METHODS",t.PRIMER_TEARDOWN="PRIMER_TEARDOWN",t.PRIMER_SERVER_ERROR="PRIMER_SERVER_ERROR",t.THREE_DS_SETUP_ERROR="THREE_DS_SETUP_ERROR",t.THREE_DS_AUTH_FAILED="THREE_DS_AUTH_FAILED",t.THREE_DS_NEGOTIATION_ERROR="THREE_DS_NEGOTIATION_ERROR",t.TOKENIZATION_ERROR="TOKENIZATION_ERROR",t.DUPLICATE_PAYMENT_METHOD_ERROR="DUPLICATE_PAYMENT_METHOD_ERROR",t.CARD_NUMBER_ERROR="CARD_NUMBER_ERROR",t.PAYMENT_METHOD_NOT_SETUP="PAYMENT_METHOD_NOT_SETUP",t.PAYMENT_METHOD_NOT_PROVIDED="PAYMENT_METHOD_NOT_SETUP",t.PAYMENT_METHOD_NOT_COMPATIBLE="PAYMENT_METHOD_NOT_COMPATIBLE",t.RESUME_ERROR="RESUME_ERROR",t.TAX_ERROR="TAX_ERROR",t.VALIDATION_ERROR="VALIDATION_ERROR",t.PAYMENT_FAILED="PAYMENT_FAILED",t.PAYMENT_CREATION_ABORTED="PAYMENT_CREATION_ABORTED",t.PAYMENT_CREATION_DISABLED="PAYMENT_CREATION_DISABLED",t.CLIENT_SESSION_UPDATE_ERROR="CLIENT_SESSION_UPDATE_ERROR",t.INVALID_ARGUMENT="INVALID_ARGUMENT"}(ve||(ve={}));Error;var Ye,Me,ge,be=r(681);!function(t){t.PAYMENT_METHOD="PAYMENT_METHOD",t.CHECK="CHECK"}(Ye||(Ye={})),function(t){t.CHANGE="change",t.ERROR="error",t.FOCUS="focus",t.BLUR="blur",t.CLICK="click",t.CLOSE="close"}(Me||(Me={})),function(t){t.CARD="CARD",t.NATIVE="NATIVE",t.REDIRECT="REDIRECT"}(ge||(ge={}));var we={SDK_VERSION:"v2.31.1",createHeadless:oe,showExpressCheckout:ie,showUniversalCheckout:ce,showVaultManager:ae}}(),n}()}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primer-io/checkout-web",
|
|
3
|
-
"version": "2.31.
|
|
3
|
+
"version": "2.31.1",
|
|
4
4
|
"description": "Primer.js for the web",
|
|
5
5
|
"author": "Will Knowles <will@primerapi.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"lint": "run -T eslint ./src",
|
|
28
28
|
"check-types": "run -T tsc --noemit -p tsconfig.json"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "68a2771f435370d33083ec47bafa6103fdc1a1f2"
|
|
31
31
|
}
|