@axos-web-dev/shared-components 2.0.0-queryparams.2 → 2.1.0

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 (208) hide show
  1. package/README.md +111 -111
  2. package/dist/ATMLocator/ATMLocator.js +11 -6
  3. package/dist/Auth/ErrorAlert.js +13 -8
  4. package/dist/Auth/SignInPassword.js +1 -0
  5. package/dist/Avatar/Avatar.module.js +7 -7
  6. package/dist/Blockquote/Blockquote.module.js +3 -3
  7. package/dist/BulletItem/BulletItem.js +1 -0
  8. package/dist/Button/Button.js +14 -26
  9. package/dist/Calculators/AnnualFeeCalculator/index.js +2 -1
  10. package/dist/Calculators/ApyCalculator/index.js +1 -3
  11. package/dist/Calculators/AxosOneCalculator/index.js +6 -7
  12. package/dist/Calculators/BalanceAPYCalculator/index.js +1 -0
  13. package/dist/Calculators/BuyDownCalculator/index.js +1 -0
  14. package/dist/Calculators/Calculator.js +12 -7
  15. package/dist/Calculators/MarginTradingCalculator/index.js +2 -119
  16. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +2 -1
  17. package/dist/Calculators/MaxLoanCalculator/index.js +2 -1
  18. package/dist/Calculators/MonthlyPaymentCalculator/index.js +2 -1
  19. package/dist/Calculators/MonthlyPaymentLVFCalculator/index.js +1 -0
  20. package/dist/Calculators/SummitApyCalculator/index.js +2 -3
  21. package/dist/Calculators/calculator.css.d.ts +21 -1
  22. package/dist/Calculators/calculator.css.js +3 -3
  23. package/dist/Carousel/index.js +11 -6
  24. package/dist/Chatbot/AnimatedGradientBorder.css.d.ts +5 -0
  25. package/dist/Chatbot/AnimatedGradientBorder.css.js +13 -3
  26. package/dist/Chatbot/Bubble.css.js +2 -1
  27. package/dist/Chatbot/Bubble.d.ts +1 -0
  28. package/dist/Chatbot/Bubble.js +3 -12
  29. package/dist/Chatbot/Chat.js +17 -7
  30. package/dist/Chatbot/ChatWindow.css.d.ts +4 -0
  31. package/dist/Chatbot/ChatWindow.css.js +39 -31
  32. package/dist/Chatbot/ChatWindow.js +163 -95
  33. package/dist/Chatbot/Chatbot.d.ts +10 -2
  34. package/dist/Chatbot/Chatbot.js +148 -80
  35. package/dist/Chatbot/ChatbotMessage.d.ts +1 -0
  36. package/dist/Chatbot/ChatbotMessage.js +214 -160
  37. package/dist/Chatbot/index.js +5 -1
  38. package/dist/Chatbot/store/chat.d.ts +5 -0
  39. package/dist/Chatbot/store/chat.js +10 -2
  40. package/dist/Chatbot/useHeadlessChat.js +1 -2
  41. package/dist/Chevron/index.js +12 -18
  42. package/dist/Comparison/Comparison.js +11 -6
  43. package/dist/ExecutiveBio/ExecutiveBio.js +9 -4
  44. package/dist/ExecutiveBio/ExecutiveBioSet.js +1 -0
  45. package/dist/FaqAccordion/index.js +11 -6
  46. package/dist/FdicCallout/FdicCallout.module.js +2 -2
  47. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +208 -91
  48. package/dist/Forms/ApplicationStart.js +1 -0
  49. package/dist/Forms/ApplyNow.js +10 -5
  50. package/dist/Forms/BoatMooringLocation.d.ts +6 -1
  51. package/dist/Forms/BoatMooringLocation.js +146 -8
  52. package/dist/Forms/ClearingForm.js +1 -0
  53. package/dist/Forms/CommercialDeposits.js +1 -0
  54. package/dist/Forms/CommercialDepositsNoLendingOption.js +1 -0
  55. package/dist/Forms/CommercialLending.js +1 -0
  56. package/dist/Forms/CommercialPremiumFinance.js +1 -0
  57. package/dist/Forms/ConstructionLendingDynamic.js +1 -0
  58. package/dist/Forms/ContactCompany.js +1 -0
  59. package/dist/Forms/ContactCompanyTitle.js +1 -0
  60. package/dist/Forms/ContactUs.js +1 -0
  61. package/dist/Forms/ContactUsAAS.js +1 -0
  62. package/dist/Forms/ContactUsBusiness.js +11 -6
  63. package/dist/Forms/ContactUsBusinessNameEmail.js +11 -6
  64. package/dist/Forms/ContactUsLVF.js +1 -0
  65. package/dist/Forms/ContactUsNMLSId.js +11 -6
  66. package/dist/Forms/CpraRequest.js +3 -100
  67. package/dist/Forms/CraPublicFile.js +11 -6
  68. package/dist/Forms/DealerServices.js +1 -0
  69. package/dist/Forms/EmailOnly.js +11 -6
  70. package/dist/Forms/EmailUs.js +41 -34
  71. package/dist/Forms/FormEnums.js +2 -2
  72. package/dist/Forms/Forms.css.d.ts +3 -0
  73. package/dist/Forms/Forms.css.js +39 -39
  74. package/dist/Forms/HoneyPot/index.js +1 -0
  75. package/dist/Forms/MortgageRate/MortgageRateForm.js +12 -7
  76. package/dist/Forms/MortgageRate/MortgageRateWatch.js +11 -6
  77. package/dist/Forms/MortgageWarehouseLending.js +11 -6
  78. package/dist/Forms/QuickPricer/QuickPricerForm.js +1 -0
  79. package/dist/Forms/ScheduleCall.js +1 -0
  80. package/dist/Forms/ScheduleCallPremier.js +1 -0
  81. package/dist/Forms/SuccesForm.js +13 -8
  82. package/dist/Forms/VendorQuestionnaire.js +1 -0
  83. package/dist/Forms/index.js +1 -0
  84. package/dist/HeroBanner/HeroBanner.css.d.ts +1 -0
  85. package/dist/HeroBanner/HeroBanner.css.js +19 -16
  86. package/dist/HeroBanner/HeroBanner.d.ts +1 -1
  87. package/dist/HeroBanner/HeroBanner.interface.d.ts +4 -1
  88. package/dist/HeroBanner/HeroBanner.js +26 -160
  89. package/dist/HeroBanner/HeroVideoPoster.d.ts +5 -0
  90. package/dist/HeroBanner/HeroVideoPoster.js +24 -0
  91. package/dist/HeroBanner/LargeBanner.css.d.ts +110 -0
  92. package/dist/HeroBanner/LargeBanner.css.js +22 -8
  93. package/dist/HeroBanner/LargeHeroBanner.d.ts +5 -0
  94. package/dist/HeroBanner/LargeHeroBanner.js +228 -0
  95. package/dist/HeroBanner/index.js +3 -2
  96. package/dist/Hyperlink/index.js +13 -20
  97. package/dist/ImageLink/ImageLink.js +10 -5
  98. package/dist/ImageLink/ImageLinkSet.js +10 -5
  99. package/dist/ImageLink/index.js +10 -5
  100. package/dist/Insight/Featured/CategorySelector.js +10 -5
  101. package/dist/Insight/Featured/Featured.js +11 -6
  102. package/dist/Insight/Featured/Header.js +11 -6
  103. package/dist/Interstitial/Interstitial.module.js +10 -10
  104. package/dist/LoadingIndicator/index.js +1 -0
  105. package/dist/Modal/Modal.js +10 -5
  106. package/dist/Modal/contextApi/store.d.ts +2 -16
  107. package/dist/Modal/contextApi/store.js +6 -37
  108. package/dist/NavigationMenu/AxosALTS/NavBar.module.js +23 -23
  109. package/dist/NavigationMenu/AxosALTS/NavData.d.ts +1 -7
  110. package/dist/NavigationMenu/AxosALTS/NavData.js +137 -6
  111. package/dist/NavigationMenu/AxosALTS/index.js +16 -14
  112. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  113. package/dist/NavigationMenu/AxosAdvisor/SubNavBar.js +1 -0
  114. package/dist/NavigationMenu/AxosAdvisor/index.js +1 -0
  115. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  116. package/dist/NavigationMenu/AxosAdvisorServices/SubNavBar.js +1 -0
  117. package/dist/NavigationMenu/AxosAdvisorServices/index.js +1 -0
  118. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +4 -128
  119. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +27 -27
  120. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +15 -13
  121. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +368 -196
  122. package/dist/NavigationMenu/AxosBank/NavBar.module.js +39 -39
  123. package/dist/NavigationMenu/AxosBank/NavData.d.ts +2 -39
  124. package/dist/NavigationMenu/AxosBank/NavData.js +166 -34
  125. package/dist/NavigationMenu/AxosBank/SubNavBar.js +486 -429
  126. package/dist/NavigationMenu/AxosBank/index.js +74 -20
  127. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  128. package/dist/NavigationMenu/AxosClearing/index.js +1 -0
  129. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +41 -41
  130. package/dist/NavigationMenu/LaVictoire/NavBar.module.js +37 -37
  131. package/dist/NavigationMenu/LaVictoire/NavData.d.ts +2 -13
  132. package/dist/NavigationMenu/LaVictoire/NavData.js +146 -14
  133. package/dist/NavigationMenu/LaVictoire/SubNavBar.js +1 -4
  134. package/dist/NavigationMenu/LaVictoire/index.js +44 -19
  135. package/dist/NavigationMenu/Navbar.js +9 -8
  136. package/dist/NavigationMenu/SignInNavButton.js +27 -19
  137. package/dist/SetContainer/SetContainer.css.d.ts +1 -0
  138. package/dist/SetContainer/SetContainer.css.js +5 -3
  139. package/dist/SetContainer/SetContainer.js +18 -7
  140. package/dist/SetContainer/index.js +2 -1
  141. package/dist/SocialMediaBar/iconsRepository.d.ts +14 -44
  142. package/dist/SocialMediaBar/iconsRepository.js +41 -32
  143. package/dist/SocialMediaBar/index.js +1 -3
  144. package/dist/Tab/Tab.js +1 -0
  145. package/dist/Table/Table.css.d.ts +21 -1
  146. package/dist/Table/Table.css.js +18 -18
  147. package/dist/Table/Table.d.ts +1 -1
  148. package/dist/Table/Table.js +6 -3
  149. package/dist/VideoTile/VideoTile.js +9 -4
  150. package/dist/VideoWrapper/index.js +9 -4
  151. package/dist/WalnutIframe/wrapper.module.js +3 -3
  152. package/dist/assets/Avatar/Avatar.css +59 -59
  153. package/dist/assets/Blockquote/Blockquote.css +72 -72
  154. package/dist/assets/Calculators/AxosOneCalculator/BalanceAPYCalculator.css +2 -2
  155. package/dist/assets/Calculators/calculator.css +25 -15
  156. package/dist/assets/Chatbot/AnimatedGradientBorder.css +99 -12
  157. package/dist/assets/Chatbot/Bubble.css +21 -6
  158. package/dist/assets/Chatbot/ChatWindow.css +127 -90
  159. package/dist/assets/Comparison/Comparison.css +2 -2
  160. package/dist/assets/DownloadTile/DownloadTile.css +7 -0
  161. package/dist/assets/ExecutiveBio/ExecutiveBio.css +0 -2
  162. package/dist/assets/FdicCallout/FdicCallout.css +48 -48
  163. package/dist/assets/Forms/Forms.css +94 -91
  164. package/dist/assets/HeroBanner/HeroBanner.css +82 -65
  165. package/dist/assets/HeroBanner/LargeBanner.css +126 -59
  166. package/dist/assets/ImageBillboard/ImageBillboard.css +1 -1
  167. package/dist/assets/Interstitial/Interstitial.css +142 -142
  168. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css +264 -264
  169. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css +609 -609
  170. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css +630 -630
  171. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css +353 -353
  172. package/dist/assets/NavigationMenu/AxosBank/NavBar.css +445 -445
  173. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css +484 -484
  174. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css +427 -427
  175. package/dist/assets/NavigationMenu/LaVictoire/NavBar.css +429 -429
  176. package/dist/assets/SetContainer/SetContainer.css +25 -15
  177. package/dist/assets/Table/Table.css +90 -75
  178. package/dist/assets/TextBlock/TextBlock.css +7 -0
  179. package/dist/assets/VideoTile/VideoTile.css +6 -0
  180. package/dist/assets/WalnutIframe/wrapper.css +48 -48
  181. package/dist/assets/globals.css +9 -9
  182. package/dist/assets/notification.mp3.js +4 -0
  183. package/dist/assets/themes/axos.css +8 -7
  184. package/dist/assets/themes/premier.css +9 -8
  185. package/dist/assets/themes/ufb.css +9 -8
  186. package/dist/assets/themes/victorie.css +9 -8
  187. package/dist/assets/utils/optimizeImage/optimizeImage.css +47 -47
  188. package/dist/main.js +11 -11
  189. package/dist/themes/axos.css.d.ts +1 -0
  190. package/dist/themes/axos.css.js +1 -1
  191. package/dist/utils/allowedAxosDomains.d.ts +2 -5
  192. package/dist/utils/allowedAxosDomains.js +46 -50
  193. package/dist/utils/appendQueryParams.js +53 -16
  194. package/dist/utils/getPosition.d.ts +1 -0
  195. package/dist/utils/getPosition.js +17 -0
  196. package/dist/utils/index.d.ts +0 -1
  197. package/dist/utils/index.js +1 -7
  198. package/dist/utils/optimizeImage/optimizeImage.module.js +3 -3
  199. package/dist/utils/validateExternalLinks.d.ts +1 -1
  200. package/dist/utils/validateExternalLinks.js +2 -2
  201. package/dist/utils/variant.types.d.ts +1 -0
  202. package/package.json +148 -149
  203. package/dist/Chatbot/authenticate.d.ts +0 -3
  204. package/dist/Chatbot/authenticate.js +0 -16
  205. package/dist/utils/samePageNavigation.d.ts +0 -3
  206. package/dist/utils/samePageNavigation.js +0 -23
  207. package/dist/utils/samePageQueryParamsNavigation.d.ts +0 -4
  208. package/dist/utils/samePageQueryParamsNavigation.js +0 -63
