@axos-web-dev/shared-components 2.0.0-dev.34 → 2.0.0-dev.37
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 +21 -89
- package/dist/Auth/ErrorAlert.js +6 -93
- package/dist/Button/Button.js +6 -126
- package/dist/Calculators/ApyCalculator/index.js +13 -3
- package/dist/Calculators/Calculator.d.ts +1 -1
- package/dist/Calculators/Calculator.js +19 -94
- package/dist/Calculators/MarginTradingCalculator/index.js +2 -118
- package/dist/Calculators/SummitApyCalculator/index.js +11 -5
- package/dist/Carousel/index.js +4 -115
- package/dist/Chatbot/Bubble.css.js +0 -1
- package/dist/Chatbot/ChatWindow.css.js +1 -0
- package/dist/Chevron/index.js +5 -121
- package/dist/Comparison/Comparison.js +5 -127
- package/dist/ExecutiveBio/ExecutiveBio.interface.d.ts +3 -2
- package/dist/ExecutiveBio/ExecutiveBio.js +4 -132
- package/dist/FaqAccordion/index.js +5 -113
- package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +4 -115
- package/dist/FooterSiteMap/AxosBank/ServerFooterSiteMap.d.ts +10 -0
- package/dist/FooterSiteMap/AxosBank/ServerFooterSiteMap.js +151 -0
- package/dist/FooterSiteMap/AxosBank/index.d.ts +1 -0
- package/dist/FooterSiteMap/AxosBank/index.js +2 -0
- package/dist/FooterSiteMap/index.js +2 -0
- package/dist/Forms/ApplyNow.js +3 -114
- package/dist/Forms/ContactCompany.d.ts +1 -1
- package/dist/Forms/ContactCompanyTitle.d.ts +1 -1
- package/dist/Forms/ContactUsBusiness.js +5 -107
- package/dist/Forms/ContactUsBusinessNameEmail.js +6 -107
- package/dist/Forms/ContactUsNMLSId.js +5 -107
- package/dist/Forms/CpraRequest.js +2 -101
- package/dist/Forms/CraPublicFile.js +5 -107
- package/dist/Forms/DealerServices.d.ts +1 -1
- package/dist/Forms/EmailOnly.js +6 -118
- package/dist/Forms/FormEnums.d.ts +16 -0
- package/dist/Forms/FormEnums.js +27 -0
- package/dist/Forms/MortgageRate/MortgageRateForm.js +33 -108
- package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +34 -13
- package/dist/Forms/MortgageRate/MortgageRateWatch.js +4 -98
- package/dist/Forms/MortgageWarehouseLending.js +5 -107
- package/dist/Forms/NameAndEmail.d.ts +8 -0
- package/dist/Forms/NameAndEmail.js +165 -0
- package/dist/Forms/NonQMLoans.d.ts +16 -0
- package/dist/Forms/NonQMLoans.js +369 -0
- package/dist/Forms/SuccesForm.js +7 -95
- package/dist/Forms/index.d.ts +2 -0
- package/dist/Forms/index.js +4 -0
- package/dist/Hyperlink/index.js +4 -115
- package/dist/ImageLink/ImageLink.js +8 -113
- package/dist/ImageLink/ImageLinkSet.js +6 -120
- package/dist/ImageLink/index.js +5 -109
- package/dist/ImageToast/index.js +2 -113
- package/dist/Insight/Featured/CategorySelector.css.d.ts +5 -3
- package/dist/Insight/Featured/CategorySelector.css.js +12 -8
- package/dist/Insight/Featured/CategorySelector.d.ts +2 -1
- package/dist/Insight/Featured/CategorySelector.js +76 -145
- package/dist/Insight/Featured/Featured.css.d.ts +13 -4
- package/dist/Insight/Featured/Featured.css.js +37 -18
- package/dist/Insight/Featured/Featured.d.ts +1 -0
- package/dist/Insight/Featured/Featured.js +131 -205
- package/dist/Insight/Featured/Header.css.d.ts +1 -0
- package/dist/Insight/Featured/Header.css.js +9 -6
- package/dist/Insight/Featured/Header.js +14 -132
- package/dist/Insight/Featured/index.js +13 -4
- package/dist/Insight/index.js +13 -4
- package/dist/LandingPageHeader/LandingPageHeader.d.ts +1 -1
- package/dist/LandingPageHeader/WithLogin.js +7 -124
- package/dist/Modal/Modal.js +2 -128
- package/dist/NavigationMenu/AxosALTS/index.js +6 -117
- package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +4 -114
- package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +1 -1
- package/dist/NavigationMenu/AxosBank/SubNavBar.js +6 -114
- package/dist/NavigationMenu/AxosBank/index.js +6 -124
- package/dist/NavigationMenu/LaVictoire/index.js +4 -123
- package/dist/NavigationMenu/NavItem/index.js +4 -116
- package/dist/NavigationMenu/ServerNavigation/DropwdownButton.js +4 -123
- package/dist/NavigationMenu/ServerNavigation/Menu.js +4 -121
- package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.js +17 -125
- package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.module.js +27 -27
- package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.d.ts +1 -1
- package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.js +3 -3
- package/dist/NavigationMenu/ServerNavigation/NavBar.module.js +40 -40
- package/dist/NavigationMenu/ServerNavigation/SubNavBar.js +5 -115
- package/dist/NavigationMenu/ServerNavigation/SubNavItem.js +4 -116
- package/dist/NavigationMenu/ServerNavigation/index.js +15 -116
- package/dist/NavigationMenu/getPathFromNavUrl.d.ts +3 -0
- package/dist/NavigationMenu/getPathFromNavUrl.js +15 -0
- package/dist/NavigationMenu/index.d.ts +3 -2
- package/dist/NavigationMenu/index.js +8 -7
- package/dist/NavigationMenu/utils.d.ts +0 -3
- package/dist/NavigationMenu/utils.js +0 -13
- package/dist/SetContainer/SetContainer.js +9 -115
- package/dist/SocialMediaBar/iconsRepository.js +0 -130
- package/dist/VideoTile/VideoTile.js +2 -112
- package/dist/VideoWrapper/index.js +7 -116
- package/dist/assets/CallToActionBar/CallToActionBar.css +2 -1
- package/dist/assets/Forms/Forms.css +2 -1
- package/dist/assets/ImageBillboard/ImageBillboard.css +1 -1
- package/dist/assets/Input/Input.css +1 -0
- package/dist/assets/Insight/Featured/CategorySelector.css +60 -38
- package/dist/assets/Insight/Featured/Featured.css +126 -65
- package/dist/assets/Insight/Featured/Header.css +22 -13
- package/dist/assets/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.css +353 -353
- package/dist/assets/NavigationMenu/ServerNavigation/NavBar.css +483 -483
- package/dist/assets/SetContainer/SetContainer.css +6 -6
- package/dist/assets/TextBlock/TextBlock.css +0 -1
- package/dist/icons/Clock/index.js +1 -0
- package/dist/main.js +28 -10
- package/dist/utils/allowedAxosDomains.d.ts +1 -1
- package/dist/utils/allowedAxosDomains.js +32 -20
- package/dist/utils/createUrlResolver.d.ts +3 -0
- package/dist/utils/createUrlResolver.js +7 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/insightsData.d.ts +1 -1
- package/dist/utils/insightsData.js +1 -6
- package/package.json +1 -1
- package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css +0 -353
package/dist/Forms/FormEnums.js
CHANGED
|
@@ -50,6 +50,14 @@ const Purposes = [
|
|
|
50
50
|
{ value: "RefiCashout", text: "Refi Cashout" },
|
|
51
51
|
{ value: "RefiRateTermLimitedCO", text: "Refi Rate-Term/Limited C.O." }
|
|
52
52
|
];
|
|
53
|
+
const LoanPurposes = [
|
|
54
|
+
{ value: "Purchase", text: "Purchase" },
|
|
55
|
+
{ value: "Refinance", text: "Refinance" }
|
|
56
|
+
];
|
|
57
|
+
const LoanTypeDetails = [
|
|
58
|
+
{ value: "DSCR", text: "DSCR" },
|
|
59
|
+
{ value: "Bank Statement Loan", text: "Bank Statement Loan" }
|
|
60
|
+
];
|
|
53
61
|
const RepresentativesFico = [
|
|
54
62
|
{ value: "780", text: "780+" },
|
|
55
63
|
{ value: "760", text: "779 - 760" },
|
|
@@ -62,6 +70,16 @@ const RepresentativesFico = [
|
|
|
62
70
|
{ value: "620", text: "639 - 620" },
|
|
63
71
|
{ value: "600", text: "Below 620" }
|
|
64
72
|
];
|
|
73
|
+
const CreditScore = [
|
|
74
|
+
{ value: "740+", text: "740+" },
|
|
75
|
+
{ value: "720", text: "739 - 720" },
|
|
76
|
+
{ value: "700", text: "719 - 700" },
|
|
77
|
+
{ value: "680", text: "699 - 680" },
|
|
78
|
+
{ value: "660", text: "679 - 660" },
|
|
79
|
+
{ value: "640", text: "659 - 640" },
|
|
80
|
+
{ value: "620", text: "639 - 620" },
|
|
81
|
+
{ value: "Below 620 ", text: "Below 620" }
|
|
82
|
+
];
|
|
65
83
|
const DocType = [
|
|
66
84
|
{ value: "FullDoc", text: "Full Doc" },
|
|
67
85
|
// { value: "AssetDepletion", text: "Asset Depletion" },
|
|
@@ -133,6 +151,11 @@ const PropertyType = [
|
|
|
133
151
|
{ value: "Coop", text: "Co-op" },
|
|
134
152
|
{ value: "Condotel", text: "Condotel" }
|
|
135
153
|
];
|
|
154
|
+
const PropertyIntendedUse = [
|
|
155
|
+
{ value: "Primary Residence", text: "Primary Residence" },
|
|
156
|
+
{ value: "Second / Vacation Home", text: "Vacation Home" },
|
|
157
|
+
{ value: "Investment", text: "Investment" }
|
|
158
|
+
];
|
|
136
159
|
const Occupancy = [
|
|
137
160
|
{ value: "PrimaryResidence", text: "Principal Residence" },
|
|
138
161
|
{ value: "SecondHome", text: "Second Home" },
|
|
@@ -456,19 +479,23 @@ export {
|
|
|
456
479
|
BuydownRate,
|
|
457
480
|
BuydownTerm,
|
|
458
481
|
Citizenship,
|
|
482
|
+
CreditScore,
|
|
459
483
|
CurrentAssets,
|
|
460
484
|
DocType,
|
|
461
485
|
Fico,
|
|
462
486
|
HousingEventHistory,
|
|
463
487
|
HousingEventType,
|
|
464
488
|
LeadType,
|
|
489
|
+
LoanPurposes,
|
|
465
490
|
LoanRates,
|
|
491
|
+
LoanTypeDetails,
|
|
466
492
|
MortgageLates12,
|
|
467
493
|
MortgageLates24,
|
|
468
494
|
NumberOfUnits,
|
|
469
495
|
Occupancy,
|
|
470
496
|
PrepaymentPenalty,
|
|
471
497
|
Program,
|
|
498
|
+
PropertyIntendedUse,
|
|
472
499
|
PropertyType,
|
|
473
500
|
PurposeOfLoan,
|
|
474
501
|
Purposes,
|
|
@@ -6,7 +6,7 @@ import SvgArrowIcon from "../../icons/ArrowIcon/index.js";
|
|
|
6
6
|
import SvgAxosX from "../../icons/AxosX/index.js";
|
|
7
7
|
import SvgComponent from "../../icons/AxosX/Blue.js";
|
|
8
8
|
import "../../icons/CheckIcon/CheckIcon.css.js";
|
|
9
|
-
import '../../assets/
|
|
9
|
+
import '../../assets/Modal/Modal.css';import '../../assets/BulletItem/BulletItem.css';import '../../assets/Typography/Typography.css';import '../../assets/icons/FollowIcon/FollowIcon.css';import '../../assets/icons/DownloadIcon/DownloadIcon.css';import '../../assets/themes/victorie.css';import '../../assets/themes/ufb.css';import '../../assets/themes/premier.css';import '../../assets/themes/axos.css';/* empty css */
|
|
10
10
|
/* empty css */
|
|
11
11
|
/* empty css */
|
|
12
12
|
/* empty css */
|
|
@@ -19,27 +19,14 @@ import { useCachedEmailValidator } from "../../utils/useCachedValidators.js";
|
|
|
19
19
|
import clsx from "clsx";
|
|
20
20
|
/* empty css */
|
|
21
21
|
/* empty css */
|
|
22
|
-
import "../../
|
|
23
|
-
|
|
24
|
-
import "../../AlertBanner/AlertBanner.css.js";
|
|
25
|
-
import { useState, useEffect } from "react";
|
|
26
|
-
import "../../Article/Article.css.js";
|
|
27
|
-
import "../../ArticlesSet/ArticlesSet.css.js";
|
|
28
|
-
import "../../Calculators/calculator.css.js";
|
|
29
|
-
import "../../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
|
|
22
|
+
import { chevron_wrapper, chevron } from "../../Chevron/Chevron.css.js";
|
|
23
|
+
/* empty css */
|
|
30
24
|
import "../../Modal/contextApi/store.js";
|
|
31
|
-
import "
|
|
25
|
+
import { useState, useRef, useEffect, useLayoutEffect } from "react";
|
|
26
|
+
import { marketing_tile } from "../../Interstitial/Interstitial-variants.css.js";
|
|
27
|
+
import css from "../../Interstitial/Interstitial.module.js";
|
|
32
28
|
import { button } from "../../Button/Button.css.js";
|
|
33
|
-
import "
|
|
34
|
-
import "../../Calculators/ApyCalculatorUserTest/ApyCalculatorUserTest.css.js";
|
|
35
|
-
import "../../HeroBanner/LargeBanner.css.js";
|
|
36
|
-
import "../../HeroBanner/HeroBanner.css.js";
|
|
37
|
-
import "../../HeroBanner/SelectionBanner.css.js";
|
|
38
|
-
/* empty css */
|
|
39
|
-
import "../../SetContainer/SetContainer.css.js";
|
|
40
|
-
import "../../Table/Table.css.js";
|
|
41
|
-
import "../../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
|
|
42
|
-
import "../../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
|
|
29
|
+
import "react-use";
|
|
43
30
|
import "../../Input/Checkbox.js";
|
|
44
31
|
import "../../Input/CurrencyInput.js";
|
|
45
32
|
import { Dropdown } from "../../Input/Dropdown.js";
|
|
@@ -51,93 +38,14 @@ import { InputPhone } from "../../Input/InputPhone.js";
|
|
|
51
38
|
import "../../Input/InputTextArea.js";
|
|
52
39
|
import { DownPaymentInput } from "../../Input/DownPaymentInput.js";
|
|
53
40
|
import "../../Input/RadioButton.js";
|
|
54
|
-
import "../../
|
|
41
|
+
import { LoadingIndicator } from "../../LoadingIndicator/index.js";
|
|
55
42
|
import { useForm, FormProvider } from "react-hook-form";
|
|
56
|
-
import "../../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
57
43
|
import { iconForm, headerForm, form, descriptionField, headerContainer, fullRowSelect, centerSelect, formWrapper, mt2rem, fullRowForm, disclosureForm, actions, formBtns, na_cursor, formContainer } from "../Forms.css.js";
|
|
58
44
|
import { HoneyPot } from "../HoneyPot/index.js";
|
|
59
45
|
import { SalesforceSchema } from "../SalesforceFieldsForm.js";
|
|
60
|
-
import "../../Input/RadioButton.css.js";
|
|
61
|
-
import "../../Input/Checkbox.css.js";
|
|
62
|
-
import { LoadingIndicator } from "../../LoadingIndicator/index.js";
|
|
63
|
-
import "react-use";
|
|
64
|
-
import { chevron_wrapper, chevron } from "../../Chevron/Chevron.css.js";
|
|
65
|
-
/* empty css */
|
|
66
46
|
import { RateWatchForm } from "./MortgageRateWatch.js";
|
|
67
|
-
import { marketing_tile } from "../../Interstitial/Interstitial-variants.css.js";
|
|
68
|
-
import css from "../../Interstitial/Interstitial.module.js";
|
|
69
|
-
/* empty css */
|
|
70
|
-
import "../../Hyperlink/Hyperlink.css.js";
|
|
71
|
-
/* empty css */
|
|
72
|
-
import "iframe-resizer";
|
|
73
|
-
/* empty css */
|
|
74
|
-
import "../../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
|
|
75
|
-
import "../../Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css.js";
|
|
76
|
-
import "../../Calculators/SummitApyCalculator/BalanceAPYCalculator.css.js";
|
|
77
|
-
/* empty css */
|
|
78
|
-
import "react-dom";
|
|
79
|
-
/* empty css */
|
|
80
|
-
import "../../Auth/SignInPassword.js";
|
|
81
|
-
/* empty css */
|
|
82
|
-
/* empty css */
|
|
83
|
-
/* empty css */
|
|
84
|
-
/* empty css */
|
|
85
|
-
import "../../Carousel/index.js";
|
|
86
|
-
/* empty css */
|
|
87
|
-
import "../../Chatbot/Chatbot.css.ts.vanilla.css.js";
|
|
88
|
-
/* empty css */
|
|
89
|
-
import "../../Chatbot/store/chat.js";
|
|
90
|
-
import "../../Chatbot/Chatbot.js";
|
|
91
|
-
/* empty css */
|
|
92
|
-
import "../../Chatbot/store/messages.js";
|
|
93
|
-
/* empty css */
|
|
94
|
-
import "../../Comparison/Comparison.css.js";
|
|
95
|
-
import "../../Tab/Tab.css.js";
|
|
96
|
-
import "../../icons/Star/Star.css.js";
|
|
97
|
-
import "../../ContentBanner/ContentBanner.css.js";
|
|
98
|
-
/* empty css */
|
|
99
|
-
import "../../ExecutiveBio/ExecutiveBio.css.js";
|
|
100
|
-
import "../../FaqAccordion/index.js";
|
|
101
|
-
import "../../FooterDisclosure/FooterDisclosure.css.js";
|
|
102
|
-
/* empty css */
|
|
103
|
-
/* empty css */
|
|
104
|
-
/* empty css */
|
|
105
|
-
import "../../ImageBillboard/ImageBillboard.css.js";
|
|
106
|
-
import "next/script.js";
|
|
107
|
-
/* empty css */
|
|
108
|
-
/* empty css */
|
|
109
|
-
/* empty css */
|
|
110
|
-
/* empty css */
|
|
111
|
-
/* empty css */
|
|
112
|
-
import "../../LandingPageHeader/LandingPageHeader.css.js";
|
|
113
|
-
import "next/link.js";
|
|
114
|
-
/* empty css */
|
|
115
|
-
/* empty css */
|
|
116
|
-
import "next/navigation.js";
|
|
117
|
-
/* empty css */
|
|
118
|
-
/* empty css */
|
|
119
|
-
/* empty css */
|
|
120
|
-
/* empty css */
|
|
121
|
-
import "../../NavigationMenu/ServerNavigation/Menu.js";
|
|
122
|
-
import "../../NavigationMenu/ServerNavigation/SubNavbar.css.js";
|
|
123
|
-
/* empty css */
|
|
124
|
-
/* empty css */
|
|
125
|
-
/* empty css */
|
|
126
|
-
/* empty css */
|
|
127
|
-
import "../../PageNavItem/PageNavItem.css.js";
|
|
128
|
-
import "react-slick";
|
|
129
|
-
/* empty css */
|
|
130
|
-
/* empty css */
|
|
131
|
-
/* empty css */
|
|
132
|
-
/* empty css */
|
|
133
|
-
import "../../StepItem/StepItem.css.js";
|
|
134
|
-
import "../../StepItemSet/StepItemSet.css.js";
|
|
135
|
-
/* empty css */
|
|
136
|
-
/* empty css */
|
|
137
|
-
/* empty css */
|
|
138
|
-
/* empty css */
|
|
139
|
-
/* empty css */
|
|
140
47
|
import { honeyPotSchema, isValidHoneyPot } from "../HoneyPot/honeyPotValidation.js";
|
|
48
|
+
const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
141
49
|
const MortgageRate = ({
|
|
142
50
|
icon = false,
|
|
143
51
|
children,
|
|
@@ -163,6 +71,8 @@ const MortgageRate = ({
|
|
|
163
71
|
const [_downPayment, setDownPayment] = useState(0);
|
|
164
72
|
const [isTypingDownPayment, setIsTypingDownPayment] = useState(false);
|
|
165
73
|
const [salesPriceVal, setSalesPriceVal] = useState(0);
|
|
74
|
+
const containerRef = useRef(null);
|
|
75
|
+
const restoreScrollOnNextRender = useRef(false);
|
|
166
76
|
const cachedEmailValidator = useCachedEmailValidator(validateEmail);
|
|
167
77
|
const schema = z.object({
|
|
168
78
|
firstName: z.string({ message: "First Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
|
|
@@ -299,6 +209,17 @@ const MortgageRate = ({
|
|
|
299
209
|
methods.setValue("downPayment", calculatedDownPayment);
|
|
300
210
|
}
|
|
301
211
|
}, [salesPrice, downPaymentPercentage]);
|
|
212
|
+
useIsomorphicLayoutEffect(() => {
|
|
213
|
+
if (!restoreScrollOnNextRender.current) return;
|
|
214
|
+
restoreScrollOnNextRender.current = false;
|
|
215
|
+
const anchorViewport = () => {
|
|
216
|
+
const target = showingTables && containerRef.current?.nextElementSibling || containerRef.current;
|
|
217
|
+
target?.scrollIntoView({ block: "start" });
|
|
218
|
+
};
|
|
219
|
+
anchorViewport();
|
|
220
|
+
const raf = requestAnimationFrame(anchorViewport);
|
|
221
|
+
return () => cancelAnimationFrame(raf);
|
|
222
|
+
}, [hideModal, showingTables]);
|
|
302
223
|
const submitForm = async (data) => {
|
|
303
224
|
const processData = {
|
|
304
225
|
...data
|
|
@@ -307,6 +228,7 @@ const MortgageRate = ({
|
|
|
307
228
|
if (setRateWatchSubmitted) {
|
|
308
229
|
setRateWatchSubmitted(false);
|
|
309
230
|
}
|
|
231
|
+
restoreScrollOnNextRender.current = true;
|
|
310
232
|
setHideModal(true);
|
|
311
233
|
};
|
|
312
234
|
const variant = getVariant(fullVariant);
|
|
@@ -370,7 +292,7 @@ const MortgageRate = ({
|
|
|
370
292
|
}
|
|
371
293
|
return value;
|
|
372
294
|
};
|
|
373
|
-
return /* @__PURE__ */ jsxs(
|
|
295
|
+
return /* @__PURE__ */ jsxs("div", { ref: containerRef, children: [
|
|
374
296
|
hideModal && !showingTables && /* @__PURE__ */ jsx(
|
|
375
297
|
"section",
|
|
376
298
|
{
|
|
@@ -446,9 +368,9 @@ const MortgageRate = ({
|
|
|
446
368
|
{
|
|
447
369
|
className: form,
|
|
448
370
|
onSubmit: async (e) => {
|
|
371
|
+
e.preventDefault();
|
|
449
372
|
onValidate && onValidate(e);
|
|
450
373
|
await handleSubmit(submitForm)(e);
|
|
451
|
-
e.preventDefault();
|
|
452
374
|
},
|
|
453
375
|
children: [
|
|
454
376
|
/* @__PURE__ */ jsxs("div", { className: clsx(formWrapper({ variant })), children: [
|
|
@@ -798,12 +720,15 @@ const MortgageRate = ({
|
|
|
798
720
|
{
|
|
799
721
|
id,
|
|
800
722
|
className: `${chevron({ variant })} ${!isValid ? na_cursor : ""}`,
|
|
801
|
-
onClick:
|
|
802
|
-
await onSubmit(data);
|
|
803
|
-
toggleModal();
|
|
804
|
-
setHideModal(false);
|
|
805
|
-
}) : (e) => {
|
|
723
|
+
onClick: (e) => {
|
|
806
724
|
e.preventDefault();
|
|
725
|
+
if (!isValid) return;
|
|
726
|
+
handleSubmit(async (data) => {
|
|
727
|
+
await onSubmit(data);
|
|
728
|
+
restoreScrollOnNextRender.current = true;
|
|
729
|
+
toggleModal();
|
|
730
|
+
setHideModal(false);
|
|
731
|
+
})(e);
|
|
807
732
|
},
|
|
808
733
|
children: "Sign Up For Ratewatch"
|
|
809
734
|
}
|
|
@@ -36,7 +36,7 @@ const MortgageRateFilters = ({
|
|
|
36
36
|
loanPurpose: z.number({ message: "Loan Purpose is required." }),
|
|
37
37
|
propertyType: z.number({ message: "Property Type is required." }).positive({ message: "Property Type is required." }),
|
|
38
38
|
occupancy: z.number({ message: "Property Usage is required." }).positive({ message: "Property Usage is required." }),
|
|
39
|
-
salesPrice: z.number({ message: "Purchase Price is required." }).refine((val) => loanPurpose === 1 ? val != null : true, {
|
|
39
|
+
salesPrice: z.number({ message: "Purchase Price is required." }).optional().refine((val) => loanPurpose === 1 ? val != null : true, {
|
|
40
40
|
message: "Sales Price is required."
|
|
41
41
|
}).refine(
|
|
42
42
|
(val) => {
|
|
@@ -47,7 +47,7 @@ const MortgageRateFilters = ({
|
|
|
47
47
|
},
|
|
48
48
|
{ message: "Value must be between $50,000 and $25,000,000." }
|
|
49
49
|
),
|
|
50
|
-
downPayment: z.number({ message: "Down Payment is required." }).refine((val) => loanPurpose === 1 ? val != null : true, {
|
|
50
|
+
downPayment: z.number({ message: "Down Payment is required." }).optional().refine((val) => loanPurpose === 1 ? val != null : true, {
|
|
51
51
|
message: "Down Payment is required."
|
|
52
52
|
}).refine(
|
|
53
53
|
(val) => {
|
|
@@ -61,8 +61,8 @@ const MortgageRateFilters = ({
|
|
|
61
61
|
}
|
|
62
62
|
),
|
|
63
63
|
creditScore: z.number({ message: "Credit Score is required." }).positive({ message: "Credit Score is required." }),
|
|
64
|
-
zipCode: z.number({ message: "Zip Code is required." }),
|
|
65
|
-
appraisedValue: z.number({ message: "Home Price is required." }).refine(
|
|
64
|
+
zipCode: z.number({ message: "Zip Code is required." }).int({ message: "Zip Code must be a valid 5-digit zip code." }).gte(1e4, { message: "Zip Code must be a valid 5-digit zip code." }).lte(99999, { message: "Zip Code must be a valid 5-digit zip code." }),
|
|
65
|
+
appraisedValue: z.number({ message: "Home Price is required." }).optional().refine(
|
|
66
66
|
(val) => {
|
|
67
67
|
if (loanPurpose === 2) {
|
|
68
68
|
return val != null && val >= 5e4 && val <= 25e6;
|
|
@@ -71,7 +71,7 @@ const MortgageRateFilters = ({
|
|
|
71
71
|
},
|
|
72
72
|
{ message: "Value must be between $50,000 and $25,000,000." }
|
|
73
73
|
),
|
|
74
|
-
mortgageBalance: z.number({ message: "Mortgage Balance is required." }).refine(
|
|
74
|
+
mortgageBalance: z.number({ message: "Mortgage Balance is required." }).optional().refine(
|
|
75
75
|
(val) => {
|
|
76
76
|
if (loanPurpose === 2) {
|
|
77
77
|
return val != null && val >= 5e4 && val <= 25e6;
|
|
@@ -80,7 +80,7 @@ const MortgageRateFilters = ({
|
|
|
80
80
|
},
|
|
81
81
|
{ message: "Value must be between $50,000 and $25,000,000." }
|
|
82
82
|
),
|
|
83
|
-
cashOut: z.number({ message: "Cash Out is required." }).refine(
|
|
83
|
+
cashOut: z.number({ message: "Cash Out is required." }).optional().refine(
|
|
84
84
|
(val) => {
|
|
85
85
|
if (loanPurpose === 2 && val == null) {
|
|
86
86
|
return false;
|
|
@@ -92,7 +92,19 @@ const MortgageRateFilters = ({
|
|
|
92
92
|
});
|
|
93
93
|
const methods = useForm({
|
|
94
94
|
resolver: zodResolver(schema),
|
|
95
|
-
mode: "all"
|
|
95
|
+
mode: "all",
|
|
96
|
+
defaultValues: {
|
|
97
|
+
loanPurpose: formData.loanPurpose,
|
|
98
|
+
propertyType: formData.propertyType,
|
|
99
|
+
occupancy: formData.occupancy,
|
|
100
|
+
salesPrice: formData.salesPrice,
|
|
101
|
+
downPayment: formData.downPayment,
|
|
102
|
+
creditScore: formData.creditScore,
|
|
103
|
+
zipCode: formData.zipCode,
|
|
104
|
+
appraisedValue: formData.appraisedValue,
|
|
105
|
+
mortgageBalance: formData.mortgageBalance,
|
|
106
|
+
cashOut: formData.cashOut
|
|
107
|
+
}
|
|
96
108
|
});
|
|
97
109
|
const {
|
|
98
110
|
handleSubmit,
|
|
@@ -102,10 +114,10 @@ const MortgageRateFilters = ({
|
|
|
102
114
|
} = methods;
|
|
103
115
|
const salesPrice = watch("salesPrice");
|
|
104
116
|
useEffect(() => {
|
|
105
|
-
setSalesPriceVal(salesPrice);
|
|
117
|
+
setSalesPriceVal(salesPrice ?? 0);
|
|
106
118
|
});
|
|
107
119
|
useEffect(() => {
|
|
108
|
-
if (salesPrice > 0 && !isTypingDownPayment) {
|
|
120
|
+
if (salesPrice != null && salesPrice > 0 && !isTypingDownPayment) {
|
|
109
121
|
const calculatedDownPayment = Math.round(
|
|
110
122
|
salesPrice * downPaymentPercentage / 100
|
|
111
123
|
);
|
|
@@ -115,7 +127,16 @@ const MortgageRateFilters = ({
|
|
|
115
127
|
}, [salesPrice, downPaymentPercentage]);
|
|
116
128
|
const submitForm = async (data) => {
|
|
117
129
|
const processData = {
|
|
118
|
-
|
|
130
|
+
loanPurpose: data.loanPurpose,
|
|
131
|
+
propertyType: data.propertyType,
|
|
132
|
+
occupancy: data.occupancy,
|
|
133
|
+
creditScore: data.creditScore,
|
|
134
|
+
zipCode: data.zipCode,
|
|
135
|
+
salesPrice: data.salesPrice ?? 0,
|
|
136
|
+
downPayment: data.downPayment ?? 0,
|
|
137
|
+
appraisedValue: data.appraisedValue ?? 0,
|
|
138
|
+
mortgageBalance: data.mortgageBalance ?? 0,
|
|
139
|
+
cashOut: data.cashOut ?? 0
|
|
119
140
|
};
|
|
120
141
|
await onSubmit(processData);
|
|
121
142
|
};
|
|
@@ -391,7 +412,8 @@ const MortgageRateFilters = ({
|
|
|
391
412
|
inputMode: "numeric",
|
|
392
413
|
...register("zipCode", {
|
|
393
414
|
required: true,
|
|
394
|
-
pattern: /^\d{5}
|
|
415
|
+
pattern: /^\d{5}$/,
|
|
416
|
+
setValueAs: (value) => Number(value)
|
|
395
417
|
}),
|
|
396
418
|
label: "Zip Code",
|
|
397
419
|
sizes: "medium",
|
|
@@ -413,12 +435,11 @@ const MortgageRateFilters = ({
|
|
|
413
435
|
id: "cashOut",
|
|
414
436
|
type: "number",
|
|
415
437
|
...register("cashOut", {
|
|
416
|
-
required:
|
|
438
|
+
required: false,
|
|
417
439
|
setValueAs: (value) => Number(value)
|
|
418
440
|
}),
|
|
419
441
|
label: "Cash Out (Optional)",
|
|
420
442
|
sizes: "medium",
|
|
421
|
-
required: true,
|
|
422
443
|
error: !!errors.cashOut,
|
|
423
444
|
helperText: errors.cashOut?.message,
|
|
424
445
|
variant: "tertiary",
|
|
@@ -24,7 +24,7 @@ import { checkbox } from "../../Input/Checkbox.css.js";
|
|
|
24
24
|
import "../../IconBillboard/IconBillboard.css.js";
|
|
25
25
|
import "../../icons/ArrowIcon/ArrowIcon.css.js";
|
|
26
26
|
import "../../icons/CheckIcon/CheckIcon.css.js";
|
|
27
|
-
import '../../assets/
|
|
27
|
+
import '../../assets/Modal/Modal.css';import '../../assets/BulletItem/BulletItem.css';import '../../assets/Typography/Typography.css';import '../../assets/icons/FollowIcon/FollowIcon.css';import '../../assets/icons/DownloadIcon/DownloadIcon.css';import '../../assets/themes/victorie.css';import '../../assets/themes/ufb.css';import '../../assets/themes/premier.css';import '../../assets/themes/axos.css';/* empty css */
|
|
28
28
|
/* empty css */
|
|
29
29
|
/* empty css */
|
|
30
30
|
/* empty css */
|
|
@@ -32,107 +32,13 @@ import '../../assets/VideoWrapper/VideoWrapper.css';import '../../assets/Topical
|
|
|
32
32
|
/* empty css */
|
|
33
33
|
/* empty css */
|
|
34
34
|
/* empty css */
|
|
35
|
-
import "../../Accordion/Accordion.js";
|
|
36
|
-
import "../../Accordion/Accordion.css.js";
|
|
37
|
-
import "../../AlertBanner/AlertBanner.css.js";
|
|
38
|
-
import "../../Article/Article.css.js";
|
|
39
|
-
import "../../ArticlesSet/ArticlesSet.css.js";
|
|
40
|
-
import "../../Calculators/calculator.css.js";
|
|
41
|
-
import "../../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
|
|
42
|
-
import "../../Modal/contextApi/store.js";
|
|
43
|
-
import "next/image.js";
|
|
44
|
-
import { button } from "../../Button/Button.css.js";
|
|
45
|
-
import "../../Calculators/ApyCalculator/ApyCalculator.css.js";
|
|
46
|
-
import "../../Calculators/ApyCalculatorUserTest/ApyCalculatorUserTest.css.js";
|
|
47
|
-
import "../../HeroBanner/LargeBanner.css.js";
|
|
48
|
-
import "../../HeroBanner/HeroBanner.css.js";
|
|
49
|
-
import "../../HeroBanner/SelectionBanner.css.js";
|
|
50
|
-
/* empty css */
|
|
51
|
-
import "../../SetContainer/SetContainer.css.js";
|
|
52
|
-
import "../../Table/Table.css.js";
|
|
53
|
-
import "../../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
|
|
54
|
-
import "../../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
|
|
55
|
-
import "../../Input/PercentageInput.js";
|
|
56
|
-
import "../../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
|
|
57
|
-
/* empty css */
|
|
58
|
-
import "../HoneyPot/honeyPotValidation.js";
|
|
59
|
-
import "../SalesforceFieldsForm.js";
|
|
60
|
-
import "react-use";
|
|
61
35
|
import "../../Chevron/Chevron.css.js";
|
|
62
36
|
/* empty css */
|
|
37
|
+
import "../../Modal/contextApi/store.js";
|
|
63
38
|
import "../../Interstitial/Interstitial-variants.css.js";
|
|
64
|
-
|
|
65
|
-
import "
|
|
66
|
-
/* empty css */
|
|
39
|
+
import { button } from "../../Button/Button.css.js";
|
|
40
|
+
import "react-use";
|
|
67
41
|
import { SuccesFormWrapper } from "../SuccesForm.js";
|
|
68
|
-
import "iframe-resizer";
|
|
69
|
-
/* empty css */
|
|
70
|
-
import "../../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
|
|
71
|
-
import "../../Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css.js";
|
|
72
|
-
import "../../Calculators/SummitApyCalculator/BalanceAPYCalculator.css.js";
|
|
73
|
-
/* empty css */
|
|
74
|
-
import "react-dom";
|
|
75
|
-
/* empty css */
|
|
76
|
-
import "../../Auth/SignInPassword.js";
|
|
77
|
-
/* empty css */
|
|
78
|
-
/* empty css */
|
|
79
|
-
/* empty css */
|
|
80
|
-
/* empty css */
|
|
81
|
-
import "../../Carousel/index.js";
|
|
82
|
-
/* empty css */
|
|
83
|
-
import "../../Chatbot/Chatbot.css.ts.vanilla.css.js";
|
|
84
|
-
/* empty css */
|
|
85
|
-
import "../../Chatbot/store/chat.js";
|
|
86
|
-
import "../../Chatbot/Chatbot.js";
|
|
87
|
-
/* empty css */
|
|
88
|
-
import "../../Chatbot/store/messages.js";
|
|
89
|
-
/* empty css */
|
|
90
|
-
import "../../Comparison/Comparison.css.js";
|
|
91
|
-
import "../../Tab/Tab.css.js";
|
|
92
|
-
import "../../icons/Star/Star.css.js";
|
|
93
|
-
import "../../ContentBanner/ContentBanner.css.js";
|
|
94
|
-
/* empty css */
|
|
95
|
-
import "../../ExecutiveBio/ExecutiveBio.css.js";
|
|
96
|
-
import "../../FaqAccordion/index.js";
|
|
97
|
-
import "../../FooterDisclosure/FooterDisclosure.css.js";
|
|
98
|
-
/* empty css */
|
|
99
|
-
/* empty css */
|
|
100
|
-
/* empty css */
|
|
101
|
-
import "../../ImageBillboard/ImageBillboard.css.js";
|
|
102
|
-
import "next/script.js";
|
|
103
|
-
/* empty css */
|
|
104
|
-
/* empty css */
|
|
105
|
-
/* empty css */
|
|
106
|
-
/* empty css */
|
|
107
|
-
/* empty css */
|
|
108
|
-
import "../../LandingPageHeader/LandingPageHeader.css.js";
|
|
109
|
-
import "next/link.js";
|
|
110
|
-
/* empty css */
|
|
111
|
-
/* empty css */
|
|
112
|
-
import "next/navigation.js";
|
|
113
|
-
/* empty css */
|
|
114
|
-
/* empty css */
|
|
115
|
-
/* empty css */
|
|
116
|
-
/* empty css */
|
|
117
|
-
import "../../NavigationMenu/ServerNavigation/Menu.js";
|
|
118
|
-
import "../../NavigationMenu/ServerNavigation/SubNavbar.css.js";
|
|
119
|
-
/* empty css */
|
|
120
|
-
/* empty css */
|
|
121
|
-
/* empty css */
|
|
122
|
-
/* empty css */
|
|
123
|
-
import "../../PageNavItem/PageNavItem.css.js";
|
|
124
|
-
import "react-slick";
|
|
125
|
-
/* empty css */
|
|
126
|
-
/* empty css */
|
|
127
|
-
/* empty css */
|
|
128
|
-
/* empty css */
|
|
129
|
-
import "../../StepItem/StepItem.css.js";
|
|
130
|
-
import "../../StepItemSet/StepItemSet.css.js";
|
|
131
|
-
/* empty css */
|
|
132
|
-
/* empty css */
|
|
133
|
-
/* empty css */
|
|
134
|
-
/* empty css */
|
|
135
|
-
/* empty css */
|
|
136
42
|
const RateWatchForm = ({
|
|
137
43
|
email,
|
|
138
44
|
lastName,
|