stream-chat-react-native-core 5.20.1-beta.1 → 5.21.0-beta.2

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 (55) hide show
  1. package/lib/commonjs/components/MessageInput/MessageInput.js +36 -30
  2. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  3. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +5 -3
  4. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  5. package/lib/commonjs/i18n/en.json +1 -0
  6. package/lib/commonjs/i18n/fr.json +28 -27
  7. package/lib/commonjs/i18n/he.json +2 -1
  8. package/lib/commonjs/i18n/hi.json +28 -27
  9. package/lib/commonjs/i18n/it.json +28 -27
  10. package/lib/commonjs/i18n/ja.json +2 -1
  11. package/lib/commonjs/i18n/ko.json +2 -1
  12. package/lib/commonjs/i18n/nl.json +28 -27
  13. package/lib/commonjs/i18n/ru.json +28 -27
  14. package/lib/commonjs/i18n/tr.json +28 -27
  15. package/lib/commonjs/version.json +1 -1
  16. package/lib/module/components/MessageInput/MessageInput.js +36 -30
  17. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  18. package/lib/module/contexts/messageInputContext/MessageInputContext.js +5 -3
  19. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  20. package/lib/module/i18n/en.json +1 -0
  21. package/lib/module/i18n/fr.json +28 -27
  22. package/lib/module/i18n/he.json +2 -1
  23. package/lib/module/i18n/hi.json +28 -27
  24. package/lib/module/i18n/it.json +28 -27
  25. package/lib/module/i18n/ja.json +2 -1
  26. package/lib/module/i18n/ko.json +2 -1
  27. package/lib/module/i18n/nl.json +28 -27
  28. package/lib/module/i18n/ru.json +28 -27
  29. package/lib/module/i18n/tr.json +28 -27
  30. package/lib/module/version.json +1 -1
  31. package/lib/typescript/i18n/en.json +1 -0
  32. package/lib/typescript/i18n/fr.json +28 -27
  33. package/lib/typescript/i18n/he.json +2 -1
  34. package/lib/typescript/i18n/hi.json +28 -27
  35. package/lib/typescript/i18n/it.json +28 -27
  36. package/lib/typescript/i18n/ja.json +2 -1
  37. package/lib/typescript/i18n/ko.json +2 -1
  38. package/lib/typescript/i18n/nl.json +28 -27
  39. package/lib/typescript/i18n/ru.json +28 -27
  40. package/lib/typescript/i18n/tr.json +28 -27
  41. package/lib/typescript/utils/Streami18n.d.ts +1 -4
  42. package/package.json +1 -1
  43. package/src/components/MessageInput/MessageInput.tsx +9 -2
  44. package/src/contexts/messageInputContext/MessageInputContext.tsx +4 -1
  45. package/src/i18n/en.json +1 -0
  46. package/src/i18n/fr.json +28 -27
  47. package/src/i18n/he.json +2 -1
  48. package/src/i18n/hi.json +28 -27
  49. package/src/i18n/it.json +28 -27
  50. package/src/i18n/ja.json +2 -1
  51. package/src/i18n/ko.json +2 -1
  52. package/src/i18n/nl.json +28 -27
  53. package/src/i18n/ru.json +28 -27
  54. package/src/i18n/tr.json +28 -27
  55. package/src/version.json +1 -1
@@ -126,6 +126,8 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
126
126
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
127
127
  height = _useState2[0],
128
128
  setHeight = _useState2[1];
129
+ var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
130
+ t = _useTranslationContex.t;
129
131
  var _useTheme = (0, _ThemeContext.useTheme)(),
130
132
  _useTheme$theme = _useTheme.theme,
131
133
  _useTheme$theme$color = _useTheme$theme.colors,
@@ -221,7 +223,9 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
221
223
  return !uploadedImage;
222
224
  });
223
225
  if (imageToUpload && Number(imageToUpload.fileSize) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {
224
- _reactNative.Alert.alert("Maximum file size upload limit reached, please upload an image below " + MAX_FILE_SIZE_TO_UPLOAD_IN_MB + "MB.");
226
+ _reactNative.Alert.alert(t("Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.", {
227
+ MAX_FILE_SIZE_TO_UPLOAD_IN_MB: MAX_FILE_SIZE_TO_UPLOAD_IN_MB
228
+ }));
225
229
  setSelectedImages(selectedImages.filter(function (selectedImage) {
226
230
  return selectedImage.uri !== imageToUpload.uri;
227
231
  }));
@@ -257,7 +261,9 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
257
261
  return !uploadedFile;
258
262
  });
259
263
  if (fileToUpload && Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {
260
- _reactNative.Alert.alert("Maximum file size upload limit reached, please upload a file below " + MAX_FILE_SIZE_TO_UPLOAD_IN_MB + "MB.");
264
+ _reactNative.Alert.alert(t("Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.", {
265
+ MAX_FILE_SIZE_TO_UPLOAD_IN_MB: MAX_FILE_SIZE_TO_UPLOAD_IN_MB
266
+ }));
261
267
  setSelectedFiles(selectedFiles.filter(function (selectedFile) {
262
268
  return selectedFile.uri !== fileToUpload.uri;
263
269
  }));
@@ -387,21 +393,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
387
393
  __self: _this,
388
394
  __source: {
389
395
  fileName: _jsxFileName,
390
- lineNumber: 511,
396
+ lineNumber: 518,
391
397
  columnNumber: 7
392
398
  }
393
399
  }, editing && _react["default"].createElement(InputEditingStateHeader, {
394
400
  __self: _this,
395
401
  __source: {
396
402
  fileName: _jsxFileName,
397
- lineNumber: 519,
403
+ lineNumber: 526,
398
404
  columnNumber: 21
399
405
  }
400
406
  }), quotedMessage && _react["default"].createElement(InputReplyStateHeader, {
401
407
  __self: _this,
402
408
  __source: {
403
409
  fileName: _jsxFileName,
404
- lineNumber: 520,
410
+ lineNumber: 527,
405
411
  columnNumber: 27
406
412
  }
407
413
  }), _react["default"].createElement(_reactNative.View, {
@@ -409,7 +415,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
409
415
  __self: _this,
410
416
  __source: {
411
417
  fileName: _jsxFileName,
412
- lineNumber: 521,
418
+ lineNumber: 528,
413
419
  columnNumber: 9
414
420
  }
415
421
  }, Input ? _react["default"].createElement(Input, {
@@ -418,7 +424,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
418
424
  __self: _this,
419
425
  __source: {
420
426
  fileName: _jsxFileName,
421
- lineNumber: 523,
427
+ lineNumber: 530,
422
428
  columnNumber: 13
423
429
  }
424
430
  }) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
@@ -426,14 +432,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
426
432
  __self: _this,
427
433
  __source: {
428
434
  fileName: _jsxFileName,
429
- lineNumber: 529,
435
+ lineNumber: 536,
430
436
  columnNumber: 15
431
437
  }
432
438
  }, InputButtons && _react["default"].createElement(InputButtons, {
433
439
  __self: _this,
434
440
  __source: {
435
441
  fileName: _jsxFileName,
436
- lineNumber: 530,
442
+ lineNumber: 537,
437
443
  columnNumber: 34
438
444
  }
439
445
  })), _react["default"].createElement(_reactNative.View, {
@@ -444,7 +450,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
444
450
  __self: _this,
445
451
  __source: {
446
452
  fileName: _jsxFileName,
447
- lineNumber: 532,
453
+ lineNumber: 539,
448
454
  columnNumber: 15
449
455
  }
450
456
  }, (typeof editing !== 'boolean' && (editing == null ? void 0 : editing.quoted_message) || quotedMessage) && _react["default"].createElement(_reactNative.View, {
@@ -452,21 +458,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
452
458
  __self: _this,
453
459
  __source: {
454
460
  fileName: _jsxFileName,
455
- lineNumber: 543,
461
+ lineNumber: 550,
456
462
  columnNumber: 19
457
463
  }
458
464
  }, _react["default"].createElement(Reply, {
459
465
  __self: _this,
460
466
  __source: {
461
467
  fileName: _jsxFileName,
462
- lineNumber: 544,
468
+ lineNumber: 551,
463
469
  columnNumber: 21
464
470
  }
465
471
  })), imageUploads.length ? _react["default"].createElement(ImageUploadPreview, {
466
472
  __self: _this,
467
473
  __source: {
468
474
  fileName: _jsxFileName,
469
- lineNumber: 547,
475
+ lineNumber: 554,
470
476
  columnNumber: 40
471
477
  }
472
478
  }) : null, imageUploads.length && fileUploads.length ? _react["default"].createElement(_reactNative.View, {
@@ -477,14 +483,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
477
483
  __self: _this,
478
484
  __source: {
479
485
  fileName: _jsxFileName,
480
- lineNumber: 549,
486
+ lineNumber: 556,
481
487
  columnNumber: 19
482
488
  }
483
489
  }) : null, fileUploads.length ? _react["default"].createElement(FileUploadPreview, {
484
490
  __self: _this,
485
491
  __source: {
486
492
  fileName: _jsxFileName,
487
- lineNumber: 559,
493
+ lineNumber: 566,
488
494
  columnNumber: 39
489
495
  }
490
496
  }) : null, giphyActive ? _react["default"].createElement(InputGiphySearch, {
@@ -492,7 +498,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
492
498
  __self: _this,
493
499
  __source: {
494
500
  fileName: _jsxFileName,
495
- lineNumber: 561,
501
+ lineNumber: 568,
496
502
  columnNumber: 19
497
503
  }
498
504
  }) : _react["default"].createElement(_reactNative.View, {
@@ -500,7 +506,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
500
506
  __self: _this,
501
507
  __source: {
502
508
  fileName: _jsxFileName,
503
- lineNumber: 563,
509
+ lineNumber: 570,
504
510
  columnNumber: 19
505
511
  }
506
512
  }, _react["default"].createElement(_AutoCompleteInput.AutoCompleteInput, {
@@ -509,7 +515,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
509
515
  __self: _this,
510
516
  __source: {
511
517
  fileName: _jsxFileName,
512
- lineNumber: 564,
518
+ lineNumber: 571,
513
519
  columnNumber: 21
514
520
  }
515
521
  }))), _react["default"].createElement(_reactNative.View, {
@@ -517,7 +523,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
517
523
  __self: _this,
518
524
  __source: {
519
525
  fileName: _jsxFileName,
520
- lineNumber: 571,
526
+ lineNumber: 578,
521
527
  columnNumber: 15
522
528
  }
523
529
  }, cooldownRemainingSeconds ? _react["default"].createElement(CooldownTimer, {
@@ -525,7 +531,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
525
531
  __self: _this,
526
532
  __source: {
527
533
  fileName: _jsxFileName,
528
- lineNumber: 573,
534
+ lineNumber: 580,
529
535
  columnNumber: 19
530
536
  }
531
537
  }) : _react["default"].createElement(SendButton, {
@@ -533,7 +539,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
533
539
  __self: _this,
534
540
  __source: {
535
541
  fileName: _jsxFileName,
536
- lineNumber: 575,
542
+ lineNumber: 582,
537
543
  columnNumber: 19
538
544
  }
539
545
  })))), _react["default"].createElement(ShowThreadMessageInChannelButton, {
@@ -541,7 +547,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
541
547
  __self: _this,
542
548
  __source: {
543
549
  fileName: _jsxFileName,
544
- lineNumber: 585,
550
+ lineNumber: 592,
545
551
  columnNumber: 9
546
552
  }
547
553
  })), triggerType && suggestions ? _react["default"].createElement(_reactNative.View, {
@@ -552,7 +558,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
552
558
  __self: _this,
553
559
  __source: {
554
560
  fileName: _jsxFileName,
555
- lineNumber: 589,
561
+ lineNumber: 596,
556
562
  columnNumber: 9
557
563
  }
558
564
  }, _react["default"].createElement(AutoCompleteSuggestionList, {
@@ -564,7 +570,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
564
570
  __self: _this,
565
571
  __source: {
566
572
  fileName: _jsxFileName,
567
- lineNumber: 596,
573
+ lineNumber: 603,
568
574
  columnNumber: 11
569
575
  }
570
576
  })) : null, selectedPicker && _react["default"].createElement(_reactNative.View, {
@@ -575,14 +581,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
575
581
  __self: _this,
576
582
  __source: {
577
583
  fileName: _jsxFileName,
578
- lineNumber: 606,
584
+ lineNumber: 613,
579
585
  columnNumber: 9
580
586
  }
581
587
  }, _react["default"].createElement(_AttachmentSelectionBar.AttachmentSelectionBar, {
582
588
  __self: _this,
583
589
  __source: {
584
590
  fileName: _jsxFileName,
585
- lineNumber: 618,
591
+ lineNumber: 625,
586
592
  columnNumber: 11
587
593
  }
588
594
  })));