@@ -9,7 +9,7 @@ import '../assets/themes/victorie.css';import '../assets/themes/ufb.css';import
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  import clsx from "clsx";
12
- import { shimmerText, notificationStyle, messageStyle, user_msg, agent_msg, inline_button_wrapper, inline_button, endChatButtonStyle } from "./ChatWindow.css.js";
12
+ import { shimmerText, notificationStyle, trMortgageTable, tableCell, tableHead, tableMsg, messageStyle, user_msg, agent_msg, inline_button_wrapper, inline_button, endChatButtonStyle } from "./ChatWindow.css.js";
13
13
  import { useOpenChat } from "./store/chat.js";
14
14
  function timeAgo(date) {
15
15
  const seconds = Math.floor(((/* @__PURE__ */ new Date()).getTime() - date.getTime()) / 1e3);
@@ -19,13 +19,39 @@ function timeAgo(date) {
19
19
  minute: "2-digit"
20
20
  });
21
21
  }
22
+ function convertBulletsToTable(text) {
23
+ const lines = text.split("\n");
24
+ const header = lines[0];
25
+ const bulletLines = lines.filter((line) => line.trim().startsWith("•"));
26
+ if (bulletLines.length === 0) return text;
27
+ const fields = bulletLines.map((line) => {
28
+ const [field] = line.split(":");
29
+ const cleanField = field.replace(/•\s*\*\*|\*\*/g, "").trim();
30
+ return cleanField;
31
+ });
32
+ const values = bulletLines.map((line) => {
33
+ const [, value] = line.split(":");
34
+ return value.trim();
35
+ });
36
+ const headerRow = `| ${fields.join(" | ")} |`;
37
+ const separatorRow = `| ${fields.map(() => "-------").join(" | ")} |`;
38
+ const valueRow = `| ${values.join(" | ")} |`;
39
+ return `
40
+ ### ${header}
41
+
42
+ ${headerRow}
43
+ ${separatorRow}
44
+ ${valueRow}
45
+ `;
46
+ }
22
47
  const ChatbotMessage = ({
23
48
  msg,
24
49
  showAvatar,
25
50
  showName,
26
51
  virtualAgent,
27
52
  onEndChat,
28
- onSend
53
+ onSend,
54
+ inputRef
29
55
  }) => {
30
56
  const { hasEscalated } = useOpenChat();
31
57
  const [timeText, setTimeText] = useState(timeAgo(msg.$timestamp));
@@ -36,6 +62,9 @@ const ChatbotMessage = ({
36
62
  return () => clearInterval(interval);
37
63
  }, [msg.$timestamp]);
38
64
  if (msg.$sid === "typing-1" && !hasEscalated) {
65
+ if (inputRef?.current) {
66
+ inputRef?.current.focus();
67
+ }
39
68
  return /* @__PURE__ */ jsx(
40
69
  "div",
41
70
  {
@@ -64,172 +93,197 @@ const ChatbotMessage = ({
64
93
  }
65
94
  );
66
95
  }
67
- return /* @__PURE__ */ jsxs(Fragment, { children: [
68
- msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationStarted" && /* @__PURE__ */ jsx("div", { className: notificationStyle, children: "We are connecting you with a human agent..." }, msg.$index),
69
- msg.type == "noti" && msg.$userType == "system" && msg.event == "memberLeft" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
70
- /* @__PURE__ */ jsx("strong", { children: "Virtual Agent" }),
71
- " just left the conversation."
72
- ] }, msg.$index),
73
- msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationAccepted" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
74
- "You are now connected with a",
75
- " ",
76
- msg.to_agent ? /* @__PURE__ */ jsx("strong", { children: msg?.to_agent?.name }) : "an agent"
77
- ] }, msg.$index),
78
- msg.type == "noti" && msg.$userType == "virtual_agent" && msg.event == "escalationDeflected" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
79
- "div",
80
- {
81
- className: notificationStyle,
82
- style: { fontSize: 12 },
83
- children: [
84
- "Our chat team is available weekdays, 8am-5pm, except federal bank holidays. For immediate assistance you can reach out to us at",
85
- " ",
86
- /* @__PURE__ */ jsx("a", { href: "tel:1-888-502-2967", children: "1-888-502-2967" }),
87
- "."
88
- ]
96
+ const checkInformationMortgage = typeof msg.content == "string" ? convertBulletsToTable(msg.content) : "";
97
+ return /* @__PURE__ */ jsxs(
98
+ "div",
99
+ {
100
+ style: {
101
+ display: "flex",
102
+ flexDirection: "column"
89
103
  },
90
- msg.$index
91
- ) }),
92
- ["text", "markdown_template", "markdown"].includes(msg.type) && /* @__PURE__ */ jsx(
93
- "div",
94
- {
95
- className: clsx(
96
- messageStyle,
97
- msg.$userType == "end_user" ? user_msg : agent_msg
104
+ children: [
105
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationStarted" && /* @__PURE__ */ jsx("div", { className: notificationStyle, children: "We are connecting you with a human agent..." }, msg.$index),
106
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "memberLeft" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
107
+ /* @__PURE__ */ jsx("strong", { children: "Virtual Agent" }),
108
+ " just left the conversation."
109
+ ] }, msg.$index),
110
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationAccepted" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
111
+ "You are now connected with a",
112
+ " ",
113
+ msg.to_agent ? /* @__PURE__ */ jsx("strong", { children: msg?.to_agent?.name }) : "an agent"
114
+ ] }, msg.$index),
115
+ msg.type == "noti" && msg.$userType == "virtual_agent" && msg.event == "escalationDeflected" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
116
+ "div",
117
+ {
118
+ className: notificationStyle,
119
+ style: { fontSize: 12 },
120
+ children: [
121
+ "Our chat team is available weekdays, 8am-5pm, except federal bank holidays. For immediate assistance you can reach out to us at",
122
+ " ",
123
+ /* @__PURE__ */ jsx("a", { href: "tel:1-888-502-2967", children: "1-888-502-2967" }),
124
+ "."
125
+ ]
126
+ },
127
+ msg.$index
128
+ ) }),
129
+ ["text", "markdown_template", "markdown"].includes(msg.type) && /* @__PURE__ */ jsx(
130
+ "div",
131
+ {
132
+ className: clsx(
133
+ messageStyle,
134
+ msg.$userType == "end_user" ? user_msg : agent_msg
135
+ ),
136
+ children: /* @__PURE__ */ jsxs(
137
+ "div",
138
+ {
139
+ style: {
140
+ fontSize: 14,
141
+ display: "flex",
142
+ flexDirection: "column",
143
+ gap: 4
144
+ },
145
+ children: [
146
+ msg.$userType == "virtual_agent" && /* @__PURE__ */ jsxs(
147
+ "div",
148
+ {
149
+ style: {
150
+ display: "flex",
151
+ alignItems: "center",
152
+ gap: "8px"
153
+ },
154
+ children: [
155
+ showAvatar && /* @__PURE__ */ jsx(
156
+ "img",
157
+ {
158
+ width: 24,
159
+ height: 24,
160
+ src: virtualAgent?.avatar_url,
161
+ alt: "agent avatar"
162
+ }
163
+ ),
164
+ showName && /* @__PURE__ */ jsx("strong", { children: virtualAgent?.name })
165
+ ]
166
+ }
167
+ ),
168
+ msg.$userType != "end_user" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
169
+ ReactMarkdown,
170
+ {
171
+ remarkPlugins: [[remarkGfm, { singleTilde: false }]],
172
+ components: {
173
+ p: ({ ...props }) => /* @__PURE__ */ jsx(
174
+ "p",
175
+ {
176
+ style: { margin: 0, fontSize: "inherit" },
177
+ title: new Date(msg.$timestamp).toLocaleTimeString([], {
178
+ hour: "2-digit",
179
+ minute: "2-digit"
180
+ }),
181
+ ...props
182
+ }
183
+ ),
184
+ a: ({ ...props }) => /* @__PURE__ */ jsx("a", { style: { wordBreak: "break-word" }, ...props }),
185
+ table: ({ node, ...props }) => /* @__PURE__ */ jsx("div", { style: { overflowX: "auto", marginTop: 4 }, children: /* @__PURE__ */ jsx(
186
+ "table",
187
+ {
188
+ ...props,
189
+ className: clsx(tableMsg),
190
+ style: { tableLayout: "fixed" }
191
+ }
192
+ ) }),
193
+ th: ({ node, ...props }) => /* @__PURE__ */ jsx("th", { ...props, className: clsx(tableHead) }),
194
+ td: ({ node, ...props }) => /* @__PURE__ */ jsx("td", { ...props, className: clsx(tableCell) }),
195
+ tr: ({ node, ...props }) => {
196
+ return /* @__PURE__ */ jsx("tr", { className: clsx(trMortgageTable), ...props });
197
+ }
198
+ },
199
+ children: msg?.content?.includes("Does this information look correct?") ? checkInformationMortgage : msg.content
200
+ }
201
+ ) }) : /* @__PURE__ */ jsx(
202
+ "div",
203
+ {
204
+ title: new Date(msg.$timestamp).toLocaleTimeString([], {
205
+ hour: "2-digit",
206
+ minute: "2-digit"
207
+ }),
208
+ children: msg.content
209
+ }
210
+ )
211
+ ]
212
+ }
213
+ )
214
+ },
215
+ msg.$index
98
216
  ),
