@primer-io/checkout-web 2.30.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 CHANGED
@@ -1,5 +1,30 @@
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
+
10
+ ## 2.31.0
11
+
12
+ ### Minor Changes
13
+
14
+ - fbcca177: validates cardholder name so that only Latin characters are allowed
15
+
16
+ ### Patch Changes
17
+
18
+ - cfd3cca2: Fix an issue when closing Adyen Klarna's redirect popup window
19
+ - b2334b2f: Update translations
20
+ - fad18393: Update translations
21
+
22
+ ## 2.30.1
23
+
24
+ ### Patch Changes
25
+
26
+ - f132abe6: Add select payment method action for Klarna
27
+
3
28
  ## 2.30.0
4
29
 
5
30
  ### Minor Changes
package/README.md CHANGED
@@ -1,45 +1,47 @@
1
1
  <br/>
2
2
 
3
- <h1 align="center"><img src="https://github.com/primer-io/example-web-checkout/blob/master/images/primer-logo.png?raw=true" height="24px"> Primer Web SDK</h1>
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
- <div align="center">
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
- </h3>
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
- <br/>
20
-
21
- <div align="center"><img src="https://github.com/primer-io/example-web-checkout/blob/master/images/checkout-banner.gif?raw=true" width="50%"/></div>
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
- <p>💳 &nbsp; Create great payment experiences with our highly customizable Universal Checkout</p>
29
- <p>🧩 &nbsp; Connect and configure any new payment method without a single line of code</p>
30
- <p>✅ &nbsp; Dynamically handle 3DS 2.0 across processors and be SCA ready</p>
31
- <p>♻️ &nbsp; Store payment methods for one-click checkout, recurring and repeat payments</p>
32
- <p>📱 &nbsp; Proprietary Apple & Google Pay integrations that work with any PSP</p>
33
- <p>🔒 &nbsp; Always PCI compliant without redirecting customers</p>
27
+ 💳 &nbsp; Create great payment experiences with our highly customizable Universal Checkout
28
+
29
+ 🧩 &nbsp; Connect and configure any new payment method without a single line of code
30
+
31
+ &nbsp; Dynamically handle 3DS 2.0 across processors and be SCA ready
32
+
33
+ ♻️ &nbsp; Store payment methods for one-click checkout, recurring and repeat payments
34
+
35
+ 📱 &nbsp; Proprietary Apple & Google Pay integrations that work with any PSP
36
+
37
+ 🔒 &nbsp; 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
- - [Client session creation](https://primer.io/docs/accept-payments/manage-client-sessions/#create-a-client-session)
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 [Contact Us](mailto:https://support@primer.io).
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
- - 🔑 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
57
- - 🧱 Prepare a container in which to render Universal Checkout
58
- - 🎉 _That's it!_
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
- This package includes TypeScript definitions.
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
- ```typescript
87
+ ```ts
83
88
  import { Primer } from '@primer-io/checkout-web';
84
89
 
85
- // For example
86
90
  Primer.showUniversalCheckout(clientToken, {
87
- /* Options */
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
- ```typescript
112
+ ```ts
109
113
  const { Primer } = window;
110
114
 
111
- // For example
112
115
  Primer.showUniversalCheckout(clientToken, {
113
- /* Options */
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 Universal Checkout**.
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 Universal Checkout
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/integration-builder/) for accepting your first payment with Universal Checkout.
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 Universal Checkout is as easy as implementing one line of code:
140
+ Availing Drop-in Checkout is as easy as implementing one line of code:
138
141
 
139
- ```javascript
142
+ ```ts
140
143
  import { Primer } from '@primer-io/checkout-web';
141
144
 
142
- const universalCheckout = await Primer.showUniversalCheckout(
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
- ```javascript
150
+ ```ts
151
151
  const clientToken = '...'; // client token retrieved from your backend
152
152
 
153
153
  const options = {
154
- // Container element which will contain the checkout
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
- // Move on to next step in your checkout flow:
160
- // e.g. Show a success message, giving access to the service, fulfilling the order
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
- Universal Checkout exposes some methods which can be called to perform some specific actions:
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 `refreshClientSession` replaces the deprecated `setClientToken` method since version `v2.11.0`.
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
- ### **Manual Form Submission**
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
- ```javascript
652
- const universalCheckout = await Primer.showUniversalCheckout(
653
- clientToken,
654
- options,
655
- );
174
+ ## 🚀 Quick start
656
175
 
657
- // Disable payment creation
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 the headless checkout
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
- ```typescript
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
- // More payment methods to follow
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 there are more options which can be passed to Universal Checkout. Please refer to the section below for more information.
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
- ##### Handle card forms
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 &#124; PayPalStyles &#124; 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' &#124; 'blue' &#124; 'silver' &#124; 'white' &#124; 'black'</code> |
948
- | `buttonShape` | <code>'pill' &#124; 'rect'</code> |
949
- | `buttonSize` | <code>'small' &#124; 'medium' &#124; 'large' &#124; 'responsive'</code> |
950
- | `buttonHeight` | <code>number</code> |
951
- | `buttonLabel` | <code>'checkout' &#124; 'credit' &#124; 'pay' &#124; 'buynow' &#124; 'paypal' &#124; 'installment'</code> |
952
- | `buttonTagline` | <code>boolean</code> |
953
-
954
- `GooglePayStyles`
955
-
956
- | Field | Type |
957
- | ------------- | ---------------------------------------------------- |
958
- | `buttonColor` | <code>'default' &#124; 'black' &#124; 'white'</code> |
959
- | `buttonType` | <code>'long' &#124; 'short'</code> |
960
-
961
- `ApplePayStyles`
962
-
963
- | Field | Type |
964
- | ------------- | --------------------------------------------------------------------------------------------------------------------- |
965
- | `buttonColor` | <code>'default' &#124; 'black' &#124; 'white'</code> |
966
- | `buttonType` | <code>'plain' &#124; 'buy' &#124; 'set-up' &#124; 'donate' &#124; 'check-out' &#124; 'book' &#124; 'subscribe'</code> |
967
- | `buttonStyle` | <code>'white' &#124; 'white-outline' &#124; '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.30.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.30.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.30.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.30.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.30.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.30.0",
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": "0df9884bc0c6554086c2066964310ef65a39e069"
30
+ "gitHead": "68a2771f435370d33083ec47bafa6103fdc1a1f2"
31
31
  }