@axos-web-dev/shared-components 1.0.100-dev.42 → 1.0.100-dev.42-enhancementvalidationcalls.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/dist/ATMLocator/ATMLocator.js +1 -1
- package/dist/Auth/SignInPassword.js +2 -2
- package/dist/BulletItem/BulletItem.js +1 -0
- package/dist/Calculators/AnnualFeeCalculator/index.js +1 -1
- package/dist/Calculators/BuyDownCalculator/index.js +1 -1
- package/dist/Calculators/Calculator.js +2 -2
- package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +1 -1
- package/dist/Calculators/MaxLoanCalculator/index.js +1 -1
- package/dist/Calculators/MonthlyPaymentCalculator/index.js +1 -1
- package/dist/Chatbot/ChatWindow.css.js +1 -0
- package/dist/Chatbot/Chatbot.css.js +0 -1
- package/dist/Forms/ApplicationStart.js +4 -2
- package/dist/Forms/ApplyNow.js +1 -1
- package/dist/Forms/ClearingForm.js +4 -2
- package/dist/Forms/CommercialDeposits.js +4 -2
- package/dist/Forms/CommercialDepositsNoLendingOption.js +4 -2
- package/dist/Forms/CommercialLending.js +4 -2
- package/dist/Forms/CommercialPremiumFinance.js +4 -2
- package/dist/Forms/ContactCompany.js +4 -2
- package/dist/Forms/ContactCompanyTitle.js +4 -2
- package/dist/Forms/ContactUs.js +4 -2
- package/dist/Forms/ContactUsAAS.js +4 -2
- package/dist/Forms/ContactUsBusiness.js +4 -2
- package/dist/Forms/ContactUsBusinessNameEmail.js +4 -2
- package/dist/Forms/ContactUsLVF.js +4 -2
- package/dist/Forms/ContactUsNMLSId.js +4 -2
- package/dist/Forms/CpraRequest.d.ts +1 -1
- package/dist/Forms/CpraRequest.js +5 -2
- package/dist/Forms/CraPublicFile.js +4 -2
- package/dist/Forms/DealerServices.js +4 -2
- package/dist/Forms/EmailOnly.js +4 -2
- package/dist/Forms/EmailUs.js +4 -2
- package/dist/Forms/HoneyPot/index.js +2 -1
- package/dist/Forms/MortgageRate/MortgageRateForm.js +4 -2
- package/dist/Forms/MortgageWarehouseLending.js +4 -2
- package/dist/Forms/QuickPricer/QuickPricerForm.js +16 -12
- package/dist/Forms/ScheduleCall.js +4 -2
- package/dist/Forms/ScheduleCallPremier.js +4 -2
- package/dist/Forms/SuccesForm.js +2 -2
- package/dist/Forms/VendorQuestionnaire.js +6 -2
- package/dist/Forms/index.js +1 -0
- package/dist/ImageLink/ImageLink.js +1 -1
- package/dist/LoadingIndicator/index.js +1 -0
- package/dist/Modal/contextApi/store.js +1 -1
- package/dist/SetContainer/SetContainer.js +1 -1
- package/dist/Tab/Tab.js +1 -0
- package/dist/Table/Table.d.ts +1 -1
- package/dist/main.js +8 -1
- package/dist/utils/emailValidation.d.ts +1 -0
- package/dist/utils/emailValidation.js +31 -0
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.js +9 -1
- package/dist/utils/nmlsValidation.d.ts +1 -0
- package/dist/utils/nmlsValidation.js +34 -0
- package/dist/utils/useCachedValidators.d.ts +2 -0
- package/dist/utils/useCachedValidators.js +22 -0
- package/package.json +136 -136
|
@@ -27,11 +27,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
|
|
|
27
27
|
/* empty css */
|
|
28
28
|
/* empty css */
|
|
29
29
|
import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
|
|
30
|
+
import * as z from "zod";
|
|
30
31
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
31
32
|
import { getVariant } from "../utils/getVariant.js";
|
|
33
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
32
34
|
import clsx from "clsx";
|
|
33
35
|
import { useForm, FormProvider } from "react-hook-form";
|
|
34
|
-
import * as z from "zod";
|
|
35
36
|
import { iconForm, headerContainer, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
36
37
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
37
38
|
const CpraRequest = ({
|
|
@@ -45,9 +46,11 @@ const CpraRequest = ({
|
|
|
45
46
|
headline,
|
|
46
47
|
description,
|
|
47
48
|
callToAction,
|
|
49
|
+
validateEmail,
|
|
48
50
|
onValidate,
|
|
49
51
|
id
|
|
50
52
|
}) => {
|
|
53
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
51
54
|
const schema = z.object({
|
|
52
55
|
California_Resident: z.string(),
|
|
53
56
|
Categories_of_personal_info: z.string(),
|
|
@@ -73,7 +76,7 @@ const CpraRequest = ({
|
|
|
73
76
|
Last_Name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
|
|
74
77
|
message: "Last Name is required."
|
|
75
78
|
}).trim().min(1, { message: "Last Name is required." }),
|
|
76
|
-
email: z.string().email({ message: "Email is required." }),
|
|
79
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
77
80
|
Telephone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
78
81
|
const removeDashes = val.replace(/-/gi, "");
|
|
79
82
|
if (removeDashes.length !== 10) {
|
|
@@ -35,6 +35,8 @@ import "react-use";
|
|
|
35
35
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
36
36
|
import "../IconBillboard/IconBillboard.css.js";
|
|
37
37
|
import "../utils/allowedAxosDomains.js";
|
|
38
|
+
import { z } from "zod";
|
|
39
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
38
40
|
import "../Calculators/calculator.css.js";
|
|
39
41
|
import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
|
|
40
42
|
import "../Calculators/ApyCalculator/ApyCalculator.css.js";
|
|
@@ -43,7 +45,6 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
|
|
|
43
45
|
import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
|
|
44
46
|
import "../Input/PercentageInput.js";
|
|
45
47
|
import { useForm, FormProvider } from "react-hook-form";
|
|
46
|
-
import { z } from "zod";
|
|
47
48
|
import "../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
48
49
|
import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
49
50
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
@@ -148,10 +149,11 @@ const CraPublicFile = ({
|
|
|
148
149
|
onValidate,
|
|
149
150
|
id
|
|
150
151
|
}) => {
|
|
152
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
151
153
|
const schema = z.object({
|
|
152
154
|
First_Name__c: z.string({ message: "Invalid first name." }).regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "First Name is required." }).optional().or(z.literal("")),
|
|
153
155
|
Last_Name__c: z.string({ message: "Invalid last name." }).regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "Last Name is required." }).optional().or(z.literal("")),
|
|
154
|
-
Customer_Email__c: z.string({ message: "Invalid email." }).email({ message: "Email is required." }).refine(
|
|
156
|
+
Customer_Email__c: z.string({ message: "Invalid email." }).email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }).optional().or(z.literal("")),
|
|
155
157
|
Customer_Phone__c: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
156
158
|
const removeDashes = val.replace(/-/gi, "");
|
|
157
159
|
if (removeDashes.length !== 10) {
|
|
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
|
|
|
26
26
|
/* empty css */
|
|
27
27
|
/* empty css */
|
|
28
28
|
import "../utils/allowedAxosDomains.js";
|
|
29
|
+
import * as z from "zod";
|
|
29
30
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
30
31
|
import { getVariant } from "../utils/getVariant.js";
|
|
32
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
31
33
|
import clsx from "clsx";
|
|
32
34
|
import { useForm, FormProvider } from "react-hook-form";
|
|
33
|
-
import * as z from "zod";
|
|
34
35
|
import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
35
36
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
36
37
|
import { SalesforceSchema } from "./SalesforceFieldsForm.js";
|
|
@@ -49,10 +50,11 @@ const DealerServices = ({
|
|
|
49
50
|
onValidate,
|
|
50
51
|
id
|
|
51
52
|
}) => {
|
|
53
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
52
54
|
const schema = z.object({
|
|
53
55
|
first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
|
|
54
56
|
last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
|
|
55
|
-
email: z.string().email({ message: "Email is required." }),
|
|
57
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
56
58
|
phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
57
59
|
const removeDashes = val.replace(/-/gi, "");
|
|
58
60
|
if (removeDashes.length !== 10) {
|
package/dist/Forms/EmailOnly.js
CHANGED
|
@@ -35,7 +35,9 @@ import "react-use";
|
|
|
35
35
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
36
36
|
import "../IconBillboard/IconBillboard.css.js";
|
|
37
37
|
import "../utils/allowedAxosDomains.js";
|
|
38
|
+
import { z } from "zod";
|
|
38
39
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
40
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
39
41
|
import "../Calculators/calculator.css.js";
|
|
40
42
|
import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
|
|
41
43
|
import "../Calculators/ApyCalculator/ApyCalculator.css.js";
|
|
@@ -44,7 +46,6 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
|
|
|
44
46
|
import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
|
|
45
47
|
import "../Input/PercentageInput.js";
|
|
46
48
|
import { useForm, FormProvider } from "react-hook-form";
|
|
47
|
-
import { z } from "zod";
|
|
48
49
|
import "../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
49
50
|
import { iconForm, headerContainer, headerForm, email_only_h2, form, descriptionField, actions, email_only_btn, formWrapper, disclosureForm, formContainer, email_only_padding } from "./Forms.css.js";
|
|
50
51
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
@@ -149,8 +150,9 @@ const EmailOnly = ({
|
|
|
149
150
|
onValidate,
|
|
150
151
|
id
|
|
151
152
|
}) => {
|
|
153
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
152
154
|
const schema = z.object({
|
|
153
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
155
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." })
|
|
154
156
|
});
|
|
155
157
|
const gen_schema = schema.merge(SalesforceSchema).merge(honeyPotSchema).superRefine((data, ctx) => {
|
|
156
158
|
if (!isValidHoneyPot(data)) {
|
package/dist/Forms/EmailUs.js
CHANGED
|
@@ -18,11 +18,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
|
|
|
18
18
|
/* empty css */
|
|
19
19
|
/* empty css */
|
|
20
20
|
import "../utils/allowedAxosDomains.js";
|
|
21
|
+
import * as z from "zod";
|
|
21
22
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
22
23
|
import { getVariant } from "../utils/getVariant.js";
|
|
24
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
23
25
|
import clsx from "clsx";
|
|
24
26
|
import { useForm, FormProvider } from "react-hook-form";
|
|
25
|
-
import * as z from "zod";
|
|
26
27
|
import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
27
28
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
28
29
|
const EmailUs = ({
|
|
@@ -40,8 +41,9 @@ const EmailUs = ({
|
|
|
40
41
|
description,
|
|
41
42
|
id
|
|
42
43
|
}) => {
|
|
44
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
43
45
|
const schema = z.object({
|
|
44
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
46
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
45
47
|
message: z.string().min(2, "Message is required")
|
|
46
48
|
});
|
|
47
49
|
const gen_schema = schema.merge(honeyPotSchema).superRefine((data, ctx) => {
|
|
@@ -11,8 +11,9 @@ import "../../Input/InputTextArea.js";
|
|
|
11
11
|
import "../../Input/DownPaymentInput.js";
|
|
12
12
|
import "../../Input/RadioButton.js";
|
|
13
13
|
import "../../utils/allowedAxosDomains.js";
|
|
14
|
-
import { getVariant } from "../../utils/getVariant.js";
|
|
15
14
|
import { z } from "zod";
|
|
15
|
+
import { getVariant } from "../../utils/getVariant.js";
|
|
16
|
+
import "react";
|
|
16
17
|
import { form_field_container } from "./HoneyPot.css.js";
|
|
17
18
|
const honeyPotSchema = z.object({
|
|
18
19
|
AlternativeEmail: z.string().refine((val) => val === "bestbank@axos.com"),
|
|
@@ -12,8 +12,10 @@ import '../../assets/VideoWrapper/VideoWrapper.css';import '../../assets/Topical
|
|
|
12
12
|
/* empty css */
|
|
13
13
|
/* empty css */
|
|
14
14
|
import "../../utils/allowedAxosDomains.js";
|
|
15
|
+
import * as z from "zod";
|
|
15
16
|
import { associatedEmail } from "../../utils/EverestValidity.js";
|
|
16
17
|
import { getVariant } from "../../utils/getVariant.js";
|
|
18
|
+
import { useCachedEmailValidator } from "../../utils/useCachedValidators.js";
|
|
17
19
|
import clsx from "clsx";
|
|
18
20
|
/* empty css */
|
|
19
21
|
/* empty css */
|
|
@@ -43,7 +45,6 @@ import { DownPaymentInput } from "../../Input/DownPaymentInput.js";
|
|
|
43
45
|
import "../../Input/RadioButton.js";
|
|
44
46
|
import "../../Input/PercentageInput.js";
|
|
45
47
|
import { useForm, FormProvider } from "react-hook-form";
|
|
46
|
-
import * as z from "zod";
|
|
47
48
|
import "../../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
48
49
|
import { iconForm, headerForm, form, descriptionField, headerContainer, fullRowSelect, formWrapper, centerSelect, mt2rem, fullRowForm, disclosureForm, actions, formBtns, na_cursor, formContainer } from "../Forms.css.js";
|
|
49
50
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "../HoneyPot/index.js";
|
|
@@ -159,6 +160,7 @@ const MortgageRate = ({
|
|
|
159
160
|
const [_downPayment, setDownPayment] = useState(0);
|
|
160
161
|
const [isTypingDownPayment, setIsTypingDownPayment] = useState(false);
|
|
161
162
|
const [salesPriceVal, setSalesPriceVal] = useState(0);
|
|
163
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
162
164
|
const schema = z.object({
|
|
163
165
|
firstName: z.string({ message: "First Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
|
|
164
166
|
message: "First Name is required."
|
|
@@ -166,7 +168,7 @@ const MortgageRate = ({
|
|
|
166
168
|
lastName: z.string({ message: "Last Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
|
|
167
169
|
message: "Last Name is required."
|
|
168
170
|
}).trim().min(1, { message: "Last Name is required." }),
|
|
169
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
171
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
170
172
|
phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, { message: "Phone is required." }).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
171
173
|
const removeDashes = val.replace(/-/gi, "");
|
|
172
174
|
if (removeDashes.length !== 10) {
|
|
@@ -35,6 +35,8 @@ import "react-use";
|
|
|
35
35
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
36
36
|
import "../IconBillboard/IconBillboard.css.js";
|
|
37
37
|
import "../utils/allowedAxosDomains.js";
|
|
38
|
+
import { z } from "zod";
|
|
39
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
38
40
|
import "../Calculators/calculator.css.js";
|
|
39
41
|
import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
|
|
40
42
|
import "../Calculators/ApyCalculator/ApyCalculator.css.js";
|
|
@@ -43,7 +45,6 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
|
|
|
43
45
|
import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
|
|
44
46
|
import "../Input/PercentageInput.js";
|
|
45
47
|
import { useForm, FormProvider } from "react-hook-form";
|
|
46
|
-
import { z } from "zod";
|
|
47
48
|
import "../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
48
49
|
import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
49
50
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
@@ -148,10 +149,11 @@ const MortgageWarehouseLending = ({
|
|
|
148
149
|
onValidate,
|
|
149
150
|
id
|
|
150
151
|
}) => {
|
|
152
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
151
153
|
const schema = z.object({
|
|
152
154
|
first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
|
|
153
155
|
last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
|
|
154
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
156
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
155
157
|
phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
156
158
|
const removeDashes = val.replace(/-/gi, "");
|
|
157
159
|
if (removeDashes.length !== 10) {
|
|
@@ -26,12 +26,13 @@ import '../../assets/icons/FollowIcon/FollowIcon.css';import '../../assets/icons
|
|
|
26
26
|
/* empty css */
|
|
27
27
|
/* empty css */
|
|
28
28
|
import "../../utils/allowedAxosDomains.js";
|
|
29
|
+
import * as z from "zod";
|
|
29
30
|
import { associatedEmail } from "../../utils/EverestValidity.js";
|
|
30
31
|
import { getVariant } from "../../utils/getVariant.js";
|
|
32
|
+
import { useCachedEmailValidator, useCachedNMLSValidator } from "../../utils/useCachedValidators.js";
|
|
31
33
|
import { format } from "@react-input/number-format";
|
|
32
34
|
import clsx from "clsx";
|
|
33
35
|
import { useForm, FormProvider } from "react-hook-form";
|
|
34
|
-
import * as z from "zod";
|
|
35
36
|
import { BrokerConpensation, PrepaymentPenalty, NumberOfUnits, Occupancy, PropertyType, BankruptcySeasoning, BankruptcyType, HousingEventHistory, HousingEventType, MortgageLates24, MortgageLates12, Citizenship, DocType, RepresentativesFico, Purposes } from "../FormEnums.js";
|
|
36
37
|
import { iconForm, headerContainer, headerForm, form, descriptionField, one_row, section_title, checkbox_group, formWrapper, disclosureForm, actions, formContainer } from "../Forms.css.js";
|
|
37
38
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "../HoneyPot/index.js";
|
|
@@ -60,6 +61,8 @@ const QuickPricer = ({
|
|
|
60
61
|
const [bankruptcySeasoning, setBankruptcySeasoning] = useState(false);
|
|
61
62
|
const [numberOfUnits, setNumberOfUnits] = useState(false);
|
|
62
63
|
const [prepaymentPenalty, setPrepaymentPenalty] = useState(false);
|
|
64
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
65
|
+
const cachedNMLSValidator = useCachedNMLSValidator(validateNMLS);
|
|
63
66
|
const schema = z.object({
|
|
64
67
|
Base_Loan_Amount__c: z.string({
|
|
65
68
|
message: "Please provide a valid base loan amount"
|
|
@@ -169,11 +172,8 @@ const QuickPricer = ({
|
|
|
169
172
|
message: "Broker compensation is required"
|
|
170
173
|
}
|
|
171
174
|
),
|
|
172
|
-
NMLS__c: z.string().min(4, "Valid NMLS should have at least 4 characters").max(15, "Valid NMLS should have at most 15 characters").refine(
|
|
173
|
-
|
|
174
|
-
return res?.body?.data?.records?.length > 0;
|
|
175
|
-
}, "NMLS ID is not valid"),
|
|
176
|
-
Email_Address__c: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
|
|
175
|
+
NMLS__c: z.string().min(4, "Valid NMLS should have at least 4 characters").max(15, "Valid NMLS should have at most 15 characters").refine(cachedNMLSValidator, "NMLS ID is not valid"),
|
|
176
|
+
Email_Address__c: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
177
177
|
Cell_Phone__c: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
178
178
|
const removeDashes = val.replace(/-/gi, "");
|
|
179
179
|
if (removeDashes.length !== 10) {
|
|
@@ -216,10 +216,14 @@ const QuickPricer = ({
|
|
|
216
216
|
}
|
|
217
217
|
});
|
|
218
218
|
const methods = useForm({
|
|
219
|
-
resolver: zodResolver(
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
219
|
+
resolver: zodResolver(
|
|
220
|
+
gen_schema,
|
|
221
|
+
{
|
|
222
|
+
async: true
|
|
223
|
+
},
|
|
224
|
+
{ mode: "async" }
|
|
225
|
+
),
|
|
226
|
+
mode: "onChange",
|
|
223
227
|
reValidateMode: "onChange",
|
|
224
228
|
defaultValues: {
|
|
225
229
|
Cash_Out_Amount__c: format(0),
|
|
@@ -236,7 +240,7 @@ const QuickPricer = ({
|
|
|
236
240
|
const {
|
|
237
241
|
handleSubmit,
|
|
238
242
|
register,
|
|
239
|
-
formState: { errors, isValid },
|
|
243
|
+
formState: { errors, isValid, isValidating },
|
|
240
244
|
setValue
|
|
241
245
|
} = methods;
|
|
242
246
|
const submitForm = async (data) => {
|
|
@@ -875,7 +879,7 @@ const QuickPricer = ({
|
|
|
875
879
|
color: getVariant(callToAction?.variant),
|
|
876
880
|
as: "button",
|
|
877
881
|
type: "submit",
|
|
878
|
-
disabled: !isValid,
|
|
882
|
+
disabled: !isValid || isValidating,
|
|
879
883
|
children: callToAction?.displayText
|
|
880
884
|
}
|
|
881
885
|
) })
|
|
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
|
|
|
26
26
|
/* empty css */
|
|
27
27
|
/* empty css */
|
|
28
28
|
import "../utils/allowedAxosDomains.js";
|
|
29
|
+
import * as z from "zod";
|
|
29
30
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
30
31
|
import { getVariant } from "../utils/getVariant.js";
|
|
32
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
31
33
|
import clsx from "clsx";
|
|
32
34
|
import { useForm, FormProvider } from "react-hook-form";
|
|
33
|
-
import * as z from "zod";
|
|
34
35
|
import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
35
36
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
36
37
|
import { SalesforceSchema } from "./SalesforceFieldsForm.js";
|
|
@@ -49,10 +50,11 @@ const ScheduleCall = ({
|
|
|
49
50
|
id,
|
|
50
51
|
description
|
|
51
52
|
}) => {
|
|
53
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
52
54
|
const schema = z.object({
|
|
53
55
|
first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
|
|
54
56
|
last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
|
|
55
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
57
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
56
58
|
phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
57
59
|
const removeDashes = val.replace(/-/gi, "");
|
|
58
60
|
if (removeDashes.length !== 10) {
|
|
@@ -27,11 +27,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
|
|
|
27
27
|
/* empty css */
|
|
28
28
|
/* empty css */
|
|
29
29
|
import "../utils/allowedAxosDomains.js";
|
|
30
|
+
import * as z from "zod";
|
|
30
31
|
import { associatedEmail } from "../utils/EverestValidity.js";
|
|
31
32
|
import { getVariant } from "../utils/getVariant.js";
|
|
33
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
32
34
|
import clsx from "clsx";
|
|
33
35
|
import { useForm, FormProvider } from "react-hook-form";
|
|
34
|
-
import * as z from "zod";
|
|
35
36
|
import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
|
|
36
37
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
37
38
|
import { SalesforceSchema } from "./SalesforceFieldsForm.js";
|
|
@@ -50,10 +51,11 @@ const ScheduleCallPremier = ({
|
|
|
50
51
|
onValidate,
|
|
51
52
|
id
|
|
52
53
|
}) => {
|
|
54
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
53
55
|
const schema = z.object({
|
|
54
56
|
first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
|
|
55
57
|
last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
|
|
56
|
-
email: z.string().email({ message: "Email is required." }).refine(
|
|
58
|
+
email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
|
|
57
59
|
phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
|
|
58
60
|
const removeDashes = val.replace(/-/gi, "");
|
|
59
61
|
if (removeDashes.length !== 10) {
|
package/dist/Forms/SuccesForm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import "../utils/allowedAxosDomains.js";
|
|
3
3
|
import { getVariant } from "../utils/getVariant.js";
|
|
4
|
+
import "react";
|
|
4
5
|
import clsx from "clsx";
|
|
5
6
|
import "@hookform/resolvers/zod";
|
|
6
7
|
import "../IconBillboard/IconBillboard.css.js";
|
|
@@ -16,7 +17,6 @@ import '../assets/Forms/QuickPricer/UserInformation.css';import '../assets/Forms
|
|
|
16
17
|
import "../Accordion/Accordion.js";
|
|
17
18
|
import "../Accordion/Accordion.css.js";
|
|
18
19
|
import "../AlertBanner/AlertBanner.css.js";
|
|
19
|
-
import "react";
|
|
20
20
|
import "../Article/Article.css.js";
|
|
21
21
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
22
22
|
import "../Calculators/calculator.css.js";
|
|
@@ -61,8 +61,8 @@ import "../Carousel/index.js";
|
|
|
61
61
|
/* empty css */
|
|
62
62
|
import "../Chatbot/store/chat.js";
|
|
63
63
|
import "../Chatbot/authenticate.js";
|
|
64
|
-
import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
|
|
65
64
|
import "react-use";
|
|
65
|
+
import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
|
|
66
66
|
/* empty css */
|
|
67
67
|
import "../Chatbot/store/messages.js";
|
|
68
68
|
/* empty css */
|
|
@@ -17,10 +17,11 @@ import { InputTextArea } from "../Input/InputTextArea.js";
|
|
|
17
17
|
import "../Input/DownPaymentInput.js";
|
|
18
18
|
import "../Input/RadioButton.js";
|
|
19
19
|
import "../utils/allowedAxosDomains.js";
|
|
20
|
+
import { z } from "zod";
|
|
20
21
|
import { getVariant } from "../utils/getVariant.js";
|
|
22
|
+
import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
|
|
21
23
|
import clsx from "clsx";
|
|
22
24
|
import { useForm, FormProvider } from "react-hook-form";
|
|
23
|
-
import { z } from "zod";
|
|
24
25
|
import { form, form_row, descriptionField, formWrapper, actions, formContainer } from "./Forms.css.js";
|
|
25
26
|
import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
|
|
26
27
|
const VendorQuestionnaire = ({
|
|
@@ -34,6 +35,7 @@ const VendorQuestionnaire = ({
|
|
|
34
35
|
callToAction,
|
|
35
36
|
id
|
|
36
37
|
}) => {
|
|
38
|
+
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
37
39
|
const schema = z.object({
|
|
38
40
|
"name/0-2": z.string().min(1, { message: "Please complete this required field." }),
|
|
39
41
|
"dba/0-2": z.string(),
|
|
@@ -87,7 +89,9 @@ const VendorQuestionnaire = ({
|
|
|
87
89
|
"firstname/0-1": z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).min(1, { message: "Please complete this required field." }),
|
|
88
90
|
"lastname/0-1": z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).min(1, { message: "Please complete this required field." }),
|
|
89
91
|
"jobtitle/0-1": z.string().min(1, { message: "Please complete this required field." }),
|
|
90
|
-
"email/0-1": z.string().email({ message: "Please complete this required field." }).refine(
|
|
92
|
+
"email/0-1": z.string().email({ message: "Please complete this required field." }).refine(cachedEmailValidator, {
|
|
93
|
+
message: "Invalid email address."
|
|
94
|
+
})
|
|
91
95
|
});
|
|
92
96
|
const gen_schema = schema.merge(honeyPotSchema).superRefine((data, ctx) => {
|
|
93
97
|
if (!isValidHoneyPot(data)) {
|
package/dist/Forms/index.js
CHANGED
|
@@ -26,6 +26,7 @@ import { MortgageRate } from "./MortgageRate/MortgageRateForm.js";
|
|
|
26
26
|
import "react/jsx-runtime";
|
|
27
27
|
import { RateWatchForm } from "./MortgageRate/MortgageRateWatch.js";
|
|
28
28
|
import "../utils/allowedAxosDomains.js";
|
|
29
|
+
import "react";
|
|
29
30
|
import "../LoadingIndicator/LoadingIndicator.css.js";
|
|
30
31
|
import "../Interstitial/Interstitial-variants.css.js";
|
|
31
32
|
import { MortgageRateFilters } from "./MortgageRate/MortgageRateQuoteFilters.js";
|
|
@@ -9,13 +9,13 @@ import '../assets/VideoWrapper/VideoWrapper.css';import '../assets/TopicalNavSet
|
|
|
9
9
|
/* empty css */
|
|
10
10
|
/* empty css */
|
|
11
11
|
import "../utils/allowedAxosDomains.js";
|
|
12
|
+
import { isValidElement } from "react";
|
|
12
13
|
import "clsx";
|
|
13
14
|
/* empty css */
|
|
14
15
|
/* empty css */
|
|
15
16
|
import "../Accordion/Accordion.js";
|
|
16
17
|
import "../Accordion/Accordion.css.js";
|
|
17
18
|
import "../AlertBanner/AlertBanner.css.js";
|
|
18
|
-
import { isValidElement } from "react";
|
|
19
19
|
import "../Article/Article.css.js";
|
|
20
20
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
21
21
|
import "../Calculators/calculator.css.js";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Modal } from "../Modal.js";
|
|
4
4
|
import "../../utils/allowedAxosDomains.js";
|
|
5
|
-
import { shortUrl } from "../../utils/validateExternalLinks.js";
|
|
6
5
|
import { createContext, useContext, useState } from "react";
|
|
6
|
+
import { shortUrl } from "../../utils/validateExternalLinks.js";
|
|
7
7
|
const GlobalContext = createContext({
|
|
8
8
|
targetLinkUrl: "",
|
|
9
9
|
setTargetLinkUrl: () => "",
|
|
@@ -11,6 +11,7 @@ import '../assets/VideoWrapper/VideoWrapper.css';import '../assets/TopicalNavSet
|
|
|
11
11
|
/* empty css */
|
|
12
12
|
import "../utils/allowedAxosDomains.js";
|
|
13
13
|
import { getVariant } from "../utils/getVariant.js";
|
|
14
|
+
import "react";
|
|
14
15
|
import { columnValues } from "../utils/variant.types.js";
|
|
15
16
|
import clsx from "clsx";
|
|
16
17
|
/* empty css */
|
|
@@ -18,7 +19,6 @@ import clsx from "clsx";
|
|
|
18
19
|
import "../Accordion/Accordion.js";
|
|
19
20
|
import "../Accordion/Accordion.css.js";
|
|
20
21
|
import "../AlertBanner/AlertBanner.css.js";
|
|
21
|
-
import "react";
|
|
22
22
|
import "../Article/Article.css.js";
|
|
23
23
|
import "../ArticlesSet/ArticlesSet.css.js";
|
|
24
24
|
import "../Calculators/calculator.css.js";
|
package/dist/Tab/Tab.js
CHANGED
package/dist/Table/Table.d.ts
CHANGED
|
@@ -61,7 +61,7 @@ export declare const TableCell: ({ children, as, variant, highlighted, colSpan,
|
|
|
61
61
|
is?: string | undefined;
|
|
62
62
|
exportparts?: string | undefined;
|
|
63
63
|
part?: string | undefined;
|
|
64
|
-
popover?: "" | "auto" | "manual" |
|
|
64
|
+
popover?: "" | "auto" | "manual" | undefined;
|
|
65
65
|
popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
|
|
66
66
|
popoverTarget?: string | undefined;
|
|
67
67
|
onToggle?: import('react').ToggleEventHandler<HTMLTableCellElement> | undefined;
|
package/dist/main.js
CHANGED
|
@@ -205,11 +205,14 @@ import { VideoWrapper } from "./VideoWrapper/index.js";
|
|
|
205
205
|
import { Tab } from "./Tab/Tab.js";
|
|
206
206
|
import { TabContainer } from "./Tab/TabContainer.js";
|
|
207
207
|
import { findMoreAxosDomains, isAllowedUrl } from "./utils/allowedAxosDomains.js";
|
|
208
|
+
import { appendQueryParams } from "./utils/appendQueryParams.js";
|
|
209
|
+
import { createCachedEmailValidator } from "./utils/emailValidation.js";
|
|
208
210
|
import { associatedEmail } from "./utils/EverestValidity.js";
|
|
209
211
|
import { getVariant, getVariantWithRegex } from "./utils/getVariant.js";
|
|
212
|
+
import { createCachedNMLSValidator } from "./utils/nmlsValidation.js";
|
|
213
|
+
import { useCachedEmailValidator, useCachedNMLSValidator } from "./utils/useCachedValidators.js";
|
|
210
214
|
import { isAbsoluteUrl, isEmailLink, isPhoneLink, shortUrl, validateLink } from "./utils/validateExternalLinks.js";
|
|
211
215
|
import { columnValues } from "./utils/variant.types.js";
|
|
212
|
-
import { appendQueryParams } from "./utils/appendQueryParams.js";
|
|
213
216
|
import { padding_in_footer, smb_section, smb_wrapper } from "./SocialMediaBar/SocialMediaBar.css.js";
|
|
214
217
|
export {
|
|
215
218
|
default20 as AASLogo,
|
|
@@ -501,6 +504,8 @@ export {
|
|
|
501
504
|
containerIconBillboard,
|
|
502
505
|
content,
|
|
503
506
|
copy,
|
|
507
|
+
createCachedEmailValidator,
|
|
508
|
+
createCachedNMLSValidator,
|
|
504
509
|
description,
|
|
505
510
|
descriptionField,
|
|
506
511
|
details,
|
|
@@ -778,6 +783,8 @@ export {
|
|
|
778
783
|
two_inline,
|
|
779
784
|
up_to,
|
|
780
785
|
url_row,
|
|
786
|
+
useCachedEmailValidator,
|
|
787
|
+
useCachedNMLSValidator,
|
|
781
788
|
useGlobalContext,
|
|
782
789
|
useMessages,
|
|
783
790
|
useOpenChat,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function createCachedEmailValidator(validateEmail: (email: string) => Promise<boolean>): (val: string) => Promise<boolean>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
function createCachedEmailValidator(validateEmail) {
|
|
3
|
+
const emailValidationCache = /* @__PURE__ */ new Map();
|
|
4
|
+
const validatingEmails = /* @__PURE__ */ new Set();
|
|
5
|
+
return async (val) => {
|
|
6
|
+
if (!val || !z.string().email().safeParse(val).success) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
if (emailValidationCache.has(val)) {
|
|
10
|
+
return emailValidationCache.get(val) ?? false;
|
|
11
|
+
}
|
|
12
|
+
if (validatingEmails.has(val)) {
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
14
|
+
if (emailValidationCache.has(val)) {
|
|
15
|
+
return emailValidationCache.get(val) ?? false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
validatingEmails.add(val);
|
|
20
|
+
try {
|
|
21
|
+
const isValid = await validateEmail(val);
|
|
22
|
+
emailValidationCache.set(val, isValid);
|
|
23
|
+
return isValid;
|
|
24
|
+
} finally {
|
|
25
|
+
validatingEmails.delete(val);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
createCachedEmailValidator
|
|
31
|
+
};
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './allowedAxosDomains';
|
|
2
|
+
export * from './appendQueryParams';
|
|
3
|
+
export * from './emailValidation';
|
|
2
4
|
export * from './EverestValidity';
|
|
3
5
|
export * from './getVariant';
|
|
6
|
+
export * from './nmlsValidation';
|
|
7
|
+
export * from './useCachedValidators';
|
|
4
8
|
export * from './validateExternalLinks';
|
|
5
9
|
export * from './variant.types';
|
|
6
|
-
export * from './appendQueryParams';
|
package/dist/utils/index.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { findMoreAxosDomains, isAllowedUrl } from "./allowedAxosDomains.js";
|
|
3
|
+
import { appendQueryParams } from "./appendQueryParams.js";
|
|
4
|
+
import { createCachedEmailValidator } from "./emailValidation.js";
|
|
2
5
|
import { associatedEmail } from "./EverestValidity.js";
|
|
3
6
|
import { getVariant, getVariantWithRegex } from "./getVariant.js";
|
|
7
|
+
import { createCachedNMLSValidator } from "./nmlsValidation.js";
|
|
8
|
+
import { useCachedEmailValidator, useCachedNMLSValidator } from "./useCachedValidators.js";
|
|
4
9
|
import { isAbsoluteUrl, isEmailLink, isPhoneLink, shortUrl, validateLink } from "./validateExternalLinks.js";
|
|
5
10
|
import { columnValues } from "./variant.types.js";
|
|
6
|
-
import { appendQueryParams } from "./appendQueryParams.js";
|
|
7
11
|
export {
|
|
8
12
|
appendQueryParams,
|
|
9
13
|
associatedEmail,
|
|
10
14
|
columnValues,
|
|
15
|
+
createCachedEmailValidator,
|
|
16
|
+
createCachedNMLSValidator,
|
|
11
17
|
findMoreAxosDomains,
|
|
12
18
|
getVariant,
|
|
13
19
|
getVariantWithRegex,
|
|
@@ -16,5 +22,7 @@ export {
|
|
|
16
22
|
isEmailLink,
|
|
17
23
|
isPhoneLink,
|
|
18
24
|
shortUrl,
|
|
25
|
+
useCachedEmailValidator,
|
|
26
|
+
useCachedNMLSValidator,
|
|
19
27
|
validateLink
|
|
20
28
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function createCachedNMLSValidator(validateNMLS: (nmls_id: string) => Promise<any>): (val: string) => Promise<boolean>;
|