99
- children: /* @__PURE__ */ jsxs(
217
+ msg.type == "inline_button" && Array.isArray(msg.buttons) && msg.buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: inline_button_wrapper, children: msg.buttons.length !== 0 && Array.isArray(msg.buttons) && msg.buttons.map((button, index) => {
218
+ return /* @__PURE__ */ jsx(
219
+ "button",
220
+ {
221
+ className: inline_button,
222
+ onClick: () => {
223
+ onSend?.(button?.title);
224
+ },
225
+ children: button.title
226
+ },
227
+ index
228
+ );
229
+ }) }),
230
+ " ",
231
+ msg.event == "chatEnded" && msg.status == "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
232
+ /* @__PURE__ */ jsxs(
233
+ "div",
234
+ {
235
+ title: (/* @__PURE__ */ new Date()).toLocaleString(),
236
+ style: {
237
+ fontSize: 12,
238
+ color: "#888",
239
+ marginBottom: 4,
240
+ textAlign: "center"
241
+ },
242
+ children: [
243
+ "No team members are online at the moment.",
244
+ /* @__PURE__ */ jsx("br", {}),
245
+ " Please try again later."
246
+ ]
247
+ }
248
+ ),
249
+ /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onEndChat, children: "End Chat" }) })
250
+ ] }),
251
+ msg.event == "chatEnded" && msg.status != "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
252
+ /* @__PURE__ */ jsxs(
253
+ "div",
254
+ {
255
+ title: (/* @__PURE__ */ new Date()).toLocaleString(),
256
+ style: {
257
+ fontSize: 12,
258
+ color: "#888",
259
+ marginBottom: 4,
260
+ textAlign: "center"
261
+ },
262
+ children: [
263
+ "Thank you for chatting!",
264
+ /* @__PURE__ */ jsx("br", {}),
265
+ " This conversation has ended."
266
+ ]
267
+ }
268
+ ),
269
+ /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onEndChat, children: "End Chat" }) })
270
+ ] }),
271
+ msg.type == "text" && /* @__PURE__ */ jsx(
100
272
  "div",
101
273
  {
102
274
  style: {
103
- fontSize: 14,
104
- display: "flex",
105
- flexDirection: "column",
106
- gap: 4
275
+ textAlign: msg.$userType === "end_user" ? "right" : "left",
276
+ fontSize: 12,
277
+ color: vars.chatbot.window.timestampColor,
278
+ textTransform: "uppercase",
279
+ fontFamily: "inherit"
107
280
  },
108
- children: [
109
- msg.$userType == "virtual_agent" && /* @__PURE__ */ jsxs(
110
- "div",
111
- {
112
- style: {
113
- display: "flex",
114
- alignItems: "center",
115
- gap: "8px"
116
- },
117
- children: [
118
- showAvatar && /* @__PURE__ */ jsx(
119
- "img",
120
- {
121
- width: 24,
122
- height: 24,
123
- src: virtualAgent?.avatar_url,
124
- alt: "agent avatar"
125
- }
126
- ),
127
- showName && /* @__PURE__ */ jsx("strong", { children: virtualAgent?.name })
128
- ]
129
- }
130
- ),
131
- msg.$userType != "end_user" ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
132
- ReactMarkdown,
133
- {
134
- remarkPlugins: [[remarkGfm, { singleTilde: false }]],
135
- components: {
136
- p: ({ ...props }) => /* @__PURE__ */ jsx(
137
- "p",
138
- {
139
- style: { margin: 0, fontSize: "inherit" },
140
- title: new Date(msg.$timestamp).toLocaleTimeString([], {
141
- hour: "2-digit",
142
- minute: "2-digit"
143
- }),
144
- ...props
145
- }
146
- ),
147
- a: ({ ...props }) => /* @__PURE__ */ jsx("a", { style: { wordBreak: "break-word" }, ...props })
148
- },
149
- children: msg.content
150
- }
151
- ) }) : /* @__PURE__ */ jsx(
152
- "div",
153
- {
154
- title: new Date(msg.$timestamp).toLocaleTimeString([], {
155
- hour: "2-digit",
156
- minute: "2-digit"
157
- }),
158
- children: msg.content
159
- }
160
- )
161
- ]
281
+ children: timeText
162
282
  }