@@ -722,14 +728,14 @@ var MessageInput = function MessageInput(props) {
722
728
  triggerType = _useSuggestionsContex.triggerType;
723
729
  var _useThreadContext = (0, _ThreadContext.useThreadContext)(),
724
730
  thread = _useThreadContext.thread;
725
- var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
726
- t = _useTranslationContex.t;
731
+ var _useTranslationContex2 = (0, _TranslationContext.useTranslationContext)(),
732
+ t = _useTranslationContex2.t;
727
733
  if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {
728
734
  return _react["default"].createElement(SendMessageDisallowedIndicator, {
729
735
  __self: _this,
730
736
  __source: {
731
737
  fileName: _jsxFileName,
732
- lineNumber: 824,
738
+ lineNumber: 831,
733
739
  columnNumber: 12
734
740
  }
735
741
  });
@@ -788,7 +794,7 @@ var MessageInput = function MessageInput(props) {
788
794
  __self: _this,
789
795
  __source: {
790
796
  fileName: _jsxFileName,
791
- lineNumber: 828,
797
+ lineNumber: 835,
792
798
  columnNumber: 5
793
799
  }
794
800
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","fileSize","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","size","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","mimeType","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","t","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex","useTranslationContext","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Alert, StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.fileSize) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload an image below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload a file below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottom-sheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n mimeType: fileUpload.file.mimeType,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTranslationContex","useTranslationContext","t","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","fileSize","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","size","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","mimeType","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex2","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Alert, StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n const { t } = useTranslationContext();\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.fileSize) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottom-sheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n mimeType: fileUpload.file.mimeType,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAIA,IAAAM,oBAAA,GAAAN,OAAA;AAIA,IAAAO,gBAAA,GAAAP,OAAA;AAIA,IAAAQ,uBAAA,GAAAR,OAAA;AACA,IAAAS,mBAAA,GAAAT,OAAA;AAIA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,cAAA,GAAAX,OAAA;AACA,IAAAY,mBAAA,GAAAZ,OAAA;AAMA,IAAAa,uBAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AAA2E,IAAAe,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAnB,wBAAAuB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,gCAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,oBAAAE,EAAA,UAAAA,EAAA,GAAAA,EAAA,CAAAN,IAAA,CAAAI,CAAA,GAAAK,IAAA,CAAAC,IAAA,CAAAJ,EAAA,OAAAK,KAAA,CAAAC,OAAA,CAAAR,CAAA,MAAAE,EAAA,GAAAO,2BAAA,CAAAT,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAU,MAAA,qBAAAR,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAS,CAAA,+BAAAA,CAAA,IAAAX,CAAA,CAAAU,MAAA,WAAAE,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAb,CAAA,CAAAW,CAAA,sBAAAG,SAAA;AAAA,SAAAL,4BAAAT,CAAA,EAAAe,MAAA,SAAAf,CAAA,qBAAAA,CAAA,sBAAAgB,iBAAA,CAAAhB,CAAA,EAAAe,MAAA,OAAAE,CAAA,GAAA3B,MAAA,CAAAI,SAAA,CAAAwB,QAAA,CAAAtB,IAAA,CAAAI,CAAA,EAAAmB,KAAA,aAAAF,CAAA,iBAAAjB,CAAA,CAAAoB,WAAA,EAAAH,CAAA,GAAAjB,CAAA,CAAAoB,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAV,KAAA,CAAAe,IAAA,CAAAtB,CAAA,OAAAiB,CAAA,+DAAAM,IAAA,CAAAN,CAAA,UAAAD,iBAAA,CAAAhB,CAAA,EAAAe,MAAA;AAAA,SAAAC,kBAAAQ,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAd,MAAA,EAAAe,GAAA,GAAAD,GAAA,CAAAd,MAAA,WAAAC,CAAA,MAAAe,IAAA,OAAAnB,KAAA,CAAAkB,GAAA,GAAAd,CAAA,GAAAc,GAAA,EAAAd,CAAA,IAAAe,IAAA,CAAAf,CAAA,IAAAa,GAAA,CAAAb,CAAA,UAAAe,IAAA;AAE3E,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,mBAAmB,EAAE;IACnBC,iBAAiB,EAAE,CAAC;IACpBC,YAAY,EAAE;EAChB,CAAC;EACDC,0BAA0B,EAAE;IAC1BC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,WAAW,EAAE,EAAE;IACfC,YAAY,EAAE;EAChB,CAAC;EACDC,iBAAiB,EAAE;IACjBJ,UAAU,EAAE,UAAU;IACtBC,aAAa,EAAE;EACjB,CAAC;EACDI,SAAS,EAAE;IACTC,cAAc,EAAE,CAAC;IACjBC,OAAO,EAAE;EACX,CAAC;EACDC,iBAAiB,EAAE;IACjBC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,IAAI,EAAE;EACR,CAAC;EACDC,gBAAgB,EAAE;IAChBX,aAAa,EAAE,KAAK;IACpBY,aAAa,EAAE,EAAE;IACjBV,YAAY,EAAE;EAChB,CAAC;EACDW,cAAc,EAAE;IAAED,aAAa,EAAE,EAAE;IAAEE,iBAAiB,EAAE;EAAE,CAAC;EAC3DC,mBAAmB,EAAE;IAAEH,aAAa,EAAE,EAAE;IAAEX,WAAW,EAAE;EAAG,CAAC;EAC3De,wBAAwB,EAAE;IACxBR,YAAY,EAAE,EAAE;IAChBS,SAAS,EAAE,CAAC;IACZC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,CAAC;IACRC,YAAY,EAAE;MAAEC,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AA4DF,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAG3BC,KAAuD,EACpD;EACH,IACEC,wBAAwB,GA0CtBD,KAAK,CA1CPC,wBAAwB;IACxBC,QAAQ,GAyCNF,KAAK,CAzCPE,QAAQ;IACRC,YAAY,GAwCVH,KAAK,CAxCPG,YAAY;IACZC,0BAA0B,GAuCxBJ,KAAK,CAvCPI,0BAA0B;IAC1BC,qBAAqB,GAsCnBL,KAAK,CAtCPK,qBAAqB;IACrBC,cAAc,GAqCZN,KAAK,CArCPM,cAAc;IACdC,aAAa,GAoCXP,KAAK,CApCPO,aAAa;IACbC,QAAQ,GAmCNR,KAAK,CAnCPQ,QAAQ;IACRC,OAAO,GAkCLT,KAAK,CAlCPS,OAAO;IACPC,iBAAiB,GAiCfV,KAAK,CAjCPU,iBAAiB;IACjBC,WAAW,GAgCTX,KAAK,CAhCPW,WAAW;IACXC,WAAW,GA+BTZ,KAAK,CA/BPY,WAAW;IACXC,kBAAkB,GA8BhBb,KAAK,CA9BPa,kBAAkB;IAClBC,YAAY,GA6BVd,KAAK,CA7BPc,YAAY;IACZC,KAAK,GA4BHf,KAAK,CA5BPe,KAAK;IACLC,WAAW,GA2BThB,KAAK,CA3BPgB,WAAW;IACXC,YAAY,GA0BVjB,KAAK,CA1BPiB,YAAY;IACZC,uBAAuB,GAyBrBlB,KAAK,CAzBPkB,uBAAuB;IACvBC,gBAAgB,GAwBdnB,KAAK,CAxBPmB,gBAAgB;IAChBC,qBAAqB,GAuBnBpB,KAAK,CAvBPoB,qBAAqB;IACrBC,QAAQ,GAsBNrB,KAAK,CAtBPqB,QAAQ;IACRC,cAAc,GAqBZtB,KAAK,CArBPsB,cAAc;IACdC,gBAAgB,GAoBdvB,KAAK,CApBPuB,gBAAgB;IAChBC,OAAO,GAmBLxB,KAAK,CAnBPwB,OAAO;IACPC,cAAc,GAkBZzB,KAAK,CAlBPyB,cAAc;IACdC,eAAe,GAiBb1B,KAAK,CAjBP0B,eAAe;IACfC,aAAa,GAgBX3B,KAAK,CAhBP2B,aAAa;IACbC,UAAU,GAeR5B,KAAK,CAfP4B,UAAU;IACVC,WAAW,GAcT7B,KAAK,CAdP6B,WAAW;IACXC,KAAK,GAaH9B,KAAK,CAbP8B,KAAK;IACLC,UAAU,GAYR/B,KAAK,CAZP+B,UAAU;IACVC,UAAU,GAWRhC,KAAK,CAXPgC,UAAU;IACVC,OAAO,GAULjC,KAAK,CAVPiC,OAAO;IACPC,gBAAgB,GASdlC,KAAK,CATPkC,gBAAgB;IAChBC,gCAAgC,GAQ9BnC,KAAK,CARPmC,gCAAgC;IAChCC,WAAW,GAOTpC,KAAK,CAPPoC,WAAW;IACXC,MAAM,GAMJrC,KAAK,CANPqC,MAAM;IACNC,UAAU,GAKRtC,KAAK,CALPsC,UAAU;IACVC,WAAW,GAITvC,KAAK,CAJPuC,WAAW;IACXC,aAAa,GAGXxC,KAAK,CAHPwC,aAAa;IACbC,cAAc,GAEZzC,KAAK,CAFPyC,cAAc;IACdC,QAAQ,GACN1C,KAAK,CADP0C,QAAQ;EAGV,IAAAC,SAAA,GAA4B,IAAAC,eAAQ,EAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAhC/C,MAAM,GAAAiD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EACxB,IAAAG,qBAAA,GAAc,IAAAC,yCAAqB,EAAC,CAAC;IAA7BC,CAAC,GAAAF,qBAAA,CAADE,CAAC;EAET,IAAAC,SAAA,GAeI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAdZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,MAAM,GAAAF,qBAAA,CAANE,MAAM;IAAEC,YAAY,GAAAH,qBAAA,CAAZG,YAAY;IAAEC,KAAK,GAAAJ,qBAAA,CAALI,KAAK;IAAEC,WAAW,GAAAL,qBAAA,CAAXK,WAAW;IAAAC,qBAAA,GAAAR,eAAA,CAClDS,YAAY;IACVC,sBAAsB,GAAAF,qBAAA,CAAtBE,sBAAsB;IACtB3F,0BAA0B,GAAAyF,qBAAA,CAA1BzF,0BAA0B;IAC1BK,iBAAiB,GAAAoF,qBAAA,CAAjBpF,iBAAiB;IACjBC,SAAS,GAAAmF,qBAAA,CAATnF,SAAS;IACTG,iBAAiB,GAAAgF,qBAAA,CAAjBhF,iBAAiB;IACjBI,gBAAgB,GAAA4E,qBAAA,CAAhB5E,gBAAgB;IAChBE,cAAc,GAAA0E,qBAAA,CAAd1E,cAAc;IACdE,mBAAmB,GAAAwE,qBAAA,CAAnBxE,mBAAmB;IACoB2E,uBAAuB,GAAAH,qBAAA,CAA9DvE,wBAAwB,CAAIZ,SAAS;EAK3C,IAAAuF,qBAAA,GAUI,IAAAC,mDAA0B,EAAC,CAAC;IAT9BC,iCAAiC,GAAAF,qBAAA,CAAjCE,iCAAiC;IACjCC,4BAA4B,GAAAH,qBAAA,CAA5BG,4BAA4B;IAC5BC,WAAW,GAAAJ,qBAAA,CAAXI,WAAW;IACXC,aAAa,GAAAL,qBAAA,CAAbK,aAAa;IACbC,cAAc,GAAAN,qBAAA,CAAdM,cAAc;IACdC,cAAc,GAAAP,qBAAA,CAAdO,cAAc;IACdC,mBAAmB,GAAAR,qBAAA,CAAnBQ,mBAAmB;IACnBC,gBAAgB,GAAAT,qBAAA,CAAhBS,gBAAgB;IAChBC,iBAAiB,GAAAV,qBAAA,CAAjBU,iBAAiB;EAGnB,IAAAC,aAAA,GAA8C,IAAAC,2BAAY,EAACvE,cAAc,CAAC;IAAzDwE,wBAAwB,GAAAF,aAAA,CAAjCG,OAAO;EASf,IAAAC,gBAAS,EAAC,YAAM;IACdP,mBAAmB,CAAClD,gBAAgB,WAAhBA,gBAAgB,GAAI,EAAE,CAAC;IAE3C,OAAOlB,qBAAqB;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAA4E,UAAA,GAA4C,IAAArC,eAAQ,EAAC,KAAK,CAAC;IAAAsC,UAAA,OAAApC,eAAA,aAAAmC,UAAA;IAApDE,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EACxC,IAAAG,UAAA,GAA0C,IAAAzC,eAAQ,EAAC,KAAK,CAAC;IAAA0C,UAAA,OAAAxC,eAAA,aAAAuC,UAAA;IAAlDE,aAAa,GAAAD,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EACtC,IAAMG,oBAAoB,GAAGN,cAAc,GAAGZ,cAAc,CAAC1H,MAAM,GAAG,CAAC;EACvE,IAAM6I,kBAAkB,GAAGP,cAAc,GAAGrE,YAAY,CAACjE,MAAM,GAAG,CAAC;EACnE,IAAM8I,mBAAmB,GAAGJ,aAAa,GAAGjB,aAAa,CAACzH,MAAM,GAAG,CAAC;EACpE,IAAM+I,iBAAiB,GAAGL,aAAa,GAAG5E,WAAW,CAAC9D,MAAM,GAAG,CAAC;EAChE,IAAMgJ,cAAc,GAAI,CAAC,CAACxD,MAAM,IAAI,CAAC,CAACC,UAAU,IAAM,CAACD,MAAM,IAAI,CAACC,UAAW;EAE7E,IAAA0C,gBAAS,EAAC,YAAM;IACdL,iBAAiB,CAAC,EAAE,CAAC;IACrB,IAAI7D,YAAY,CAACjE,MAAM,EAAE;MACvBiE,YAAY,CAACgF,OAAO,CAAC,UAACC,KAAK;QAAA,OAAKlE,WAAW,CAACkE,KAAK,CAACC,EAAE,CAAC;MAAA,EAAC;IACxD;IACA,OAAO;MAAA,OAAMrB,iBAAiB,CAAC,EAAE,CAAC;IAAA;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAK,gBAAS,EAAC,YAAM;IACdN,gBAAgB,CAAC,EAAE,CAAC;IACpB,IAAI/D,WAAW,CAAC9D,MAAM,EAAE;MACtB8D,WAAW,CAACmF,OAAO,CAAC,UAACG,IAAI;QAAA,OAAKrE,UAAU,CAACqE,IAAI,CAACD,EAAE,CAAC;MAAA,EAAC;IACpD;IACA,OAAO;MAAA,OAAMtB,gBAAgB,CAAC,EAAE,CAAC;IAAA;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAM,gBAAS,EAAC,YAAM;IACd,IAAIG,cAAc,KAAK,KAAK,IAAIO,kBAAkB,KAAK,CAAC,IAAID,oBAAoB,KAAK,CAAC,EAAE;MACtFL,iBAAiB,CAAC,IAAI,CAAC;IACzB;EACF,CAAC,EAAE,CAACM,kBAAkB,EAAED,oBAAoB,CAAC,CAAC;EAE9C,IAAAT,gBAAS,EAAC,YAAM;IACd,IAAIO,aAAa,KAAK,KAAK,IAAIK,iBAAiB,KAAK,CAAC,IAAID,mBAAmB,KAAK,CAAC,EAAE;MACnFH,gBAAgB,CAAC,IAAI,CAAC;IACxB;EACF,CAAC,EAAE,CAACI,iBAAiB,EAAED,mBAAmB,CAAC,CAAC;EAE5C,IAAAX,gBAAS,EAAC,YAAM;IACd,IAAIa,cAAc,KAAK,KAAK,IAAI/E,YAAY,CAACjE,MAAM,EAAE;MACnDiE,YAAY,CAACgF,OAAO,CAAC,UAACC,KAAK;QAAA,OAAKlE,WAAW,CAACkE,KAAK,CAACC,EAAE,CAAC;MAAA,EAAC;IACxD;EACF,CAAC,EAAE,CAACH,cAAc,CAAC,CAAC;EAEpB,IAAMK,mBAAmB,GAAG,IAAI,GAAG,IAAI;EACvC,IAAMC,6BAA6B,GAAG,GAAG;EAEzC,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAChC,IAAMC,aAAa,GAAG9B,cAAc,CAAC+B,IAAI,CAAC,UAACC,aAAa,EAAK;MAC3D,IAAMC,aAAa,GAAG1F,YAAY,CAACwF,IAAI,CACrC,UAACG,WAAW;QAAA,OACVA,WAAW,CAACR,IAAI,CAACS,GAAG,KAAKH,aAAa,CAACG,GAAG,IAAID,WAAW,CAACE,GAAG,KAAKJ,aAAa,CAACG,GAAG;MAAA,CACvF,CAAC;MACD,OAAO,CAACF,aAAa;IACvB,CAAC,CAAC;IAEF,IACEH,aAAa,IACbO,MAAM,CAACP,aAAa,CAACQ,QAAQ,CAAC,GAAGX,mBAAmB,GAAGC,6BAA6B,EACpF;MACAW,kBAAK,CAACC,KAAK,CACT7D,CAAC,6GAEC;QAAEiD,6BAA6B,EAA7BA;MAA8B,CAClC,CACF,CAAC;MACDxB,iBAAiB,CACfJ,cAAc,CAACyC,MAAM,CAAC,UAACT,aAAa;QAAA,OAAKA,aAAa,CAACG,GAAG,KAAKL,aAAa,CAACK,GAAG;MAAA,EAClF,CAAC;IACH,CAAC,MAAM;MACL,IAAIL,aAAa,EAAE5D,cAAc,CAAC4D,aAAa,CAAC;IAClD;EACF,CAAC;EAED,IAAMY,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAChC,IAAMC,cAAc,GAAGpG,YAAY,CAACkG,MAAM,CACxC,UAACP,WAAW;MAAA,OACV,CAAClC,cAAc,CAAC+B,IAAI,CAClB,UAACC,aAAa;QAAA,OACZA,aAAa,CAACG,GAAG,KAAKD,WAAW,CAACR,IAAI,CAACS,GAAG,IAAIH,aAAa,CAACG,GAAG,KAAKD,WAAW,CAACE,GAAG;MAAA,CACvF,CAAC;IAAA,CACL,CAAC;IACDO,cAAc,CAACpB,OAAO,CAAC,UAACC,KAAK;MAAA,OAAKlE,WAAW,CAACkE,KAAK,CAACC,EAAE,CAAC;IAAA,EAAC;EAC1D,CAAC;EAED,IAAAhB,gBAAS,EAAC,YAAM;IACd,IAAIa,cAAc,EAAE;MAClB,IAAIJ,oBAAoB,GAAGC,kBAAkB,EAAE;QAE7CU,mBAAmB,CAAC,CAAC;MACvB,CAAC,MAAM;QAELa,mBAAmB,CAAC,CAAC;MACvB;IACF;EACF,CAAC,EAAE,CAACxB,oBAAoB,CAAC,CAAC;EAE1B,IAAAT,gBAAS,EAAC,YAAM;IACd,IAAIW,mBAAmB,GAAGC,iBAAiB,EAAE;MAE3C,IAAMuB,YAAY,GAAG7C,aAAa,CAACgC,IAAI,CAAC,UAACc,YAAY,EAAK;QACxD,IAAMC,YAAY,GAAG1G,WAAW,CAAC2F,IAAI,CACnC,UAACgB,UAAU;UAAA,OACTA,UAAU,CAACrB,IAAI,CAACS,GAAG,KAAKU,YAAY,CAACV,GAAG,IAAIY,UAAU,CAACX,GAAG,KAAKS,YAAY,CAACV,GAAG;QAAA,CACnF,CAAC;QACD,OAAO,CAACW,YAAY;MACtB,CAAC,CAAC;MAEF,IACEF,YAAY,IACZP,MAAM,CAACO,YAAY,CAACI,IAAI,CAAC,GAAGrB,mBAAmB,GAAGC,6BAA6B,EAC/E;QACAW,kBAAK,CAACC,KAAK,CACT7D,CAAC,6GAEC;UAAEiD,6BAA6B,EAA7BA;QAA8B,CAClC,CACF,CAAC;QACDzB,gBAAgB,CACdJ,aAAa,CAAC0C,MAAM,CAAC,UAACI,YAAY;UAAA,OAAKA,YAAY,CAACV,GAAG,KAAKS,YAAY,CAACT,GAAG;QAAA,EAC9E,CAAC;MACH,CAAC,MAAM;QACL,IAAIS,YAAY,EAAE3E,aAAa,CAAC2E,YAAY,CAAC;MAC/C;IACF,CAAC,MAAM;MAEL,IAAMK,aAAa,GAAG7G,WAAW,CAACqG,MAAM,CACtC,UAACM,UAAU;QAAA,OACT,CAAChD,aAAa,CAACgC,IAAI,CACjB,UAACc,YAAY;UAAA,OACXA,YAAY,CAACV,GAAG,KAAKY,UAAU,CAACrB,IAAI,CAACS,GAAG,IAAIU,YAAY,CAACV,GAAG,KAAKY,UAAU,CAACX,GAAG;QAAA,CACnF,CAAC;MAAA,CACL,CAAC;MACDa,aAAa,CAAC1B,OAAO,CAAC,UAACG,IAAI;QAAA,OAAKrE,UAAU,CAACqE,IAAI,CAACD,EAAE,CAAC;MAAA,EAAC;IACtD;EACF,CAAC,EAAE,CAACL,mBAAmB,CAAC,CAAC;EAEzB,IAAAX,gBAAS,EAAC,YAAM;IACd,IAAIa,cAAc,EAAE;MAClB,IAAIH,kBAAkB,GAAGD,oBAAoB,EAAE;QAE7C,IAAMgC,qBAAqB,GAAGlD,cAAc,CAACyC,MAAM,CAAC,UAACT,aAAa,EAAK;UACrE,IAAMC,aAAa,GAAG1F,YAAY,CAACwF,IAAI,CACrC,UAACG,WAAW;YAAA,OACVA,WAAW,CAACR,IAAI,CAACS,GAAG,KAAKH,aAAa,CAACG,GAAG,IAAID,WAAW,CAACE,GAAG,KAAKJ,aAAa,CAACG,GAAG;UAAA,CACvF,CAAC;UACD,OAAOF,aAAa;QACtB,CAAC,CAAC;QACF7B,iBAAiB,CAAC8C,qBAAqB,CAAC;MAC1C,CAAC,MAAM,IAAI/B,kBAAkB,GAAGD,oBAAoB,EAAE;QAMpDd,iBAAiB,CACf7D,YAAY,CACT4G,GAAG,CAAC,UAACjB,WAAW;UAAA,OAAM;YACrB7G,MAAM,EAAE6G,WAAW,CAACR,IAAI,CAACrG,MAAM;YAC/B+H,MAAM,EAAElB,WAAW,CAACR,IAAI,CAAC0B,MAAM;YAC/BjB,GAAG,EAAED,WAAW,CAACE,GAAG,IAAIF,WAAW,CAACR,IAAI,CAACS,GAAG;YAC5C7G,KAAK,EAAE4G,WAAW,CAACR,IAAI,CAACpG;UAC1B,CAAC;QAAA,CAAC,CAAC,CACFmH,MAAM,CAACY,OAAO,CACnB,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAAClC,kBAAkB,CAAC,CAAC;EAExB,IAAAV,gBAAS,EAAC,YAAM;IACd,IAAIY,iBAAiB,GAAGD,mBAAmB,EAAE;MAE3C,IAAMkC,oBAAoB,GAAGvD,aAAa,CAAC0C,MAAM,CAAC,UAACI,YAAY,EAAK;QAClE,IAAMC,YAAY,GAAG1G,WAAW,CAAC2F,IAAI,CACnC,UAACgB,UAAU;UAAA,OACTA,UAAU,CAACrB,IAAI,CAACS,GAAG,KAAKU,YAAY,CAACV,GAAG,IAAIY,UAAU,CAACX,GAAG,KAAKS,YAAY,CAACV,GAAG;QAAA,CACnF,CAAC;QACD,OAAOW,YAAY;MACrB,CAAC,CAAC;MACF3C,gBAAgB,CAACmD,oBAAoB,CAAC;IACxC,CAAC,MAAM,IAAIjC,iBAAiB,GAAGD,mBAAmB,EAAE;MAMlDjB,gBAAgB,CACd/D,WAAW,CAAC+G,GAAG,CAAC,UAACJ,UAAU;QAAA,OAAM;UAC/BQ,QAAQ,EAAER,UAAU,CAACrB,IAAI,CAAC6B,QAAQ;UAClCC,QAAQ,EAAET,UAAU,CAACrB,IAAI,CAAC8B,QAAQ;UAClCvK,IAAI,EAAE8J,UAAU,CAACrB,IAAI,CAACzI,IAAI;UAC1B+J,IAAI,EAAED,UAAU,CAACrB,IAAI,CAACsB,IAAI;UAC1Bb,GAAG,EAAEY,UAAU,CAACrB,IAAI,CAACS;QACvB,CAAC;MAAA,CAAC,CACJ,CAAC;IACH;EACF,CAAC,EAAE,CAACd,iBAAiB,CAAC,CAAC;EAEvB,IAAMoC,aAAa,GAAG,CAAC,CAACvH,OAAO;EAC/B,IAAAuE,gBAAS,EAAC,YAAM;IACd,IAAIvE,OAAO,IAAIO,WAAW,CAACiH,OAAO,EAAE;MAClCjH,WAAW,CAACiH,OAAO,CAACC,KAAK,CAAC,CAAC;IAC7B;IAWA,IACE,CAACzH,OAAO,KACPG,WAAW,IACVD,WAAW,CAAC9D,MAAM,GAAG,CAAC,IACtB4E,cAAc,CAAC5E,MAAM,GAAG,CAAC,IACzBiE,YAAY,CAACjE,MAAM,GAAG,CAAC,IACvB6E,eAAe,GAAG,CAAC,CAAC,EACtB;MACAK,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACiG,aAAa,CAAC,CAAC;EAEnB,IAAMG,cAAc,GAAGjI,QAAQ,CAACkI,IAAI,CAAC,CAAC;EACtC,IAAMC,kBAAkB,GAAG5M,MAAM,CAAC6M,MAAM,CAACnI,YAAY,CAAC,CACnDuH,GAAG,CAAC,UAAAa,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;MAAE7B,GAAG,GAAA4B,IAAA,CAAH5B,GAAG;IAAA,YAAU6B,KAAK,GAAG7B,GAAG;EAAA,CAAE,CAAC,CACzCyB,IAAI,CAAC,CAAC;EACT,IAAApD,gBAAS,EAAC,YAAM;IACd,IAAIvJ,MAAM,CAACgN,IAAI,CAACtI,YAAY,CAAC,CAACtD,MAAM,EAAE;MAKpCoF,OAAO,CAACgG,OAAO,GAAG,IAAI;MACtB/H,QAAQ,CAAC4F,OAAO,CAAC,UAACE,EAAE;QAAA,OAAK9D,gBAAgB,CAAC8D,EAAE,CAAC;MAAA,EAAC;MAC9C/D,OAAO,CAACgG,OAAO,GAAG,KAAK;IACzB;EACF,CAAC,EAAE,CAACE,cAAc,EAAEE,kBAAkB,EAAEnG,gBAAgB,CAAC,CAAC;EAE1D,IAAMwG,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IACvB,IAAMC,MAA0C,GAAG,EAAE;IACrD,IAAInH,OAAO,IAAI/F,MAAM,CAAC6M,MAAM,CAAC9G,OAAO,CAAC,CAAC3E,MAAM,EAAE;MAC5CpB,MAAM,CAAC6M,MAAM,CAAC9G,OAAO,CAAC,CAACsE,OAAO,CAAC,UAAC8C,MAAM,EAAK;QACzC,IAAIA,MAAM,CAACC,IAAI,EAAE;UACfF,MAAM,CAACG,IAAI,CAACF,MAAM,CAACC,IAAI,CAAC;QAC1B;MACF,CAAC,CAAC;IACJ;IAEA,OAAOF,MAAM;EACf,CAAC;EAED,IAAMI,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAS;IACrB,IAAMC,KAAK,MAAAC,MAAA,KAAAC,mBAAA,aAAOR,UAAU,CAAC,CAAC,OAAAQ,mBAAA,aAAKC,WAAW,CAAC,CAAC,EAAC;IAGjD,IAAMC,WAAgE,GAAG,CAAC,CAAC;IAC3E,SAAAC,SAAA,GAAAnN,+BAAA,CAAmB8M,KAAK,GAAAM,KAAA,IAAAA,KAAA,GAAAD,SAAA,IAAAtM,IAAA,GAAE;MAAA,IAAf8L,IAAI,GAAAS,KAAA,CAAAtM,KAAA;MACb,IAAI6L,IAAI,IAAI,CAACO,WAAW,CAACP,IAAI,CAAC7C,EAAE,CAAC,EAAE;QACjCoD,WAAW,CAACP,IAAI,CAAC7C,EAAE,CAAC,GAAG6C,IAAI;MAC7B;IACF;IACA,IAAMU,UAAU,GAAG9N,MAAM,CAAC6M,MAAM,CAACc,WAAW,CAAC;IAE7C,OAAOG,UAAU;EACnB,CAAC;EAED,IAAMJ,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxB,IAAMR,MAA0C,GAAG,EAAE;IACrD,IAAIjG,QAAQ,IAAIjH,MAAM,CAAC6M,MAAM,CAAC5F,QAAQ,CAAC,CAAC7F,MAAM,EAAE;MAC9C8L,MAAM,CAACG,IAAI,CAAAU,KAAA,CAAXb,MAAM,MAAAO,mBAAA,aAASzN,MAAM,CAAC6M,MAAM,CAAC5F,QAAQ,CAAC,EAAC;IACzC;IAEA,OAAOiG,MAAM;EACf,CAAC;EAED,IAAMc,iCAAiC,OAAAC,SAAA;IACrCC,QAAQ,EAAEnJ,QAAQ,GAAG,KAAK,GAAGoJ;EAAS,GACnC3J,wBAAwB,CAC5B;EAED,OACExG,MAAA,YAAAoQ,aAAA,CAAApQ,MAAA,YAAAqQ,QAAA,QACErQ,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IACHC,QAAQ,EAAE,SAAAA,SAAAC,KAAA;MAAA,IAEYC,SAAS,GAAAD,KAAA,CAD7BE,WAAW,CACTC,MAAM,CAAIxK,MAAM;MAAA,OAEdmD,SAAS,CAACmH,SAAS,CAAC;IAAA,CAAC;IAC3BG,KAAK,EAAE,CAACvM,MAAM,CAACY,SAAS,EAAE;MAAE4L,eAAe,EAAE3G,KAAK;MAAE4G,WAAW,EAAE9G;IAAO,CAAC,EAAE/E,SAAS,CAAE;IAAA8L,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAErFnK,OAAO,IAAIhH,MAAA,YAAAoQ,aAAA,CAAC3I,uBAAuB;IAAAsJ,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACtCjJ,aAAa,IAAIlI,MAAA,YAAAoQ,aAAA,CAACzI,qBAAqB;IAAAoJ,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC3CnR,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IAACM,KAAK,EAAE,CAACvM,MAAM,CAACW,iBAAiB,EAAEA,iBAAiB,CAAE;IAAA+L,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxD7J,KAAK,GACJtH,MAAA,YAAAoQ,aAAA,CAAC9I,KAAK;IACJd,wBAAwB,EAAEwJ,iCAAkC;IAC5DV,QAAQ,EAAEA,QAAS;IAAAyB,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CACpB,CAAC,GAEFnR,MAAA,YAAAoQ,aAAA,CAAApQ,MAAA,YAAAqQ,QAAA,QACErQ,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IAACM,KAAK,EAAE,CAACvM,MAAM,CAACmB,gBAAgB,EAAEA,gBAAgB,CAAE;IAAAuL,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACtD3J,YAAY,IAAIxH,MAAA,YAAAoQ,aAAA,CAAC5I,YAAY;IAAAuJ,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAC5B,CAAC,EACPnR,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IACHM,KAAK,EAAE,CACLvM,MAAM,CAACe,iBAAiB,EACxB;MACE0L,WAAW,EAAE7G,YAAY;MACzBmH,eAAe,EAAEjK,WAAW,GAAG,CAAC,GAAG;IACrC,CAAC,EACD/B,iBAAiB,CACjB;IAAA2L,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED,CAAE,OAAOnK,OAAO,KAAK,SAAS,KAAIA,OAAO,oBAAPA,OAAO,CAAEqK,cAAc,KAAKnJ,aAAa,KAC1ElI,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IAACM,KAAK,EAAE,CAACvM,MAAM,CAACqB,cAAc,EAAEA,cAAc,CAAE;IAAAqL,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACnDnR,MAAA,YAAAoQ,aAAA,CAAC/H,KAAK;IAAA0I,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACJ,CACP,EACA9J,YAAY,CAACjE,MAAM,GAAGpD,MAAA,YAAAoQ,aAAA,CAAChJ,kBAAkB;IAAA2J,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAAG,IAAI,EACnD9J,YAAY,CAACjE,MAAM,IAAI8D,WAAW,CAAC9D,MAAM,GACxCpD,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IACHM,KAAK,EAAE,CACLvM,MAAM,CAACG,mBAAmB,EAC1B;MACE8M,iBAAiB,EAAErH,YAAY;MAC/BsH,gBAAgB,EAAEpK,WAAW,GAAG,CAAC,GAAG;IACtC,CAAC,CACD;IAAA4J,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CACH,CAAC,GACA,IAAI,EACPjK,WAAW,CAAC9D,MAAM,GAAGpD,MAAA,YAAAoQ,aAAA,CAACnJ,iBAAiB;IAAA8J,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAAG,IAAI,EACjDhK,WAAW,GACVnH,MAAA,YAAAoQ,aAAA,CAAC1I,gBAAgB;IAACX,QAAQ,EAAE,CAACa,QAAS;IAAAmJ,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAEzCnR,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IAACM,KAAK,EAAE,CAACvM,MAAM,CAACM,0BAA0B,EAAEA,0BAA0B,CAAE;IAAAoM,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC3EnR,MAAA,YAAAoQ,aAAA,CAACpP,kBAAA,CAAAwQ,iBAAiB;IAChBhL,wBAAwB,EAAEA,wBAAyB;IACnDiL,cAAc,EAAE,CAAC,CAACpG,wBAAyB;IAAA0F,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC5C,CACG,CAEJ,CAAC,EACPnR,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IAACM,KAAK,EAAE,CAACvM,MAAM,CAACuB,mBAAmB,EAAEA,mBAAmB,CAAE;IAAAmL,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC5D9F,wBAAwB,GACvBrL,MAAA,YAAAoQ,aAAA,CAACtJ,aAAa;IAACwE,OAAO,EAAED,wBAAyB;IAAA0F,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAEpDnR,MAAA,YAAAoQ,aAAA,CAAC7H,UAAU;IACTxB,QAAQ,EACNA,QAAQ,IAAIyB,OAAO,CAACgG,OAAO,IAAI,CAAC3G,cAAc,CAAC,CAAC,IAAKV,WAAW,IAAI,CAACS,QACtE;IAAAmJ,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CACF,CAEC,CACN,CAEA,CAAC,EACPnR,MAAA,YAAAoQ,aAAA,CAAC1H,gCAAgC;IAACG,UAAU,EAAEA,UAAW;IAAAkI,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACvD,CAAC,EAENrI,WAAW,IAAIH,WAAW,GACzB3I,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IACHM,KAAK,EAAE,CACLrG,uBAAuB,EACvBlG,MAAM,CAACwB,wBAAwB,EAC/B;MAAEgL,eAAe,EAAE3G,KAAK;MAAEwH,MAAM,EAAEvL;IAAO,CAAC,CAC1C;IAAA4K,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEFnR,MAAA,YAAAoQ,aAAA,CAACzJ,0BAA0B;IACzBgL,MAAM,EAAE,CAAC,CAAChJ,WAAY;IACtBiJ,IAAI,EAAEjJ,WAAW,CAACiJ,IAAK;IACvBC,QAAQ,EAAElJ,WAAW,CAACkJ,QAAS;IAC/BC,SAAS,EAAEnJ,WAAW,CAACmJ,SAAU;IACjChJ,WAAW,EAAEA,WAAY;IAAAiI,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC1B,CACG,CAAC,GACL,IAAI,EACPpG,cAAc,IACb/K,MAAA,YAAAoQ,aAAA,CAACjQ,YAAA,CAAAmQ,IAAI;IACHM,KAAK,EAAE,CACL;MACEC,eAAe,EAAE1G,WAAW;MAC5BhE,MAAM,EACJ,CAACuE,iCAAiC,GAC9BA,iCAAiC,IAAIC,4BAA4B,WAA5BA,4BAA4B,GAAI,EAAE,CAAC,GACxE,GAAG,IAAIC;IACf,CAAC,EACDN,sBAAsB,CACtB;IAAAyG,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEFnR,MAAA,YAAAoQ,aAAA,CAACrP,uBAAA,CAAAgR,sBAAsB;IAAAhB,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACrB,CAER,CAAC;AAEP,CAAC;AAED,IAAMa,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAA2D,EAC3DC,SAA2D,EACxD;EACH,IAC4BC,4BAA4B,GAiBpDF,SAAS,CAjBXzL,wBAAwB;IACV4L,gBAAgB,GAgB5BH,SAAS,CAhBXvL,YAAY;IACF2L,YAAY,GAepBJ,SAAS,CAfXlL,QAAQ;IACCuL,WAAW,GAclBL,SAAS,CAdXjL,OAAO;IACMuL,eAAe,GAa1BN,SAAS,CAbX/K,WAAW;IACEsL,eAAe,GAY1BP,SAAS,CAZX9K,WAAW;IACGsL,gBAAgB,GAW5BR,SAAS,CAXX5K,YAAY;IACFqL,YAAY,GAUpBT,SAAS,CAVXrK,QAAQ;IACQ+K,kBAAkB,GAShCV,SAAS,CATXpK,cAAc;IACE+K,kBAAkB,GAQhCX,SAAS,CARXjK,cAAc;IACC6K,iBAAiB,GAO9BZ,SAAS,CAPX/J,aAAa;IACJ4K,WAAW,GAMlBb,SAAS,CANXzJ,OAAO;IACUuK,mBAAmB,GAKlCd,SAAS,CALXe,eAAe;IACFC,eAAe,GAI1BhB,SAAS,CAJXtJ,WAAW;IACRuK,KAAK,GAGNjB,SAAS,CAHXxI,CAAC;IACO0J,UAAU,GAEhBlB,SAAS,CAFXrJ,MAAM;IACMwK,cAAc,GACxBnB,SAAS,CADXpJ,UAAU;EAEZ,IAC4BwK,4BAA4B,GAiBpDnB,SAAS,CAjBX1L,wBAAwB;IACV8M,gBAAgB,GAgB5BpB,SAAS,CAhBXxL,YAAY;IACF6M,YAAY,GAepBrB,SAAS,CAfXnL,QAAQ;IACCyM,WAAW,GAclBtB,SAAS,CAdXlL,OAAO;IACMyM,eAAe,GAa1BvB,SAAS,CAbXhL,WAAW;IACEwM,eAAe,GAY1BxB,SAAS,CAZX/K,WAAW;IACGwM,gBAAgB,GAW5BzB,SAAS,CAXX7K,YAAY;IACFuM,YAAY,GAUpB1B,SAAS,CAVXtK,QAAQ;IACQiM,kBAAkB,GAShC3B,SAAS,CATXrK,cAAc;IACEiM,kBAAkB,GAQhC5B,SAAS,CARXlK,cAAc;IACC+L,iBAAiB,GAO9B7B,SAAS,CAPXhK,aAAa;IACJ8L,WAAW,GAMlB9B,SAAS,CANX1J,OAAO;IACUyL,mBAAmB,GAKlC/B,SAAS,CALXc,eAAe;IACFkB,eAAe,GAI1BhC,SAAS,CAJXvJ,WAAW;IACRwL,KAAK,GAGNjC,SAAS,CAHXzI,CAAC;IACO2K,UAAU,GAEhBlC,SAAS,CAFXtJ,MAAM;IACMyL,cAAc,GACxBnC,SAAS,CADXrJ,UAAU;EAGZ,IAAMyL,MAAM,GAAGpB,KAAK,KAAKiB,KAAK;EAC9B,IAAI,CAACG,MAAM,EAAE,OAAO,KAAK;EAEzB,IAAMC,4BAA4B,GAChCpC,4BAA4B,KAAKkB,4BAA4B;EAC/D,IAAI,CAACkB,4BAA4B,EAAE,OAAO,KAAK;EAE/C,IAAMC,aAAa,GAAGnC,YAAY,KAAKkB,YAAY;EACnD,IAAI,CAACiB,aAAa,EAAE,OAAO,KAAK;EAEhC,IAAMC,YAAY,GAAG,CAAC,CAACnC,WAAW,KAAK,CAAC,CAACkB,WAAW;EACpD,IAAI,CAACiB,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAMC,iBAAiB,GAAGjC,gBAAgB,CAACrP,MAAM,KAAKuQ,gBAAgB,CAACvQ,MAAM;EAC7E,IAAI,CAACsR,iBAAiB,EAAE,OAAO,KAAK;EAEpC,IAAMC,gBAAgB,GAAGnC,eAAe,KAAKkB,eAAe;EAC5D,IAAI,CAACiB,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMC,kBAAkB,GACtB,CAAC,CAAC/B,iBAAiB,IACnB,CAAC,CAACkB,iBAAiB,IACnB,OAAOlB,iBAAiB,KAAK,SAAS,IACtC,OAAOkB,iBAAiB,KAAK,SAAS,GAClClB,iBAAiB,CAACtG,EAAE,KAAKwH,iBAAiB,CAACxH,EAAE,GAC7C,CAAC,CAACsG,iBAAiB,KAAK,CAAC,CAACkB,iBAAiB;EACjD,IAAI,CAACa,kBAAkB,EAAE,OAAO,KAAK;EAErC,IAAMC,YAAY,GAAG/B,WAAW,CAACtE,OAAO,KAAKwF,WAAW,CAACxF,OAAO;EAChE,IAAI,CAACqG,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAMC,oBAAoB,GAAG/B,mBAAmB,KAAKkB,mBAAmB;EACxE,IAAI,CAACa,oBAAoB,EAAE,OAAO,KAAK;EAEvC,IAAMC,aAAa,GAAGrC,YAAY,KAAKkB,YAAY;EACnD,IAAI,CAACmB,aAAa,EAAE,OAAO,KAAK;EAEhC,IAAMC,mBAAmB,GAAGrC,kBAAkB,CAAC,CAAC,KAAKkB,kBAAkB,CAAC,CAAC;EACzE,IAAI,CAACmB,mBAAmB,EAAE,OAAO,KAAK;EAEtC,IAAMC,iBAAiB,GAAGjT,MAAM,CAACgN,IAAI,CAACoD,gBAAgB,CAAC,CAAC8C,KAAK,CAC3D,UAAC/S,GAAG;IAAA,OACFiQ,gBAAgB,CAACjQ,GAAG,CAAC,CAAC4M,KAAK,KAAKuE,gBAAgB,CAACnR,GAAG,CAAC,CAAC4M,KAAK,IAC3DqD,gBAAgB,CAACjQ,GAAG,CAAC,CAAC+K,GAAG,KAAKoG,gBAAgB,CAACnR,GAAG,CAAC,CAAC+K,GAAG;EAAA,CAC3D,CAAC;EACD,IAAI,CAAC+H,iBAAiB,EAAE,OAAO,KAAK;EAEpC,IAAME,gBAAgB,GAAG5C,eAAe,CAACnP,MAAM,KAAKqQ,eAAe,CAACrQ,MAAM;EAC1E,IAAI,CAAC+R,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMC,mBAAmB,GAAGxC,kBAAkB,CAACxP,MAAM,KAAK0Q,kBAAkB,CAAC1Q,MAAM;EACnF,IAAI,CAACgS,mBAAmB,EAAE,OAAO,KAAK;EAEtC,IAAMC,gBAAgB,GACpB,CAAC,EAACpC,eAAe,YAAfA,eAAe,CAAErB,IAAI,KAAI,CAAC,EAACsC,eAAe,YAAfA,eAAe,CAAEtC,IAAI,IAC9CqB,eAAe,CAACrB,IAAI,CAACxO,MAAM,KAAK8Q,eAAe,CAACtC,IAAI,CAACxO,MAAM,IAC3D6P,eAAe,CAACrB,IAAI,CAACsD,KAAK,CAAC,UAAAI,KAAA,EAAWC,KAAK;IAAA,IAAbxR,IAAI,GAAAuR,KAAA,CAAJvR,IAAI;IAAA,OAAcA,IAAI,KAAKmQ,eAAe,CAACtC,IAAI,CAAC2D,KAAK,CAAC,CAACxR,IAAI;EAAA,EAAC,GAC1F,CAAC,CAACkP,eAAe,KAAK,CAAC,CAACiB,eAAe;EAC7C,IAAI,CAACmB,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMG,WAAW,GACf,CAAArC,UAAU,oBAAVA,UAAU,CAAE5G,EAAE,OAAK6H,UAAU,oBAAVA,UAAU,CAAE7H,EAAE,KACjC,CAAA4G,UAAU,oBAAVA,UAAU,CAAEsC,IAAI,OAAKrB,UAAU,oBAAVA,UAAU,CAAEqB,IAAI,KACrC,CAAAtC,UAAU,oBAAVA,UAAU,CAAEuC,WAAW,OAAKtB,UAAU,oBAAVA,UAAU,CAAEsB,WAAW;EACrD,IAAI,CAACF,WAAW,EAAE,OAAO,KAAK;EAE9B,IAAMG,eAAe,GAAGvC,cAAc,KAAKiB,cAAc;EACzD,IAAI,CAACsB,eAAe,EAAE,OAAO,KAAK;EAElC,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,oBAAoB,GAAGC,iBAAK,CAACC,IAAI,CACrCxP,uBAAuB,EACvB0L,QACF,CAAmC;AAe5B,IAAM+D,YAAY,GAAG,SAAfA,YAAYA,CAGvBxP,KAA4C,EACzC;EACH,IAAAyP,eAAA,GAAqB,IAAAC,wBAAc,EAAC,CAAC;IAA7BrO,QAAQ,GAAAoO,eAAA,CAARpO,QAAQ;EAChB,IAAMsO,eAAe,GAAG,IAAAC,iDAAyB,EAAC,CAAC;EAEnD,IAAAC,kBAAA,GAAgD,IAAAC,iCAAiB,EAAqB,CAAC;IAAAC,qBAAA,GAAAF,kBAAA,CAA/ErP,QAAQ;IAARA,QAAQ,GAAAuP,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAEvO,OAAO,GAAAqO,kBAAA,CAAPrO,OAAO;IAAEkB,QAAQ,GAAAmN,kBAAA,CAARnN,QAAQ;EAE3C,IAAAsN,qBAAA,GAuCI,IAAAC,2CAAsB,EAAqB,CAAC;IAtC9ChQ,wBAAwB,GAAA+P,qBAAA,CAAxB/P,wBAAwB;IACxBC,QAAQ,GAAA8P,qBAAA,CAAR9P,QAAQ;IACRC,YAAY,GAAA6P,qBAAA,CAAZ7P,YAAY;IACZ+P,iBAAiB,GAAAF,qBAAA,CAAjBE,iBAAiB;IACjBC,uBAAuB,GAAAH,qBAAA,CAAvBG,uBAAuB;IACvB9P,qBAAqB,GAAA2P,qBAAA,CAArB3P,qBAAqB;IACrBC,cAAc,GAAA0P,qBAAA,CAAd1P,cAAc;IACdC,aAAa,GAAAyP,qBAAA,CAAbzP,aAAa;IACbE,OAAO,GAAAuP,qBAAA,CAAPvP,OAAO;IACPC,iBAAiB,GAAAsP,qBAAA,CAAjBtP,iBAAiB;IACjBC,WAAW,GAAAqP,qBAAA,CAAXrP,WAAW;IACXC,WAAW,GAAAoP,qBAAA,CAAXpP,WAAW;IACXC,kBAAkB,GAAAmP,qBAAA,CAAlBnP,kBAAkB;IAClBC,YAAY,GAAAkP,qBAAA,CAAZlP,YAAY;IACZC,KAAK,GAAAiP,qBAAA,CAALjP,KAAK;IACLC,WAAW,GAAAgP,qBAAA,CAAXhP,WAAW;IACXC,YAAY,GAAA+O,qBAAA,CAAZ/O,YAAY;IACZC,uBAAuB,GAAA8O,qBAAA,CAAvB9O,uBAAuB;IACvBC,gBAAgB,GAAA6O,qBAAA,CAAhB7O,gBAAgB;IAChBC,qBAAqB,GAAA4O,qBAAA,CAArB5O,qBAAqB;IACrBE,cAAc,GAAA0O,qBAAA,CAAd1O,cAAc;IACdC,gBAAgB,GAAAyO,qBAAA,CAAhBzO,gBAAgB;IAChBE,cAAc,GAAAuO,qBAAA,CAAdvO,cAAc;IACdC,eAAe,GAAAsO,qBAAA,CAAftO,eAAe;IACfC,aAAa,GAAAqO,qBAAA,CAAbrO,aAAa;IACbC,UAAU,GAAAoO,qBAAA,CAAVpO,UAAU;IACVC,WAAW,GAAAmO,qBAAA,CAAXnO,WAAW;IACXE,UAAU,GAAAiO,qBAAA,CAAVjO,UAAU;IACVC,UAAU,GAAAgO,qBAAA,CAAVhO,UAAU;IACVC,OAAO,GAAA+N,qBAAA,CAAP/N,OAAO;IACPC,gBAAgB,GAAA8N,qBAAA,CAAhB9N,gBAAgB;IAChBkO,8BAA8B,GAAAJ,qBAAA,CAA9BI,8BAA8B;IAC9BC,cAAc,GAAAL,qBAAA,CAAdK,cAAc;IACdC,kBAAkB,GAAAN,qBAAA,CAAlBM,kBAAkB;IAClB7D,eAAe,GAAAuD,qBAAA,CAAfvD,eAAe;IACftK,gCAAgC,GAAA6N,qBAAA,CAAhC7N,gCAAgC;IAChCK,aAAa,GAAAwN,qBAAA,CAAbxN,aAAa;IACbC,cAAc,GAAAuN,qBAAA,CAAdvN,cAAc;EAGhB,IAAA8N,mBAAA,GAAkB,IAAAC,mCAAkB,EAAqB,CAAC;IAAlD1O,KAAK,GAAAyO,mBAAA,CAALzO,KAAK;EAEb,IAAA2O,qBAAA,GAMI,IAAAC,yCAAqB,EAAqB,CAAC;IAL7CC,4BAA4B,GAAAF,qBAAA,CAA5BE,4BAA4B;IAC5BC,0BAA0B,GAAAH,qBAAA,CAA1BG,0BAA0B;IAC1BxQ,0BAA0B,GAAAqQ,qBAAA,CAA1BrQ,0BAA0B;IAC1BgC,WAAW,GAAAqO,qBAAA,CAAXrO,WAAW;IACXG,WAAW,GAAAkO,qBAAA,CAAXlO,WAAW;EAGb,IAAAsO,iBAAA,GAAmB,IAAAC,+BAAgB,EAAqB,CAAC;IAAjDzO,MAAM,GAAAwO,iBAAA,CAANxO,MAAM;EAEd,IAAA0O,sBAAA,GAAc,IAAA9N,yCAAqB,EAAC,CAAC;IAA7BC,CAAC,GAAA6N,sBAAA,CAAD7N,CAAC;EAET,IAAI,CAACyM,eAAe,CAACqB,WAAW,IAAIZ,8BAA8B,EAAE;IAClE,OAAO3W,MAAA,YAAAoQ,aAAA,CAACuG,8BAA8B;MAAA5F,MAAA,EAAA9P,KAAA;MAAA+P,QAAA;QAAAC,QAAA,EAAA/P,YAAA;QAAAgQ,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAAC;EAC3C;EAEA,OACEnR,MAAA,YAAAoQ,aAAA,CAACwF,oBAAoB,MAAA3F,SAAA;IAEjBzJ,wBAAwB,EAAxBA,wBAAwB;IACxBC,QAAQ,EAARA,QAAQ;IACRC,YAAY,EAAZA,YAAY;IACZwQ,4BAA4B,EAA5BA,4BAA4B;IAC5BC,0BAA0B,EAA1BA,0BAA0B;IAC1BxQ,0BAA0B,EAA1BA,0BAA0B;IAC1B8P,iBAAiB,EAAjBA,iBAAiB;IACjBC,uBAAuB,EAAvBA,uBAAuB;IACvB9P,qBAAqB,EAArBA,qBAAqB;IACrBC,cAAc,EAAdA,cAAc;IACdC,aAAa,EAAbA,aAAa;IACbC,QAAQ,EAARA,QAAQ;IACRC,OAAO,EAAPA,OAAO;IACPC,iBAAiB,EAAjBA,iBAAiB;IACjBC,WAAW,EAAXA,WAAW;IACXC,WAAW,EAAXA,WAAW;IACXC,kBAAkB,EAAlBA,kBAAkB;IAClBC,YAAY,EAAZA,YAAY;IACZC,KAAK,EAALA,KAAK;IACLC,WAAW,EAAXA,WAAW;IACXC,YAAY,EAAZA,YAAY;IACZC,uBAAuB,EAAvBA,uBAAuB;IACvBC,gBAAgB,EAAhBA,gBAAgB;IAChBC,qBAAqB,EAArBA,qBAAqB;IACrBC,QAAQ,EAARA,QAAQ;IACRC,cAAc,EAAdA,cAAc;IACdC,gBAAgB,EAAhBA,gBAAgB;IAChBC,OAAO,EAAPA,OAAO;IACPC,cAAc,EAAdA,cAAc;IACdC,eAAe,EAAfA,eAAe;IACfC,aAAa,EAAbA,aAAa;IACbC,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAXA,WAAW;IACXC,KAAK,EAALA,KAAK;IACLC,UAAU,EAAVA,UAAU;IACVC,UAAU,EAAVA,UAAU;IACVC,OAAO,EAAPA,OAAO;IACPC,gBAAgB,EAAhBA,gBAAgB;IAChBmO,cAAc,EAAdA,cAAc;IACdC,kBAAkB,EAAlBA,kBAAkB;IAClB7D,eAAe,EAAfA,eAAe;IACftK,gCAAgC,EAAhCA,gCAAgC;IAChCC,WAAW,EAAXA,WAAW;IACXc,CAAC,EAADA,CAAC;IACDb,MAAM,EAANA,MAAM;IACNE,WAAW,EAAXA,WAAW;IACXC,aAAa,EAAbA,aAAa;IACbC,cAAc,EAAdA,cAAc;IACdC,QAAQ,EAARA;EAAQ,GAEN1C,KAAK;IAAAwK,MAAA,EAAA9P,KAAA;IAAA+P,QAAA;MAAAC,QAAA,EAAA/P,YAAA;MAAAgQ,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAACqG,OAAA,CAAAzB,YAAA,GAAAA,YAAA;AAEFA,YAAY,CAAC0B,WAAW,GAAG,4BAA4B"}
@@ -237,7 +237,9 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
237
237
  return acc + Number(asset.size);
238
238
  }, 0);
239
239
  if (totalFileSize / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {
240
- _reactNative.Alert.alert("Maximum file size upload limit reached, please upload files below " + MAX_FILE_SIZE_TO_UPLOAD_IN_MB + "MB.");
240
+ _reactNative.Alert.alert(t("Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.", {
241
+ MAX_FILE_SIZE_TO_UPLOAD_IN_MB: MAX_FILE_SIZE_TO_UPLOAD_IN_MB
242
+ }));
241
243
  } else {
242
244
  result.assets.forEach(function (asset) {
243
245
  uploadNewFile(asset);
@@ -971,7 +973,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
971
973
  __self: _this,
972
974
  __source: {
973
975
  fileName: _jsxFileName,
974
- lineNumber: 1170,
976
+ lineNumber: 1173,
975
977
  columnNumber: 5
976
978
  }
977
979
  }, children);
@@ -992,7 +994,7 @@ var withMessageInputContext = function withMessageInputContext(Component) {
992
994
  __self: _this,
993
995
  __source: {
994
996
  fileName: _jsxFileName,
995
- lineNumber: 1210,
997
+ lineNumber: 1213,
996
998
  columnNumber: 12
997
999
  }
998
1000
  }));