vdb-ai-chat 1.0.1 → 1.0.3

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 (128) hide show
  1. package/dist/10.chat-widget.js +2 -0
  2. package/dist/10.chat-widget.js.LICENSE.txt +1 -0
  3. package/dist/104.chat-widget.js +1 -0
  4. package/dist/50.chat-widget.js +1 -0
  5. package/dist/521.chat-widget.js +1 -0
  6. package/dist/538.chat-widget.js +1 -1
  7. package/dist/572.chat-widget.js +1 -0
  8. package/dist/694.chat-widget.js +1 -0
  9. package/dist/chat-widget.js +1 -1
  10. package/lib/commonjs/api.js +4 -3
  11. package/lib/commonjs/api.js.map +1 -1
  12. package/lib/commonjs/components/BetaNotice.js +38 -0
  13. package/lib/commonjs/components/BetaNotice.js.map +1 -0
  14. package/lib/commonjs/components/ChatHeader.js +27 -20
  15. package/lib/commonjs/components/ChatHeader.js.map +1 -1
  16. package/lib/commonjs/components/ChatInput.js +20 -21
  17. package/lib/commonjs/components/ChatInput.js.map +1 -1
  18. package/lib/commonjs/components/ChatWidget.js +165 -92
  19. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  20. package/lib/commonjs/components/LazyProductsFetcher.js +47 -0
  21. package/lib/commonjs/components/LazyProductsFetcher.js.map +1 -0
  22. package/lib/commonjs/components/MessageBubble.js +26 -90
  23. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  24. package/lib/commonjs/components/MessageMetaRow.js +113 -0
  25. package/lib/commonjs/components/MessageMetaRow.js.map +1 -0
  26. package/lib/commonjs/components/ProductsGrid.js +139 -0
  27. package/lib/commonjs/components/ProductsGrid.js.map +1 -0
  28. package/lib/commonjs/components/ProductsList.js +22 -126
  29. package/lib/commonjs/components/ProductsList.js.map +1 -1
  30. package/lib/commonjs/components/ProductsListView.js +139 -0
  31. package/lib/commonjs/components/ProductsListView.js.map +1 -0
  32. package/lib/commonjs/components/SuggestionsRow.js +50 -27
  33. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  34. package/lib/commonjs/components/utils.js +4 -3
  35. package/lib/commonjs/components/utils.js.map +1 -1
  36. package/lib/commonjs/hooks/useInViewport.js +42 -0
  37. package/lib/commonjs/hooks/useInViewport.js.map +1 -0
  38. package/lib/commonjs/index.web.js +86 -29
  39. package/lib/commonjs/index.web.js.map +1 -1
  40. package/lib/commonjs/theme.js +4 -4
  41. package/lib/commonjs/theme.js.map +1 -1
  42. package/lib/module/api.js +4 -3
  43. package/lib/module/api.js.map +1 -1
  44. package/lib/module/components/BetaNotice.js +30 -0
  45. package/lib/module/components/BetaNotice.js.map +1 -0
  46. package/lib/module/components/ChatHeader.js +27 -20
  47. package/lib/module/components/ChatHeader.js.map +1 -1
  48. package/lib/module/components/ChatInput.js +20 -21
  49. package/lib/module/components/ChatInput.js.map +1 -1
  50. package/lib/module/components/ChatWidget.js +166 -93
  51. package/lib/module/components/ChatWidget.js.map +1 -1
  52. package/lib/module/components/LazyProductsFetcher.js +40 -0
  53. package/lib/module/components/LazyProductsFetcher.js.map +1 -0
  54. package/lib/module/components/MessageBubble.js +26 -92
  55. package/lib/module/components/MessageBubble.js.map +1 -1
  56. package/lib/module/components/MessageMetaRow.js +105 -0
  57. package/lib/module/components/MessageMetaRow.js.map +1 -0
  58. package/lib/module/components/ProductsGrid.js +133 -0
  59. package/lib/module/components/ProductsGrid.js.map +1 -0
  60. package/lib/module/components/ProductsList.js +21 -126
  61. package/lib/module/components/ProductsList.js.map +1 -1
  62. package/lib/module/components/ProductsListView.js +132 -0
  63. package/lib/module/components/ProductsListView.js.map +1 -0
  64. package/lib/module/components/SuggestionsRow.js +51 -28
  65. package/lib/module/components/SuggestionsRow.js.map +1 -1
  66. package/lib/module/components/utils.js +4 -3
  67. package/lib/module/components/utils.js.map +1 -1
  68. package/lib/module/hooks/useInViewport.js +36 -0
  69. package/lib/module/hooks/useInViewport.js.map +1 -0
  70. package/lib/module/index.web.js +86 -29
  71. package/lib/module/index.web.js.map +1 -1
  72. package/lib/module/theme.js +4 -4
  73. package/lib/module/theme.js.map +1 -1
  74. package/lib/typescript/api.d.ts.map +1 -1
  75. package/lib/typescript/components/BetaNotice.d.ts +5 -0
  76. package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
  77. package/lib/typescript/components/ChatHeader.d.ts +5 -2
  78. package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
  79. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  80. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  81. package/lib/typescript/components/LazyProductsFetcher.d.ts +9 -0
  82. package/lib/typescript/components/LazyProductsFetcher.d.ts.map +1 -0
  83. package/lib/typescript/components/MessageBubble.d.ts +7 -3
  84. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  85. package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
  86. package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
  87. package/lib/typescript/components/ProductsGrid.d.ts +10 -0
  88. package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
  89. package/lib/typescript/components/ProductsList.d.ts +4 -2
  90. package/lib/typescript/components/ProductsList.d.ts.map +1 -1
  91. package/lib/typescript/components/ProductsListView.d.ts +10 -0
  92. package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
  93. package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
  94. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  95. package/lib/typescript/components/utils.d.ts +1 -0
  96. package/lib/typescript/components/utils.d.ts.map +1 -1
  97. package/lib/typescript/hooks/useInViewport.d.ts +5 -0
  98. package/lib/typescript/hooks/useInViewport.d.ts.map +1 -0
  99. package/lib/typescript/index.web.d.ts +1 -1
  100. package/lib/typescript/index.web.d.ts.map +1 -1
  101. package/lib/typescript/types.d.ts +3 -1
  102. package/lib/typescript/types.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/src/api.ts +4 -3
  105. package/src/components/BetaNotice.tsx +32 -0
  106. package/src/components/ChatHeader.tsx +32 -18
  107. package/src/components/ChatInput.tsx +23 -21
  108. package/src/components/ChatWidget.tsx +249 -159
  109. package/src/components/LazyProductsFetcher.tsx +41 -0
  110. package/src/components/MessageBubble.tsx +46 -148
  111. package/src/components/MessageMetaRow.tsx +199 -0
  112. package/src/components/ProductsGrid.tsx +163 -0
  113. package/src/components/ProductsList.tsx +20 -146
  114. package/src/components/ProductsListView.tsx +149 -0
  115. package/src/components/SuggestionsRow.tsx +61 -32
  116. package/src/components/utils.ts +6 -4
  117. package/src/hooks/useInViewport.ts +38 -0
  118. package/src/index.web.tsx +87 -32
  119. package/src/theme.ts +4 -4
  120. package/src/types.ts +3 -2
  121. package/dist/751.chat-widget.js +0 -1
  122. package/lib/commonjs/contexts/SegmentClientContext.js +0 -19
  123. package/lib/commonjs/contexts/SegmentClientContext.js.map +0 -1
  124. package/lib/module/contexts/SegmentClientContext.js +0 -10
  125. package/lib/module/contexts/SegmentClientContext.js.map +0 -1
  126. package/lib/typescript/contexts/SegmentClientContext.d.ts +0 -9
  127. package/lib/typescript/contexts/SegmentClientContext.d.ts.map +0 -1
  128. package/src/contexts/SegmentClientContext.tsx +0 -20
@@ -8,11 +8,13 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _ChatInput = require("./ChatInput");
10
10
  var _MessageBubble = require("./MessageBubble");
11
+ var _MessageMetaRow = _interopRequireDefault(require("./MessageMetaRow"));
11
12
  var _theme = require("../theme");
12
13
  var _api = require("../api");
13
14
  var _ChatHeader = _interopRequireDefault(require("./ChatHeader"));
14
- var _SuggestionsRow = _interopRequireDefault(require("./SuggestionsRow"));
15
+ var _BetaNotice = _interopRequireDefault(require("./BetaNotice"));
15
16
  var _ProductsList = _interopRequireDefault(require("./ProductsList"));
17
+ var _LazyProductsFetcher = _interopRequireDefault(require("./LazyProductsFetcher"));
16
18
  var _utils = require("./utils");
17
19
  var _useAnalytics = require("../hooks/useAnalytics");
18
20
  var _storage = require("../storage");
@@ -20,7 +22,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
20
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
23
  const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
22
24
  apiUrl,
23
- userId: userIdProp,
24
25
  userToken: userTokenProp,
25
26
  priceMode: priceModeProp,
26
27
  modalHeight,
@@ -30,7 +31,8 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
30
31
  onClose,
31
32
  onClearChat,
32
33
  onViewAllPress,
