@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.
Files changed (116) hide show
  1. package/dist/ATMLocator/ATMLocator.js +21 -89
  2. package/dist/Auth/ErrorAlert.js +6 -93
  3. package/dist/Button/Button.js +6 -126
  4. package/dist/Calculators/ApyCalculator/index.js +13 -3
  5. package/dist/Calculators/Calculator.d.ts +1 -1
  6. package/dist/Calculators/Calculator.js +19 -94
  7. package/dist/Calculators/MarginTradingCalculator/index.js +2 -118
  8. package/dist/Calculators/SummitApyCalculator/index.js +11 -5
  9. package/dist/Carousel/index.js +4 -115
  10. package/dist/Chatbot/Bubble.css.js +0 -1
  11. package/dist/Chatbot/ChatWindow.css.js +1 -0
  12. package/dist/Chevron/index.js +5 -121
  13. package/dist/Comparison/Comparison.js +5 -127
  14. package/dist/ExecutiveBio/ExecutiveBio.interface.d.ts +3 -2
  15. package/dist/ExecutiveBio/ExecutiveBio.js +4 -132
  16. package/dist/FaqAccordion/index.js +5 -113
  17. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +4 -115
  18. package/dist/FooterSiteMap/AxosBank/ServerFooterSiteMap.d.ts +10 -0
  19. package/dist/FooterSiteMap/AxosBank/ServerFooterSiteMap.js +151 -0
  20. package/dist/FooterSiteMap/AxosBank/index.d.ts +1 -0
  21. package/dist/FooterSiteMap/AxosBank/index.js +2 -0
  22. package/dist/FooterSiteMap/index.js +2 -0
  23. package/dist/Forms/ApplyNow.js +3 -114
  24. package/dist/Forms/ContactCompany.d.ts +1 -1
  25. package/dist/Forms/ContactCompanyTitle.d.ts +1 -1
  26. package/dist/Forms/ContactUsBusiness.js +5 -107
  27. package/dist/Forms/ContactUsBusinessNameEmail.js +6 -107
  28. package/dist/Forms/ContactUsNMLSId.js +5 -107
  29. package/dist/Forms/CpraRequest.js +2 -101
  30. package/dist/Forms/CraPublicFile.js +5 -107
  31. package/dist/Forms/DealerServices.d.ts +1 -1
  32. package/dist/Forms/EmailOnly.js +6 -118
  33. package/dist/Forms/FormEnums.d.ts +16 -0
  34. package/dist/Forms/FormEnums.js +27 -0
  35. package/dist/Forms/MortgageRate/MortgageRateForm.js +33 -108
  36. package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +34 -13
  37. package/dist/Forms/MortgageRate/MortgageRateWatch.js +4 -98
  38. package/dist/Forms/MortgageWarehouseLending.js +5 -107
  39. package/dist/Forms/NameAndEmail.d.ts +8 -0
  40. package/dist/Forms/NameAndEmail.js +165 -0
  41. package/dist/Forms/NonQMLoans.d.ts +16 -0
  42. package/dist/Forms/NonQMLoans.js +369 -0
  43. package/dist/Forms/SuccesForm.js +7 -95
  44. package/dist/Forms/index.d.ts +2 -0
  45. package/dist/Forms/index.js +4 -0
  46. package/dist/Hyperlink/index.js +4 -115
  47. package/dist/ImageLink/ImageLink.js +8 -113
  48. package/dist/ImageLink/ImageLinkSet.js +6 -120
  49. package/dist/ImageLink/index.js +5 -109
  50. package/dist/ImageToast/index.js +2 -113
  51. package/dist/Insight/Featured/CategorySelector.css.d.ts +5 -3
  52. package/dist/Insight/Featured/CategorySelector.css.js +12 -8
  53. package/dist/Insight/Featured/CategorySelector.d.ts +2 -1
  54. package/dist/Insight/Featured/CategorySelector.js +76 -145
  55. package/dist/Insight/Featured/Featured.css.d.ts +13 -4
  56. package/dist/Insight/Featured/Featured.css.js +37 -18
  57. package/dist/Insight/Featured/Featured.d.ts +1 -0
  58. package/dist/Insight/Featured/Featured.js +131 -205
  59. package/dist/Insight/Featured/Header.css.d.ts +1 -0
  60. package/dist/Insight/Featured/Header.css.js +9 -6
  61. package/dist/Insight/Featured/Header.js +14 -132
  62. package/dist/Insight/Featured/index.js +13 -4
  63. package/dist/Insight/index.js +13 -4
  64. package/dist/LandingPageHeader/LandingPageHeader.d.ts +1 -1
  65. package/dist/LandingPageHeader/WithLogin.js +7 -124
  66. package/dist/Modal/Modal.js +2 -128
  67. package/dist/NavigationMenu/AxosALTS/index.js +6 -117
  68. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +4 -114
  69. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +1 -1
  70. package/dist/NavigationMenu/AxosBank/SubNavBar.js +6 -114
  71. package/dist/NavigationMenu/AxosBank/index.js +6 -124
  72. package/dist/NavigationMenu/LaVictoire/index.js +4 -123
  73. package/dist/NavigationMenu/NavItem/index.js +4 -116
  74. package/dist/NavigationMenu/ServerNavigation/DropwdownButton.js +4 -123
  75. package/dist/NavigationMenu/ServerNavigation/Menu.js +4 -121
  76. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.js +17 -125
  77. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.module.js +27 -27
  78. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.d.ts +1 -1
  79. package/dist/NavigationMenu/ServerNavigation/MobileMenu/MobileNavData.js +3 -3
  80. package/dist/NavigationMenu/ServerNavigation/NavBar.module.js +40 -40
  81. package/dist/NavigationMenu/ServerNavigation/SubNavBar.js +5 -115
  82. package/dist/NavigationMenu/ServerNavigation/SubNavItem.js +4 -116
  83. package/dist/NavigationMenu/ServerNavigation/index.js +15 -116
  84. package/dist/NavigationMenu/getPathFromNavUrl.d.ts +3 -0
  85. package/dist/NavigationMenu/getPathFromNavUrl.js +15 -0
  86. package/dist/NavigationMenu/index.d.ts +3 -2
  87. package/dist/NavigationMenu/index.js +8 -7
  88. package/dist/NavigationMenu/utils.d.ts +0 -3
  89. package/dist/NavigationMenu/utils.js +0 -13
  90. package/dist/SetContainer/SetContainer.js +9 -115
  91. package/dist/SocialMediaBar/iconsRepository.js +0 -130
  92. package/dist/VideoTile/VideoTile.js +2 -112
  93. package/dist/VideoWrapper/index.js +7 -116
  94. package/dist/assets/CallToActionBar/CallToActionBar.css +2 -1
  95. package/dist/assets/Forms/Forms.css +2 -1
  96. package/dist/assets/ImageBillboard/ImageBillboard.css +1 -1
  97. package/dist/assets/Input/Input.css +1 -0
  98. package/dist/assets/Insight/Featured/CategorySelector.css +60 -38
  99. package/dist/assets/Insight/Featured/Featured.css +126 -65
  100. package/dist/assets/Insight/Featured/Header.css +22 -13
  101. package/dist/assets/NavigationMenu/ServerNavigation/MobileMenu/MobileMenu.css +353 -353
  102. package/dist/assets/NavigationMenu/ServerNavigation/NavBar.css +483 -483
  103. package/dist/assets/SetContainer/SetContainer.css +6 -6
  104. package/dist/assets/TextBlock/TextBlock.css +0 -1
  105. package/dist/icons/Clock/index.js +1 -0
  106. package/dist/main.js +28 -10
  107. package/dist/utils/allowedAxosDomains.d.ts +1 -1
  108. package/dist/utils/allowedAxosDomains.js +32 -20
  109. package/dist/utils/createUrlResolver.d.ts +3 -0
  110. package/dist/utils/createUrlResolver.js +7 -0
  111. package/dist/utils/index.d.ts +1 -0
  112. package/dist/utils/index.js +2 -0
  113. package/dist/utils/insightsData.d.ts +1 -1
  114. package/dist/utils/insightsData.js +1 -6
  115. package/package.json +1 -1
  116. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css +0 -353