163
283
  )
164
- },
165
- msg.$index
166
- ),
167
- msg.type == "inline_button" && Array.isArray(msg.buttons) && msg.buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: inline_button_wrapper, children: msg.buttons.length !== 0 && Array.isArray(msg.buttons) && msg.buttons.map((button, index) => {
168
- return /* @__PURE__ */ jsx(
169
- "button",
170
- {
171
- className: inline_button,
172
- onClick: () => {
173
- onSend?.(button?.title);
174
- },
175
- children: button.title
176
- },
177
- index
178
- );
179
- }) }),
180
- " ",
181
- msg.event == "chatEnded" && msg.status == "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
182
- /* @__PURE__ */ jsxs(
183
- "div",
184
- {
185
- title: (/* @__PURE__ */ new Date()).toLocaleString(),
186
- style: {
187
- fontSize: 12,
188
- color: "#888",
189
- marginBottom: 4,
190
- textAlign: "center"
191
- },
192
- children: [
193
- "No team members are online at the moment.",
194
- /* @__PURE__ */ jsx("br", {}),
195
- " Please try again later."
196
- ]
197
- }
198
- ),
199
- /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onEndChat, children: "End Chat" }) })
200
- ] }),
201
- msg.event == "chatEnded" && msg.status != "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
202
- /* @__PURE__ */ jsxs(
203
- "div",
204
- {
205
- title: (/* @__PURE__ */ new Date()).toLocaleString(),
206
- style: {
207
- fontSize: 12,
208
- color: "#888",
209
- marginBottom: 4,
210
- textAlign: "center"
211
- },
212
- children: [
213
- "Thank you for chatting!",
214
- /* @__PURE__ */ jsx("br", {}),
215
- " This conversation has ended."
216
- ]
217
- }
218
- ),
219
- /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onEndChat, children: "End Chat" }) })
220
- ] }),
221
- msg.type == "text" && /* @__PURE__ */ jsx(
222
- "div",
223
- {
224
- style: {
225
- textAlign: msg.$userType === "end_user" ? "right" : "left",
226
- fontSize: 12,
227
- color: vars.chatbot.window.timestampColor
228
- },
229
- children: timeText
230
- }
231
- )
232
- ] });
284
+ ]
285
+ }
286
+ );
233
287
  };
