stream-chat-react-native-core 5.22.0-beta.6 → 5.22.0-beta.7

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 (37) hide show
  1. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +23 -16
  2. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  3. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  4. package/lib/commonjs/i18n/fr.json +23 -23
  5. package/lib/commonjs/i18n/hi.json +23 -23
  6. package/lib/commonjs/i18n/it.json +23 -23
  7. package/lib/commonjs/i18n/nl.json +23 -23
  8. package/lib/commonjs/i18n/ru.json +23 -23
  9. package/lib/commonjs/i18n/tr.json +23 -23
  10. package/lib/commonjs/version.json +1 -1
  11. package/lib/module/components/Message/MessageSimple/utils/renderText.js +23 -16
  12. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  13. package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  14. package/lib/module/i18n/fr.json +23 -23
  15. package/lib/module/i18n/hi.json +23 -23
  16. package/lib/module/i18n/it.json +23 -23
  17. package/lib/module/i18n/nl.json +23 -23
  18. package/lib/module/i18n/ru.json +23 -23
  19. package/lib/module/i18n/tr.json +23 -23
  20. package/lib/module/version.json +1 -1
  21. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
  22. package/lib/typescript/i18n/fr.json +23 -23
  23. package/lib/typescript/i18n/hi.json +23 -23
  24. package/lib/typescript/i18n/it.json +23 -23
  25. package/lib/typescript/i18n/nl.json +23 -23
  26. package/lib/typescript/i18n/ru.json +23 -23
  27. package/lib/typescript/i18n/tr.json +23 -23
  28. package/package.json +1 -1
  29. package/src/components/Message/MessageSimple/utils/renderText.tsx +10 -1
  30. package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
  31. package/src/i18n/fr.json +23 -23
  32. package/src/i18n/hi.json +23 -23
  33. package/src/i18n/it.json +23 -23
  34. package/src/i18n/nl.json +23 -23
  35. package/src/i18n/ru.json +23 -23
  36. package/src/i18n/tr.json +23 -23
  37. package/src/version.json +1 -1
@@ -1,9 +1,9 @@
1
1
  {
2
- "1 Reply": "1 Antwoord",
2
+ "1 Reply": "",
3
3
  "1 Thread Reply": "",
4
- "Allow access to your Gallery": "Geef toegang tot uw galerij",
5
- "Allow camera access in device settings": "Sta cameratoegang toe in de apparaatinstellingen",
6
- "Also send to channel": "Stuur ook naar kanaal",
4
+ "Allow access to your Gallery": "",
5
+ "Allow camera access in device settings": "",
6
+ "Also send to channel": "",
7
7
  "Are you sure you want to permanently delete this message?": "",
8
8
  "Block User": "",
9
9
  "Cancel": "",
@@ -11,7 +11,7 @@
11
11
  "Copy Message": "",
12
12
  "Delete": "",
13
13
  "Delete Message": "",
14
- "Device camera is used to take photos or videos.": "De camera van het apparaat wordt gebruikt om foto's of video's te maken.",
14
+ "Device camera is used to take photos or videos.": "",
15
15
  "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
16
  "Edit Message": "",
17
17
  "Editing Message": "",
@@ -21,7 +21,7 @@
21
21
  "Error loading channel list...": "",
22
22
  "Error loading messages for this channel...": "",
23
23
  "Error while loading, please reload/refresh": "",
24
- "File type not supported": "",
24
+ "File type not supported": "Bestandstype niet ondersteund",
25
25
  "Flag": "",
26
26
  "Flag Message": "",
27
27
  "Flag action failed either due to a network issue or the message is already flagged": "",
@@ -29,47 +29,47 @@
29
29
  "Instant Commands": "",
30
30
  "Let's start chatting!": "",
31
31
  "Links are disabled": "",
32
- "Loading channels...": "",
33
- "Loading messages...": "",
34
- "Loading...": "",
32
+ "Loading channels...": "Kanalen aan het laden...",
33
+ "Loading messages...": "Berichten aan het laden...",
34
+ "Loading...": "Aan het laden...",
35
35
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
- "Message Reactions": "Bericht Reacties",
36
+ "Message Reactions": "",
37
37
  "Message deleted": "",
38
38
  "Message flagged": "",
39
39
  "Mute User": "",
40
- "Not supported": "",
40
+ "Not supported": "niet ondersteund",
41
41
  "Nothing yet...": "",
42
42
  "Ok": "",
43
- "Only visible to you": "",
44
- "Open Settings": "Open instellingen",
45
- "Photo": "",
46
- "Photos and Videos": "Foto's en video's",
43
+ "Only visible to you": "Alleen zichtbaar voor jou",
44
+ "Open Settings": "",
45
+ "Photo": "Foto",
46
+ "Photos and Videos": "",
47
47
  "Pin to Conversation": "",
48
48
  "Pinned by": "",
49
- "Please enable access to your photos and videos so you can share them.": "Schakel toegang tot uw foto's en video's in zodat u ze kunt delen.",
49
+ "Please enable access to your photos and videos so you can share them.": "",
50
50
  "Please select a channel first": "Selecteer eerst een kanaal",
51
51
  "Reconnecting...": "",
52
52
  "Reply": "",
53
53
  "Reply to Message": "",
54
54
  "Resend": "",
55
55
  "Search GIFs": "",
56
- "Select More Photos": "Selecteer Meer foto's",
56
+ "Select More Photos": "",
57
57
  "Send a message": "",
58
58
  "Sending links is not allowed in this conversation": "",
59
59
  "Slow mode ON": "",
60
60
  "The message has been reported to a moderator.": "",
61
61
  "Thread Reply": "",
62
62
  "Unblock User": "",
63
- "Unknown User": "Onbekende gebruiker",
63
+ "Unknown User": "",
64
64
  "Unmute User": "",
65
65
  "Unpin from Conversation": "",
66
- "Unread Messages": "Ongelezen Berichten",
67
- "Video": "",
66
+ "Unread Messages": "",
67
+ "Video": "Video",
68
68
  "You": "",
69
- "You can't send messages in this channel": "",
69
+ "You can't send messages in this channel": "Je kan geen berichten sturen in dit kanaal",
70
70
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} en {{ nonSelfUserLength }} anderen zijn aan het typen",
71
- "{{ index }} of {{ photoLength }}": "{{ index }} van {{ photoLength }}",
72
- "{{ replyCount }} Replies": "{{ replyCount }} Antwoorden",
71
+ "{{ index }} of {{ photoLength }}": "",
72
+ "{{ replyCount }} Replies": "",
73
73
  "{{ replyCount }} Thread Replies": "",
