@justifi/webcomponents 4.19.3-rc-1 → 4.19.3-rc-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/cjs/{Analytics-84cccd4a.js → Analytics-adc90fc6.js} +1 -1
  2. package/dist/cjs/justifi-bank-account-form.cjs.entry.js +2 -2
  3. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  4. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  5. package/dist/cjs/justifi-card-form.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-checkout-core.cjs.entry.js +2 -1
  7. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-new-payment-method_4.cjs.entry.js +4 -1
  10. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-payment-form.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-payment-method-form.cjs.entry.js +1 -1
  13. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  18. package/dist/cjs/{package-d2e04416.js → package-22d30c5d.js} +1 -1
  19. package/dist/collection/components/checkout/checkout-core.js +2 -1
  20. package/dist/collection/components/checkout/new-payment-method.js +4 -1
  21. package/dist/docs.json +1 -1
  22. package/dist/esm/{Analytics-a742f6d2.js → Analytics-a8eb7344.js} +1 -1
  23. package/dist/esm/justifi-bank-account-form.entry.js +2 -2
  24. package/dist/esm/justifi-business-details.entry.js +2 -2
  25. package/dist/esm/justifi-business-form.entry.js +2 -2
  26. package/dist/esm/justifi-card-form.entry.js +2 -2
  27. package/dist/esm/justifi-checkout-core.entry.js +2 -1
  28. package/dist/esm/justifi-checkout.entry.js +2 -2
  29. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  30. package/dist/esm/justifi-new-payment-method_4.entry.js +4 -1
  31. package/dist/esm/justifi-payment-details.entry.js +2 -2
  32. package/dist/esm/justifi-payment-form.entry.js +2 -2
  33. package/dist/esm/justifi-payment-method-form.entry.js +1 -1
  34. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  35. package/dist/esm/justifi-payments-list.entry.js +2 -2
  36. package/dist/esm/justifi-payout-details.entry.js +2 -2
  37. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  38. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  39. package/dist/esm/{package-a70c900f.js → package-ccb774a9.js} +1 -1
  40. package/dist/module/checkout-core.js +2 -1
  41. package/dist/module/new-payment-method.js +4 -1
  42. package/dist/module/package.js +1 -1
  43. package/dist/types/components/checkout/new-payment-method.d.ts +1 -0
  44. package/dist/webcomponents/index.esm.js +1 -0
  45. package/dist/webcomponents/p-01a404ca.entry.js +44 -0
  46. package/dist/webcomponents/p-03d35880.entry.js +130 -0
  47. package/dist/webcomponents/p-06ff0429.entry.js +65 -0
  48. package/dist/webcomponents/p-08b0fb31.js +41 -1
  49. package/dist/webcomponents/p-0e1bc91e.js +28 -1
  50. package/dist/webcomponents/p-10875f3d.entry.js +97 -0
  51. package/dist/webcomponents/p-14c91ffd.js +20 -1
  52. package/dist/webcomponents/p-157acba8.entry.js +98 -0
  53. package/dist/webcomponents/p-15eafa87.js +77 -0
  54. package/dist/webcomponents/p-18fa0479.entry.js +131 -0
  55. package/dist/webcomponents/p-1a5120f4.entry.js +145 -0
  56. package/dist/webcomponents/p-1ad5995e.js +3599 -1
  57. package/dist/webcomponents/p-1ff8810b.js +29 -1
  58. package/dist/webcomponents/p-2338affa.js +213 -1
  59. package/dist/webcomponents/p-24dc023a.entry.js +791 -0
  60. package/dist/webcomponents/p-25d8cd65.entry.js +102 -0
  61. package/dist/webcomponents/p-27d87fe2.entry.js +133 -0
  62. package/dist/webcomponents/p-29c0b182.js +114 -1
  63. package/dist/webcomponents/p-2b6c9c4f.js +7 -1
  64. package/dist/webcomponents/p-2e8f4937.js +79 -0
  65. package/dist/webcomponents/p-2eab3c90.js +3052 -1
  66. package/dist/webcomponents/p-3395e896.entry.js +74 -0
  67. package/dist/webcomponents/p-3fd13ca3.js +52 -1
  68. package/dist/webcomponents/p-47d79529.js +18 -1
  69. package/dist/webcomponents/p-525db3e8.js +22 -1
  70. package/dist/webcomponents/p-53ecc8b9.entry.js +261 -0
  71. package/dist/webcomponents/p-5482d030.entry.js +21 -0
  72. package/dist/webcomponents/p-56f6ce4c.js +10 -1
  73. package/dist/webcomponents/p-576826b1.entry.js +43 -0
  74. package/dist/webcomponents/p-5968ff8a.js +178 -1
  75. package/dist/webcomponents/p-5f835b89.entry.js +606 -0
  76. package/dist/webcomponents/p-6078a370.js +244 -1
  77. package/dist/webcomponents/p-6124b1b3.entry.js +80 -0
  78. package/dist/webcomponents/p-70a2aa74.entry.js +76 -0
  79. package/dist/webcomponents/p-7582b554.entry.js +18 -0
  80. package/dist/webcomponents/p-75fd6367.entry.js +149 -0
  81. package/dist/webcomponents/p-79646550.entry.js +61 -0
  82. package/dist/webcomponents/p-7d85af5c.js +16 -1
  83. package/dist/webcomponents/p-800d31fe.entry.js +162 -0
  84. package/dist/webcomponents/p-8115b2f4.js +28 -1
  85. package/dist/webcomponents/p-83125497.js +4027 -1
  86. package/dist/webcomponents/p-85fc69e5.js +90 -1
  87. package/dist/webcomponents/p-89887332.js +301 -1
  88. package/dist/webcomponents/p-8df7bde8.js +27 -1
  89. package/dist/webcomponents/p-8eb774df.entry.js +54 -0
  90. package/dist/webcomponents/p-9c9c7dac.js +24 -1
  91. package/dist/webcomponents/p-9e17630d.entry.js +1684 -0
  92. package/dist/webcomponents/p-9f94bbb6.entry.js +118 -0
  93. package/dist/webcomponents/p-a4e8573e.entry.js +94 -0
  94. package/dist/webcomponents/p-a5a225d9.entry.js +125 -0
  95. package/dist/webcomponents/p-a5fb51dc.entry.js +131 -0
  96. package/dist/webcomponents/p-ab4816e1.entry.js +117 -0
  97. package/dist/webcomponents/p-ac086069.entry.js +58 -0
  98. package/dist/webcomponents/p-af244664.js +126 -1
  99. package/dist/webcomponents/p-b4b8b531.js +44 -1
  100. package/dist/webcomponents/p-b82c146f.entry.js +111 -0
  101. package/dist/webcomponents/p-ba4bae6f.js +12 -1
  102. package/dist/webcomponents/p-ba5fae28.js +90 -1
  103. package/dist/webcomponents/p-bd66f9d2.entry.js +101 -0
  104. package/dist/webcomponents/p-cc39384f.entry.js +99 -0
  105. package/dist/webcomponents/p-d17aee2b.entry.js +26 -0
  106. package/dist/webcomponents/p-d89bad72.js +39 -1
  107. package/dist/webcomponents/p-dad3e069.entry.js +298 -0
  108. package/dist/webcomponents/p-dce846bf.js +27 -1
  109. package/dist/webcomponents/p-df21aaad.js +120 -1
  110. package/dist/webcomponents/p-e1255160.js +3 -1
  111. package/dist/webcomponents/p-e1e7525b.entry.js +73 -0
  112. package/dist/webcomponents/p-e333620e.js +34 -1
  113. package/dist/webcomponents/p-e356f280.entry.js +29 -0
  114. package/dist/webcomponents/p-e3fab0e2.js +43 -1
  115. package/dist/webcomponents/p-e9a5cb95.entry.js +94 -0
  116. package/dist/webcomponents/p-ec854a3e.entry.js +11053 -0
  117. package/dist/webcomponents/p-edc37d1f.entry.js +75 -0
  118. package/dist/webcomponents/p-f02b75dc.entry.js +96 -0
  119. package/dist/webcomponents/p-fad19d75.js +1638 -2
  120. package/dist/webcomponents/webcomponents.css +362 -4
  121. package/dist/webcomponents/webcomponents.esm.js +20 -1
  122. package/package.json +1 -1
  123. package/dist/webcomponents/p-07109641.entry.js +0 -1
  124. package/dist/webcomponents/p-080fedb5.entry.js +0 -1
  125. package/dist/webcomponents/p-0e3e3544.entry.js +0 -1
  126. package/dist/webcomponents/p-0f7b9555.entry.js +0 -1
  127. package/dist/webcomponents/p-1295970b.entry.js +0 -1
  128. package/dist/webcomponents/p-15b9b267.entry.js +0 -1
  129. package/dist/webcomponents/p-17e4246f.entry.js +0 -1
  130. package/dist/webcomponents/p-1a43e355.entry.js +0 -19
  131. package/dist/webcomponents/p-232278e0.entry.js +0 -1
  132. package/dist/webcomponents/p-30a493cd.entry.js +0 -1
  133. package/dist/webcomponents/p-32211b2f.entry.js +0 -1
  134. package/dist/webcomponents/p-3352353a.entry.js +0 -1
  135. package/dist/webcomponents/p-462dc522.entry.js +0 -1
  136. package/dist/webcomponents/p-487b72a8.entry.js +0 -1
  137. package/dist/webcomponents/p-4abc17f0.entry.js +0 -1
  138. package/dist/webcomponents/p-52021fa1.entry.js +0 -1
  139. package/dist/webcomponents/p-53e64f15.entry.js +0 -1
  140. package/dist/webcomponents/p-62b32c4c.entry.js +0 -1
  141. package/dist/webcomponents/p-701e03a8.entry.js +0 -1
  142. package/dist/webcomponents/p-79cfbcfa.entry.js +0 -1
  143. package/dist/webcomponents/p-8e263202.js +0 -1
  144. package/dist/webcomponents/p-8e541a32.entry.js +0 -1
  145. package/dist/webcomponents/p-99899e7e.entry.js +0 -1
  146. package/dist/webcomponents/p-9993e959.entry.js +0 -1
  147. package/dist/webcomponents/p-b29f5084.entry.js +0 -1
  148. package/dist/webcomponents/p-bbed6107.entry.js +0 -1
  149. package/dist/webcomponents/p-be39c802.entry.js +0 -1
  150. package/dist/webcomponents/p-c9f8f7ec.entry.js +0 -1
  151. package/dist/webcomponents/p-cc97f21b.entry.js +0 -1
  152. package/dist/webcomponents/p-cd37a87e.entry.js +0 -1
  153. package/dist/webcomponents/p-d4c94340.entry.js +0 -1
  154. package/dist/webcomponents/p-d5c9e036.entry.js +0 -1
  155. package/dist/webcomponents/p-d6a998e4.js +0 -1
  156. package/dist/webcomponents/p-d8355f91.entry.js +0 -1
  157. package/dist/webcomponents/p-e2c88817.entry.js +0 -1
  158. package/dist/webcomponents/p-e31f0f3e.entry.js +0 -1
  159. package/dist/webcomponents/p-ea3598f3.entry.js +0 -1
  160. package/dist/webcomponents/p-eca70b1d.entry.js +0 -1
  161. package/dist/webcomponents/p-f0866375.entry.js +0 -1
  162. package/dist/webcomponents/p-f117d1d1.entry.js +0 -1
  163. package/dist/webcomponents/p-fb58feb5.entry.js +0 -1
  164. package/dist/webcomponents/p-fe33151d.entry.js +0 -1