33
- onItemPress: onItemPressProp
34
+ onItemPress: onItemPressProp,
35
+ isBetaMode: isBetaModeProp
34
36
  }, ref) => {
35
37
  const [messages, setMessages] = (0, _react.useState)(initialMessages);
36
38
  const [input, setInput] = (0, _react.useState)("");
@@ -39,11 +41,10 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
39
41
  const [typingMessageId, setTypingMessageId] = (0, _react.useState)(null);
40
42
  const [typingFullText, setTypingFullText] = (0, _react.useState)("");
41
43
  const [assistantResponse, setAssistantResponse] = (0, _react.useState)(undefined);
44
+ const [scrollY, setScrollY] = (0, _react.useState)(0);
42
45
  const [productsByMsg, setProductsByMsg] = (0, _react.useState)({});
43
46
  const [reloadLoadingIds, setReloadLoadingIds] = (0, _react.useState)(new Set());
44
47
  const [priceMode, setPriceMode] = (0, _react.useState)(priceModeProp || null);
45
- const [conversationId, setConversationId] = (0, _react.useState)(null);
46
- const [userId, setUserId] = (0, _react.useState)(userIdProp || "");
47
48
  const [userToken, setUserToken] = (0, _react.useState)(userTokenProp || "");
48
49
  const scrollRef = (0, _react.useRef)(null);
49
50
  const inputRef = (0, _react.useRef)(null);
@@ -51,16 +52,11 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
51
52
  const {
52
53
  _identify
53
54
  } = (0, _useAnalytics.useUserAnalytics)();
54
- // Load user auth data from storage on mount
55
+ const betaActive = Boolean(isBetaModeProp);
56
+ const noResultsText = "No results found for your search. Try adjusting your filters or query.";
55
57
  (0, _react.useEffect)(() => {
56
58
  const loadAuthData = async () => {
57
59
  try {
58
- if (!userIdProp) {
59
- const userData = await _storage.Storage.getJSON("userData", {});
60
- if (userData?.id) {
61
- setUserId(userData.id);
62
- }
63
- }
64
60
  if (!userTokenProp) {
65
61
  const token = await _storage.Storage.getItem("token");
66
62
  if (token) {
@@ -72,41 +68,34 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
72
68
  }
73
69
  };
74
70
  loadAuthData();
75
- }, [userIdProp, userTokenProp]);
71
+ }, [userTokenProp]);
76
72
  const onViewAll = (0, _react.useCallback)(() => {
77
73
  const searchPayload = JSON.stringify(assistantResponse?.search_payload);
78
74
  const payload = assistantResponse?.search_payload;
79
75
  if (!payload) return;
80
76
  const domain = apiUrl.split("v3");
81
77
  const deepLinkUrl = `${domain[0]}webapp/${payload.lab_grown === "true" ? "lab-grown-diamonds" : "natural-diamonds"}/search?priceMode=${priceMode}&productType=${payload.lab_grown === "true" ? "lab_grown_diamond" : "diamond"}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=Single%20Stones&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${searchPayload}`;
82
-
83
- // If custom handler is provided (React Native), use it
84
78
  if (onViewAllPress) {
85
79
  onViewAllPress(deepLinkUrl, payload);
86
80
  } else if (_reactNative.Platform.OS === "web") {
87
- // Default behavior for web
88
81
  window.open(deepLinkUrl, "_parent");
89
82
  }
90
83
  }, [assistantResponse, apiUrl, priceMode, onViewAllPress]);
91
84
  const onItemPress = (0, _react.useCallback)(item => {
92
85
  const domain = apiUrl.split("v3");
93
86
  const deepLinkUrl = `${domain[0]}webapp/${item.type === "lab_grown_diamond" ? "lab-grown-diamonds" : "natural-diamonds"}/item-detail/${item.id}?productType=${item.type}&priceMode=${priceMode}&breadCrumbLabel=Stone%20Details`;
94
-
95
- // If custom handler is provided (React Native), use it
96
87
  if (onItemPressProp) {
97
88
  onItemPressProp(deepLinkUrl, item);
98
89
  } else if (_reactNative.Platform.OS === "web") {
99
- // Default behavior for web
100
90
  window.open(deepLinkUrl, "_parent");
101
91
  }
102
92
  }, [apiUrl, priceMode, onItemPressProp]);
103
- const hasAuth = (0, _react.useMemo)(() => Boolean(userId || userToken), [userId, userToken]);
93
+ const hasAuth = (0, _react.useMemo)(() => Boolean(userToken), [userToken]);
104
94
  const apiParams = (0, _react.useMemo)(() => ({
105
- conversationId: userToken || userId
106
- }), [userId, userToken]);
95
+ conversationId: userToken
96
+ }), [userToken]);
107
97
  const handleFeedbackAction = (0, _react.useCallback)(async (action, conversation_id, message_id) => {
108
98
  try {
109
- // Use functional update to get current messages without dependency
110
99
  let currentReaction = "0";
111
100
  setMessages(prev => {
112
101
  const msg = prev.find(m => m.id === message_id);
@@ -127,8 +116,6 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
127
116
  console.error("Feedback API error", e);
128
117
  }
129
118
  }, []);
130
-
131
- // Load initial history on mount
132
119
  (0, _react.useEffect)(() => {
133
120
  let cancelled = false;
134
121
  const load = async () => {
@@ -136,7 +123,31 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
136
123
  try {
137
124
  const initial = await (0, _api.fetchInitialMessages)(apiUrl, apiParams, priceMode);
138
125
  if (!cancelled) {
139
- setMessages((0, _api.normaliseMessages)(initial).reverse());
126
+ const normalised = (0, _api.normaliseMessages)(initial).reverse();
127
+ if (normalised.length === 0) {
128
+ const initialAssistant = {
129
+ id: "",
130
+ role: "assistant",
131
+ text: "Hello! How can I help you today?",
132
+ createdAt: Date.now(),
133
+ isLoading: false,
134
+ suggestions: ["Search Natural Diamonds", "Search Lab-Grown Diamonds"],
135
+ reaction: "0"
136
+ };
137
+ setMessages([initialAssistant]);
138
+ setTimeout(() => {
139
+ scrollRef.current?.scrollToEnd({
140
+ animated: false
141
+ });
142
+ }, 0);
143
+ } else {
144
+ setMessages(normalised);
145
+ setTimeout(() => {
146
+ scrollRef.current?.scrollToEnd({
147
+ animated: false
148
+ });
149
+ }, 0);
150
+ }
140
151
  }
141
152
  } catch (error) {
142
153
  console.error("Failed to fetch initial messages", error);
@@ -164,6 +175,7 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
164
175
  role: "assistant",
165
176
  text: "Thinking",
166
177
  createdAt: Date.now(),
178
+ reaction: "0",
167
179
  isLoading: true
168
180
  };
169
181
  setMessages(prev => [...prev, userMessage, loadingMessage]);
@@ -184,12 +196,10 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
184
196
  const latestAssistant = normalised.find(m => m.role === "assistant");
185
197
  setAssistantResponse(latestAssistant);
186
198
  if (latestAssistant?.text) {
187
- // If there is an agent_response, try to fetch products first
188
199
  if (latestAssistant?.search_payload && typeof latestAssistant.search_payload === "object" && Object.keys(latestAssistant.search_payload).length > 0) {
189
200
  const productsResult = await (0, _api.getProducts)(latestAssistant.search_payload);
190
201
  const hasDiamonds = productsResult && productsResult.response && productsResult.response.body && Array.isArray(productsResult.response.body.diamonds) && productsResult.response.body.diamonds.length > 0;
191
202
  if (!hasDiamonds) {
192
- const noResultsText = "No results found for your search. Try adjusting your filters or query.";
193
203
  setLoadingMessageId(null);
194
204
  setTypingMessageId(null);
195
205
  setTypingFullText("");
@@ -197,16 +207,15 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
197
207
  ...msg,
198
208
  id: latestAssistant?.id ?? msg.id,
199
209
  text: noResultsText,
200
- isLoading: false,
201
- suggestions: []
210
+ isLoading: false
202
211
  } : msg));
203
212
  inputRef.current?.focus();
204
213
  return;
205
214
  }
206
- setProductsByMsg({
207
- messageId: latestAssistant.id,
208
- data: productsResult
209
- });
215
+ setProductsByMsg(prev => ({
216
+ ...prev,
217
+ [latestAssistant.id]: productsResult
218
+ }));
210
219
  }
211
220
  setLoadingMessageId(null);
212
221
  setMessages(prev => prev.map(msg => msg.id === loadingId ? {
@@ -216,11 +225,12 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
216
225
  isLoading: false,
217
226
  suggestions: latestAssistant.suggestions
218
227
  } : msg));
219
-
220
- // Use setTimeout to ensure state is updated before starting typewriter
221
228
  setTimeout(() => {
222
229
  setTypingMessageId(latestAssistant.id);
223
230
  setTypingFullText(latestAssistant.text);
231
+ scrollRef.current?.scrollToEnd({
232
+ animated: true
233
+ });
224
234
  }, 50);
225
235
  } else {
226
236
  setMessages(prev => prev.map(msg => msg.id === loadingId ? {
@@ -284,7 +294,7 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
284
294
  (0, _react.useEffect)(() => {
285
295
  _reactNative.DeviceEventEmitter.addListener("clearChat", handleClearChat);
286
296
  _reactNative.DeviceEventEmitter.addListener("changePriceMode", data => changePriceMode(data.priceMode));
287
- changePriceMode(undefined);
297
+ changePriceMode();
288
298
  identifySegmentUser();
289
299
  return () => {
290
300
  _reactNative.DeviceEventEmitter.removeAllListeners("clearChat");
@@ -292,37 +302,24 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
292
302
  };
293
303
  }, []);
294
304
  const changePriceMode = async _priceMode => {
295
- // Priority: passed argument > prop > storage
296
305
  if (!_priceMode && priceModeProp) {
297
306
  _priceMode = priceModeProp;
298
307
  }
299
308
  if (!_priceMode) {
300
- const userData = await _storage.Storage.getJSON("userData", {});
309
+ let userData = await _storage.Storage.getJSON("persist:userInfo", {
310
+ user: undefined
311
+ });
312
+ userData = userData && userData.user ? JSON.parse(userData.user) : {};
301
313
  _priceMode = userData?.price_mode;
302
314
  }
303
- setPriceMode(_priceMode || null);
315
+ setPriceMode(_priceMode === undefined ? null : String(_priceMode));
304
316
  };
305
-
306
- // Update conversationId when priceMode changes
307
- (0, _react.useEffect)(() => {
308
- const loadConversationId = async () => {
309
- if (!priceMode) {
310
- setConversationId(null);
311
- return;
312
- }
313
- const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
314
- const storedId = conversations?.[priceMode]?.conversation_id ?? null;
315
- setConversationId(storedId ? String(storedId) : null);
316
- };
317
- loadConversationId();
318
- }, [priceMode, messages]); // Re-fetch when messages change (new conversation might be created)
319
-
320
317
  const handleClearChat = (0, _react.useCallback)(async () => {
321
318
  try {
322
319
  const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
323
- const storedId = conversations?.[priceMode]?.conversation_id ?? null;
320
+ const storedId = conversations ? conversations[priceMode]?.conversation_id : null;
324
321
  if (storedId && priceMode) {
325
- const updatedConversations = conversations || {};
322
+ const updatedConversations = conversations ?? {};
326
323
  delete updatedConversations[priceMode];
327
324
  await _storage.Storage.setJSON("vdbchat_conversations", updatedConversations);
328
325
  }
@@ -335,30 +332,39 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
335
332
  setTypingMessageId(null);
336
333
  setTypingFullText("");
337
334
  const fresh = await (0, _api.fetchInitialMessages)(apiUrl, undefined, priceMode);
338
- setMessages((0, _api.normaliseMessages)(fresh).reverse());
335
+ const normalised = (0, _api.normaliseMessages)(fresh).reverse();
336
+ if (normalised.length === 0) {
337
+ const initialAssistant = {
338
+ id: "",
339
+ role: "assistant",
340
+ text: "Hello! How can I help you today?",
341
+ createdAt: Date.now(),
342
+ isLoading: false,
343
+ suggestions: ["Search Natural Diamonds", "Search Lab-Grown Diamonds"],
344
+ reaction: "0"
345
+ };
346
+ setMessages([initialAssistant]);
347
+ } else {
348
+ setMessages(normalised);
349
+ }
350
+ setTimeout(() => {
351
+ scrollRef.current?.scrollToEnd({
352
+ animated: false
353
+ });
354
+ }, 500);
339
355
  onClearChat?.();
340
356
  } catch (err) {
341
357
  console.error("Failed to clear chat", err);
342
358
  }
343
- }, [apiUrl, onClearChat, priceMode]);
344
-
345
- // Expose clearChat method via ref for external use (React Native)
346
- (0, _react.useImperativeHandle)(ref, () => ({
347
- clearChat: handleClearChat
348
- }), [handleClearChat]);
349
-
350
- // "Thinking..." dot animation while waiting for the API
359
+ }, [apiUrl, priceMode]);
351
360
  (0, _react.useEffect)(() => {
352
- if (!loadingMessageId || typingMessageId) {
353
- return;
354
- }
361
+ if (!loadingMessageId || typingMessageId) return;
355
362
  let step = 0;
356
363
  const base = "Thinking";
357
- const msgId = loadingMessageId;
358
364
  const interval = setInterval(() => {
359
365
  step = (step + 1) % 3;
360
366
  const dots = ".".repeat(step + 1);
361
- setMessages(prev => prev.map(msg => msg.id === msgId && msg.isLoading ? {
367
+ setMessages(prev => prev.map(msg => msg.id === loadingMessageId && msg.isLoading ? {
362
368
  ...msg,
363
369
  text: `${base}${dots}`
364
370
  } : msg));
@@ -367,8 +373,9 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
367
373
  clearInterval(interval);
368
374
  };
369
375
  }, [loadingMessageId, typingMessageId]);
370
-
371
- // Typewriter-style animation for assistant reply once it arrives
376
+ (0, _react.useImperativeHandle)(ref, () => ({
377
+ clearChat: handleClearChat
378
+ }), [handleClearChat]);
372
379
  const typingIndexRef = (0, _react.useRef)(0);
373
380
  (0, _react.useEffect)(() => {
374
381
  if (!typingMessageId || !typingFullText) {
@@ -407,17 +414,27 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
407
414
  }]
408
415
  }, _reactNative.Platform.OS === "web" && /*#__PURE__*/_react.default.createElement(_ChatHeader.default, {
409
416
  onClose: onClose,
410
- onClearChat: handleClearChat
411
- }), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
417
+ onClearChat: handleClearChat,
418
+ isBetaMode: betaActive
419
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.KeyboardAvoidingView, {
420
+ style: {
421
+ flex: 1
422
+ },
423
+ behavior: _reactNative.Platform.OS === "ios" ? "padding" : "height",
424
+ keyboardVerticalOffset: _reactNative.Platform.OS === "ios" ? 100 : -16
425
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
412
426
  ref: scrollRef,
427
+ keyboardShouldPersistTaps: "handled",
428
+ onScroll: e => setScrollY(e.nativeEvent.contentOffset.y),
429
+ scrollEventThrottle: 16,
413
430
  style: modalHeight ? {
414
431
  height: modalHeight,
415
- backgroundColor: "#f5f5f5"
432
+ backgroundColor: "#FFFFFF"
416
433
  } : {
417
- backgroundColor: "#f5f5f5"
434
+ backgroundColor: "#FFFFFF"
418
435
  },
419
436
  contentContainerStyle: {
420
- backgroundColor: theme?.listContentBackgroundColor || "#f5f5f5",
437
+ backgroundColor: theme?.listContentBackgroundColor || "#FFFFFF",
421
438
  ...styles.listContent,
422
439
  justifyContent: messages.length === 0 ? "center" : "flex-end",
423
440
  minHeight: modalHeight ? modalHeight : undefined
@@ -435,26 +452,69 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
435
452
  const ordered = [...messages];
436
453
  return ordered.map((item, index) => {
437
454
  const isLatest = index === ordered.length - 1;
455
+ const hasDiamonds = Boolean(productsByMsg[item.id]?.response?.body?.diamonds && productsByMsg[item.id]?.response?.body?.diamonds.length > 0);
438
456
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
439
- key: item.id + index
457
+ key: item.id + index,
458
+ style: {
459
+ gap: 12
460
+ }
440
461
  }, /*#__PURE__*/_react.default.createElement(_MessageBubble.MessageBubble, {
441
462
  message: item,
442
463
  theme: theme,
443
- conversationId: conversationId,
464
+ priceMode: priceMode,
444
465
  handleFeedbackAction: handleFeedbackAction,
445
466
  onReloadResults: handleReloadResults,
446
467
  reloading: reloadLoadingIds.has(item.id),
447
- hasResults: Boolean(productsByMsg[item.id]?.response?.body?.diamonds && productsByMsg[item.id].response.body.diamonds.length > 0)
448
- }), item.role === "assistant" && productsByMsg && productsByMsg.messageId === item.id && /*#__PURE__*/_react.default.createElement(_ProductsList.default, {
449
- data: productsByMsg?.data?.response?.body?.diamonds,
468
+ hasResults: hasDiamonds,
469
+ totalResults: productsByMsg[item.id]?.response?.header?.total_diamonds_found || 0,
470
+ shownResults: productsByMsg[item.id]?.response?.body?.diamonds.length || 0,
471
+ onSuggestionSelect: handleSuggestionSelect,
472
+ isLatest: isLatest,
473
+ isTyping: typingMessageId === item.id
474
+ }), item.role === "assistant" && item.search_payload && Object.keys(item.search_payload).length > 0 && !productsByMsg[item.id] && /*#__PURE__*/_react.default.createElement(_LazyProductsFetcher.default, {
475
+ messageId: item.id,
476
+ payload: item.search_payload,
477
+ onFetched: (id, result) => {
478
+ setProductsByMsg(prev => ({
479
+ ...prev,
480
+ [id]: result
481
+ }));
482
+ const diamonds = result?.response?.body?.diamonds;
483
+ const hasAny = Array.isArray(diamonds) && diamonds.length > 0;
484
+ if (hasAny) {
485
+ try {
486
+ scrollRef.current?.scrollTo({
487
+ x: 0,
488
+ y: scrollY + 120,
489
+ animated: true
490
+ });
491
+ } catch (_) {}
492
+ } else {
493
+ setMessages(prev => prev.map(msg => msg.id === id ? {
494
+ ...msg,
495
+ id: msg.id,
496
+ text: noResultsText,
497
+ isLoading: false
498
+ } : msg));
499
+ }
500
+ }
501
+ }), item.role === "assistant" && hasDiamonds && /*#__PURE__*/_react.default.createElement(_ProductsList.default, {
502
+ data: productsByMsg[item.id]?.response?.body?.diamonds || [],
503
+ totalResults: productsByMsg[item.id]?.response?.header?.total_diamonds_found || 0,
450
504
  onViewAll: onViewAll,
451
505
  onItemPress: onItemPress
452
- }), item.role === "assistant" && item.suggestions && item.suggestions.length > 0 && isLatest && /*#__PURE__*/_react.default.createElement(_SuggestionsRow.default, {
453
- suggestions: item.suggestions || [],
454
- onSelect: handleSuggestionSelect
506
+ }), /*#__PURE__*/_react.default.createElement(_MessageMetaRow.default, {
507
+ message: item,
508
+ priceMode: priceMode || "",
509
+ handleFeedbackAction: handleFeedbackAction,
510
+ onReloadResults: handleReloadResults,
511
+ reloading: reloadLoadingIds.has(item.id),
512
+ hasResults: hasDiamonds
455
513
  }));
456
514
  });
457
- })()), /*#__PURE__*/_react.default.createElement(_ChatInput.ChatInput, {
515
+ })()), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
516
+ style: styles.bottomContainer
517
+ }, /*#__PURE__*/_react.default.createElement(_ChatInput.ChatInput, {
458
518
  value: input,
459
519
  onChangeText: setInput,
460
520
  onSend: handleSend,
@@ -462,7 +522,9 @@ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
462
522
  placeholder: placeholder,
463
523
  theme: theme,
464
524
  inputRef: inputRef
465
- }));
525
+ }), /*#__PURE__*/_react.default.createElement(_BetaNotice.default, {
526
+ active: betaActive
527
+ }))));
466
528
  });