74
74
  "{{ user }} is typing": "{{ user }} is aan het typen",
75
75
  "🏙 Attachment...": ""
@@ -1,9 +1,9 @@
1
1
  {
2
- "1 Reply": "1 Ответ",
2
+ "1 Reply": "",
3
3
  "1 Thread Reply": "",
4
- "Allow access to your Gallery": "Разрешить доступ к вашей галерее",
5
- "Allow camera access in device settings": "Разрешите доступ к камере в настройках устройства.",
6
- "Also send to channel": "Также отправить на канал",
4
+ "Allow access to your Gallery": "",
5
+ "Allow camera access in device settings": "",
6
+ "Also send to channel": "",
7
7
  "Are you sure you want to permanently delete this message?": "",
8
8
  "Block User": "",
9
9
  "Cancel": "",
@@ -11,7 +11,7 @@
11
11
  "Copy Message": "",
12
12
  "Delete": "",
13
13
  "Delete Message": "",
14
- "Device camera is used to take photos or videos.": "Камера устройства используется для съемки фотографий или видео.",
14
+ "Device camera is used to take photos or videos.": "",
15
15
  "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
16
  "Edit Message": "",
17
17
  "Editing Message": "",
@@ -21,7 +21,7 @@
21
21
  "Error loading channel list...": "",
22
22
  "Error loading messages for this channel...": "",
23
23
  "Error while loading, please reload/refresh": "",
24
- "File type not supported": "",
24
+ "File type not supported": "Тип файла не поддерживается",
25
25
  "Flag": "",
26
26
  "Flag Message": "",
27
27
  "Flag action failed either due to a network issue or the message is already flagged": "",
@@ -29,47 +29,47 @@
29
29
  "Instant Commands": "",
30
30
  "Let's start chatting!": "",
31
31
  "Links are disabled": "",
32
- "Loading channels...": "",
33
- "Loading messages...": "",
34
- "Loading...": "",
32
+ "Loading channels...": "Загружаю каналы...",
33
+ "Loading messages...": "Загружаю сообщения...",
34
+ "Loading...": "Загружаю...",
35
35
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
- "Message Reactions": "Сообщения Реакции",
36
+ "Message Reactions": "",
37
37
  "Message deleted": "",
38
38
  "Message flagged": "",
39
39
  "Mute User": "",
40
- "Not supported": "",
40
+ "Not supported": "не поддерживается",
41
41
  "Nothing yet...": "",
42
42
  "Ok": "",
43
- "Only visible to you": "",
44
- "Open Settings": "Открыть настройки",
45
- "Photo": "",
46
- "Photos and Videos": "Фото и видео",
43
+ "Only visible to you": "Видно только вам",
44
+ "Open Settings": "",
45
+ "Photo": "Фото",
46
+ "Photos and Videos": "",
47
47
  "Pin to Conversation": "",
48
48
  "Pinned by": "",
49
- "Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
49
+ "Please enable access to your photos and videos so you can share them.": "",
50
50
  "Please select a channel first": "Пожалуйста, сначала выберите канал",
51
51
  "Reconnecting...": "",
52
52
  "Reply": "",
53
53
  "Reply to Message": "",
54
54
  "Resend": "",
55
55
  "Search GIFs": "",
56
- "Select More Photos": "Выбрать больше фотографий",
56
+ "Select More Photos": "",
57
57
  "Send a message": "",
58
58
  "Sending links is not allowed in this conversation": "",
59
59
  "Slow mode ON": "",
60
60
  "The message has been reported to a moderator.": "",
61
61
  "Thread Reply": "",
62
62
  "Unblock User": "",
63
- "Unknown User": "Неизвестный пользователь",
63
+ "Unknown User": "",
64
64
  "Unmute User": "",
65
65
  "Unpin from Conversation": "",
66
- "Unread Messages": "Непрочитанные Сообщения",
67
- "Video": "",
66
+ "Unread Messages": "",
67
+ "Video": "видео",
68
68
  "You": "",
69
- "You can't send messages in this channel": "",
69
+ "You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
70
70
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
71
- "{{ index }} of {{ photoLength }}": "{{ index }} из {{ photoLength }}",
72
- "{{ replyCount }} Replies": "{{ replyCount }} Ответов",
71
+ "{{ index }} of {{ photoLength }}": "",
72
+ "{{ replyCount }} Replies": "",
73
73
  "{{ replyCount }} Thread Replies": "",
74
74
  "{{ user }} is typing": "{{ user }} пишет",
75
75
  "🏙 Attachment...": ""
@@ -1,9 +1,9 @@
1
1
  {
2
- "1 Reply": "1 Cevap",
2
+ "1 Reply": "",
3
3
  "1 Thread Reply": "",
4
- "Allow access to your Gallery": "Galerinize erişime izin verin",
5
- "Allow camera access in device settings": "Cihaz ayarlarında kamera erişimine izin ver",
6
- "Also send to channel": "Kanala da gönder",
4
+ "Allow access to your Gallery": "",
5
+ "Allow camera access in device settings": "",
6
+ "Also send to channel": "",
7
7
  "Are you sure you want to permanently delete this message?": "",
8
8
  "Block User": "",
9
9
  "Cancel": "",
@@ -11,7 +11,7 @@
11
11
  "Copy Message": "",
12
12
  "Delete": "",
13
13
  "Delete Message": "",
14
- "Device camera is used to take photos or videos.": "Cihaz kamerası fotoğraf veya video çekmek için kullanılır.",
14
+ "Device camera is used to take photos or videos.": "",
15
15
  "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
16
  "Edit Message": "",
17
17
  "Editing Message": "",
@@ -21,7 +21,7 @@
21
21
  "Error loading channel list...": "",
22
22
  "Error loading messages for this channel...": "",
23
23
  "Error while loading, please reload/refresh": "",
24
- "File type not supported": "",
24
+ "File type not supported": "Dosya türü desteklenmiyor",
25
25
  "Flag": "",
26
26
  "Flag Message": "",
27
27
  "Flag action failed either due to a network issue or the message is already flagged": "",
@@ -29,47 +29,47 @@
29
29
  "Instant Commands": "",
30
30
  "Let's start chatting!": "",
31
31
  "Links are disabled": "",
32
- "Loading channels...": "",
33
- "Loading messages...": "",
34
- "Loading...": "",
32
+ "Loading channels...": "Kanallar yükleniyor...",
33
+ "Loading messages...": "Mesajlar yükleniyor...",
34
+ "Loading...": "Yükleniyor...",
35
35
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
- "Message Reactions": "Mesaj Tepkileri",
36
+ "Message Reactions": "",
37
37
  "Message deleted": "",
38
38
  "Message flagged": "",
39
39
  "Mute User": "",
40
- "Not supported": "",
40
+ "Not supported": "Desteklenmiyor",
41
41
  "Nothing yet...": "",
42
42
  "Ok": "",
43
- "Only visible to you": "",
44
- "Open Settings": "Ayarları aç",
45
- "Photo": "",
46
- "Photos and Videos": "Fotoğraflar ve Videolar",
43
+ "Only visible to you": "Sadece siz görebilirsiniz",
44
+ "Open Settings": "",
45
+ "Photo": "Fotoğraf",
46
+ "Photos and Videos": "",
47
47
  "Pin to Conversation": "",
48
48
  "Pinned by": "",
49
- "Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
49
+ "Please enable access to your photos and videos so you can share them.": "",
50
50
  "Please select a channel first": "Lütfen önce bir kanal seçiniz",
51
51
  "Reconnecting...": "",
52
52
  "Reply": "",
53
53
  "Reply to Message": "",
54
54
  "Resend": "",
55
55
  "Search GIFs": "",
56
- "Select More Photos": "Daha Fazla Fotoğraf Seçin",
56
+ "Select More Photos": "",
57
57
  "Send a message": "",
58
58
  "Sending links is not allowed in this conversation": "",
59
59
  "Slow mode ON": "",
60
60
  "The message has been reported to a moderator.": "",
61
61
  "Thread Reply": "",
62
62
  "Unblock User": "",
63
- "Unknown User": "Bilinmeyen kullanıcı",
63
+ "Unknown User": "",
64
64
  "Unmute User": "",
65
65
  "Unpin from Conversation": "",
66
- "Unread Messages": "Okunmamış Mesajlar",
67
- "Video": "",
66
+ "Unread Messages": "",
67
+ "Video": "Video",
68
68
  "You": "",
69
- "You can't send messages in this channel": "",
69
+ "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
70
70
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
71
- "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
72
- "{{ replyCount }} Replies": "{{ replyCount }} Cevap",
71
+ "{{ index }} of {{ photoLength }}": "",
72
+ "{{ replyCount }} Replies": "",
73
73
  "{{ replyCount }} Thread Replies": "",
74
74
  "{{ user }} is typing": "{{ user }} yazıyor",
75
75
  "🏙 Attachment...": ""
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.22.0-beta.6"
2
+ "version": "5.22.0-beta.7"
3
3
  }
@@ -90,9 +90,16 @@ var renderText = function renderText(params) {
90
90
  return canOpenUrl && _reactNative.Linking.openURL(url);
91
91
  });