@@ -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/VideoWrapper/VideoWrapper.css';import '../../assets/TopicalNavSet/TopicalNavSet.css';import '../../assets/TopicalNavItem/TopicalNavItem.css';import '../../assets/Topic/Topic.css';import '../../assets/TextBlock/TextBlock.css';import '../../assets/SocialMediaBar/SocialMediaBar.css';import '../../assets/SecondaryFooter/SecondaryFooter.css';import '../../assets/Pagination/Pagination.css';import '../../assets/PageNavSet/PageNavigationSet.css';import '../../assets/NavigationMenu/LaVictoire/NavBar2.css';import '../../assets/NavigationMenu/AxosALTS/NavBar2.css';import '../../assets/NavigationMenu/AxosClearing/NavBar2.css';import '../../assets/NavigationMenu/AxosBank/SubNavbar.css';import '../../assets/NavigationMenu/ServerNavigation/NavigationBar.css';import '../../assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css';import '../../assets/NavigationMenu/AxosAdvisorServices/NavBar2.css';import '../../assets/NavigationMenu/AxosAdvisor/SubNavbar.css';import '../../assets/NavigationMenu/AxosAdvisor/NavBar2.css';import '../../assets/NavigationMenu/AxosBank/NavBar2.css';import '../../assets/Insight/Featured/Header.css';import '../../assets/Insight/Featured/CategorySelector.css';import '../../assets/Insight/Featured/Featured.css';import '../../assets/ImageLink/ImageLink.css';import '../../assets/VideoTile/VideoTile.css';import '../../assets/HelpArticle/HelpArticle.css';import '../../assets/FooterSiteMap/AxosBank/FooterSiteMap.css';import '../../assets/FooterDisclosure/LVF/LaVictorieFooter.css';import '../../assets/DownloadTile/DownloadTile.css';import '../../assets/CollectInformationAlert/CollectInformationAlert.css';import '../../assets/Chatbot/ChatWindow.css';import '../../assets/Chatbot/Bubble.css';import '../../assets/Chatbot/AnimatedGradientBorder.css';import '../../assets/CallToActionBar/CallToActionBar.css';import '../../assets/Insight/Insight.css';import '../../assets/AwardsItem/AwardsItem.css';import '../../assets/AwardsBanner/AwardsBanner.css';import '../../assets/Auth/SignIn.css';import '../../assets/Auth/ErrorAlert.css';import '../../assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css';import '../../assets/Forms/QuickPricer/UserInformation.css';import '../../assets/Forms/QuickPricer/QuickPricerResults.css';import '../../assets/Modal/Modal.css';import '../../assets/ImageToast/ImageToast.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 */
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 "../../Accordion/Accordion.js";
23
- import "../../Accordion/Accordion.css.js";
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 "next/image.js";
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 "../../Calculators/ApyCalculator/ApyCalculator.css.js";
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 "../../Input/PercentageInput.js";
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(Fragment, { children: [
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: isValid ? handleSubmit(async (data) => {
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
- ...data
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: true,
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/VideoWrapper/VideoWrapper.css';import '../../assets/TopicalNavSet/TopicalNavSet.css';import '../../assets/TopicalNavItem/TopicalNavItem.css';import '../../assets/Topic/Topic.css';import '../../assets/TextBlock/TextBlock.css';import '../../assets/SocialMediaBar/SocialMediaBar.css';import '../../assets/SecondaryFooter/SecondaryFooter.css';import '../../assets/Pagination/Pagination.css';import '../../assets/PageNavSet/PageNavigationSet.css';import '../../assets/NavigationMenu/LaVictoire/NavBar2.css';import '../../assets/NavigationMenu/AxosALTS/NavBar2.css';import '../../assets/NavigationMenu/AxosClearing/NavBar2.css';import '../../assets/NavigationMenu/AxosBank/SubNavbar.css';import '../../assets/NavigationMenu/ServerNavigation/NavigationBar.css';import '../../assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css';import '../../assets/NavigationMenu/AxosAdvisorServices/NavBar2.css';import '../../assets/NavigationMenu/AxosAdvisor/SubNavbar.css';import '../../assets/NavigationMenu/AxosAdvisor/NavBar2.css';import '../../assets/NavigationMenu/AxosBank/NavBar2.css';import '../../assets/Insight/Featured/Header.css';import '../../assets/Insight/Featured/CategorySelector.css';import '../../assets/Insight/Featured/Featured.css';import '../../assets/ImageLink/ImageLink.css';import '../../assets/VideoTile/VideoTile.css';import '../../assets/HelpArticle/HelpArticle.css';import '../../assets/FooterSiteMap/AxosBank/FooterSiteMap.css';import '../../assets/FooterDisclosure/LVF/LaVictorieFooter.css';import '../../assets/DownloadTile/DownloadTile.css';import '../../assets/CollectInformationAlert/CollectInformationAlert.css';import '../../assets/Chatbot/ChatWindow.css';import '../../assets/Chatbot/Bubble.css';import '../../assets/Chatbot/AnimatedGradientBorder.css';import '../../assets/CallToActionBar/CallToActionBar.css';import '../../assets/Insight/Insight.css';import '../../assets/AwardsItem/AwardsItem.css';import '../../assets/AwardsBanner/AwardsBanner.css';import '../../assets/Auth/SignIn.css';import '../../assets/Auth/ErrorAlert.css';import '../../assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css';import '../../assets/Forms/QuickPricer/UserInformation.css';import '../../assets/Forms/QuickPricer/QuickPricerResults.css';import '../../assets/Modal/Modal.css';import '../../assets/Forms/HoneyPot/HoneyPot.css';import '../../assets/ImageToast/ImageToast.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 */
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
- /* empty css */
65
- import "../../Hyperlink/Hyperlink.css.js";
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,