@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.
- package/dist/cjs/{Analytics-84cccd4a.js → Analytics-adc90fc6.js} +1 -1
- package/dist/cjs/justifi-bank-account-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-card-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-checkout-core.cjs.entry.js +2 -1
- package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
- package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
- package/dist/cjs/justifi-new-payment-method_4.cjs.entry.js +4 -1
- package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-form.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payment-method-form.cjs.entry.js +1 -1
- package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
- package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
- package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
- package/dist/cjs/{package-d2e04416.js → package-22d30c5d.js} +1 -1
- package/dist/collection/components/checkout/checkout-core.js +2 -1
- package/dist/collection/components/checkout/new-payment-method.js +4 -1
- package/dist/docs.json +1 -1
- package/dist/esm/{Analytics-a742f6d2.js → Analytics-a8eb7344.js} +1 -1
- package/dist/esm/justifi-bank-account-form.entry.js +2 -2
- package/dist/esm/justifi-business-details.entry.js +2 -2
- package/dist/esm/justifi-business-form.entry.js +2 -2
- package/dist/esm/justifi-card-form.entry.js +2 -2
- package/dist/esm/justifi-checkout-core.entry.js +2 -1
- package/dist/esm/justifi-checkout.entry.js +2 -2
- package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
- package/dist/esm/justifi-new-payment-method_4.entry.js +4 -1
- package/dist/esm/justifi-payment-details.entry.js +2 -2
- package/dist/esm/justifi-payment-form.entry.js +2 -2
- package/dist/esm/justifi-payment-method-form.entry.js +1 -1
- package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
- package/dist/esm/justifi-payments-list.entry.js +2 -2
- package/dist/esm/justifi-payout-details.entry.js +2 -2
- package/dist/esm/justifi-payouts-list.entry.js +2 -2
- package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
- package/dist/esm/{package-a70c900f.js → package-ccb774a9.js} +1 -1
- package/dist/module/checkout-core.js +2 -1
- package/dist/module/new-payment-method.js +4 -1
- package/dist/module/package.js +1 -1
- package/dist/types/components/checkout/new-payment-method.d.ts +1 -0
- package/dist/webcomponents/index.esm.js +1 -0
- package/dist/webcomponents/p-01a404ca.entry.js +44 -0
- package/dist/webcomponents/p-03d35880.entry.js +130 -0
- package/dist/webcomponents/p-06ff0429.entry.js +65 -0
- package/dist/webcomponents/p-08b0fb31.js +41 -1
- package/dist/webcomponents/p-0e1bc91e.js +28 -1
- package/dist/webcomponents/p-10875f3d.entry.js +97 -0
- package/dist/webcomponents/p-14c91ffd.js +20 -1
- package/dist/webcomponents/p-157acba8.entry.js +98 -0
- package/dist/webcomponents/p-15eafa87.js +77 -0
- package/dist/webcomponents/p-18fa0479.entry.js +131 -0
- package/dist/webcomponents/p-1a5120f4.entry.js +145 -0
- package/dist/webcomponents/p-1ad5995e.js +3599 -1
- package/dist/webcomponents/p-1ff8810b.js +29 -1
- package/dist/webcomponents/p-2338affa.js +213 -1
- package/dist/webcomponents/p-24dc023a.entry.js +791 -0
- package/dist/webcomponents/p-25d8cd65.entry.js +102 -0
- package/dist/webcomponents/p-27d87fe2.entry.js +133 -0
- package/dist/webcomponents/p-29c0b182.js +114 -1
- package/dist/webcomponents/p-2b6c9c4f.js +7 -1
- package/dist/webcomponents/p-2e8f4937.js +79 -0
- package/dist/webcomponents/p-2eab3c90.js +3052 -1
- package/dist/webcomponents/p-3395e896.entry.js +74 -0
- package/dist/webcomponents/p-3fd13ca3.js +52 -1
- package/dist/webcomponents/p-47d79529.js +18 -1
- package/dist/webcomponents/p-525db3e8.js +22 -1
- package/dist/webcomponents/p-53ecc8b9.entry.js +261 -0
- package/dist/webcomponents/p-5482d030.entry.js +21 -0
- package/dist/webcomponents/p-56f6ce4c.js +10 -1
- package/dist/webcomponents/p-576826b1.entry.js +43 -0
- package/dist/webcomponents/p-5968ff8a.js +178 -1
- package/dist/webcomponents/p-5f835b89.entry.js +606 -0
- package/dist/webcomponents/p-6078a370.js +244 -1
- package/dist/webcomponents/p-6124b1b3.entry.js +80 -0
- package/dist/webcomponents/p-70a2aa74.entry.js +76 -0
- package/dist/webcomponents/p-7582b554.entry.js +18 -0
- package/dist/webcomponents/p-75fd6367.entry.js +149 -0
- package/dist/webcomponents/p-79646550.entry.js +61 -0
- package/dist/webcomponents/p-7d85af5c.js +16 -1
- package/dist/webcomponents/p-800d31fe.entry.js +162 -0
- package/dist/webcomponents/p-8115b2f4.js +28 -1
- package/dist/webcomponents/p-83125497.js +4027 -1
- package/dist/webcomponents/p-85fc69e5.js +90 -1
- package/dist/webcomponents/p-89887332.js +301 -1
- package/dist/webcomponents/p-8df7bde8.js +27 -1
- package/dist/webcomponents/p-8eb774df.entry.js +54 -0
- package/dist/webcomponents/p-9c9c7dac.js +24 -1
- package/dist/webcomponents/p-9e17630d.entry.js +1684 -0
- package/dist/webcomponents/p-9f94bbb6.entry.js +118 -0
- package/dist/webcomponents/p-a4e8573e.entry.js +94 -0
- package/dist/webcomponents/p-a5a225d9.entry.js +125 -0
- package/dist/webcomponents/p-a5fb51dc.entry.js +131 -0
- package/dist/webcomponents/p-ab4816e1.entry.js +117 -0
- package/dist/webcomponents/p-ac086069.entry.js +58 -0
- package/dist/webcomponents/p-af244664.js +126 -1
- package/dist/webcomponents/p-b4b8b531.js +44 -1
- package/dist/webcomponents/p-b82c146f.entry.js +111 -0
- package/dist/webcomponents/p-ba4bae6f.js +12 -1
- package/dist/webcomponents/p-ba5fae28.js +90 -1
- package/dist/webcomponents/p-bd66f9d2.entry.js +101 -0
- package/dist/webcomponents/p-cc39384f.entry.js +99 -0
- package/dist/webcomponents/p-d17aee2b.entry.js +26 -0
- package/dist/webcomponents/p-d89bad72.js +39 -1
- package/dist/webcomponents/p-dad3e069.entry.js +298 -0
- package/dist/webcomponents/p-dce846bf.js +27 -1
- package/dist/webcomponents/p-df21aaad.js +120 -1
- package/dist/webcomponents/p-e1255160.js +3 -1
- package/dist/webcomponents/p-e1e7525b.entry.js +73 -0
- package/dist/webcomponents/p-e333620e.js +34 -1
- package/dist/webcomponents/p-e356f280.entry.js +29 -0
- package/dist/webcomponents/p-e3fab0e2.js +43 -1
- package/dist/webcomponents/p-e9a5cb95.entry.js +94 -0
- package/dist/webcomponents/p-ec854a3e.entry.js +11053 -0
- package/dist/webcomponents/p-edc37d1f.entry.js +75 -0
- package/dist/webcomponents/p-f02b75dc.entry.js +96 -0
- package/dist/webcomponents/p-fad19d75.js +1638 -2
- package/dist/webcomponents/webcomponents.css +362 -4
- package/dist/webcomponents/webcomponents.esm.js +20 -1
- package/package.json +1 -1
- package/dist/webcomponents/p-07109641.entry.js +0 -1
- package/dist/webcomponents/p-080fedb5.entry.js +0 -1
- package/dist/webcomponents/p-0e3e3544.entry.js +0 -1
- package/dist/webcomponents/p-0f7b9555.entry.js +0 -1
- package/dist/webcomponents/p-1295970b.entry.js +0 -1
- package/dist/webcomponents/p-15b9b267.entry.js +0 -1
- package/dist/webcomponents/p-17e4246f.entry.js +0 -1
- package/dist/webcomponents/p-1a43e355.entry.js +0 -19
- package/dist/webcomponents/p-232278e0.entry.js +0 -1
- package/dist/webcomponents/p-30a493cd.entry.js +0 -1
- package/dist/webcomponents/p-32211b2f.entry.js +0 -1
- package/dist/webcomponents/p-3352353a.entry.js +0 -1
- package/dist/webcomponents/p-462dc522.entry.js +0 -1
- package/dist/webcomponents/p-487b72a8.entry.js +0 -1
- package/dist/webcomponents/p-4abc17f0.entry.js +0 -1
- package/dist/webcomponents/p-52021fa1.entry.js +0 -1
- package/dist/webcomponents/p-53e64f15.entry.js +0 -1
- package/dist/webcomponents/p-62b32c4c.entry.js +0 -1
- package/dist/webcomponents/p-701e03a8.entry.js +0 -1
- package/dist/webcomponents/p-79cfbcfa.entry.js +0 -1
- package/dist/webcomponents/p-8e263202.js +0 -1
- package/dist/webcomponents/p-8e541a32.entry.js +0 -1
- package/dist/webcomponents/p-99899e7e.entry.js +0 -1
- package/dist/webcomponents/p-9993e959.entry.js +0 -1
- package/dist/webcomponents/p-b29f5084.entry.js +0 -1
- package/dist/webcomponents/p-bbed6107.entry.js +0 -1
- package/dist/webcomponents/p-be39c802.entry.js +0 -1
- package/dist/webcomponents/p-c9f8f7ec.entry.js +0 -1
- package/dist/webcomponents/p-cc97f21b.entry.js +0 -1
- package/dist/webcomponents/p-cd37a87e.entry.js +0 -1
- package/dist/webcomponents/p-d4c94340.entry.js +0 -1
- package/dist/webcomponents/p-d5c9e036.entry.js +0 -1
- package/dist/webcomponents/p-d6a998e4.js +0 -1
- package/dist/webcomponents/p-d8355f91.entry.js +0 -1
- package/dist/webcomponents/p-e2c88817.entry.js +0 -1
- package/dist/webcomponents/p-e31f0f3e.entry.js +0 -1
- package/dist/webcomponents/p-ea3598f3.entry.js +0 -1
- package/dist/webcomponents/p-eca70b1d.entry.js +0 -1
- package/dist/webcomponents/p-f0866375.entry.js +0 -1
- package/dist/webcomponents/p-f117d1d1.entry.js +0 -1
- package/dist/webcomponents/p-fb58feb5.entry.js +0 -1
- 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
|
-
|
|
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
|
|
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 };
|