92
92
  };
93
+ var previousLink;
93
94
  var linkReact = function linkReact(node, output, _ref) {
94
95
  var state = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_ref), _ref));
95
- var url = node.target;
96
+ var url;
97
+ if (state != null && state.withinLink && previousLink) {
98
+ url = previousLink;
99
+ } else {
100
+ url = node.target;
101
+ previousLink = node.target;
102
+ }
96
103
  var onPress = function onPress(event) {
97
104
  if (!preventPress && onPressParam) {
98
105
  onPressParam({
@@ -127,7 +134,7 @@ var renderText = function renderText(params) {
127
134
  __self: _this,
128
135
  __source: {
129
136
  fileName: _jsxFileName,
130
- lineNumber: 170,
137
+ lineNumber: 179,
131
138
  columnNumber: 7
132
139
  }
133
140
  }, output(node.content, (0, _extends2["default"])({}, state, {
@@ -145,7 +152,7 @@ var renderText = function renderText(params) {
145
152
  __self: _this,
146
153
  __source: {
147
154
  fileName: _jsxFileName,
148
- lineNumber: 188,
155
+ lineNumber: 197,
149
156
  columnNumber: 11
150
157
  }
151
158
  }, output(node.content, state));
@@ -159,7 +166,7 @@ var renderText = function renderText(params) {
159
166
  __self: _this,
160
167
  __source: {
161
168
  fileName: _jsxFileName,
162
- lineNumber: 198,
169
+ lineNumber: 207,
163
170
  columnNumber: 7
164
171
  }
165
172
  }, output(node.content, state));
@@ -211,7 +218,7 @@ var renderText = function renderText(params) {
211
218
  __self: _this,
212
219
  __source: {
213
220
  fileName: _jsxFileName,
214
- lineNumber: 253,
221
+ lineNumber: 262,
215
222
  columnNumber: 7
216
223
  }
217
224
  }, Array.isArray(node.content) ? node.content.reduce(function (acc, current) {
@@ -228,7 +235,7 @@ var renderText = function renderText(params) {
228
235
  __self: _this,
229
236
  __source: {
230
237
  fileName: _jsxFileName,
231
- lineNumber: 262,
238
+ lineNumber: 271,
232
239
  columnNumber: 5
233
240
  }
234
241
  });
@@ -272,7 +279,7 @@ var renderText = function renderText(params) {
272
279
  __self: _this,
273
280
  __source: {
274
281
  fileName: _jsxFileName,
275
- lineNumber: 294,
282
+ lineNumber: 303,
276
283
  columnNumber: 5
277
284
  }
278
285
  }, markdownText);
@@ -291,7 +298,7 @@ var ListOutput = function ListOutput(_ref4) {
291
298
  __self: _this,
292
299
  __source: {
293
300
  fileName: _jsxFileName,
294
- lineNumber: 329,
301
+ lineNumber: 338,
295
302
  columnNumber: 5
296
303
  }
297
304
  }, node.items.map(function (item, index) {
@@ -305,7 +312,7 @@ var ListOutput = function ListOutput(_ref4) {
305
312
  __self: _this,
306
313
  __source: {
307
314
  fileName: _jsxFileName,
308
- lineNumber: 335,
315
+ lineNumber: 344,
309
316
  columnNumber: 13
310
317
  }
311
318
  }, _react["default"].createElement(Bullet, {
@@ -314,7 +321,7 @@ var ListOutput = function ListOutput(_ref4) {
314
321
  __self: _this,
315
322
  __source: {
316
323
  fileName: _jsxFileName,
317
- lineNumber: 336,
324
+ lineNumber: 345,
318
325
  columnNumber: 15
319
326
  }
320
327
  }));
@@ -331,7 +338,7 @@ var ListOutput = function ListOutput(_ref4) {
331
338
  __self: _this,
332
339
  __source: {
333
340
  fileName: _jsxFileName,
334
- lineNumber: 349,
341
+ lineNumber: 358,
335
342
  columnNumber: 11
336
343
  }
337
344
  }, _react["default"].createElement(Bullet, {
@@ -340,7 +347,7 @@ var ListOutput = function ListOutput(_ref4) {
340
347
  __self: _this,
341
348
  __source: {
342
349
  fileName: _jsxFileName,
343
- lineNumber: 350,
350
+ lineNumber: 359,
344
351
  columnNumber: 13
345
352
  }
346
353
  }), _react["default"].createElement(ListItem, {
@@ -349,7 +356,7 @@ var ListOutput = function ListOutput(_ref4) {
349
356
  __self: _this,
350
357
  __source: {
351
358
  fileName: _jsxFileName,
352
- lineNumber: 354,
359
+ lineNumber: 363,
353
360
  columnNumber: 13
354
361
  }
355
362
  }, output(item, state)));
@@ -365,7 +372,7 @@ var Bullet = function Bullet(_ref5) {
365
372
  __self: _this,
366
373
  __source: {
367
374
  fileName: _jsxFileName,
368
- lineNumber: 369,
375
+ lineNumber: 378,
369
376
  columnNumber: 3
370
377
  }
371
378
  }, index ? index + ". " : "\u2022 ");
@@ -378,7 +385,7 @@ var ListRow = function ListRow(_ref6) {
378
385
  __self: _this,
379
386
  __source: {
380
387
  fileName: _jsxFileName,
381
- lineNumber: 375,
388
+ lineNumber: 384,
382
389
  columnNumber: 3
383
390
  }
384
391
  }, children);
@@ -391,7 +398,7 @@ var ListItem = function ListItem(_ref7) {
391
398
  __self: _this,
392
399
  __source: {
393
400
  fileName: _jsxFileName,
394
- lineNumber: 379,
401
+ lineNumber: 388,
395
402
  columnNumber: 3
396
403
  }
397
404
  }, children);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","linkReact","node","output","_ref","_objectDestructuringEmpty2","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","withinLink","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n const url = node.target;\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","previousLink","linkReact","node","output","_ref","_objectDestructuringEmpty2","withinLink","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n let previousLink: string | undefined;\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n let url: string;\n // Some long URLs with `&` separated parameters are trimmed and the url only until first param is taken.\n // This is done because of internal link been taken from the original URL in react-native-markdown-package. So, we check for `withinLink` and take the previous full URL.\n if (state?.withinLink && previousLink) {\n url = previousLink;\n } else {\n url = node.target;\n previousLink = node.target;\n }\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,2BAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAcA,IAAAI,qBAAA,GAAAJ,OAAA;AAA8D,IAAAK,KAAA;EAAAC,YAAA;AAO9D,IAAMC,qBAAoC,GAAG;EAC3CC,UAAU,EAAE;IACVC,QAAQ,EAAE,EAAE;IACZC,OAAO,EAAE,CAAC;IACVC,iBAAiB,EAAE;EACrB,CAAC;EACDC,IAAI,EAAE;IACJC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDC,cAAc,EAAE;IACdC,UAAU,EAAE;EACd,CAAC;EACDC,YAAY,EAAE;IACZC,IAAI,EAAE;EACR,CAAC;EACDC,OAAO,EAAE;IACPC,aAAa,EAAE;EACjB,CAAC;EACDC,QAAQ,EAAE;IACRL,UAAU,EAAE;EACd,CAAC;EACDM,SAAS,EAAE;IACTT,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDS,eAAe,EAAE;IACfV,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDU,kBAAkB,EAAE;IAClBX,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb;AACF,CAAC;AAED,IAAMW,qBAAoC,GAAG,SAAvCA,qBAAoCA,CAAIC,OAAO,EAAEC,KAAK,EAAEC,KAAK;EAAA,OAAM;IACvEC,OAAO,EAAE,IAAAC,2BAAW,EAACH,KAAK,EAAED,OAAO,CAAC,CAAC,CAAC,EAAEE,KAAK;EAC/C,CAAC;AAAA,CAAC;AAmBK,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAGrBC,MAA4C,EACzC;EACH,IACEC,MAAM,GAWJD,MAAM,CAXRC,MAAM;IACNC,aAAa,GAUXF,MAAM,CAVRE,aAAa;IACbC,cAAc,GASZH,MAAM,CATRG,cAAc;IACdC,OAAO,GAQLJ,MAAM,CARRI,OAAO;IACPC,cAAc,GAOZL,MAAM,CAPRK,cAAc;IACdC,wBAAwB,GAMtBN,MAAM,CANRM,wBAAwB;IAChBC,YAAY,GAKlBP,MAAM,CALRQ,MAAM;IACOC,gBAAgB,GAI3BT,MAAM,CAJRU,WAAW;IACXC,UAAU,GAGRX,MAAM,CAHRW,UAAU;IACDC,YAAY,GAEnBZ,MAAM,CAFRa,OAAO;IACPC,YAAY,GACVd,MAAM,CADRc,YAAY;EAGd,IAAMC,YAAY,GAAG,IAAAC,0CAAoB,EAAqBZ,OAAO,CAAC;EAEtE,IAAMa,MAAqB,OAAAC,SAAA,iBACtB3C,qBAAqB,EACrB4B,cAAc;IACjBgB,QAAQ,MAAAD,SAAA,iBACH3C,qBAAqB,CAAC4C,QAAQ;MACjCC,KAAK,EAAEnB,MAAM,CAACoB;IAAW,GACtBlB,cAAc,oBAAdA,cAAc,CAAEgB,QAAQ,CAC5B;IACD3C,UAAU,MAAA0C,SAAA,iBACL3C,qBAAqB,CAACC,UAAU;MACnC8C,eAAe,EAAErB,MAAM,CAACsB,WAAW;MACnCC,WAAW,EAAEvB,MAAM,CAACwB,cAAc;MAClCL,KAAK,EAAEnB,MAAM,CAACyB;IAAU,GACrBvB,cAAc,oBAAdA,cAAc,CAAE3B,UAAU,CAC9B;IACDa,QAAQ,MAAA6B,SAAA,iBACH3C,qBAAqB,CAACc,QAAQ;MACjC+B,KAAK,EAAEnB,MAAM,CAACoB;IAAW,GACtBlB,cAAc,oBAAdA,cAAc,CAAEd,QAAQ,CAC5B;IACDsC,IAAI,MAAAT,SAAA,iBACC3C,qBAAqB,CAACoD,IAAI;MAC7BP,KAAK,EAAEnB,MAAM,CAAC2B;IAAK,GAChBzB,cAAc,oBAAdA,cAAc,CAAEwB,IAAI;EACxB,EACF;EAED,IAAMnB,MAAM,GAAG,SAATA,MAAMA,CAAIqB,GAAW,EAAK;IAC9B,IAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,CAACD,OAAO,CAACE,IAAI,CAACH,GAAG,CAAC,EAAE;MACtBA,GAAG,GAAG,SAAS,GAAGA,GAAG;IACvB;IAEA,OAAOtB,YAAY,GACfA,YAAY,CAACsB,GAAG,CAAC,GACjBI,oBAAO,CAACC,UAAU,CAACL,GAAG,CAAC,CAACM,IAAI,CAAC,UAACC,UAAU;MAAA,OAAKA,UAAU,IAAIH,oBAAO,CAACI,OAAO,CAACR,GAAG,CAAC;IAAA,EAAC;EACtF,CAAC;EAED,IAAIS,YAAgC;EACpC,IAAMC,SAA0B,GAAG,SAA7BA,SAA0BA,CAAIC,IAAI,EAAEC,MAAM,EAAAC,IAAA,EAAmB;IAAA,IAAZ9C,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAD,IAAA,GAAAA,IAAA;IAC1D,IAAIb,GAAW;IAGf,IAAIjC,KAAK,YAALA,KAAK,CAAEgD,UAAU,IAAIN,YAAY,EAAE;MACrCT,GAAG,GAAGS,YAAY;IACpB,CAAC,MAAM;MACLT,GAAG,GAAGW,IAAI,CAACK,MAAM;MACjBP,YAAY,GAAGE,IAAI,CAACK,MAAM;IAC5B;IACA,IAAMhC,OAAO,GAAG,SAAVA,OAAOA,CAAIiC,KAA4B,EAAK;MAChD,IAAI,CAAChC,YAAY,IAAIF,YAAY,EAAE;QACjCA,YAAY,CAAC;UACXmC,cAAc,EAAE;YAAElB,GAAG,EAAHA;UAAI,CAAC;UACvBmB,cAAc,EAAE,SAAAA,eAAA,EAAM;YACpBxC,MAAM,CAACqB,GAAG,CAAC;UACb,CAAC;UACDoB,OAAO,EAAE,UAAU;UACnBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAMpC,WAAW,GAAG,SAAdA,WAAWA,CAAIoC,KAA4B,EAAK;MACpD,IAAI,CAAChC,YAAY,IAAIL,gBAAgB,EAAE;QACrCA,gBAAgB,CAAC;UACfsC,cAAc,EAAE;YAAElB,GAAG,EAAHA;UAAI,CAAC;UACvBoB,OAAO,EAAE,UAAU;UACnBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,OACEhF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MACHC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MACf1C,WAAW,EAAEA,WAAY;MACzBG,OAAO,EAAEA,OAAQ;MACjBwC,KAAK,EAAEpC,MAAM,CAACE,QAAS;MACvBmC,oBAAoB,EAAE,IAAK;MAAAC,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAE1BlB,MAAM,CAACD,IAAI,CAAC3C,OAAO,MAAAqB,SAAA,iBAAOtB,KAAK;MAAEgD,UAAU,EAAE;IAAI,EAAE,CAChD,CAAC;EAEX,CAAC;EAED,IAAMgB,kBAAmC,GAAG,SAAtCA,kBAAmCA,CAAIpB,IAAI,EAAEC,MAAM,EAAAoB,KAAA,EAAmB;IAAA,IAAZjE,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAkB,KAAA,GAAAA,KAAA;IACnE,IAAIvD,wBAAwB,KAAKwD,SAAS,EAAE;MAG1C,IAAIlE,KAAK,CAACwD,GAAG,KAAK,GAAG,IAAIxD,KAAK,CAACwD,GAAG,KAAK,CAAC,EAAE;QACxC,OACEtF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;UAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;UAACW,aAAa,EAAEzD,wBAAyB;UAAC+C,KAAK,EAAEpC,MAAM,CAAC3B,SAAU;UAAAiE,MAAA,EAAAlF,KAAA;UAAAmF,QAAA;YAAAC,QAAA,EAAAnF,YAAA;YAAAoF,UAAA;YAAAC,YAAA;UAAA;QAAA,GACpFlB,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CACvB,CAAC;MAEX,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF;IAEA,OACE9B,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MAACC,KAAK,EAAEpC,MAAM,CAAC3B,SAAU;MAAAiE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAC3ClB,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CACvB,CAAC;EAEX,CAAC;EAID,IAAQoE,eAAe,GAAK5D,OAAO,CAA3B4D,eAAe;EACvB,IAAMC,cAAc,GAAGC,KAAK,CAACC,OAAO,CAACH,eAAe,CAAC,GACjDA,eAAe,CAACI,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;IACnC,IAAMC,QAAQ,GAAGD,GAAG,CAACE,IAAI,IAAIF,GAAG,CAACG,EAAE,IAAI,EAAE;IACzC,IAAIF,QAAQ,EAAE;MACZF,GAAG,KAAOA,GAAG,CAACK,MAAM,GAAG,GAAG,GAAG,EAAE,UAAIH,QAAQ,CAACI,OAAO,CACjD,qBAAqB,EACrB,UAAUC,KAAK,EAAE;QACf,OAAO,IAAI,GAAGA,KAAK;MACrB,CACF,CAAG;IACL;IAEA,OAAOP,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC,GACN,EAAE;EAEN,IAAMQ,KAAK,GAAG,IAAI9C,MAAM,WAASkC,cAAc,QAAK,GAAG,CAAC;EACxD,IAAMa,qBAAoC,GAAG,SAAvCA,qBAAoCA,CAAIC,MAAM;IAAA,OAAKF,KAAK,CAACG,IAAI,CAACD,MAAM,CAAC;EAAA;EAE3E,IAAME,aAA8B,GAAG,SAAjCA,aAA8BA,CAAIzC,IAAI,EAAEC,MAAM,EAAAyC,KAAA,EAAmB;IAAA,IAAAC,cAAA,EAAAC,qBAAA;IAAA,IAAZxF,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAuC,KAAA,GAAAA,KAAA;IAE9D,IAAMX,QAAQ,IAAAY,cAAA,GAAG3C,IAAI,CAAC3C,OAAO,CAAC,CAAC,CAAC,sBAAAuF,qBAAA,GAAfD,cAAA,CAAiBtF,OAAO,qBAAxBuF,qBAAA,CAA0BC,SAAS,CAAC,CAAC,CAAC;IACvD,IAAMxE,OAAO,GAAG,SAAVA,OAAOA,CAAIiC,KAA4B,EAAK;MAChD,IAAI,CAAChC,YAAY,IAAIF,YAAY,EAAE;QACjCA,YAAY,CAAC;UACXmC,cAAc,EAAE;YACduC,IAAI,EAAEtB,eAAe,oBAAfA,eAAe,CAAEuB,IAAI,CACzB,UAACD,IAAsC;cAAA,OAAKf,QAAQ,KAAKe,IAAI,CAACd,IAAI;YAAA,CACpE;UACF,CAAC;UACDvB,OAAO,EAAE,aAAa;UACtBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAMpC,WAAW,GAAG,SAAdA,WAAWA,CAAIoC,KAA4B,EAAK;MACpD,IAAI,CAAChC,YAAY,IAAIL,gBAAgB,EAAE;QACrCA,gBAAgB,CAAC;UACfwC,OAAO,EAAE,aAAa;UACtBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,OACEhF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MAAC1C,WAAW,EAAEA,WAAY;MAACG,OAAO,EAAEA,OAAQ;MAACwC,KAAK,EAAEpC,MAAM,CAAC5B,QAAS;MAAAkE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GACtFO,KAAK,CAACC,OAAO,CAAC3B,IAAI,CAAC3C,OAAO,CAAC,GACxB2C,IAAI,CAAC3C,OAAO,CAACuE,MAAM,CAAC,UAACC,GAAG,EAAEmB,OAAO;MAAA,OAAKnB,GAAG,GAAGmB,OAAO,CAAC3F,OAAO;IAAA,GAAE,EAAE,CAAC,IAAI,EAAE,GACtE4C,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CAC1B,CAAC;EAEX,CAAC;EAED,IAAM6F,SAA0B,GAAG,SAA7BA,SAA0BA,CAAIjD,IAAI,EAAEC,MAAM,EAAE7C,KAAK;IAAA,OACrD9B,MAAA,YAAAoF,aAAA,CAACwC,UAAU;MACTtC,GAAG,YAAUxD,KAAK,CAACwD,GAAM;MACzBZ,IAAI,EAAEA,IAAK;MACXC,MAAM,EAAEA,MAAO;MACf7C,KAAK,EAAEA,KAAM;MACbqB,MAAM,EAAEA,MAAO;MAAAsC,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAChB,CAAC;EAAA,CACH;EAED,IAAMgC,WAAW,OAAAzE,SAAA;IAEf0E,KAAK,EAAE;MAAEhB,KAAK,EAAE,SAAAA,MAAA;QAAA,OAAM,IAAI;MAAA;IAAC,CAAC;IAC5BiB,IAAI,EAAE;MAAEC,KAAK,EAAEvD;IAAU,CAAC;IAC1B3D,IAAI,EAAE;MAAEkH,KAAK,EAAEL;IAAU,CAAC;IAE1BnG,SAAS,EAAEgB,wBAAwB,GAAG;MAAEwF,KAAK,EAAElC;IAAmB,CAAC,GAAG,CAAC,CAAC;IAExEmC,OAAO,EAAE;MAAEnB,KAAK,EAAE,SAAAA,MAAA;QAAA,OAAM,IAAI;MAAA;IAAC,CAAC;IAC9BoB,OAAO,EAAE;MAAEF,KAAK,EAAEL;IAAU;EAAC,GACzBxB,cAAc,GACd;IACE5E,QAAQ,EAAE;MACRuF,KAAK,EAAEE,qBAAqB;MAC5BmB,KAAK,EAAEC,4BAAY,CAACvE,IAAI,CAACsE,KAAK,GAAG,GAAG;MACpCtG,KAAK,EAAEF,qBAAqB;MAC5BqG,KAAK,EAAEb;IACT;EACF,CAAC,GACD,CAAC,CAAC,CACP;EAED,OACEnH,MAAA,YAAAoF,aAAA,CAAChF,2BAAA,WAAQ;IACPkF,GAAG,EAAK+C,IAAI,CAACC,SAAS,CAACpC,eAAe,CAAC,SAAIrD,UAAU,UACnDN,cAAc,GAAG8F,IAAI,CAACC,SAAS,CAACjG,cAAc,CAAC,GAAG2D,SAAS,UACzDqC,IAAI,CAACC,SAAS,CAACnG,MAAM,CAAI;IAC7BO,MAAM,EAAEA,MAAO;IACf6F,KAAK,MAAAnF,SAAA,iBACAyE,WAAW,EACXzF,aAAa,CAChB;IACFe,MAAM,EAAEA,MAAO;IAAAsC,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEd5C,YACO,CAAC;AAEf,CAAC;AAACuF,OAAA,CAAAvG,UAAA,GAAAA,UAAA;AAgBK,IAAM2F,UAAU,GAAG,SAAbA,UAAUA,CAAAa,KAAA,EAAyD;EAAA,IAAnD/D,IAAI,GAAA+D,KAAA,CAAJ/D,IAAI;IAAEC,MAAM,GAAA8D,KAAA,CAAN9D,MAAM;IAAE7C,KAAK,GAAA2G,KAAA,CAAL3G,KAAK;IAAEqB,MAAM,GAAAsF,KAAA,CAANtF,MAAM;EACtD,IAAIuF,SAAS,GAAG5G,KAAK,CAAC6G,UAAU;EAChC,IAAMC,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;EAEnD,OACE5I,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAA0I,IAAI;IAACvD,GAAG,EAAExD,KAAK,CAACwD,GAAI;IAACC,KAAK,EAAEmD,SAAS,GAAGvF,MAAM,oBAANA,MAAM,CAAE+E,OAAO,GAAG/E,MAAM,oBAANA,MAAM,CAAErC,IAAK;IAAA2E,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACrEnB,IAAI,CAACoE,KAAK,CAACC,GAAG,CAAC,UAACC,IAAmB,EAAEC,KAAa,EAAK;IAAA,IAAAC,MAAA;IACtD,IAAMC,eAAe,GAAGzE,IAAI,CAAC0E,KAAK,GAAGH,KAAK;IAE1C,IAAID,IAAI,KAAK,IAAI,EAAE;MACjB,OACEhJ,MAAA,YAAAoF,aAAA,CAACiE,OAAO;QAAC/D,GAAG,EAAE2D,KAAM;QAAC1D,KAAK,EAAEpC,MAAM,oBAANA,MAAM,CAAE9B,OAAQ;QAACiI,MAAM,EAAC,WAAW;QAAA7D,MAAA,EAAAlF,KAAA;QAAAmF,QAAA;UAAAC,QAAA,EAAAnF,YAAA;UAAAoF,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC7D7F,MAAA,YAAAoF,aAAA,CAACmE,MAAM;QACLN,KAAK,EAAEvE,IAAI,CAAC8E,OAAO,IAAIL,eAAgB;QACvC5D,KAAK,EAAEb,IAAI,CAAC8E,OAAO,GAAGrG,MAAM,oBAANA,MAAM,CAAElC,cAAc,GAAGkC,MAAM,oBAANA,MAAM,CAAEsG,cAAe;QAAAhE,MAAA,EAAAlF,KAAA;QAAAmF,QAAA;UAAAC,QAAA,EAAAnF,YAAA;UAAAoF,UAAA;UAAAC,YAAA;QAAA;MAAA,CACvE,CACM,CAAC;IAEd;IAEA6C,SAAS,GAAGM,IAAI,CAACpC,MAAM,GAAG,CAAC,IAAIoC,IAAI,CAAC,CAAC,CAAC,CAACU,IAAI,KAAK,MAAM;IACtD,IAAMC,mBAAmB,GAAGf,WAAW,CAACgB,QAAQ,CAAC,EAAAV,MAAA,GAACF,IAAI,CAAC,CAAC,CAAC,YAAAE,MAAA,GAAI,CAAC,CAAC,EAAEQ,IAAI,CAAC,IAAIhB,SAAS;IACnF,IAAMnD,KAAK,GAAGoE,mBAAmB,GAAG;MAAE5I,YAAY,EAAE;IAAE,CAAC,GAAG,CAAC,CAAC;IAE5D,OACEf,MAAA,YAAAoF,aAAA,CAACiE,OAAO;MAAC/D,GAAG,EAAE2D,KAAM;MAAC1D,KAAK,EAAEpC,MAAM,oBAANA,MAAM,CAAE9B,OAAQ;MAACiI,MAAM,EAAC,WAAW;MAAA7D,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAC7D7F,MAAA,YAAAoF,aAAA,CAACmE,MAAM;MACLN,KAAK,EAAEvE,IAAI,CAAC8E,OAAO,IAAIL,eAAgB;MACvC5D,KAAK,EAAEb,IAAI,CAAC8E,OAAO,GAAGrG,MAAM,oBAANA,MAAM,CAAElC,cAAc,GAAGkC,MAAM,oBAANA,MAAM,CAAEsG,cAAe;MAAAhE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,CACvE,CAAC,EACF7F,MAAA,YAAAoF,aAAA,CAACyE,QAAQ;MAACvE,GAAG,EAAE,CAAE;MAACC,KAAK,EAAE,CAACpC,MAAM,oBAANA,MAAM,CAAEhC,YAAY,EAAEoE,KAAK,CAAE;MAAAE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GACpDlB,MAAM,CAACqE,IAAI,EAAElH,KAAK,CACX,CACH,CAAC;EAEd,CAAC,CACG,CAAC;AAEX,CAAC;AAAC0G,OAAA,CAAAZ,UAAA,GAAAA,UAAA;AAMF,IAAM2B,MAAM,GAAG,SAATA,MAAMA,CAAAO,KAAA;EAAA,IAAMb,KAAK,GAAAa,KAAA,CAALb,KAAK;IAAE1D,KAAK,GAAAuE,KAAA,CAALvE,KAAK;EAAA,OAC5BvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACC,GAAG,EAAE,CAAE;IAACC,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxBoD,KAAK,GAAMA,KAAK,UAAO,SACpB,CAAC;AAAA,CACR;AAED,IAAMI,OAAO,GAAG,SAAVA,OAAOA,CAAAU,KAAA;EAAA,IAAMC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAEzE,KAAK,GAAAwE,KAAA,CAALxE,KAAK;EAAA,OAChCvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACE,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEmE,QAAe,CAAC;AAAA,CACtC;AAED,IAAMH,QAAQ,GAAG,SAAXA,QAAQA,CAAAI,KAAA;EAAA,IAAMD,QAAQ,GAAAC,KAAA,CAARD,QAAQ;IAAEzE,KAAK,GAAA0E,KAAA,CAAL1E,KAAK;EAAA,OACjCvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACE,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEmE,QAAe,CAAC;AAAA,CACtC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_utils","_this","_jsxFileName","REFRESH_ICON_SIZE","UploadProgressIndicator","props","action","children","style","type","_useTheme","useTheme","_useTheme$theme","theme","overlayColor","colors","overlay","container","messageInput","uploadProgressIndicator","ProgressIndicatorTypes","INACTIVE","createElement","View","styles","overflowHidden","testID","__self","__source","fileName","lineNumber","columnNumber","NOT_SUPPORTED","backgroundColor","IN_PROGRESS","InProgressIndicator","RETRY","RetryIndicator","exports","_useTheme2","white_smoke","activityIndicatorContainer","ActivityIndicator","color","_ref","_useTheme3","TouchableOpacity","onPress","retryButtonContainer","Refresh","height","pathFill","width","StyleSheet","create","alignItems","bottom","justifyContent","left","position","right","top","overflow","opacity","displayName"],"sources":["UploadProgressIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ActivityIndicator,\n GestureResponderEvent,\n StyleProp,\n StyleSheet,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Refresh } from '../../icons';\nimport { ProgressIndicatorTypes } from '../../utils/utils';\n\nconst REFRESH_ICON_SIZE = 18;\n\nexport type UploadProgressIndicatorProps = {\n /** Action triggered when clicked indicator */\n action?: (event: GestureResponderEvent) => void;\n /** style */\n style?: StyleProp<ViewStyle>;\n /** Type of active indicator */\n type?: 'in_progress' | 'retry' | 'not_supported' | 'inactive' | null;\n};\n\nexport const UploadProgressIndicator: React.FC<UploadProgressIndicatorProps> = (props) => {\n const { action, children, style, type } = props;\n\n const {\n theme: {\n colors: { overlay: overlayColor },\n messageInput: {\n uploadProgressIndicator: { container },\n },\n },\n } = useTheme();\n\n return type === ProgressIndicatorTypes.INACTIVE ? (\n <View style={[styles.overflowHidden, style]} testID='inactive-upload-progress-indicator'>\n {children}\n </View>\n ) : (\n <View style={[styles.overflowHidden, style]} testID='active-upload-progress-indicator'>\n {children}\n <View\n style={[\n type === ProgressIndicatorTypes.NOT_SUPPORTED ? styles.overflowHidden : styles.container,\n { backgroundColor: overlayColor },\n container,\n ]}\n testID='not-supported-upload-progress-indicator'\n >\n {type === ProgressIndicatorTypes.IN_PROGRESS && <InProgressIndicator />}\n {type === ProgressIndicatorTypes.RETRY && <RetryIndicator action={action} />}\n </View>\n </View>\n );\n};\n\nconst InProgressIndicator = () => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <View style={styles.activityIndicatorContainer}>\n <ActivityIndicator color={white_smoke} testID='upload-progress-indicator' />\n </View>\n );\n};\n\nconst RetryIndicator = ({ action }: Pick<UploadProgressIndicatorProps, 'action'>) => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity onPress={action} style={styles.retryButtonContainer}>\n <Refresh\n height={REFRESH_ICON_SIZE}\n pathFill={white_smoke}\n testID='retry-upload-progress-indicator'\n width={REFRESH_ICON_SIZE}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n activityIndicatorContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n container: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n overflowHidden: {\n overflow: 'hidden',\n },\n overlay: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n opacity: 0,\n position: 'absolute',\n width: '100%',\n },\n retryButtonContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\n\nUploadProgressIndicator.displayName =\n 'UploadProgressIndicator{messageInput{uploadProgressIndicator}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_utils","_this","_jsxFileName","REFRESH_ICON_SIZE","UploadProgressIndicator","props","action","children","style","type","_useTheme","useTheme","_useTheme$theme","theme","overlayColor","colors","overlay","container","messageInput","uploadProgressIndicator","ProgressIndicatorTypes","INACTIVE","createElement","View","styles","overflowHidden","testID","__self","__source","fileName","lineNumber","columnNumber","NOT_SUPPORTED","backgroundColor","IN_PROGRESS","InProgressIndicator","RETRY","RetryIndicator","exports","_useTheme2","white_smoke","activityIndicatorContainer","ActivityIndicator","color","_ref","_useTheme3","TouchableOpacity","onPress","retryButtonContainer","Refresh","height","pathFill","width","StyleSheet","create","alignItems","bottom","justifyContent","left","position","right","top","overflow","opacity","displayName"],"sources":["UploadProgressIndicator.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport {\n ActivityIndicator,\n GestureResponderEvent,\n StyleProp,\n StyleSheet,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Refresh } from '../../icons';\nimport { ProgressIndicatorTypes } from '../../utils/utils';\n\nconst REFRESH_ICON_SIZE = 18;\n\nexport type UploadProgressIndicatorProps = {\n /** Action triggered when clicked indicator */\n action?: (event: GestureResponderEvent) => void;\n /** style */\n style?: StyleProp<ViewStyle>;\n /** Type of active indicator */\n type?: 'in_progress' | 'retry' | 'not_supported' | 'inactive' | null;\n};\n\nexport const UploadProgressIndicator = (props: PropsWithChildren<UploadProgressIndicatorProps>) => {\n const { action, children, style, type } = props;\n\n const {\n theme: {\n colors: { overlay: overlayColor },\n messageInput: {\n uploadProgressIndicator: { container },\n },\n },\n } = useTheme();\n\n return type === ProgressIndicatorTypes.INACTIVE ? (\n <View style={[styles.overflowHidden, style]} testID='inactive-upload-progress-indicator'>\n {children}\n </View>\n ) : (\n <View style={[styles.overflowHidden, style]} testID='active-upload-progress-indicator'>\n {children}\n <View\n style={[\n type === ProgressIndicatorTypes.NOT_SUPPORTED ? styles.overflowHidden : styles.container,\n { backgroundColor: overlayColor },\n container,\n ]}\n testID='not-supported-upload-progress-indicator'\n >\n {type === ProgressIndicatorTypes.IN_PROGRESS && <InProgressIndicator />}\n {type === ProgressIndicatorTypes.RETRY && <RetryIndicator action={action} />}\n </View>\n </View>\n );\n};\n\nconst InProgressIndicator = () => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <View style={styles.activityIndicatorContainer}>\n <ActivityIndicator color={white_smoke} testID='upload-progress-indicator' />\n </View>\n );\n};\n\nconst RetryIndicator = ({ action }: Pick<UploadProgressIndicatorProps, 'action'>) => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity onPress={action} style={styles.retryButtonContainer}>\n <Refresh\n height={REFRESH_ICON_SIZE}\n pathFill={white_smoke}\n testID='retry-upload-progress-indicator'\n width={REFRESH_ICON_SIZE}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n activityIndicatorContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n container: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n overflowHidden: {\n overflow: 'hidden',\n },\n overlay: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n opacity: 0,\n position: 'absolute',\n width: '100%',\n },\n retryButtonContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\n\nUploadProgressIndicator.displayName =\n 'UploadProgressIndicator{messageInput{uploadProgressIndicator}}';\n"],"mappings":"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"}