467
529
  ChatWidget.displayName = "ChatWidget";
468
530
  const styles = _reactNative.StyleSheet.create({
@@ -483,12 +545,23 @@ const styles = _reactNative.StyleSheet.create({
483
545
  padding: 16,
484
546
  alignItems: "center",
485
547
  justifyContent: "center",
486
- backgroundColor: "#f5f5f5"
548
+ backgroundColor: "#FFFFFF"
487
549
  },
488
550
  emptyText: {
489
- fontSize: 14,
490
- fontWeight: "500",
491
- color: "#666666"
551
+ fontSize: 13,
552
+ fontWeight: "400",
553
+ color: "#4F4E57"
554
+ },
555
+ bottomContainer: {
556
+ paddingVertical: 12,
557
+ paddingHorizontal: 16,
558
+ borderTopColor: "#E0E0E0",
559
+ borderTopWidth: 1,
560
+ flexDirection: "column",
561
+ justifyContent: "space-between",
562
+ alignItems: "center",
563
+ alignSelf: "stretch",
564
+ gap: 12
492
565
  }
493
566
  });
494
567
  //# sourceMappingURL=ChatWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_ChatInput","_MessageBubble","_theme","_api","_ChatHeader","_interopRequireDefault","_SuggestionsRow","_ProductsList","_utils","_useAnalytics","_storage","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChatWidget","exports","forwardRef","apiUrl","userId","userIdProp","userToken","userTokenProp","priceMode","priceModeProp","modalHeight","theme","themeOverrides","initialMessages","placeholder","onClose","onClearChat","onViewAllPress","onItemPress","onItemPressProp","ref","messages","setMessages","useState","input","setInput","loading","setLoading","loadingMessageId","setLoadingMessageId","typingMessageId","setTypingMessageId","typingFullText","setTypingFullText","assistantResponse","setAssistantResponse","undefined","productsByMsg","setProductsByMsg","reloadLoadingIds","setReloadLoadingIds","Set","setPriceMode","conversationId","setConversationId","setUserId","setUserToken","scrollRef","useRef","inputRef","useMemo","mergeTheme","_identify","useUserAnalytics","useEffect","loadAuthData","userData","Storage","getJSON","id","token","getItem","console","error","onViewAll","useCallback","searchPayload","JSON","stringify","search_payload","payload","domain","split","deepLinkUrl","lab_grown","Platform","OS","window","open","item","type","hasAuth","Boolean","apiParams","handleFeedbackAction","action","conversation_id","message_id","currentReaction","prev","msg","find","m","reaction","nextAction","FeedbackAction","UNSET","res","handleFeedbackActionApi","ok","map","status","cancelled","load","initial","fetchInitialMessages","normaliseMessages","reverse","length","sendMessage","rawText","trimmed","trim","userMessage","Date","now","role","text","createdAt","loadingId","loadingMessage","isLoading","historyForApi","updatedMessages","sendUserMessage","normalised","latestAssistant","keys","productsResult","getProducts","hasDiamonds","response","body","Array","isArray","diamonds","noResultsText","suggestions","current","focus","messageId","data","setTimeout","err","identifySegmentUser","user","getUserDetails","email","then","handleSend","handleSuggestionSelect","value","handleReloadResults","add","next","delete","DeviceEventEmitter","addListener","handleClearChat","changePriceMode","removeAllListeners","_priceMode","price_mode","loadConversationId","conversations","storedId","String","updatedConversations","setJSON","fresh","useImperativeHandle","clearChat","step","base","msgId","interval","setInterval","dots","repeat","clearInterval","typingIndexRef","total","finalMsgId","fullText","currentIndex","slice","createElement","View","style","styles","container","backgroundColor","ScrollView","height","contentContainerStyle","listContentBackgroundColor","listContent","justifyContent","minHeight","onContentSizeChange","scrollToEnd","animated","emptyContainer","Text","emptyText","formatToTime","ordered","index","isLatest","key","MessageBubble","message","onReloadResults","reloading","hasResults","onSelect","ChatInput","onChangeText","onSend","disabled","displayName","StyleSheet","create","flex","width","paddingVertical","flexGrow","alignItems","padding","fontSize","fontWeight","color"],"sourceRoot":"../../../src","sources":["components/ChatWidget.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_ChatInput","_MessageBubble","_MessageMetaRow","_interopRequireDefault","_theme","_api","_ChatHeader","_BetaNotice","_ProductsList","_LazyProductsFetcher","_utils","_useAnalytics","_storage","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChatWidget","exports","forwardRef","apiUrl","userToken","userTokenProp","priceMode","priceModeProp","modalHeight","theme","themeOverrides","initialMessages","placeholder","onClose","onClearChat","onViewAllPress","onItemPress","onItemPressProp","isBetaMode","isBetaModeProp","ref","messages","setMessages","useState","input","setInput","loading","setLoading","loadingMessageId","setLoadingMessageId","typingMessageId","setTypingMessageId","typingFullText","setTypingFullText","assistantResponse","setAssistantResponse","undefined","scrollY","setScrollY","productsByMsg","setProductsByMsg","reloadLoadingIds","setReloadLoadingIds","Set","setPriceMode","setUserToken","scrollRef","useRef","inputRef","useMemo","mergeTheme","_identify","useUserAnalytics","betaActive","Boolean","noResultsText","useEffect","loadAuthData","token","Storage","getItem","console","error","onViewAll","useCallback","searchPayload","JSON","stringify","search_payload","payload","domain","split","deepLinkUrl","lab_grown","Platform","OS","window","open","item","type","id","hasAuth","apiParams","conversationId","handleFeedbackAction","action","conversation_id","message_id","currentReaction","prev","msg","find","m","reaction","nextAction","FeedbackAction","UNSET","res","handleFeedbackActionApi","ok","map","status","cancelled","load","initial","fetchInitialMessages","normalised","normaliseMessages","reverse","length","initialAssistant","role","text","createdAt","Date","now","isLoading","suggestions","setTimeout","current","scrollToEnd","animated","sendMessage","rawText","trimmed","trim","userMessage","loadingId","loadingMessage","historyForApi","updatedMessages","sendUserMessage","latestAssistant","keys","productsResult","getProducts","hasDiamonds","response","body","Array","isArray","diamonds","focus","err","identifySegmentUser","user","getUserDetails","userId","email","then","handleSend","handleSuggestionSelect","value","handleReloadResults","add","next","delete","DeviceEventEmitter","addListener","handleClearChat","data","changePriceMode","removeAllListeners","_priceMode","userData","getJSON","parse","price_mode","String","conversations","storedId","updatedConversations","setJSON","fresh","step","base","interval","setInterval","dots","repeat","clearInterval","useImperativeHandle","clearChat","typingIndexRef","total","finalMsgId","fullText","currentIndex","slice","createElement","View","style","styles","container","backgroundColor","KeyboardAvoidingView","flex","behavior","keyboardVerticalOffset","ScrollView","keyboardShouldPersistTaps","onScroll","nativeEvent","contentOffset","y","scrollEventThrottle","height","contentContainerStyle","listContentBackgroundColor","listContent","justifyContent","minHeight","onContentSizeChange","emptyContainer","Text","emptyText","formatToTime","ordered","index","isLatest","key","gap","MessageBubble","message","onReloadResults","reloading","hasResults","totalResults","header","total_diamonds_found","shownResults","onSuggestionSelect","isTyping","messageId","onFetched","result","hasAny","scrollTo","x","_","bottomContainer","ChatInput","onChangeText","onSend","disabled","active","displayName","StyleSheet","create","width","paddingVertical","flexGrow","alignItems","padding","fontSize","fontWeight","color","paddingHorizontal","borderTopColor","borderTopWidth","flexDirection","alignSelf"],"sourceRoot":"../../../src","sources":["components/ChatWidget.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AASA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,IAAA,GAAAP,OAAA;AAQA,IAAAQ,WAAA,GAAAH,sBAAA,CAAAL,OAAA;AACA,IAAAS,WAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,aAAA,GAAAL,sBAAA,CAAAL,OAAA;AACA,IAAAW,oBAAA,GAAAN,sBAAA,CAAAL,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AAMA,IAAAa,aAAA,GAAAb,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AAAqC,SAAAK,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAApB,uBAAA,YAAAA,CAAAgB,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAE9B,MAAMgB,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAG,IAAAE,iBAAU,EAClC,CACE;EACEC,MAAM;EACNC,SAAS,EAAEC,aAAa;EACxBC,SAAS,EAAEC,aAAa;EACxBC,WAAW;EACXC,KAAK,EAAEC,cAAc;EACrBC,eAAe,GAAG,EAAE;EACpBC,WAAW;EACXC,OAAO;EACPC,WAAW;EACXC,cAAc;EACdC,WAAW,EAAEC,eAAe;EAC5BC,UAAU,EAAEC;AACd,CAAC,EACDC,GAAG,KACA;EACH,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAgBZ,eAAe,CAAC;EACxE,MAAM,CAACa,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EACtC,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACK,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAN,eAAQ,EACtD,IACF,CAAC;EACD,MAAM,CAACO,eAAe,EAAEC,kBAAkB,CAAC,GAAG,IAAAR,eAAQ,EAAgB,IAAI,CAAC;EAC3E,MAAM,CAACS,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAV,eAAQ,EAAS,EAAE,CAAC;EAChE,MAAM,CAACW,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAZ,eAAQ,EAExDa,SAAS,CAAC;EACZ,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAf,eAAQ,EAAC,CAAC,CAAC;EACzC,MAAM,CAACgB,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAjB,eAAQ,EAAsB,CAAC,CAAC,CAAC;EAC3E,MAAM,CAACkB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAnB,eAAQ,EACtD,IAAIoB,GAAG,CAAC,CACV,CAAC;EACD,MAAM,CAACrC,SAAS,EAAEsC,YAAY,CAAC,GAAG,IAAArB,eAAQ,EACxChB,aAAa,IAAI,IACnB,CAAC;EACD,MAAM,CAACH,SAAS,EAAEyC,YAAY,CAAC,GAAG,IAAAtB,eAAQ,EAASlB,aAAa,IAAI,EAAE,CAAC;EACvE,MAAMyC,SAAS,GAAG,IAAAC,aAAM,EAAoB,IAAI,CAAC;EACjD,MAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAmB,IAAI,CAAC;EAC/C,MAAMtC,KAAK,GAAG,IAAAwC,cAAO,EAAC,MAAM,IAAAC,iBAAU,EAACxC,cAAc,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EACzE,MAAM;IAAEyC;EAAU,CAAC,GAAG,IAAAC,8BAAgB,EAAC,CAAC;EACxC,MAAMC,UAAU,GAAGC,OAAO,CAACnC,cAAc,CAAC;EAC1C,MAAMoC,aAAa,GACjB,wEAAwE;EAC1E,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,YAAY,GAAG,MAAAA,CAAA,KAAY;MAC/B,IAAI;QACF,IAAI,CAACpD,aAAa,EAAE;UAClB,MAAMqD,KAAK,GAAG,MAAMC,gBAAO,CAACC,OAAO,CAAC,OAAO,CAAC;UAC5C,IAAIF,KAAK,EAAE;YACTb,YAAY,CAACa,KAAK,CAAC;UACrB;QACF;MACF,CAAC,CAAC,OAAO7E,CAAC,EAAE;QACVgF,OAAO,CAACC,KAAK,CAAC,uCAAuC,EAAEjF,CAAC,CAAC;MAC3D;IACF,CAAC;IACD4E,YAAY,CAAC,CAAC;EAChB,CAAC,EAAE,CAACpD,aAAa,CAAC,CAAC;EAEnB,MAAM0D,SAAS,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAClC,MAAMC,aAAa,GAAGC,IAAI,CAACC,SAAS,CAACjC,iBAAiB,EAAEkC,cAAc,CAAC;IACvE,MAAMC,OAAO,GAAGnC,iBAAiB,EAAEkC,cAAc;IACjD,IAAI,CAACC,OAAO,EAAE;IAEd,MAAMC,MAAM,GAAGnE,MAAM,CAACoE,KAAK,CAAC,IAAI,CAAC;IACjC,MAAMC,WAAW,GAAG,GAAGF,MAAM,CAAC,CAAC,CAAC,UAC9BD,OAAO,CAACI,SAAS,KAAK,MAAM,GAAG,oBAAoB,GAAG,kBAAkB,qBACrDnE,SAAS,gBAC5B+D,OAAO,CAACI,SAAS,KAAK,MAAM,GAAG,mBAAmB,GAAG,SAAS,8IAC8ER,aAAa,EAAE;IAE7J,IAAIlD,cAAc,EAAE;MAClBA,cAAc,CAACyD,WAAW,EAAEH,OAAO,CAAC;IACtC,CAAC,MAAM,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAChCC,MAAM,CAACC,IAAI,CAACL,WAAW,EAAE,SAAS,CAAC;IACrC;EACF,CAAC,EAAE,CAACtC,iBAAiB,EAAE/B,MAAM,EAAEG,SAAS,EAAES,cAAc,CAAC,CAAC;EAE1D,MAAMC,WAAW,GAAG,IAAAgD,kBAAW,EAC5Bc,IAAS,IAAK;IACb,MAAMR,MAAM,GAAGnE,MAAM,CAACoE,KAAK,CAAC,IAAI,CAAC;IACjC,MAAMC,WAAW,GAAG,GAAGF,MAAM,CAAC,CAAC,CAAC,UAC9BQ,IAAI,CAACC,IAAI,KAAK,mBAAmB,GAC7B,oBAAoB,GACpB,kBAAkB,gBACRD,IAAI,CAACE,EAAE,gBACrBF,IAAI,CAACC,IAAI,cACGzE,SAAS,kCAAkC;IAEzD,IAAIW,eAAe,EAAE;MACnBA,eAAe,CAACuD,WAAW,EAAEM,IAAI,CAAC;IACpC,CAAC,MAAM,IAAIJ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAChCC,MAAM,CAACC,IAAI,CAACL,WAAW,EAAE,SAAS,CAAC;IACrC;EACF,CAAC,EACD,CAACrE,MAAM,EAAEG,SAAS,EAAEW,eAAe,CACrC,CAAC;EAED,MAAMgE,OAAO,GAAG,IAAAhC,cAAO,EAAC,MAAMK,OAAO,CAAClD,SAAS,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAE9D,MAAM8E,SAAwB,GAAG,IAAAjC,cAAO,EACtC,OAAO;IACLkC,cAAc,EAAE/E;EAClB,CAAC,CAAC,EACF,CAACA,SAAS,CACZ,CAAC;EAED,MAAMgF,oBAAoB,GAAG,IAAApB,kBAAW,EACtC,OACEqB,MAAsB,EACtBC,eAAuB,EACvBC,UAAkB,KACf;IACH,IAAI;MACF,IAAIC,eAAe,GAAG,GAAG;MACzBlE,WAAW,CAAEmE,IAAI,IAAK;QACpB,MAAMC,GAAG,GAAGD,IAAI,CAACE,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACZ,EAAE,KAAKO,UAAU,CAAC;QACjDC,eAAe,GAAGE,GAAG,EAAEG,QAAQ,IAAI,GAAG;QACtC,OAAOJ,IAAI;MACb,CAAC,CAAC;MAEF,MAAMK,UAA0B,GAC9BN,eAAe,KAAKH,MAAM,GAAGU,qBAAc,CAACC,KAAK,GAAGX,MAAM;MAC5D,MAAMY,GAAG,GAAG,MAAM,IAAAC,4BAAuB,EACvCJ,UAAU,EACVR,eAAe,EACfC,UACF,CAAC;MACD,IAAIU,GAAG,CAACE,EAAE,EAAE;QACV7E,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAER,CAAC,IACTA,CAAC,CAACZ,EAAE,KAAKO,UAAU,GAAG;UAAE,GAAGK,CAAC;UAAEC,QAAQ,EAAEC;QAAW,CAAC,GAAGF,CACzD,CACF,CAAC;MACH,CAAC,MAAM;QACL/B,OAAO,CAACC,KAAK,CAAC,qBAAqB,EAAEmC,GAAG,CAACI,MAAM,CAAC;MAClD;IACF,CAAC,CAAC,OAAOxH,CAAC,EAAE;MACVgF,OAAO,CAACC,KAAK,CAAC,oBAAoB,EAAEjF,CAAC,CAAC;IACxC;EACF,CAAC,EACD,EACF,CAAC;EAED,IAAA2E,gBAAS,EAAC,MAAM;IACd,IAAI8C,SAAS,GAAG,KAAK;IAErB,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,IAAI,CAACtB,OAAO,EAAE;MACd,IAAI;QACF,MAAMuB,OAAO,GAAG,MAAM,IAAAC,yBAAoB,EACxCtG,MAAM,EACN+E,SAAS,EACT5E,SACF,CAAC;QACD,IAAI,CAACgG,SAAS,EAAE;UACd,MAAMI,UAAU,GAAG,IAAAC,sBAAiB,EAACH,OAAO,CAAC,CAACI,OAAO,CAAC,CAAC;UACvD,IAAIF,UAAU,CAACG,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAMC,gBAA6B,GAAG;cACpC9B,EAAE,EAAE,EAAE;cACN+B,IAAI,EAAE,WAAW;cACjBC,IAAI,EAAE,kCAAkC;cACxCC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;cACrBC,SAAS,EAAE,KAAK;cAChBC,WAAW,EAAE,CACX,yBAAyB,EACzB,2BAA2B,CAC5B;cACDxB,QAAQ,EAAE;YACZ,CAAC;YACDvE,WAAW,CAAC,CAACwF,gBAAgB,CAAC,CAAC;YAC/BQ,UAAU,CAAC,MAAM;cACfxE,SAAS,CAACyE,OAAO,EAAEC,WAAW,CAAC;gBAAEC,QAAQ,EAAE;cAAM,CAAC,CAAC;YACrD,CAAC,EAAE,CAAC,CAAC;UACP,CAAC,MAAM;YACLnG,WAAW,CAACoF,UAAU,CAAC;YACvBY,UAAU,CAAC,MAAM;cACfxE,SAAS,CAACyE,OAAO,EAAEC,WAAW,CAAC;gBAAEC,QAAQ,EAAE;cAAM,CAAC,CAAC;YACrD,CAAC,EAAE,CAAC,CAAC;UACP;QACF;MACF,CAAC,CAAC,OAAO3D,KAAK,EAAE;QACdD,OAAO,CAACC,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MAC1D;IACF,CAAC;IAED,IAAI,CAACnD,eAAe,CAACkG,MAAM,EAAE;MAC3BN,IAAI,CAAC,CAAC;IACR;IAEA,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACnG,MAAM,EAAE+E,SAAS,EAAEvE,eAAe,CAACkG,MAAM,EAAE5B,OAAO,EAAE3E,SAAS,CAAC,CAAC;EAEnE,MAAMoH,WAAW,GAAG,IAAA1D,kBAAW,EAC7B,MAAO2D,OAAe,IAAK;IACzB,MAAMC,OAAO,GAAGD,OAAO,CAACE,IAAI,CAAC,CAAC;IAC9B,IAAI,CAACD,OAAO,IAAIlG,OAAO,EAAE;IAEzB,MAAMoG,WAAwB,GAAG;MAC/B9C,EAAE,EAAE,QAAQkC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;MACxBJ,IAAI,EAAE,MAAM;MACZC,IAAI,EAAEY,OAAO;MACbX,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;IACtB,CAAC;IAED,MAAMY,SAAS,GAAG,eAAeb,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;IAC7C,MAAMa,cAA2B,GAAG;MAClChD,EAAE,EAAE+C,SAAS;MACbhB,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE,UAAU;MAChBC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrBtB,QAAQ,EAAE,GAAG;MACbuB,SAAS,EAAE;IACb,CAAC;IAED9F,WAAW,CAAEmE,IAAI,IAAK,CAAC,GAAGA,IAAI,EAAEqC,WAAW,EAAEE,cAAc,CAAC,CAAC;IAC7DnG,mBAAmB,CAACkG,SAAS,CAAC;IAC9BpG,UAAU,CAAC,IAAI,CAAC;IAEhB,IAAI;MACF,IAAI,CAACsD,OAAO,EAAE;QACZ3D,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAK+C,SAAS,GAChB;UACE,GAAGrC,GAAG;UACNsB,IAAI,EAAE,oDAAoD;UAC1DI,SAAS,EAAE;QACb,CAAC,GACD1B,GACN,CACF,CAAC;QACD;MACF;MAEA,MAAMuC,aAAa,GAAG,CAAC,GAAG5G,QAAQ,EAAEyG,WAAW,CAAC;MAChD,MAAMI,eAAe,GAAG,MAAM,IAAAC,oBAAe,EAC3ChI,MAAM,EACNyH,OAAO,EACP1C,SAAS,EACT+C,aAAa,EACb3H,SACF,CAAC;MAED,MAAMoG,UAAU,GAAG,IAAAC,sBAAiB,EAACuB,eAAe,CAAC;MACrD,MAAME,eAAe,GAAG1B,UAAU,CAACf,IAAI,CACpCC,CAAC,IAAKA,CAAC,CAACmB,IAAI,KAAK,WACpB,CAAC;MAED5E,oBAAoB,CAACiG,eAAe,CAAC;MAErC,IAAIA,eAAe,EAAEpB,IAAI,EAAE;QACzB,IACEoB,eAAe,EAAEhE,cAAc,IAC/B,OAAOgE,eAAe,CAAChE,cAAc,KAAK,QAAQ,IAClDvE,MAAM,CAACwI,IAAI,CAACD,eAAe,CAAChE,cAAc,CAAC,CAACyC,MAAM,GAAG,CAAC,EACtD;UACA,MAAMyB,cAAc,GAAG,MAAM,IAAAC,gBAAW,EACtCH,eAAe,CAAChE,cAClB,CAAC;UAED,MAAMoE,WAAW,GACfF,cAAc,IACdA,cAAc,CAACG,QAAQ,IACvBH,cAAc,CAACG,QAAQ,CAACC,IAAI,IAC5BC,KAAK,CAACC,OAAO,CAACN,cAAc,CAACG,QAAQ,CAACC,IAAI,CAACG,QAAQ,CAAC,IACpDP,cAAc,CAACG,QAAQ,CAACC,IAAI,CAACG,QAAQ,CAAChC,MAAM,GAAG,CAAC;UAElD,IAAI,CAAC2B,WAAW,EAAE;YAChB3G,mBAAmB,CAAC,IAAI,CAAC;YACzBE,kBAAkB,CAAC,IAAI,CAAC;YACxBE,iBAAiB,CAAC,EAAE,CAAC;YAErBX,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAK+C,SAAS,GAChB;cACE,GAAGrC,GAAG;cACNV,EAAE,EAAEoD,eAAe,EAAEpD,EAAE,IAAIU,GAAG,CAACV,EAAE;cACjCgC,IAAI,EAAEzD,aAAa;cACnB6D,SAAS,EAAE;YACb,CAAC,GACD1B,GACN,CACF,CAAC;YACD1C,QAAQ,CAACuE,OAAO,EAAEuB,KAAK,CAAC,CAAC;YACzB;UACF;UACAtG,gBAAgB,CAAEiD,IAAI,KAAM;YAC1B,GAAGA,IAAI;YACP,CAAC2C,eAAe,CAACpD,EAAE,GAAGsD;UACxB,CAAC,CAAC,CAAC;QACL;QACAzG,mBAAmB,CAAC,IAAI,CAAC;QAEzBP,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAK+C,SAAS,GAChB;UACE,GAAGrC,GAAG;UACNV,EAAE,EAAEoD,eAAe,CAACpD,EAAE;UACtBgC,IAAI,EAAE,EAAE;UACRI,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAEe,eAAe,CAACf;QAC/B,CAAC,GACD3B,GACN,CACF,CAAC;QAED4B,UAAU,CAAC,MAAM;UACfvF,kBAAkB,CAACqG,eAAe,CAACpD,EAAE,CAAC;UACtC/C,iBAAiB,CAACmG,eAAe,CAACpB,IAAI,CAAC;UACvClE,SAAS,CAACyE,OAAO,EAAEC,WAAW,CAAC;YAAEC,QAAQ,EAAE;UAAK,CAAC,CAAC;QACpD,CAAC,EAAE,EAAE,CAAC;MACR,CAAC,MAAM;QACLnG,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAK+C,SAAS,GAChB;UACE,GAAGrC,GAAG;UACN0B,SAAS,EAAE;QACb,CAAC,GACD1B,GACN,CACF,CAAC;MACH;IACF,CAAC,CAAC,OAAOqD,GAAG,EAAE;MACZzH,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAK+C,SAAS,GAChB;QACE,GAAGrC,GAAG;QACNsB,IAAI,EAAE,gDAAgD;QACtDI,SAAS,EAAE;MACb,CAAC,GACD1B,GACN,CACF,CAAC;MACD7B,OAAO,CAACC,KAAK,CAACiF,GAAG,CAAC;IACpB,CAAC,SAAS;MACRpH,UAAU,CAAC,KAAK,CAAC;MACjBE,mBAAmB,CAAC,IAAI,CAAC;MACzBmB,QAAQ,CAACuE,OAAO,EAAEuB,KAAK,CAAC,CAAC;IAC3B;EACF,CAAC,EACD,CAAC3I,MAAM,EAAEuB,OAAO,EAAEL,QAAQ,EAAE6D,SAAS,EAAED,OAAO,EAAE3E,SAAS,EAAEiC,aAAa,CAC1E,CAAC;EAED,MAAMyG,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACtC,MAAMC,IAAI,GAAG,MAAM,IAAAC,qBAAc,EAAC,CAAC;IACnC,MAAMC,MAAM,GAAGF,IAAI,EAAEjE,EAAE;IACvB,MAAMoE,KAAK,GAAGlF,IAAI,CAACC,SAAS,CAAC8E,IAAI,EAAEG,KAAK,CAAC,IAAIhH,SAAS;IACtD,IAAI+G,MAAM,EAAE;MACVhG,SAAS,CAAC,GAAGgG,MAAM,EAAE,EAAE;QACrBC,KAAK,EAAEA;MACT,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;IACX;EACF,CAAC;EACD,MAAMC,UAAU,GAAG,IAAAtF,kBAAW,EAAC,YAAY;IACzC,MAAM4D,OAAO,GAAGpG,KAAK,CAACqG,IAAI,CAAC,CAAC;IAC5B,IAAI,CAACD,OAAO,EAAE;IACdnG,QAAQ,CAAC,EAAE,CAAC;IACZiG,WAAW,CAACE,OAAO,CAAC;EACtB,CAAC,EAAE,CAACpG,KAAK,EAAEkG,WAAW,CAAC,CAAC;EAExB,MAAM6B,sBAAsB,GAAG,IAAAvF,kBAAW,EACvCwF,KAAa,IAAK;IACjB9B,WAAW,CAAC8B,KAAK,CAAC;EACpB,CAAC,EACD,CAAC9B,WAAW,CACd,CAAC;EAED,MAAM+B,mBAAmB,GAAG,IAAAzF,kBAAW,EAAC,MAAO0B,GAAgB,IAAK;IAClE,MAAMV,EAAE,GAAGU,GAAG,CAACV,EAAE;IACjB,IAAI;MACFtC,mBAAmB,CAAE+C,IAAI,IAAK,IAAI9C,GAAG,CAAC8C,IAAI,CAAC,CAACiE,GAAG,CAAC1E,EAAE,CAAC,CAAC;MACpD,MAAMX,OAAO,GAAGqB,GAAG,EAAEtB,cAAc;MACnC,IAAI,CAACC,OAAO,IAAIxE,MAAM,CAACwI,IAAI,CAAChE,OAAO,CAAC,CAACwC,MAAM,KAAK,CAAC,EAAE;MACnD,MAAMyB,cAAc,GAAG,MAAM,IAAAC,gBAAW,EAAClE,OAAO,CAAC;MACjD7B,gBAAgB,CAAEiD,IAAI,KAAM;QAAE,GAAGA,IAAI;QAAE,CAACT,EAAE,GAAGsD;MAAe,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,OAAOzJ,CAAC,EAAE;MACVgF,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEjF,CAAC,CAAC;IAC3C,CAAC,SAAS;MACR6D,mBAAmB,CAAE+C,IAAI,IAAK;QAC5B,MAAMkE,IAAI,GAAG,IAAIhH,GAAG,CAAC8C,IAAI,CAAC;QAC1BkE,IAAI,CAACC,MAAM,CAAC5E,EAAE,CAAC;QACf,OAAO2E,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAnG,gBAAS,EAAC,MAAM;IACdqG,+BAAkB,CAACC,WAAW,CAAC,WAAW,EAAEC,eAAe,CAAC;IAC5DF,+BAAkB,CAACC,WAAW,CAC5B,iBAAiB,EAChBE,IAA2B,IAAKC,eAAe,CAACD,IAAI,CAAC1J,SAAS,CACjE,CAAC;IACD2J,eAAe,CAAC,CAAC;IACjBjB,mBAAmB,CAAC,CAAC;IAErB,OAAO,MAAM;MACXa,+BAAkB,CAACK,kBAAkB,CAAC,WAAW,CAAC;MAClDL,+BAAkB,CAACK,kBAAkB,CAAC,iBAAiB,CAAC;IAC1D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMD,eAAe,GAAG,MAAOE,UAAgB,IAAK;IAClD,IAAI,CAACA,UAAU,IAAI5J,aAAa,EAAE;MAChC4J,UAAU,GAAG5J,aAAa;IAC5B;IACA,IAAI,CAAC4J,UAAU,EAAE;MACf,IAAIC,QAAQ,GAAG,MAAMzG,gBAAO,CAAC0G,OAAO,CAAC,kBAAkB,EAAE;QACvDpB,IAAI,EAAE7G;MACR,CAAsB,CAAC;MACvBgI,QAAQ,GAAGA,QAAQ,IAAIA,QAAQ,CAACnB,IAAI,GAAG/E,IAAI,CAACoG,KAAK,CAACF,QAAQ,CAACnB,IAAI,CAAC,GAAG,CAAC,CAAC;MACrEkB,UAAU,GAAIC,QAAQ,EAAkBG,UAAU;IACpD;IACA3H,YAAY,CAACuH,UAAU,KAAK/H,SAAS,GAAG,IAAI,GAAGoI,MAAM,CAACL,UAAU,CAAC,CAAC;EACpE,CAAC;EAED,MAAMJ,eAAe,GAAG,IAAA/F,kBAAW,EAAC,YAAY;IAC9C,IAAI;MACF,MAAMyG,aAAa,GAAG,MAAM9G,gBAAO,CAAC0G,OAAO,CACzC,uBAAuB,EACvB,CAAC,CACH,CAAC;MACD,MAAMK,QAAQ,GAAGD,aAAa,GAC1BA,aAAa,CAACnK,SAAS,CAAQ,EAAEgF,eAAe,GAChD,IAAI;MACR,IAAIoF,QAAQ,IAAIpK,SAAS,EAAE;QACzB,MAAMqK,oBAAoB,GAAGF,aAAa,IAAI,CAAC,CAAC;QAChD,OAAOE,oBAAoB,CAACrK,SAAS,CAAC;QACtC,MAAMqD,gBAAO,CAACiH,OAAO,CAAC,uBAAuB,EAAED,oBAAoB,CAAC;MACtE;MACArJ,WAAW,CAAC,EAAE,CAAC;MACfa,oBAAoB,CAACC,SAAS,CAAC;MAC/BI,gBAAgB,CAAC,CAAC,CAAC,CAAC;MACpBE,mBAAmB,CAAC,IAAIC,GAAG,CAAC,CAAC,CAAC;MAC9BhB,UAAU,CAAC,KAAK,CAAC;MACjBE,mBAAmB,CAAC,IAAI,CAAC;MACzBE,kBAAkB,CAAC,IAAI,CAAC;MACxBE,iBAAiB,CAAC,EAAE,CAAC;MAErB,MAAM4I,KAAK,GAAG,MAAM,IAAApE,yBAAoB,EAACtG,MAAM,EAAEiC,SAAS,EAAE9B,SAAS,CAAC;MACtE,MAAMoG,UAAU,GAAG,IAAAC,sBAAiB,EAACkE,KAAK,CAAC,CAACjE,OAAO,CAAC,CAAC;MACrD,IAAIF,UAAU,CAACG,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAMC,gBAA6B,GAAG;UACpC9B,EAAE,EAAE,EAAE;UACN+B,IAAI,EAAE,WAAW;UACjBC,IAAI,EAAE,kCAAkC;UACxCC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;UACrBC,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAE,CACX,yBAAyB,EACzB,2BAA2B,CAC5B;UACDxB,QAAQ,EAAE;QACZ,CAAC;QACDvE,WAAW,CAAC,CAACwF,gBAAgB,CAAC,CAAC;MACjC,CAAC,MAAM;QACLxF,WAAW,CAACoF,UAAU,CAAC;MACzB;MACAY,UAAU,CAAC,MAAM;QACfxE,SAAS,CAACyE,OAAO,EAAEC,WAAW,CAAC;UAAEC,QAAQ,EAAE;QAAM,CAAC,CAAC;MACrD,CAAC,EAAE,GAAG,CAAC;MACP3G,WAAW,GAAG,CAAC;IACjB,CAAC,CAAC,OAAOiI,GAAG,EAAE;MACZlF,OAAO,CAACC,KAAK,CAAC,sBAAsB,EAAEiF,GAAG,CAAC;IAC5C;EACF,CAAC,EAAE,CAAC5I,MAAM,EAAEG,SAAS,CAAC,CAAC;EAEvB,IAAAkD,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC5B,gBAAgB,IAAIE,eAAe,EAAE;IAE1C,IAAIgJ,IAAI,GAAG,CAAC;IACZ,MAAMC,IAAI,GAAG,UAAU;IACvB,MAAMC,QAAQ,GAAGC,WAAW,CAAC,MAAM;MACjCH,IAAI,GAAG,CAACA,IAAI,GAAG,CAAC,IAAI,CAAC;MACrB,MAAMI,IAAI,GAAG,GAAG,CAACC,MAAM,CAACL,IAAI,GAAG,CAAC,CAAC;MACjCxJ,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAKpD,gBAAgB,IAAI8D,GAAG,CAAC0B,SAAS,GACxC;QAAE,GAAG1B,GAAG;QAAEsB,IAAI,EAAE,GAAG+D,IAAI,GAAGG,IAAI;MAAG,CAAC,GAClCxF,GACN,CACF,CAAC;IACH,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAM;MACX0F,aAAa,CAACJ,QAAQ,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAACpJ,gBAAgB,EAAEE,eAAe,CAAC,CAAC;EAEvC,IAAAuJ,0BAAmB,EACjBjK,GAAG,EACH,OAAO;IACLkK,SAAS,EAAEvB;EACb,CAAC,CAAC,EACF,CAACA,eAAe,CAClB,CAAC;EAED,MAAMwB,cAAc,GAAG,IAAAxI,aAAM,EAAC,CAAC,CAAC;EAEhC,IAAAS,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC1B,eAAe,IAAI,CAACE,cAAc,EAAE;MACvCuJ,cAAc,CAAChE,OAAO,GAAG,CAAC;MAC1B;IACF;IAEAgE,cAAc,CAAChE,OAAO,GAAG,CAAC;IAC1B,MAAMiE,KAAK,GAAGxJ,cAAc,CAAC6E,MAAM;IACnC,MAAM4E,UAAU,GAAG3J,eAAe;IAClC,MAAM4J,QAAQ,GAAG1J,cAAc;IAE/B,MAAMgJ,QAAQ,GAAGC,WAAW,CAAC,MAAM;MACjCM,cAAc,CAAChE,OAAO,IAAI,CAAC;MAC3B,MAAMoE,YAAY,GAAGJ,cAAc,CAAChE,OAAO;MAC3C,MAAMqE,KAAK,GAAGF,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAED,YAAY,CAAC;MAE7CrK,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAKyG,UAAU,GACjB;QACE,GAAG/F,GAAG;QACNsB,IAAI,EAAE4E;MACR,CAAC,GACDlG,GACN,CACF,CAAC;MAED,IAAIiG,YAAY,IAAIH,KAAK,EAAE;QACzBJ,aAAa,CAACJ,QAAQ,CAAC;QACvBjJ,kBAAkB,CAAC,IAAI,CAAC;QACxBE,iBAAiB,CAAC,EAAE,CAAC;QACrBX,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAKyG,UAAU,GAAG;UAAE,GAAG/F,GAAG;UAAE0B,SAAS,EAAE;QAAM,CAAC,GAAG1B,GACzD,CACF,CAAC;MACH;IACF,CAAC,EAAE,EAAE,CAAC;IAEN,OAAO,MAAM;MACX0F,aAAa,CAACJ,QAAQ,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAAClJ,eAAe,EAAEE,cAAc,CAAC,CAAC;EAErC,oBACEpE,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAA+N,IAAI;IACHC,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEzL,KAAK,CAACyL;IAAgB,CAAC;EAAE,GAErExH,qBAAQ,CAACC,EAAE,KAAK,KAAK,iBACpB/G,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAACvN,WAAA,CAAAS,OAAU;IACT8B,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEiJ,eAAgB;IAC7B7I,UAAU,EAAEmC;EAAW,CACxB,CACF,eACDzF,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAAoO,oBAAoB;IACnBJ,KAAK,EAAE;MAAEK,IAAI,EAAE;IAAE,CAAE;IACnBC,QAAQ,EAAE3H,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,SAAS,GAAG,QAAS;IACvD2H,sBAAsB,EAAE5H,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC;EAAG,gBAE1D/G,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAAwO,UAAU;IACTnL,GAAG,EAAE0B,SAAU;IACf0J,yBAAyB,EAAC,SAAS;IACnCC,QAAQ,EAAG5N,CAAC,IAAKyD,UAAU,CAACzD,CAAC,CAAC6N,WAAW,CAACC,aAAa,CAACC,CAAC,CAAE;IAC3DC,mBAAmB,EAAE,EAAG;IACxBd,KAAK,EACHvL,WAAW,GACP;MAAEsM,MAAM,EAAEtM,WAAW;MAAE0L,eAAe,EAAE;IAAU,CAAC,GACnD;MAAEA,eAAe,EAAE;IAAU,CAClC;IACDa,qBAAqB,EAAE;MACrBb,eAAe,EAAEzL,KAAK,EAAEuM,0BAA0B,IAAI,SAAS;MAC/D,GAAGhB,MAAM,CAACiB,WAAW;MACrBC,cAAc,EAAE7L,QAAQ,CAACwF,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,UAAU;MAC7DsG,SAAS,EAAE3M,WAAW,GAAGA,WAAW,GAAG4B;IACzC,CAAE;IACFgL,mBAAmB,EAAEA,CAAA,KAAM;MACzBtK,SAAS,CAACyE,OAAO,EAAEC,WAAW,CAAC;QAAEC,QAAQ,EAAE;MAAM,CAAC,CAAC;IACrD;EAAE,gBAEF7J,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAA+N,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACqB;EAAe,gBACjCzP,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAAuP,IAAI;IAACvB,KAAK,EAAEC,MAAM,CAACuB;EAAU,GAC3BlM,QAAQ,CAACwF,MAAM,KAAK,CAAC,GAClB,kDAAkD,GAClD,mBAAmB,IAAA2G,mBAAY,EAACnM,QAAQ,CAAC,CAAC,CAAC,CAAC4F,SAAS,CAAC,EACtD,CACF,CAAC,EACN,CAAC,MAAM;IACN,MAAMwG,OAAO,GAAG,CAAC,GAAGpM,QAAQ,CAAC;IAC7B,OAAOoM,OAAO,CAACrH,GAAG,CAAC,CAACtB,IAAI,EAAE4I,KAAK,KAAK;MAClC,MAAMC,QAAQ,GAAGD,KAAK,KAAKD,OAAO,CAAC5G,MAAM,GAAG,CAAC;MAC7C,MAAM2B,WAAW,GAAGlF,OAAO,CACzBf,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAEC,IAAI,EAAEG,QAAQ,IAC9CtG,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAEC,IAAI,EAAEG,QAAQ,CAAChC,MAAM,GAAG,CAC9D,CAAC;MACD,oBACEjJ,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAA+N,IAAI;QAAC8B,GAAG,EAAE9I,IAAI,CAACE,EAAE,GAAG0I,KAAM;QAAC3B,KAAK,EAAE;UAAE8B,GAAG,EAAE;QAAG;MAAE,gBAC7CjQ,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC5N,cAAA,CAAA6P,aAAa;QACZC,OAAO,EAAEjJ,IAAK;QACdrE,KAAK,EAAEA,KAAM;QACbH,SAAS,EAAEA,SAAoB;QAC/B8E,oBAAoB,EAAEA,oBAAqB;QAC3C4I,eAAe,EAAEvE,mBAAoB;QACrCwE,SAAS,EAAExL,gBAAgB,CAACjD,GAAG,CAACsF,IAAI,CAACE,EAAE,CAAE;QACzCkJ,UAAU,EAAE1F,WAAY;QACxB2F,YAAY,EACV5L,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAE2F,MAAM,EACpCC,oBAAoB,IAAI,CAC7B;QACDC,YAAY,EACV/L,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAEC,IAAI,EAAEG,QAAQ,CAC7ChC,MAAM,IAAI,CACd;QACD0H,kBAAkB,EAAEhF,sBAAuB;QAC3CoE,QAAQ,EAAEA,QAAS;QACnBa,QAAQ,EAAE1M,eAAe,KAAKgD,IAAI,CAACE;MAAG,CACvC,CAAC,EAEDF,IAAI,CAACiC,IAAI,KAAK,WAAW,IACxBjC,IAAI,CAACV,cAAc,IACnBvE,MAAM,CAACwI,IAAI,CAACvD,IAAI,CAACV,cAAc,CAAC,CAACyC,MAAM,GAAG,CAAC,IAC3C,CAACtE,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,iBACrBpH,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAACpN,oBAAA,CAAAM,OAAmB;QAClB0P,SAAS,EAAE3J,IAAI,CAACE,EAAG;QACnBX,OAAO,EAAES,IAAI,CAACV,cAAe;QAC7BsK,SAAS,EAAEA,CAAC1J,EAAE,EAAE2J,MAAM,KAAK;UACzBnM,gBAAgB,CAAEiD,IAAI,KAAM;YAC1B,GAAGA,IAAI;YACP,CAACT,EAAE,GAAG2J;UACR,CAAC,CAAC,CAAC;UACH,MAAM9F,QAAQ,GAAG8F,MAAM,EAAElG,QAAQ,EAAEC,IAAI,EAAEG,QAAQ;UACjD,MAAM+F,MAAM,GACVjG,KAAK,CAACC,OAAO,CAACC,QAAQ,CAAC,IAAIA,QAAQ,CAAChC,MAAM,GAAG,CAAC;UAChD,IAAI+H,MAAM,EAAE;YACV,IAAI;cACF9L,SAAS,CAACyE,OAAO,EAAEsH,QAAQ,CAAC;gBAC1BC,CAAC,EAAE,CAAC;gBACJlC,CAAC,EAAEvK,OAAO,GAAG,GAAG;gBAChBoF,QAAQ,EAAE;cACZ,CAAC,CAAC;YACJ,CAAC,CAAC,OAAOsH,CAAC,EAAE,CAAC;UACf,CAAC,MAAM;YACLzN,WAAW,CAAEmE,IAAI,IACfA,IAAI,CAACW,GAAG,CAAEV,GAAG,IACXA,GAAG,CAACV,EAAE,KAAKA,EAAE,GACT;cACE,GAAGU,GAAG;cACNV,EAAE,EAAEU,GAAG,CAACV,EAAE;cACVgC,IAAI,EAAEzD,aAAa;cACnB6D,SAAS,EAAE;YACb,CAAC,GACD1B,GACN,CACF,CAAC;UACH;QACF;MAAE,CACH,CACF,EACFZ,IAAI,CAACiC,IAAI,KAAK,WAAW,IAAIyB,WAAW,iBACvC5K,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAACrN,aAAA,CAAAO,OAAY;QACXiL,IAAI,EACFzH,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAEC,IAAI,EAAEG,QAAQ,IAAI,EACrD;QACDsF,YAAY,EACV5L,aAAa,CAACuC,IAAI,CAACE,EAAE,CAAC,EAAEyD,QAAQ,EAAE2F,MAAM,EACpCC,oBAAoB,IAAI,CAC7B;QACDtK,SAAS,EAAEA,SAAU;QACrB/C,WAAW,EAAEA;MAAY,CAC1B,CACF,eAEDpD,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC3N,eAAA,CAAAa,OAAc;QACbgP,OAAO,EAAEjJ,IAAK;QACdxE,SAAS,EAAEA,SAAS,IAAI,EAAG;QAC3B8E,oBAAoB,EAAEA,oBAAqB;QAC3C4I,eAAe,EAAEvE,mBAAoB;QACrCwE,SAAS,EAAExL,gBAAgB,CAACjD,GAAG,CAACsF,IAAI,CAACE,EAAE,CAAE;QACzCkJ,UAAU,EAAE1F;MAAY,CACzB,CACG,CAAC;IAEX,CAAC,CAAC;EACJ,CAAC,EAAE,CACO,CAAC,eACb5K,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC9N,YAAA,CAAA+N,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACgD;EAAgB,gBAClCpR,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAAC7N,UAAA,CAAAiR,SAAS;IACRzF,KAAK,EAAEhI,KAAM;IACb0N,YAAY,EAAEzN,QAAS;IACvB0N,MAAM,EAAE7F,UAAW;IACnB8F,QAAQ,EAAE1N,OAAQ;IAClBd,WAAW,EAAEA,WAAY;IACzBH,KAAK,EAAEA,KAAM;IACbuC,QAAQ,EAAEA;EAAS,CACpB,CAAC,eACFpF,MAAA,CAAAmB,OAAA,CAAA8M,aAAA,CAACtN,WAAA,CAAAQ,OAAU;IAACsQ,MAAM,EAAEhM;EAAW,CAAE,CAC7B,CACc,CAClB,CAAC;AAEX,CACF,CAAC;AAEDrD,UAAU,CAACsP,WAAW,GAAG,YAAY;AAErC,MAAMtD,MAAM,GAAGuD,uBAAU,CAACC,MAAM,CAAC;EAC/BvD,SAAS,EAAE;IACTG,IAAI,EAAE,CAAC;IACPqD,KAAK,EAAE;EACT,CAAC;EACDxC,WAAW,EAAE;IACXyC,eAAe,EAAE,CAAC;IAClBC,QAAQ,EAAE,CAAC;IACXzC,cAAc,EAAE;EAClB,CAAC;EACDxL,OAAO,EAAE;IACPgO,eAAe,EAAE,CAAC;IAClBE,UAAU,EAAE;EACd,CAAC;EACDvC,cAAc,EAAE;IACdwC,OAAO,EAAE,EAAE;IACXD,UAAU,EAAE,QAAQ;IACpB1C,cAAc,EAAE,QAAQ;IACxBhB,eAAe,EAAE;EACnB,CAAC;EACDqB,SAAS,EAAE;IACTuC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE;EACT,CAAC;EACDhB,eAAe,EAAE;IACfU,eAAe,EAAE,EAAE;IACnBO,iBAAiB,EAAE,EAAE;IACrBC,cAAc,EAAE,SAAS;IACzBC,cAAc,EAAE,CAAC;IACjBC,aAAa,EAAE,QAAQ;IACvBlD,cAAc,EAAE,eAAe;IAC/B0C,UAAU,EAAE,QAAQ;IACpBS,SAAS,EAAE,SAAS;IACpBxC,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _api = require("../api");
10
+ var _useInViewport = require("../hooks/useInViewport");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const LazyProductsFetcher = ({
13
+ messageId,
14
+ payload,
15
+ onFetched
16
+ }) => {
17
+ const {
18
+ ref,
19
+ inView
20
+ } = (0, _useInViewport.useInViewport)();
21
+ const fetchedRef = (0, _react.useRef)(false);
22
+ (0, _react.useEffect)(() => {
23
+ if (fetchedRef.current) return;
24
+ if (!payload || typeof payload !== "object") return;
25
+ if (!inView) return;
26
+ fetchedRef.current = true;
27
+ (async () => {
28
+ try {
29
+ const result = await (0, _api.getProducts)(payload);
30
+ onFetched(messageId, result);
31
+ } catch (e) {
32
+ // eslint-disable-next-line no-console
33
+ console.error("Lazy fetch products failed", e);
34
+ }
35
+ })();
36
+ }, [inView, messageId, onFetched, payload]);
37
+
38
+ // Sentinel element; no visible UI needed
39
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
40
+ ref: ref,
41
+ style: {
42
+ height: 1
43
+ }
44
+ });
45
+ };
46
+ var _default = exports.default = LazyProductsFetcher;
47
+ //# sourceMappingURL=LazyProductsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_api","_useInViewport","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LazyProductsFetcher","messageId","payload","onFetched","ref","inView","useInViewport","fetchedRef","useRef","useEffect","current","result","getProducts","console","error","createElement","View","style","height","_default","exports"],"sourceRoot":"../../../src","sources":["components/LazyProductsFetcher.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAAuD,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAQvD,MAAMkB,mBAAuD,GAAGA,CAAC;EAC/DC,SAAS;EACTC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC,GAAG;IAAEC;EAAO,CAAC,GAAG,IAAAC,4BAAa,EAAiB,CAAC;EACvD,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAEhC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIF,UAAU,CAACG,OAAO,EAAE;IACxB,IAAI,CAACR,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC7C,IAAI,CAACG,MAAM,EAAE;IAEbE,UAAU,CAACG,OAAO,GAAG,IAAI;IACzB,CAAC,YAAY;MACX,IAAI;QACF,MAAMC,MAAM,GAAG,MAAM,IAAAC,gBAAW,EAACV,OAAO,CAAC;QACzCC,SAAS,CAACF,SAAS,EAAEU,MAAM,CAAC;MAC9B,CAAC,CAAC,OAAO9B,CAAC,EAAE;QACV;QACAgC,OAAO,CAACC,KAAK,CAAC,4BAA4B,EAAEjC,CAAC,CAAC;MAChD;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACwB,MAAM,EAAEJ,SAAS,EAAEE,SAAS,EAAED,OAAO,CAAC,CAAC;;EAE3C;EACA,oBAAO3B,MAAA,CAAAgB,OAAA,CAAAwB,aAAA,CAACrC,YAAA,CAAAsC,IAAI;IAACZ,GAAG,EAAEA,GAAW;IAACa,KAAK,EAAE;MAAEC,MAAM,EAAE;IAAE;EAAE,CAAE,CAAC;AACxD,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA7B,OAAA,GAEaS,mBAAmB","ignoreList":[]}