@@ -0,0 +1,102 @@
1
+ import { r as registerInstance, c as createEvent, h } from './p-fad19d75.js';
2
+ import { a as BusinessFormClickActions } from './p-d89bad72.js';
3
+ import { a as ComponentErrorCodes, C as ComponentErrorSeverity } from './p-14c91ffd.js';
4
+ import { a as checkProvisioningStatus } from './p-1ff8810b.js';
5
+ import { S as StyledHost } from './p-ba4bae6f.js';
6
+ import './p-6078a370.js';
7
+
8
+ const PaymentProvisioningCore = class {
9
+ constructor(hostRef) {
10
+ registerInstance(this, hostRef);
11
+ this.clickEvent = createEvent(this, "click-event", 7);
12
+ this.errorEvent = createEvent(this, "error-event", 7);
13
+ this.submitted = createEvent(this, "submitted", 7);
14
+ this.setBusinessProvisioned = () => {
15
+ this.getBusiness({
16
+ onSuccess: (response) => {
17
+ this.businessProvisioned = checkProvisioningStatus(response.data);
18
+ if (this.businessProvisioned) {
19
+ this.errorEvent.emit({
20
+ message: 'A request to provision payments for this business has already been submitted.',
21
+ errorCode: ComponentErrorCodes.PROVISIONING_REQUESTED,
22
+ severity: ComponentErrorSeverity.INFO,
23
+ });
24
+ }
25
+ },
26
+ onError: ({ error, code, severity }) => {
27
+ this.errorEvent.emit({
28
+ message: error,
29
+ errorCode: code,
30
+ severity: severity
31
+ });
32
+ }
33
+ });
34
+ };
35
+ this.postProvisioningData = () => {
36
+ this.postProvisioning({
37
+ onSuccess: (response) => {
38
+ this.submitted.emit({ data: { response } });
39
+ },
40
+ onError: ({ error, code, severity }) => {
41
+ this.submitted.emit({ data: { error } });
42
+ this.errorEvent.emit({
43
+ message: error,
44
+ errorCode: code,
45
+ severity: severity
46
+ });
47
+ }
48
+ });
49
+ };
50
+ this.refs = [];
51
+ this.incrementSteps = () => {
52
+ if (this.currentStep < this.totalSteps) {
53
+ return this.currentStep++;
54
+ }
55
+ };
56
+ this.decrementSteps = () => { return this.currentStep--; };
57
+ this.previousStepButtonOnClick = () => {
58
+ this.clickEvent.emit({ name: BusinessFormClickActions.previousStep });
59
+ this.decrementSteps();
60
+ };
61
+ this.nextStepButtonOnClick = (e, clickEventName) => {
62
+ e.preventDefault();
63
+ this.clickEvent.emit({ name: clickEventName });
64
+ const currentStep = this.refs[this.currentStep];
65
+ currentStep.validateAndSubmit({ onSuccess: this.incrementSteps });
66
+ };
67
+ this.loading = false;
68
+ this.businessProvisioned = false;
69
+ this.currentStep = 0;
70
+ this.errorMessage = undefined;
71
+ this.businessId = undefined;
72
+ this.authToken = undefined;
73
+ this.allowOptionalFields = false;
74
+ this.formTitle = undefined;
75
+ this.getBusiness = undefined;
76
+ this.postProvisioning = undefined;
77
+ }
78
+ componentWillLoad() {
79
+ this.getBusiness && this.setBusinessProvisioned();
80
+ this.refs = [this.coreInfoRef, this.legalAddressRef, this.additionalQuestionsRef, this.representativeRef, this.ownersRef, this.bankAccountRef, this.documentUploadRef, this.termsRef];
81
+ }
82
+ get businessEndpoint() {
83
+ return `entities/business/${this.businessId}`;
84
+ }
85
+ get formDisabled() {
86
+ return this.loading || this.businessProvisioned;
87
+ }
88
+ get totalSteps() {
89
+ return this.refs.length - 1;
90
+ }
91
+ get stepCounter() {
92
+ return `${this.currentStep + 1} of ${this.totalSteps + 1}`;
93
+ }
94
+ handleFormLoading(event) {
95
+ this.loading = event.detail;
96
+ }
97
+ render() {
98
+ return (h(StyledHost, { key: '80f2730a6a4e273391888b086c3633a3dec012b8', exportparts: 'label,input,input-invalid' }, h("div", { key: 'b4e7be2fed14b404ee7bcbe42c3c1c54bb78fdb6', class: 'row gap-3' }, h("h1", { key: 'f477beb7934a94a74dfc6b8a9c18cc54a720f70e' }, this.formTitle), h("justifi-payment-provisioning-form-steps", { key: 'e74aa3a01cfe7550f4917d28ccda1aca211d9394', businessId: this.businessId, authToken: this.authToken, refs: this.refs, currentStep: this.currentStep, allowOptionalFields: this.allowOptionalFields, handleFormLoading: this.handleFormLoading, onFormCompleted: () => this.postProvisioningData() }), h("div", { key: '26a585ec4b6b677cb01ac17696269168887f4c76', class: 'd-flex justify-content-between align-items-center' }, h("div", { key: 'ca5ddc176f8c2eb3315620076b401e47f45039bd', class: 'd-flex align-items-center' }, this.stepCounter), h("justifi-payment-provisioning-form-buttons", { key: '8299387bf859b33c829d29d66947c3c053ffa53c', currentStep: this.currentStep, totalSteps: this.totalSteps, formLoading: this.loading, formDisabled: this.formDisabled, previousStepButtonOnClick: this.previousStepButtonOnClick, nextStepButtonOnClick: this.nextStepButtonOnClick })))));
99
+ }
100
+ };
101
+
102
+ export { PaymentProvisioningCore as justifi_payment_provisioning_core };
@@ -0,0 +1,133 @@
1
+ import { r as registerInstance, c as createEvent, h } from './p-fad19d75.js';
2
+ import './p-56f6ce4c.js';
3
+ import { a as PaymentMethodTypes } from './p-df21aaad.js';
4
+ import './p-e3fab0e2.js';
5
+ import { l as loadFontsOnParent } from './p-83125497.js';
6
+ import { a as ComponentErrorCodes, C as ComponentErrorSeverity } from './p-14c91ffd.js';
7
+ import { g as getErrorMessage } from './p-8115b2f4.js';
8
+ import { J as JustifiAnalytics } from './p-15eafa87.js';
9
+ import { B as Button } from './p-9c9c7dac.js';
10
+ import { S as StyledHost } from './p-ba4bae6f.js';
11
+ import './p-2e8f4937.js';
12
+ import './p-29c0b182.js';
13
+
14
+ const paymentFormCss = ":host{display:block}justifi-payment-method-form{display:block;margin-left:calc(var(--jfi-layout-padding) * -1);margin-right:calc(var(--jfi-layout-padding) * -1)}*::part(label){color:var(--jfi-form-label-color);font-family:var(--jfi-form-label-font-family);font-weight:var(--jfi-form-label-font-weight);font-size:var(--jfi-form-label-font-size);margin:var(--jfi-form-label-margin)}*::part(input){font-family:var(--jfi-layout-font-family);background-color:var(--jfi-form-control-background-color);border-color:var(--jfi-form-control-border-color);border-width:var(--jfi-form-control-border-width);border-bottom-width:var(--jfi-form-control-border-bottom-width);border-left-width:var(--jfi-form-control-border-left-width);border-right-width:var(--jfi-form-control-border-right-width);border-top-width:var(--jfi-form-control-border-top-width);border-radius:var(--jfi-form-control-border-radius);border-style:var(--jfi-form-control-border-style);box-shadow:var(--jfi-form-control-box-shadow);color:var(--jfi-form-control-color);font-size:var(--jfi-form-control-font-size);font-weight:var(--jfi-form-control-font-weight);line-height:var(--jfi-form-control-line-height);margin:var(--jfi-form-control-margin);padding:var(--jfi-form-control-padding)}*::part(input):focus{color:var(--jfi-form-control-color-focus);border-color:var(--jfi-form-control-border-color-focus);box-shadow:var(--jfi-form-control-box-shadow-focus)}*::part(input-invalid){border-color:var(--jfi-form-control-border-color-error);box-shadow:var(--jfi-form-control-box-shadow-error)}*::part(input-invalid):focus{border-color:var(--jfi-form-control-border-color-error);box-shadow:var(--jfi-form-control-box-shadow-error-focus)}.jfi-submit-button{font-family:var(--jfi-layout-font-family);color:var(--jfi-submit-button-color);background-color:var(--jfi-submit-button-background-color);border-color:var(--jfi-submit-button-border-color);padding:var(--jfi-submit-button-padding);font-size:var(--jfi-submit-button-font-size);border-radius:var(--jfi-submit-button-border-radius);width:var(--jfi-submit-button-width);box-shadow:var(--jfi-submit-button-box-shadow)}.jfi-submit-button:hover{color:var(--jfi-submit-button-color-hover);background-color:var(--jfi-submit-button-background-color-hover);border-color:var(--jfi-submit-button-border-color-hover)}.jfi-submit-button:focus{color:var(--jfi-submit-button-color-focus);background-color:var(--jfi-submit-button-background-color-focus);border-color:var(--jfi-submit-button-border-color-focus)}.btn.jfi-submit-button:active{color:var(--jfi-submit-button-color-active);background-color:var(--jfi-submit-button-background-color-active);border-color:var(--jfi-submit-button-border-color-active)}.btn.jfi-submit-button-loading{min-width:75px;color:var(--jfi-submit-button-color-loading);background-color:var(--jfi-submit-button-background-color-loading);border-color:var(--jfi-submit-button-border-color-loading)}.btn.jfi-submit-button-loading .spinner-border{border-top-color:var(--jfi-submit-button-color-loading);border-bottom-color:var(--jfi-submit-button-color-loading);border-left-color:var(--jfi-submit-button-color-loading)}";
15
+ const JustifiPaymentFormStyle0 = paymentFormCss;
16
+
17
+ const PaymentForm = class {
18
+ constructor(hostRef) {
19
+ registerInstance(this, hostRef);
20
+ this.submitted = createEvent(this, "submitted", 7);
21
+ this.errorEvent = createEvent(this, "error-event", 7);
22
+ this.bankAccount = undefined;
23
+ this.card = undefined;
24
+ this.email = undefined;
25
+ this.clientId = undefined;
26
+ this.authToken = undefined;
27
+ this.accountId = undefined;
28
+ this.submitButtonText = undefined;
29
+ this.submitButtonEnabled = true;
30
+ this.isLoading = false;
31
+ this.selectedPaymentMethodType = PaymentMethodTypes.card;
32
+ }
33
+ componentWillLoad() {
34
+ this.analytics = new JustifiAnalytics(this);
35
+ if (!this.validateProps()) {
36
+ this.errorEvent.emit({
37
+ errorCode: ComponentErrorCodes.MISSING_PROPS,
38
+ message: 'clientId or authToken is required',
39
+ severity: ComponentErrorSeverity.ERROR
40
+ });
41
+ this.submitButtonEnabled = false;
42
+ }
43
+ }
44
+ connectedCallback() {
45
+ loadFontsOnParent();
46
+ }
47
+ disconnectedCallback() {
48
+ this.analytics.cleanup();
49
+ }
50
+ async fillBillingForm(fields) {
51
+ this.billingFormRef.fill(fields);
52
+ }
53
+ async enableSubmitButton() {
54
+ this.submitButtonEnabled = true;
55
+ }
56
+ async disableSubmitButton() {
57
+ this.submitButtonEnabled = false;
58
+ }
59
+ showPaymentMethodTypeSelector() {
60
+ return this.card && this.bankAccount;
61
+ }
62
+ getSelectedPaymentMethodType() {
63
+ if (this.showPaymentMethodTypeSelector()) {
64
+ return this.selectedPaymentMethodType;
65
+ }
66
+ else if (this.card) {
67
+ return PaymentMethodTypes.card;
68
+ }
69
+ else if (this.bankAccount) {
70
+ return PaymentMethodTypes.bankAccount;
71
+ }
72
+ else {
73
+ return PaymentMethodTypes.card;
74
+ }
75
+ }
76
+ paymentMethodSelectedHandler(event) {
77
+ const paymentMethodType = event.detail;
78
+ this.selectedPaymentMethodType = paymentMethodType;
79
+ }
80
+ validateProps() {
81
+ return !!(this.clientId || this.authToken);
82
+ }
83
+ getToken() {
84
+ return this.authToken || this.clientId;
85
+ }
86
+ async submit(event) {
87
+ event.preventDefault();
88
+ if (!this.paymentMethodFormRef || !this.billingFormRef)
89
+ return;
90
+ const billingFormValidation = await this.billingFormRef.validate();
91
+ const paymentMethodFormValidation = await this.paymentMethodFormRef.validate();
92
+ if (!billingFormValidation.isValid || !paymentMethodFormValidation.isValid)
93
+ return;
94
+ this.isLoading = true;
95
+ try {
96
+ const billingFormFieldValues = await this.billingFormRef.getValues();
97
+ const paymentMethodData = Object.assign({ email: this.email }, billingFormFieldValues);
98
+ const tokenizeResponse = await this.paymentMethodFormRef.tokenize(this.getToken(), paymentMethodData, this.accountId);
99
+ if (tokenizeResponse.error) {
100
+ this.errorEvent.emit({
101
+ errorCode: ComponentErrorCodes.TOKENIZE_ERROR,
102
+ message: tokenizeResponse.error.message,
103
+ severity: ComponentErrorSeverity.ERROR
104
+ });
105
+ }
106
+ this.submitted.emit(tokenizeResponse);
107
+ }
108
+ catch (error) {
109
+ this.errorEvent.emit({
110
+ errorCode: ComponentErrorCodes.UNKNOWN_ERROR,
111
+ message: getErrorMessage(error),
112
+ severity: ComponentErrorSeverity.ERROR
113
+ });
114
+ }
115
+ finally {
116
+ this.isLoading = false;
117
+ }
118
+ }
119
+ render() {
120
+ return (h(StyledHost, { key: '8cb6e3903a0045fbffed5f17dc29aacc6b57ad7f' }, h("form", { key: '4e8f00c3d29c0db0bc99fd79da46abe7c40e3e30', class: "row gy-3" }, this.showPaymentMethodTypeSelector() && (h("div", { key: '344a1356f6f482493a35015c32f8e9a9b4cc8a80', class: "col-12" }, h("justifi-payment-method-selector", { key: '36b9dd7a9bc8336b4bef0d12f56c811effbc0a0b', selectedPaymentMethodType: this.getSelectedPaymentMethodType(), onPaymentMethodSelected: event => this.paymentMethodSelectedHandler(event) }))), h("div", { key: '225a260f817f9dd02a7f0a5b25562179ab80f7de', class: "col-12" }, h("justifi-payment-method-form", { key: '52e2bf20b265cc96ab556571a323370cc27ac278', "payment-method-form-type": this.getSelectedPaymentMethodType(), iframeOrigin: "", ref: el => {
121
+ if (el) {
122
+ this.paymentMethodFormRef = el;
123
+ }
124
+ } })), h("div", { key: '433a8ac42c0eec9180e37da222da1dbb1112e48e', class: "col-12" }, h("justifi-billing-form", { key: '4f24f1c8b4083e2d9e5bb2272d32d20bb5cc225d', legend: "Billing Info", ref: el => {
125
+ if (el) {
126
+ this.billingFormRef = el;
127
+ }
128
+ } })), h("slot", { key: '9397ae7fdd2677cd61a425fcf5818ae14fabbed0', name: 'insurance' }), h("div", { key: 'db9131f6f35165e69d3b59da7fa25b95f1e46168', class: "col-12" }, h(Button, { key: 'c280836cf6445a7132ff9202a09b6fdac8e29f77', variant: "primary", type: "submit", onClick: event => this.submit(event), disabled: !this.submitButtonEnabled || this.isLoading, isLoading: this.isLoading, "data-testid": "submit-button", style: { width: '100%' } }, this.submitButtonText || 'Submit')))));
129
+ }
130
+ };
131
+ PaymentForm.style = JustifiPaymentFormStyle0;
132
+
133
+ export { PaymentForm as justifi_payment_form };
@@ -1 +1,114 @@
1
- let n;const t=new Uint8Array(16);function r(){if(!n&&(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(t)}const o=[];for(let n=0;n<256;++n)o.push((n+256).toString(16).slice(1));const e={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function c(n,t,c){if(e.randomUUID&&!t&&!n)return e.randomUUID();const u=(n=n||{}).random||(n.rng||r)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){c=c||0;for(let n=0;n<16;++n)t[c+n]=u[n];return t}return function(n,t=0){return o[n[t+0]]+o[n[t+1]]+o[n[t+2]]+o[n[t+3]]+"-"+o[n[t+4]]+o[n[t+5]]+"-"+o[n[t+6]]+o[n[t+7]]+"-"+o[n[t+8]]+o[n[t+9]]+"-"+o[n[t+10]]+o[n[t+11]]+o[n[t+12]]+o[n[t+13]]+o[n[t+14]]+o[n[t+15]]}(u)}const u=({authToken:n,apiOrigin:t})=>{async function r(){return n?{Authorization:`Bearer ${n}`,"Idempotency-Key":c(),"Content-Type":"application/json"}:{"Content-Type":"application/json"}}async function o(n,o,e,c,u){const i=`${t}/v1/${n}`,a=e?`${i}?${new URLSearchParams(e)}`:i,p=await fetch(a,{method:o,headers:await r(),body:c,signal:u});if(p)return 204===p.status?{}:p.json();!function(n){console.error(`Error fetching from ${n}`)}(a)}return{get:async function(n,t,r){return o(n,"GET",t,null,r)},post:async function(n,t,r,e){return o(n,"POST",r,t,e)},put:async function(n,t,r,e){return o(n,"PUT",r,t,e)},patch:async function(n,t,r,e){return o(n,"PATCH",r,t,e)},destroy:async function(n,t,r){return o(n,"DELETE",t,null,r)}}};export{u as A}
1
+ // Unique ID creation requires a high quality random # generator. In the browser we therefore
2
+ // require the crypto API and do not support built-in fallback to lower quality random number
3
+ // generators (like Math.random()).
4
+ let getRandomValues;
5
+ const rnds8 = new Uint8Array(16);
6
+ function rng() {
7
+ // lazy load so that environments that need to polyfill have a chance to do so
8
+ if (!getRandomValues) {
9
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
10
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
11
+
12
+ if (!getRandomValues) {
13
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
14
+ }
15
+ }
16
+
17
+ return getRandomValues(rnds8);
18
+ }
19
+
20
+ /**
21
+ * Convert array of 16 byte values to UUID string format of the form:
22
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
23
+ */
24
+
25
+ const byteToHex = [];
26
+
27
+ for (let i = 0; i < 256; ++i) {
28
+ byteToHex.push((i + 0x100).toString(16).slice(1));
29
+ }
30
+
31
+ function unsafeStringify(arr, offset = 0) {
32
+ // Note: Be careful editing this code! It's been tuned for performance
33
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
34
+ return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
35
+ }
36
+
37
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
38
+ const native = {
39
+ randomUUID
40
+ };
41
+
42
+ function v4(options, buf, offset) {
43
+ if (native.randomUUID && !buf && !options) {
44
+ return native.randomUUID();
45
+ }
46
+
47
+ options = options || {};
48
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
49
+
50
+ rnds[6] = rnds[6] & 0x0f | 0x40;
51
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
52
+
53
+ if (buf) {
54
+ offset = offset || 0;
55
+
56
+ for (let i = 0; i < 16; ++i) {
57
+ buf[offset + i] = rnds[i];
58
+ }
59
+
60
+ return buf;
61
+ }
62
+
63
+ return unsafeStringify(rnds);
64
+ }
65
+
66
+ const Api = ({ authToken, apiOrigin }) => {
67
+ async function getAuthorizationHeader() {
68
+ if (!authToken) {
69
+ return {
70
+ 'Content-Type': 'application/json',
71
+ };
72
+ }
73
+ return {
74
+ Authorization: `Bearer ${authToken}`,
75
+ 'Idempotency-Key': v4(),
76
+ 'Content-Type': 'application/json',
77
+ };
78
+ }
79
+ async function makeRequest(endpoint, method, params, body, signal) {
80
+ const url = `${apiOrigin}/v1/${endpoint}`;
81
+ const requestUrl = params ? `${url}?${new URLSearchParams(params)}` : url;
82
+ const response = await fetch(requestUrl, {
83
+ method: method,
84
+ headers: await getAuthorizationHeader(),
85
+ body: body,
86
+ signal: signal,
87
+ });
88
+ if (response) {
89
+ return response.status === 204 ? {} : response.json();
90
+ }
91
+ handleError(requestUrl);
92
+ }
93
+ async function get(endpoint, params, signal) {
94
+ return makeRequest(endpoint, 'GET', params, null, signal);
95
+ }
96
+ async function post(endpoint, body, params, signal) {
97
+ return makeRequest(endpoint, 'POST', params, body, signal);
98
+ }
99
+ async function put(endpoint, body, params, signal) {
100
+ return makeRequest(endpoint, 'PUT', params, body, signal);
101
+ }
102
+ async function patch(endpoint, body, params, signal) {
103
+ return makeRequest(endpoint, 'PATCH', params, body, signal);
104
+ }
105
+ async function destroy(endpoint, params, signal) {
106
+ return makeRequest(endpoint, 'DELETE', params, null, signal);
107
+ }
108
+ return { get, post, put, patch, destroy };
109
+ };
110
+ function handleError(requestUrl) {
111
+ console.error(`Error fetching from ${requestUrl}`);
112
+ }
113
+
114
+ export { Api as A };
@@ -1 +1,7 @@
1
- const e="\ntable-head,table-head-row,table-head-cell,table-body,table-row,table-row-even,\ntable-row-odd,table-cell,loading-state-cell,loading-state-spinner,error-state,\nempty-state,pagination-bar,page-arrow,page-button,page-button-disabled,page-button-text\n";export{e as t}
1
+ const tableExportedParts = `
2
+ table-head,table-head-row,table-head-cell,table-body,table-row,table-row-even,
3
+ table-row-odd,table-cell,loading-state-cell,loading-state-spinner,error-state,
4
+ empty-state,pagination-bar,page-arrow,page-button,page-button-disabled,page-button-text
5
+ `;
6
+
7
+ export { tableExportedParts as t };
@@ -0,0 +1,79 @@
1
+ const name = "@justifi/webcomponents";
2
+ const version = "4.19.3-rc-2";
3
+ const description = "JustiFi Web Components";
4
+ const collection = "dist/collection/collection-manifest.json";
5
+ const main = "dist/index.cjs.js";
6
+ const module = "dist/module/index.js";
7
+ const types = "dist/module/index.d.ts";
8
+ const repository = {
9
+ type: "git",
10
+ url: "git+https://github.com/justifi-tech/web-component-library.git"
11
+ };
12
+ const homepage = "https://storybook.justifi.ai/?path=/docs/introduction--docs";
13
+ const publishConfig = {
14
+ registry: "https://registry.npmjs.org"
15
+ };
16
+ const files = [
17
+ "dist/"
18
+ ];
19
+ const scripts = {
20
+ build: "stencil build --docs",
21
+ dev: "stencil build --watch",
22
+ lint: "eslint . --max-warnings 0",
23
+ clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
24
+ generate: "stencil generate",
25
+ test: "TZ=utc stencil test --spec",
26
+ "test:watch": "TZ=utc stencil test --spec --watchAll",
27
+ "test:file": "stencil test --spec --watch --"
28
+ };
29
+ const dependencies = {
30
+ "@stencil/core": "^4.0.5",
31
+ "@stencil/store": "^2.0.8",
32
+ bootstrap: "^5.2.3",
33
+ "chart.js": "^4.4.1",
34
+ "date-fns": "^2.29.3",
35
+ "dinero.js": "^1.9.1",
36
+ "iframe-resizer": "^4.3.7",
37
+ imask: "^7.6.0",
38
+ rxjs: "^7.8.1",
39
+ "ts-dedent": "^2.2.0",
40
+ uuid: "^9.0.0",
41
+ yup: "^1.0.0"
42
+ };
43
+ const devDependencies = {
44
+ "@babel/preset-env": "^7.21.5",
45
+ "@babel/preset-react": "^7.18.6",
46
+ "@babel/preset-typescript": "^7.21.5",
47
+ "@rollup/plugin-replace": "^5.0.7",
48
+ "@stencil/sass": "^3.0.1",
49
+ "@types/jest": "27.0.3",
50
+ "@types/react": "^18.0.37",
51
+ "@types/react-dom": "^18.0.11",
52
+ dotenv: "^16.3.1",
53
+ jest: "^29.7.0",
54
+ "jest-cli": "^29.7.0",
55
+ "jest-environment-node": "^29.7.0",
56
+ "ts-jest": "^29.1.2"
57
+ };
58
+ const license = "MIT";
59
+ const gitHead = "507bac1d941eae6e1f56e185ecd9bc9d22637783";
60
+ const packageJson = {
61
+ name: name,
62
+ version: version,
63
+ description: description,
64
+ collection: collection,
65
+ main: main,
66
+ module: module,
67
+ types: types,
68
+ repository: repository,
69
+ homepage: homepage,
70
+ publishConfig: publishConfig,
71
+ files: files,
72
+ scripts: scripts,
73
+ dependencies: dependencies,
74
+ devDependencies: devDependencies,
75
+ license: license,
76
+ gitHead: gitHead
77
+ };
78
+
79
+ export { packageJson as p };