234
288
  export {
235
289
  ChatbotMessage
@@ -4,7 +4,7 @@ import { borderHoverGradient, bubbleButton, bubbleText, bubbleWrapper, inner, sv
4
4
  import { Chatbot } from "./Chatbot.js";
5
5
  import { chatbotAXB, chatbotUFB } from "./Chatbot.css.js";
6
6
  import { ChatWindow } from "./ChatWindow.js";
7
- import { agent_msg, arrowFill, autoResize, button_bar, button_reset, buttonss_section, chatEndCircle, chatEndDialogOverlay, chatFinishDialog, chatNetworkStatus, chat_title, chatbotMenu, chatbotMenuItem, endChatButtonStyle, inline_button, inline_button_wrapper, inputStyle, left_bar_section, messageStyle, messagesContainerStyle, noAnswerButton, notificationStyle, sendButtonStyle, shimmerText, thankyou_image, thankyou_message, thankyou_overlay, user_msg, windowBarStyle, windowOpenStyle, windowStyle } from "./ChatWindow.css.js";
7
+ import { agent_msg, arrowFill, autoResize, button_bar, button_reset, buttonss_section, chatEndCircle, chatEndDialogOverlay, chatFinishDialog, chatNetworkStatus, chat_title, chatbotMenu, chatbotMenuItem, endChatButtonStyle, inline_button, inline_button_wrapper, inputStyle, left_bar_section, messageStyle, messagesContainerStyle, noAnswerButton, notificationStyle, sendButtonStyle, shimmerText, tableCell, tableHead, tableMsg, thankyou_image, thankyou_message, thankyou_overlay, trMortgageTable, user_msg, windowBarStyle, windowOpenStyle, windowStyle } from "./ChatWindow.css.js";
8
8
  import { useOpenChat } from "./store/chat.js";
9
9
  import { useMessages } from "./store/messages.js";
10
10
  export {
@@ -43,9 +43,13 @@ export {
43
43
  sendButtonStyle,
44
44
  shimmerText,
45
45
  svgFill,
46
+ tableCell,
47
+ tableHead,
48
+ tableMsg,
46
49
  thankyou_image,
47
50
  thankyou_message,
48
51
  thankyou_overlay,
52
+ trMortgageTable,
49
53
  useMessages,
50
54
  useOpenChat,
51
55
  user_msg,
@@ -14,6 +14,11 @@ interface OpenChatState {
14
14
  isBlockedInput?: boolean;
15
15
  blockInput?: () => void;
16
16
  unblockInput?: () => void;
17
+ hasStarted: boolean;
18
+ setChatStarted: () => void;
19
+ resetChatStarted: () => void;
20
+ chatStatus: "idle" | "connected" | "connecting" | "ending" | "ended";
21
+ setChatStatus: (status: "idle" | "connected" | "connecting" | "ending" | "ended") => void;
17
22
  }
18
23
  export declare const useOpenChat: import('zustand').UseBoundStore<import('zustand').StoreApi<OpenChatState>>;
19
24
  export {};
@@ -4,6 +4,8 @@ const useOpenChat = create((set, get) => ({
4
4
  hasOpenedOnce: false,
5
5
  showThankyouMessage: false,
6
6
  hasEscalated: false,
7
+ hasStarted: false,
8
+ chatStatus: "idle",
7
9
  toggle: () => set((state) => ({ isOpen: !state.isOpen, hasOpenedOnce: true })),
8
10
  open: () => {
9
11
  const alreadyOpened = get().hasOpenedOnce;
@@ -18,7 +20,8 @@ const useOpenChat = create((set, get) => ({
18
20
  isOpen: false,
19
21
  showThankyouMessage: false,
20
22
  hasEscalated: false,
21
- isBlockedInput: false
23
+ isBlockedInput: false,
24
+ hasStarted: false
22
25
  }),
23
26
  displayThankyouMessage: () => set({ showThankyouMessage: true }),
24
27
  toggleThankyouMessage: () => set((state) => ({ showThankyouMessage: !state.showThankyouMessage })),
@@ -26,7 +29,12 @@ const useOpenChat = create((set, get) => ({
26
29
  endEscalation: () => set({ hasEscalated: false }),
27
30
  isBlockedInput: false,
28
31
  blockInput: () => set({ isBlockedInput: true }),
29
- unblockInput: () => set({ isBlockedInput: false })
32
+ unblockInput: () => set({ isBlockedInput: false }),
33
+ setChatStarted: () => set({ hasStarted: true }),
34
+ resetChatStarted: () => set({ hasStarted: false }),
35
+ setChatStatus: (status) => set({
36
+ chatStatus: status
37
+ })
30
38
  }));
31
39
  export {
32
40
  useOpenChat
@@ -76,8 +76,7 @@ function useHeadlessChat({
76
76
  let chatTimeoutHandler;
77
77
  async function init() {
78
78
  setStatus("connecting");
79
- const { Client, Logger, consoleLoggerHandler } = await import("@ujet/websdk-headless");
80
- if (debug) Logger.addHandler(consoleLoggerHandler);
79
+ const { Client } = await import("@ujet/websdk-headless");
81
80
  try {
82
81
  clientRef.current = new Client({
83
82
  companyId,
@@ -2,7 +2,7 @@
2
2
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
3
  import SvgArrowIcon from "../icons/ArrowIcon/index.js";
4
4
  import "../icons/CheckIcon/CheckIcon.css.js";
5
- 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/AxosBank/NavBar2.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/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/Chatbot.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/BulletItem/BulletItem.css';import '../assets/Typography/Typography.css';import '../assets/Modal/Modal.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 */
5
+ 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/AxosBank/NavBar2.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/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/Chatbot.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/BulletItem/BulletItem.css';import '../assets/Typography/Typography.css';import '../assets/Modal/Modal.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 */
6
6
  /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
@@ -18,7 +18,8 @@ import { Interstitial } from "../Interstitial/Interstitial.js";
18
18
  import { chevron, chevron_wrapper } from "./Chevron.css.js";
19
19
  /* empty css */
20
20
  import { useGlobalContext } from "../Modal/contextApi/store.js";
21
- import { isInternalSamePathHref, mergeHrefWithCurrentSearch, performSamePageQueryParamNavigation } from "../utils/samePageQueryParamsNavigation.js";
21
+ import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
22
+ import { validateLink } from "../utils/validateExternalLinks.js";
22
23
  import clsx from "clsx";
23
24
  import "../Button/Button.css.js";
24
25
  import "react-use";
@@ -73,17 +74,17 @@ import "../Auth/SignInPassword.js";
73
74
  /* empty css */
74
75
  import "../Carousel/index.js";
75
76
  /* empty css */
77
+ /* empty css */
76
78
  /* empty css */
77
79
  import "../Chatbot/store/chat.js";
78
- import "../Chatbot/authenticate.js";
79
- /* empty css */
80
+ import "../Chatbot/Chatbot.js";
80
81
  /* empty css */
81
82
  import "../Chatbot/store/messages.js";
82
83
  /* empty css */
83
84
  import "../Comparison/Comparison.css.js";
84
85
  import "next/image.js";
85
- import "../HeroBanner/HeroBanner.css.js";
86
86
  import "../HeroBanner/LargeBanner.css.js";
87
+ import "../HeroBanner/HeroBanner.css.js";
87
88
  import "../HeroBanner/SelectionBanner.css.js";
88
89
  import "../SetContainer/SetContainer.css.js";
89
90
  import "../Tab/Tab.css.js";
@@ -110,11 +111,15 @@ import "next/navigation.js";
110
111
  /* empty css */
111
112
  /* empty css */
112
113
  import "next/link.js";
114
+ import "../NavigationMenu/AxosBank/MobileMenu/MobileNavData.js";
113
115
  /* empty css */
116
+ import "../NavigationMenu/AxosBank/NavData.js";
114
117
  /* empty css */
115
118
  /* empty css */
119
+ import "../NavigationMenu/AxosALTS/NavData.js";
116
120
  /* empty css */
117
121
  /* empty css */
122
+ import "../NavigationMenu/LaVictoire/NavData.js";
118
123
  import "../PageNavItem/PageNavItem.css.js";
119
124
  import "react-slick";
120
125
  /* empty css */
@@ -142,7 +147,7 @@ const Chevron = ({
142
147
  action
143
148
  }) => {
144
149
  variant = getVariant(variant);
145
- const { setTargetLinkUrl, setOpenModal, validateLink, resolveUrl } = useGlobalContext();
150
+ const { setTargetLinkUrl, setOpenModal } = useGlobalContext();
146
151
  const [isOpenMktInterstitial, setIsOpenMktInterstitial] = useState(false);
147
152
  const openMarketingInterstitial = () => {
148
153
  setIsOpenMktInterstitial(true);
@@ -173,17 +178,6 @@ const Chevron = ({
173
178
  };
174
179
  const onClick = !goBack ? (e) => {
175
180
  if (targetUrl) {
176
- const resolvedHref = resolveUrl(targetUrl);
177
- if (e.currentTarget instanceof HTMLAnchorElement && !e.currentTarget.classList.contains("ext-link") && isInternalSamePathHref(resolvedHref)) {
178
- e.preventDefault();
179
- e.nativeEvent.stopImmediatePropagation();
180
- const merged = mergeHrefWithCurrentSearch(
181
- resolvedHref,
182
- window.location.search
183
- );
184
- performSamePageQueryParamNavigation(merged);
185
- return;
186
- }
187
181
  const external_link = validateLink(targetUrl);
188
182
  if (external_link) {
189
183
  e.nativeEvent.stopImmediatePropagation();
@@ -208,7 +202,7 @@ const Chevron = ({
208
202
  {
209
203
  id,
210
204
  tabIndex: 0,
211
- href: !action ? resolveUrl(targetUrl) : "#!",
205
+ href: !action ? findMoreAxosDomains(targetUrl) : "#!",
212
206
  className: `${chevron({ variant })} ${className ? className : ""}`,
213
207
  onClick: action ? action : marketingIntersitial ? openMarketingInterstitial : onClick,
214
208
  target: newTab ? "_blank" : "_self",