@sendbird/uikit-react 3.6.7 → 3.6.8-rc.1

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 (626) hide show
  1. package/App.js +57 -49
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +63 -0
  4. package/Channel/components/ChannelHeader.js +20 -19
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +45 -41
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +16 -15
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/Message.js +38 -36
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +34 -32
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +41 -60
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +18 -17
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +18 -17
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +16 -15
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +4 -4
  24. package/Channel/context.js +13 -12
  25. package/Channel/context.js.map +1 -1
  26. package/Channel/utils/compareMessagesForGrouping.js +22 -0
  27. package/Channel/utils/compareMessagesForGrouping.js.map +1 -0
  28. package/Channel/utils/getMessagePartsInfo.js +38 -0
  29. package/Channel/utils/getMessagePartsInfo.js.map +1 -0
  30. package/Channel.js +45 -41
  31. package/Channel.js.map +1 -1
  32. package/ChannelList/components/AddChannel.js +15 -15
  33. package/ChannelList/components/ChannelListHeader.js +6 -6
  34. package/ChannelList/components/ChannelListUI.js +31 -30
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +27 -26
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +14 -14
  39. package/ChannelList/context.js +8 -8
  40. package/ChannelList.js +31 -30
  41. package/ChannelList.js.map +1 -1
  42. package/{ChannelListProvider-fc14f42d.js → ChannelListProvider-8bad6b5d.js} +11 -14
  43. package/ChannelListProvider-8bad6b5d.js.map +1 -0
  44. package/{ChannelProvider-78e85f32.js → ChannelProvider-849524b4.js} +31 -331
  45. package/ChannelProvider-849524b4.js.map +1 -0
  46. package/ChannelSettings/components/ChannelProfile.js +11 -11
  47. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  48. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  49. package/ChannelSettings/components/LeaveChannel.js +11 -11
  50. package/ChannelSettings/components/ModerationPanel.js +14 -14
  51. package/ChannelSettings/components/UserListItem.js +10 -10
  52. package/ChannelSettings/components/UserPanel.js +13 -13
  53. package/ChannelSettings/context.js +3 -3
  54. package/ChannelSettings.js +17 -17
  55. package/CreateChannel/components/CreateChannelUI.js +13 -13
  56. package/CreateChannel/components/InviteUsers.js +13 -13
  57. package/CreateChannel/components/SelectChannelType.js +10 -10
  58. package/CreateChannel/context.js +4 -4
  59. package/CreateChannel.js +13 -13
  60. package/{CreateChannelProvider-fe23c38f.js → CreateChannelProvider-05a17cd7.js} +1 -1
  61. package/{CreateChannelProvider-fe23c38f.js.map → CreateChannelProvider-05a17cd7.js.map} +1 -1
  62. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  63. package/CreateOpenChannel/context.js +1 -1
  64. package/CreateOpenChannel.js +9 -9
  65. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  66. package/EditUserProfile.js +12 -12
  67. package/{LocalizationContext-5fe9b59d.js → LocalizationContext-8781208d.js} +3 -3
  68. package/{LocalizationContext-5fe9b59d.js.map → LocalizationContext-8781208d.js.map} +1 -1
  69. package/{MediaQueryContext-66b59195.js → MediaQueryContext-2ef9f34f.js} +1 -1
  70. package/{MediaQueryContext-66b59195.js.map → MediaQueryContext-2ef9f34f.js.map} +1 -1
  71. package/{MemberList-c03817ad.js → MemberList-41b2fd92.js} +5 -5
  72. package/{MemberList-c03817ad.js.map → MemberList-41b2fd92.js.map} +1 -1
  73. package/{useDirtyGetMentions-3f7692ab.js → Message/hooks/useDirtyGetMentions.js} +3 -2
  74. package/Message/hooks/useDirtyGetMentions.js.map +1 -0
  75. package/MessageSearch/components/MessageSearchUI.js +11 -11
  76. package/MessageSearch/context.js +1 -1
  77. package/MessageSearch/context.js.map +1 -1
  78. package/MessageSearch.js +11 -11
  79. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  80. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  81. package/OpenChannel/components/OpenChannelInput.js +20 -19
  82. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  83. package/OpenChannel/components/OpenChannelMessage.js +30 -38
  84. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  85. package/OpenChannel/components/OpenChannelMessageList.js +33 -32
  86. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  87. package/OpenChannel/components/OpenChannelUI.js +33 -32
  88. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  89. package/OpenChannel/context.js +8 -8
  90. package/OpenChannel.js +33 -32
  91. package/OpenChannel.js.map +1 -1
  92. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  93. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  94. package/OpenChannelList/context.js +3 -3
  95. package/OpenChannelList.js +13 -13
  96. package/{OpenChannelListProvider-5d21932a.js → OpenChannelListProvider-573391ab.js} +3 -3
  97. package/{OpenChannelListProvider-5d21932a.js.map → OpenChannelListProvider-573391ab.js.map} +1 -1
  98. package/{OpenChannelProvider-a6f4f92a.js → OpenChannelProvider-ac1c9c33.js} +7 -7
  99. package/OpenChannelProvider-ac1c9c33.js.map +1 -0
  100. package/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  101. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  102. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  103. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  104. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  105. package/OpenChannelSettings/context.js +3 -3
  106. package/OpenChannelSettings.js +17 -17
  107. package/{RemoveMessageModal-0d438e31.js → RemoveMessageModal-6a47b7bb.js} +3 -3
  108. package/RemoveMessageModal-6a47b7bb.js.map +1 -0
  109. package/SendbirdProvider.js +24 -21
  110. package/SendbirdProvider.js.map +1 -1
  111. package/Thread/components/ParentMessageInfo.js +36 -34
  112. package/Thread/components/ParentMessageInfo.js.map +1 -1
  113. package/Thread/components/ParentMessageInfoItem.js +21 -21
  114. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  115. package/Thread/components/ThreadHeader.js +6 -6
  116. package/Thread/components/ThreadList.js +39 -37
  117. package/Thread/components/ThreadList.js.map +1 -1
  118. package/Thread/components/ThreadListItem.js +40 -38
  119. package/Thread/components/ThreadListItem.js.map +1 -1
  120. package/Thread/components/ThreadMessageInput.js +32 -30
  121. package/Thread/components/ThreadMessageInput.js.map +1 -1
  122. package/Thread/components/ThreadUI.js +43 -41
  123. package/Thread/components/ThreadUI.js.map +1 -1
  124. package/Thread/context.js +8 -8
  125. package/Thread.js +43 -41
  126. package/Thread.js.map +1 -1
  127. package/{ThreadProvider-2a4356a2.js → ThreadProvider-9e14db75.js} +12 -11
  128. package/ThreadProvider-9e14db75.js.map +1 -0
  129. package/{UserProfileContext-8b8f3e3a.js → UserProfileContext-3be56f3a.js} +1 -1
  130. package/{UserProfileContext-8b8f3e3a.js.map → UserProfileContext-3be56f3a.js.map} +1 -1
  131. package/{VoiceMessageInputWrapper-b8742ea1.js → VoiceMessageInputWrapper-be6706b2.js} +7 -7
  132. package/{VoiceMessageInputWrapper-b8742ea1.js.map → VoiceMessageInputWrapper-be6706b2.js.map} +1 -1
  133. package/VoicePlayer/context.js +3 -3
  134. package/VoicePlayer/useVoicePlayer.js +9 -9
  135. package/VoiceRecorder/context.js +9 -9
  136. package/VoiceRecorder/useVoiceRecorder.js +8 -8
  137. package/{WebAudioUtils-63418113.js → WebAudioUtils-9b10fbb0.js} +2 -2
  138. package/{WebAudioUtils-63418113.js.map → WebAudioUtils-9b10fbb0.js.map} +1 -1
  139. package/{_rollupPluginBabelHelpers-90ff7fc4.js → _rollupPluginBabelHelpers-404d1a9c.js} +1 -1
  140. package/_rollupPluginBabelHelpers-404d1a9c.js.map +1 -0
  141. package/{actionTypes-66bf934b.js → actionTypes-a16bc0a0.js} +1 -1
  142. package/{actionTypes-66bf934b.js.map → actionTypes-a16bc0a0.js.map} +1 -1
  143. package/cjs/App.js +57 -49
  144. package/cjs/App.js.map +1 -1
  145. package/cjs/Channel/components/ChannelHeader.js +20 -19
  146. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  147. package/cjs/Channel/components/ChannelUI.js +45 -41
  148. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  149. package/cjs/Channel/components/FileViewer.js +16 -15
  150. package/cjs/Channel/components/FileViewer.js.map +1 -1
  151. package/cjs/Channel/components/FrozenNotification.js +4 -4
  152. package/cjs/Channel/components/Message.js +41 -39
  153. package/cjs/Channel/components/Message.js.map +1 -1
  154. package/cjs/Channel/components/MessageInput.js +39 -37
  155. package/cjs/Channel/components/MessageInput.js.map +1 -1
  156. package/cjs/Channel/components/MessageList.js +47 -66
  157. package/cjs/Channel/components/MessageList.js.map +1 -1
  158. package/cjs/Channel/components/RemoveMessageModal.js +18 -17
  159. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  160. package/cjs/Channel/components/SuggestedMentionList.js +18 -17
  161. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  162. package/cjs/Channel/components/TypingIndicator.js +16 -15
  163. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  164. package/cjs/Channel/components/UnreadCount.js +4 -4
  165. package/cjs/Channel/context.js +13 -12
  166. package/cjs/Channel/context.js.map +1 -1
  167. package/cjs/Channel/utils/compareMessagesForGrouping.js +26 -0
  168. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -0
  169. package/cjs/Channel/utils/getMessagePartsInfo.js +42 -0
  170. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -0
  171. package/cjs/Channel.js +45 -41
  172. package/cjs/Channel.js.map +1 -1
  173. package/cjs/ChannelList/components/AddChannel.js +15 -15
  174. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  175. package/cjs/ChannelList/components/ChannelListUI.js +31 -30
  176. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  177. package/cjs/ChannelList/components/ChannelPreview.js +27 -26
  178. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  179. package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -14
  180. package/cjs/ChannelList/context.js +8 -8
  181. package/cjs/ChannelList.js +31 -30
  182. package/cjs/ChannelList.js.map +1 -1
  183. package/cjs/{ChannelListProvider-c1f3cf4a.js → ChannelListProvider-11d605eb.js} +11 -14
  184. package/cjs/ChannelListProvider-11d605eb.js.map +1 -0
  185. package/cjs/{ChannelProvider-633edf61.js → ChannelProvider-58b2dd24.js} +109 -414
  186. package/cjs/ChannelProvider-58b2dd24.js.map +1 -0
  187. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  188. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  189. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  190. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  191. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  192. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  193. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  194. package/cjs/ChannelSettings/context.js +3 -3
  195. package/cjs/ChannelSettings.js +17 -17
  196. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  197. package/cjs/CreateChannel/components/InviteUsers.js +13 -13
  198. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  199. package/cjs/CreateChannel/context.js +4 -4
  200. package/cjs/CreateChannel.js +13 -13
  201. package/cjs/{CreateChannelProvider-32102712.js → CreateChannelProvider-ea0ac249.js} +1 -1
  202. package/cjs/{CreateChannelProvider-32102712.js.map → CreateChannelProvider-ea0ac249.js.map} +1 -1
  203. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  204. package/cjs/CreateOpenChannel/context.js +1 -1
  205. package/cjs/CreateOpenChannel.js +9 -9
  206. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  207. package/cjs/EditUserProfile.js +12 -12
  208. package/cjs/{LocalizationContext-a15ec4eb.js → LocalizationContext-98e10f52.js} +3 -3
  209. package/cjs/{LocalizationContext-a15ec4eb.js.map → LocalizationContext-98e10f52.js.map} +1 -1
  210. package/cjs/{MediaQueryContext-80d10d7b.js → MediaQueryContext-add76360.js} +1 -1
  211. package/cjs/{MediaQueryContext-80d10d7b.js.map → MediaQueryContext-add76360.js.map} +1 -1
  212. package/cjs/{MemberList-5303bbbb.js → MemberList-ae4434a0.js} +5 -5
  213. package/cjs/{MemberList-5303bbbb.js.map → MemberList-ae4434a0.js.map} +1 -1
  214. package/cjs/{useDirtyGetMentions-a37639f1.js → Message/hooks/useDirtyGetMentions.js} +4 -1
  215. package/cjs/Message/hooks/useDirtyGetMentions.js.map +1 -0
  216. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  217. package/cjs/MessageSearch/context.js +1 -1
  218. package/cjs/MessageSearch/context.js.map +1 -1
  219. package/cjs/MessageSearch.js +11 -11
  220. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  221. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  222. package/cjs/OpenChannel/components/OpenChannelInput.js +20 -19
  223. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  224. package/cjs/OpenChannel/components/OpenChannelMessage.js +32 -40
  225. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  226. package/cjs/OpenChannel/components/OpenChannelMessageList.js +33 -32
  227. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  228. package/cjs/OpenChannel/components/OpenChannelUI.js +33 -32
  229. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  230. package/cjs/OpenChannel/context.js +8 -8
  231. package/cjs/OpenChannel.js +33 -32
  232. package/cjs/OpenChannel.js.map +1 -1
  233. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  234. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  235. package/cjs/OpenChannelList/context.js +3 -3
  236. package/cjs/OpenChannelList.js +13 -13
  237. package/cjs/{OpenChannelListProvider-49874b88.js → OpenChannelListProvider-8e908f4d.js} +3 -3
  238. package/cjs/{OpenChannelListProvider-49874b88.js.map → OpenChannelListProvider-8e908f4d.js.map} +1 -1
  239. package/cjs/{OpenChannelProvider-c2b3dc2c.js → OpenChannelProvider-7b3b81b1.js} +7 -7
  240. package/cjs/OpenChannelProvider-7b3b81b1.js.map +1 -0
  241. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +12 -12
  242. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  243. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  244. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  245. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  246. package/cjs/OpenChannelSettings/context.js +3 -3
  247. package/cjs/OpenChannelSettings.js +17 -17
  248. package/cjs/{RemoveMessageModal-271f1251.js → RemoveMessageModal-33422173.js} +3 -3
  249. package/cjs/RemoveMessageModal-33422173.js.map +1 -0
  250. package/cjs/SendbirdProvider.js +24 -21
  251. package/cjs/SendbirdProvider.js.map +1 -1
  252. package/cjs/Thread/components/ParentMessageInfo.js +38 -36
  253. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  254. package/cjs/Thread/components/ParentMessageInfoItem.js +21 -21
  255. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  256. package/cjs/Thread/components/ThreadHeader.js +6 -6
  257. package/cjs/Thread/components/ThreadList.js +39 -37
  258. package/cjs/Thread/components/ThreadList.js.map +1 -1
  259. package/cjs/Thread/components/ThreadListItem.js +42 -40
  260. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  261. package/cjs/Thread/components/ThreadMessageInput.js +34 -32
  262. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  263. package/cjs/Thread/components/ThreadUI.js +43 -41
  264. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  265. package/cjs/Thread/context.js +8 -8
  266. package/cjs/Thread.js +43 -41
  267. package/cjs/Thread.js.map +1 -1
  268. package/cjs/{ThreadProvider-8d2ce923.js → ThreadProvider-f7ee365b.js} +12 -11
  269. package/cjs/ThreadProvider-f7ee365b.js.map +1 -0
  270. package/cjs/{UserProfileContext-f8f1cee7.js → UserProfileContext-b249921b.js} +1 -1
  271. package/cjs/{UserProfileContext-f8f1cee7.js.map → UserProfileContext-b249921b.js.map} +1 -1
  272. package/cjs/{VoiceMessageInputWrapper-e8d7b9ba.js → VoiceMessageInputWrapper-a365a098.js} +9 -9
  273. package/cjs/{VoiceMessageInputWrapper-e8d7b9ba.js.map → VoiceMessageInputWrapper-a365a098.js.map} +1 -1
  274. package/cjs/VoicePlayer/context.js +3 -3
  275. package/cjs/VoicePlayer/useVoicePlayer.js +9 -9
  276. package/cjs/VoiceRecorder/context.js +9 -9
  277. package/cjs/VoiceRecorder/useVoiceRecorder.js +8 -8
  278. package/cjs/{WebAudioUtils-88dbfaed.js → WebAudioUtils-a6402df3.js} +2 -2
  279. package/cjs/{WebAudioUtils-88dbfaed.js.map → WebAudioUtils-a6402df3.js.map} +1 -1
  280. package/cjs/{_rollupPluginBabelHelpers-0d9d52a5.js → _rollupPluginBabelHelpers-af83a471.js} +1 -1
  281. package/cjs/_rollupPluginBabelHelpers-af83a471.js.map +1 -0
  282. package/cjs/{actionTypes-974dfe33.js → actionTypes-200d8a9f.js} +1 -1
  283. package/cjs/{actionTypes-974dfe33.js.map → actionTypes-200d8a9f.js.map} +1 -1
  284. package/cjs/{color-1e9cc481.js → color-31d6570a.js} +1 -1
  285. package/cjs/{color-1e9cc481.js.map → color-31d6570a.js.map} +1 -1
  286. package/cjs/{compareIds-0344920c.js → compareIds-e79c9a5a.js} +1 -1
  287. package/cjs/{compareIds-0344920c.js.map → compareIds-e79c9a5a.js.map} +1 -1
  288. package/cjs/{const-0d4d91cd.js → const-a3aa0fd6.js} +1 -1
  289. package/cjs/{const-0d4d91cd.js.map → const-a3aa0fd6.js.map} +1 -1
  290. package/cjs/{const-182fe978.js → const-c4593fa8.js} +1 -1
  291. package/cjs/{const-182fe978.js.map → const-c4593fa8.js.map} +1 -1
  292. package/cjs/{consts-10e5b075.js → consts-0ce6dc5f.js} +1 -1
  293. package/cjs/{consts-10e5b075.js.map → consts-0ce6dc5f.js.map} +1 -1
  294. package/cjs/{consts-5bdc2c7f.js → consts-43df77ef.js} +1 -1
  295. package/cjs/{consts-5bdc2c7f.js.map → consts-43df77ef.js.map} +1 -1
  296. package/cjs/{consts-0c9a38ef.js → consts-6d791ff5.js} +5 -1
  297. package/cjs/{consts-0c9a38ef.js.map → consts-6d791ff5.js.map} +1 -1
  298. package/cjs/{consts-c336bb61.js → consts-95de97c6.js} +1 -1
  299. package/cjs/{consts-c336bb61.js.map → consts-95de97c6.js.map} +1 -1
  300. package/cjs/{context-0276d21e.js → context-cec5a03c.js} +2 -2
  301. package/cjs/{context-0276d21e.js.map → context-cec5a03c.js.map} +1 -1
  302. package/cjs/dist/index.css +154 -127
  303. package/cjs/dist/index.css.map +1 -1
  304. package/cjs/{index-2cb13008.js → index-0a1d6159.js} +2 -2
  305. package/cjs/{index-2cb13008.js.map → index-0a1d6159.js.map} +1 -1
  306. package/cjs/{index-ed1ee70b.js → index-0a49ce60.js} +21 -14
  307. package/cjs/index-0a49ce60.js.map +1 -0
  308. package/cjs/index-0bcc6578.js +298 -0
  309. package/cjs/index-0bcc6578.js.map +1 -0
  310. package/cjs/{index-6cb3365f.js → index-1a05108d.js} +2 -2
  311. package/cjs/{index-6cb3365f.js.map → index-1a05108d.js.map} +1 -1
  312. package/cjs/{index-49fe0efb.js → index-44f82a5f.js} +4 -4
  313. package/cjs/{index-49fe0efb.js.map → index-44f82a5f.js.map} +1 -1
  314. package/cjs/{index-08c5777e.js → index-5125200f.js} +67 -28
  315. package/cjs/index-5125200f.js.map +1 -0
  316. package/cjs/{index-5a651f3c.js → index-5eddbcdd.js} +2 -2
  317. package/cjs/{index-5a651f3c.js.map → index-5eddbcdd.js.map} +1 -1
  318. package/cjs/{index-87e11d7e.js → index-6a049d22.js} +5 -5
  319. package/cjs/{index-87e11d7e.js.map → index-6a049d22.js.map} +1 -1
  320. package/cjs/{index-092b22dd.js → index-71ac2b0c.js} +2 -2
  321. package/cjs/{index-092b22dd.js.map → index-71ac2b0c.js.map} +1 -1
  322. package/cjs/{index-e46cc828.js → index-7c287c6e.js} +6 -6
  323. package/cjs/{index-e46cc828.js.map → index-7c287c6e.js.map} +1 -1
  324. package/cjs/{index-c2454b7e.js → index-821a74b6.js} +1 -1
  325. package/cjs/{index-c2454b7e.js.map → index-821a74b6.js.map} +1 -1
  326. package/cjs/{index-dbccd7fb.js → index-86a4d820.js} +3 -3
  327. package/cjs/{index-dbccd7fb.js.map → index-86a4d820.js.map} +1 -1
  328. package/cjs/{index-54228aa8.js → index-892e04e5.js} +4 -4
  329. package/cjs/{index-54228aa8.js.map → index-892e04e5.js.map} +1 -1
  330. package/cjs/{index-b428366f.js → index-ae818469.js} +2 -2
  331. package/cjs/index-ae818469.js.map +1 -0
  332. package/cjs/{index-1325e266.js → index-cffeab44.js} +3 -3
  333. package/cjs/{index-1325e266.js.map → index-cffeab44.js.map} +1 -1
  334. package/cjs/{index-9c8e297d.js → index-d1afbcfe.js} +3 -3
  335. package/cjs/{index-9c8e297d.js.map → index-d1afbcfe.js.map} +1 -1
  336. package/cjs/{index-cebd1362.js → index-dafc4dfb.js} +4 -4
  337. package/cjs/{index-cebd1362.js.map → index-dafc4dfb.js.map} +1 -1
  338. package/cjs/{index-17a6519d.js → index-eb531448.js} +1 -1
  339. package/cjs/{index-17a6519d.js.map → index-eb531448.js.map} +1 -1
  340. package/cjs/index-fc0d8ea1.js +230 -0
  341. package/cjs/index-fc0d8ea1.js.map +1 -0
  342. package/cjs/index.js +57 -53
  343. package/cjs/index.js.map +1 -1
  344. package/cjs/{index.module-8026e7d3.js → index.module-dcf622ba.js} +1 -1
  345. package/cjs/{index.module-8026e7d3.js.map → index.module-dcf622ba.js.map} +1 -1
  346. package/cjs/package.json +2 -2
  347. package/cjs/{resolvedReplyType-8137e072.js → resolvedReplyType-7074785b.js} +1 -1
  348. package/cjs/{resolvedReplyType-8137e072.js.map → resolvedReplyType-7074785b.js.map} +1 -1
  349. package/cjs/sendbirdSelectors.js +3 -4
  350. package/cjs/sendbirdSelectors.js.map +1 -1
  351. package/cjs/{stringSet-769f181d.js → stringSet-20c5f2fa.js} +1 -1
  352. package/cjs/{stringSet-769f181d.js.map → stringSet-20c5f2fa.js.map} +1 -1
  353. package/cjs/{tokenize-586ed01a.js → tokenize-3c568761.js} +2 -2
  354. package/cjs/{tokenize-586ed01a.js.map → tokenize-3c568761.js.map} +1 -1
  355. package/cjs/{topics-99121946.js → topics-b61b6276.js} +1 -1
  356. package/cjs/{topics-99121946.js.map → topics-b61b6276.js.map} +1 -1
  357. package/cjs/{types-812b3bfd.js → types-7d4d4e4a.js} +1 -1
  358. package/cjs/types-7d4d4e4a.js.map +1 -0
  359. package/cjs/ui/Accordion.js +2 -2
  360. package/cjs/ui/AccordionGroup.js +2 -2
  361. package/cjs/ui/AdminMessage.js +2 -2
  362. package/cjs/ui/Avatar.js +1 -1
  363. package/cjs/ui/Badge.js +4 -4
  364. package/cjs/ui/BottomSheet.js +1 -1
  365. package/cjs/ui/Button.js +2 -2
  366. package/cjs/ui/ChannelAvatar.js +2 -2
  367. package/cjs/ui/ConnectionStatus.js +4 -4
  368. package/cjs/ui/ContextMenu.js +5 -5
  369. package/cjs/ui/DateSeparator.js +3 -3
  370. package/cjs/ui/EmojiReactions.js +13 -13
  371. package/cjs/ui/EmojiReactions.js.map +1 -1
  372. package/cjs/ui/FileMessageItemBody.js +6 -6
  373. package/cjs/ui/FileViewer.js +17 -126
  374. package/cjs/ui/FileViewer.js.map +1 -1
  375. package/cjs/ui/Icon.js +178 -159
  376. package/cjs/ui/Icon.js.map +1 -1
  377. package/cjs/ui/IconButton.js +1 -1
  378. package/cjs/ui/Input.js +2 -2
  379. package/cjs/ui/Label.js +2 -2
  380. package/cjs/ui/LinkLabel.js +2 -2
  381. package/cjs/ui/MentionLabel.js +10 -10
  382. package/cjs/ui/MentionUserLabel.js +1 -1
  383. package/cjs/ui/MessageContent.js +28 -28
  384. package/cjs/ui/MessageContent.js.map +1 -1
  385. package/cjs/ui/MessageInput/hooks/usePaste.js +16 -0
  386. package/cjs/ui/MessageInput/hooks/usePaste.js.map +1 -0
  387. package/cjs/ui/MessageInput.js +21 -233
  388. package/cjs/ui/MessageInput.js.map +1 -1
  389. package/cjs/ui/MessageItemMenu.js +8 -8
  390. package/cjs/ui/MessageItemMenu.js.map +1 -1
  391. package/cjs/ui/MessageItemReactionMenu.js +8 -8
  392. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  393. package/cjs/ui/MessageSearchFileItem.js +10 -10
  394. package/cjs/ui/MessageSearchItem.js +8 -8
  395. package/cjs/ui/MessageStatus.js +10 -10
  396. package/cjs/ui/Modal.js +7 -7
  397. package/cjs/ui/OGMessageItemBody.js +14 -14
  398. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  399. package/cjs/ui/OpenChannelAvatar.js +5 -5
  400. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  401. package/cjs/ui/OpenchannelFileMessage.js +15 -15
  402. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  403. package/cjs/ui/OpenchannelThumbnailMessage.js +14 -14
  404. package/cjs/ui/OpenchannelUserMessage.js +15 -15
  405. package/cjs/ui/PlaceHolder.js +5 -5
  406. package/cjs/ui/PlaybackTime.js +2 -2
  407. package/cjs/ui/QuoteMessage.js +6 -6
  408. package/cjs/ui/QuoteMessage.js.map +1 -1
  409. package/cjs/ui/QuoteMessageInput.js +6 -6
  410. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  411. package/cjs/ui/ReactionBadge.js +2 -2
  412. package/cjs/ui/ReactionButton.js +4 -4
  413. package/cjs/ui/SortByRow.js +1 -1
  414. package/cjs/ui/TextButton.js +1 -1
  415. package/cjs/ui/TextMessageItemBody.js +14 -14
  416. package/cjs/ui/ThreadReplies.js +5 -5
  417. package/cjs/ui/ThumbnailMessageItemBody.js +5 -5
  418. package/cjs/ui/Toggle.js +1 -1
  419. package/cjs/ui/Tooltip.js +2 -2
  420. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  421. package/cjs/ui/UserListItem.js +10 -10
  422. package/cjs/ui/UserProfile.js +9 -9
  423. package/cjs/ui/VoiceMessageItemBody.js +9 -9
  424. package/cjs/ui/VoiceMessgeInput.js +7 -7
  425. package/cjs/ui/Word.js +10 -10
  426. package/cjs/{useLongPress-a77054d5.js → useLongPress-f1d03c8d.js} +3 -3
  427. package/cjs/{useLongPress-a77054d5.js.map → useLongPress-f1d03c8d.js.map} +1 -1
  428. package/cjs/useSendbirdStateContext.js +1 -1
  429. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  430. package/cjs/utils/message/isVoiceMessage.js +2 -2
  431. package/cjs/{utils-c8ca7346.js → utils-03f96fba.js} +1 -1
  432. package/cjs/{utils-c8ca7346.js.map → utils-03f96fba.js.map} +1 -1
  433. package/cjs/{utils-18517a45.js → utils-482c5d41.js} +2 -2
  434. package/cjs/{utils-18517a45.js.map → utils-482c5d41.js.map} +1 -1
  435. package/cjs/{utils-3fda8de7.js → utils-9a0e0c06.js} +1 -1
  436. package/cjs/{utils-3fda8de7.js.map → utils-9a0e0c06.js.map} +1 -1
  437. package/cjs/utils-a569b281.js +340 -0
  438. package/cjs/utils-a569b281.js.map +1 -0
  439. package/cjs/{utils-d6b081f0.js → utils-e00d6f10.js} +1 -1
  440. package/cjs/{utils-d6b081f0.js.map → utils-e00d6f10.js.map} +1 -1
  441. package/cjs/{uuid-6c019e89.js → uuid-f9a11afa.js} +1 -1
  442. package/cjs/{uuid-6c019e89.js.map → uuid-f9a11afa.js.map} +1 -1
  443. package/cjs/withSendbird.js +1 -1
  444. package/{color-2315a258.js → color-08fea5a1.js} +1 -1
  445. package/{color-2315a258.js.map → color-08fea5a1.js.map} +1 -1
  446. package/{compareIds-2464aab2.js → compareIds-72c21832.js} +1 -1
  447. package/{compareIds-2464aab2.js.map → compareIds-72c21832.js.map} +1 -1
  448. package/{const-0cca8d38.js → const-035fb030.js} +1 -1
  449. package/{const-0cca8d38.js.map → const-035fb030.js.map} +1 -1
  450. package/{const-c6a266f4.js → const-cf103f8d.js} +1 -1
  451. package/{const-c6a266f4.js.map → const-cf103f8d.js.map} +1 -1
  452. package/{consts-991d3823.js → consts-52c058a5.js} +1 -1
  453. package/{consts-991d3823.js.map → consts-52c058a5.js.map} +1 -1
  454. package/{consts-32a2c4a7.js → consts-d9925dd6.js} +1 -1
  455. package/{consts-32a2c4a7.js.map → consts-d9925dd6.js.map} +1 -1
  456. package/{consts-3d956927.js → consts-dbf4e2a7.js} +1 -1
  457. package/{consts-3d956927.js.map → consts-dbf4e2a7.js.map} +1 -1
  458. package/{consts-b6f24cc7.js → consts-f92f7a23.js} +5 -2
  459. package/{consts-b6f24cc7.js.map → consts-f92f7a23.js.map} +1 -1
  460. package/{context-e46fff7b.js → context-866e205a.js} +2 -2
  461. package/{context-e46fff7b.js.map → context-866e205a.js.map} +1 -1
  462. package/dist/index.css +154 -127
  463. package/dist/index.css.map +1 -1
  464. package/{index-335e7557.js → index-0cfeeaac.js} +2 -2
  465. package/{index-335e7557.js.map → index-0cfeeaac.js.map} +1 -1
  466. package/{index-f2e30f98.js → index-220222c3.js} +2 -2
  467. package/{index-f2e30f98.js.map → index-220222c3.js.map} +1 -1
  468. package/{index-499d9ef9.js → index-3c8065f1.js} +2 -2
  469. package/{index-499d9ef9.js.map → index-3c8065f1.js.map} +1 -1
  470. package/{index-17b78bb0.js → index-3e9067b2.js} +21 -14
  471. package/index-3e9067b2.js.map +1 -0
  472. package/{index-fe2c7493.js → index-48b8b7ea.js} +6 -6
  473. package/{index-fe2c7493.js.map → index-48b8b7ea.js.map} +1 -1
  474. package/{index-13d9d766.js → index-5a7039da.js} +2 -2
  475. package/{index-13d9d766.js.map → index-5a7039da.js.map} +1 -1
  476. package/index-5d775cdb.js +221 -0
  477. package/index-5d775cdb.js.map +1 -0
  478. package/{index-7b3790d3.js → index-87a9a309.js} +4 -4
  479. package/{index-7b3790d3.js.map → index-87a9a309.js.map} +1 -1
  480. package/{index-07345a6e.js → index-89a6798f.js} +5 -5
  481. package/{index-07345a6e.js.map → index-89a6798f.js.map} +1 -1
  482. package/{index-bafedab0.js → index-92d47d85.js} +1 -1
  483. package/{index-bafedab0.js.map → index-92d47d85.js.map} +1 -1
  484. package/index-a3d726e9.js +289 -0
  485. package/index-a3d726e9.js.map +1 -0
  486. package/{index-a39b9075.js → index-adaead71.js} +3 -3
  487. package/{index-a39b9075.js.map → index-adaead71.js.map} +1 -1
  488. package/{index-ebb8a7df.js → index-b3d5a76f.js} +2 -2
  489. package/index-b3d5a76f.js.map +1 -0
  490. package/{index-2544bb0a.js → index-bbc82f2a.js} +4 -4
  491. package/{index-2544bb0a.js.map → index-bbc82f2a.js.map} +1 -1
  492. package/{index-b9b184a4.js → index-c17b453a.js} +1 -1
  493. package/{index-b9b184a4.js.map → index-c17b453a.js.map} +1 -1
  494. package/{index-c4273470.js → index-ceda3633.js} +4 -4
  495. package/{index-c4273470.js.map → index-ceda3633.js.map} +1 -1
  496. package/{index-879bcfab.js → index-d637d23d.js} +3 -3
  497. package/{index-879bcfab.js.map → index-d637d23d.js.map} +1 -1
  498. package/{index-56249831.js → index-e9757459.js} +68 -29
  499. package/index-e9757459.js.map +1 -0
  500. package/{index-63c995b8.js → index-ef60ce9f.js} +3 -3
  501. package/{index-63c995b8.js.map → index-ef60ce9f.js.map} +1 -1
  502. package/index.d.ts +278 -134
  503. package/index.js +57 -53
  504. package/index.js.map +1 -1
  505. package/{index.module-41885c5b.js → index.module-476c67cc.js} +1 -1
  506. package/{index.module-41885c5b.js.map → index.module-476c67cc.js.map} +1 -1
  507. package/package.json +3 -2
  508. package/{resolvedReplyType-d6e22593.js → resolvedReplyType-8fa44680.js} +1 -1
  509. package/{resolvedReplyType-d6e22593.js.map → resolvedReplyType-8fa44680.js.map} +1 -1
  510. package/sendbirdSelectors.js +3 -4
  511. package/sendbirdSelectors.js.map +1 -1
  512. package/{stringSet-47601d79.js → stringSet-f13a0a37.js} +1 -1
  513. package/{stringSet-47601d79.js.map → stringSet-f13a0a37.js.map} +1 -1
  514. package/{tokenize-c0cf9574.js → tokenize-be306c61.js} +2 -2
  515. package/{tokenize-c0cf9574.js.map → tokenize-be306c61.js.map} +1 -1
  516. package/{topics-e985567d.js → topics-df485c66.js} +1 -1
  517. package/{topics-e985567d.js.map → topics-df485c66.js.map} +1 -1
  518. package/{types-02054e6e.js → types-b2ebbd50.js} +1 -1
  519. package/types-b2ebbd50.js.map +1 -0
  520. package/ui/Accordion.js +2 -2
  521. package/ui/AccordionGroup.js +2 -2
  522. package/ui/AdminMessage.js +2 -2
  523. package/ui/Avatar.js +1 -1
  524. package/ui/Badge.js +4 -4
  525. package/ui/BottomSheet.js +1 -1
  526. package/ui/Button.js +2 -2
  527. package/ui/ChannelAvatar.js +2 -2
  528. package/ui/ConnectionStatus.js +4 -4
  529. package/ui/ContextMenu.js +5 -5
  530. package/ui/DateSeparator.js +3 -3
  531. package/ui/EmojiReactions.js +13 -13
  532. package/ui/EmojiReactions.js.map +1 -1
  533. package/ui/FileMessageItemBody.js +6 -6
  534. package/ui/FileViewer.js +15 -124
  535. package/ui/FileViewer.js.map +1 -1
  536. package/ui/Icon.js +178 -159
  537. package/ui/Icon.js.map +1 -1
  538. package/ui/IconButton.js +1 -1
  539. package/ui/Input.js +2 -2
  540. package/ui/Label.js +2 -2
  541. package/ui/LinkLabel.js +2 -2
  542. package/ui/MentionLabel.js +10 -10
  543. package/ui/MentionUserLabel.js +1 -1
  544. package/ui/MessageContent.js +28 -28
  545. package/ui/MessageContent.js.map +1 -1
  546. package/ui/MessageInput/hooks/usePaste.js +7 -0
  547. package/ui/MessageInput/hooks/usePaste.js.map +1 -0
  548. package/ui/MessageInput.js +16 -227
  549. package/ui/MessageInput.js.map +1 -1
  550. package/ui/MessageItemMenu.js +8 -8
  551. package/ui/MessageItemMenu.js.map +1 -1
  552. package/ui/MessageItemReactionMenu.js +8 -8
  553. package/ui/MessageItemReactionMenu.js.map +1 -1
  554. package/ui/MessageSearchFileItem.js +10 -10
  555. package/ui/MessageSearchItem.js +8 -8
  556. package/ui/MessageStatus.js +10 -10
  557. package/ui/Modal.js +7 -7
  558. package/ui/OGMessageItemBody.js +14 -14
  559. package/ui/OpenChannelAdminMessage.js +2 -2
  560. package/ui/OpenChannelAvatar.js +5 -5
  561. package/ui/OpenchannelConversationHeader.js +6 -6
  562. package/ui/OpenchannelFileMessage.js +15 -15
  563. package/ui/OpenchannelOGMessage.js +18 -18
  564. package/ui/OpenchannelThumbnailMessage.js +14 -14
  565. package/ui/OpenchannelUserMessage.js +15 -15
  566. package/ui/PlaceHolder.js +5 -5
  567. package/ui/PlaybackTime.js +2 -2
  568. package/ui/QuoteMessage.js +6 -6
  569. package/ui/QuoteMessage.js.map +1 -1
  570. package/ui/QuoteMessageInput.js +6 -6
  571. package/ui/QuoteMessageInput.js.map +1 -1
  572. package/ui/ReactionBadge.js +2 -2
  573. package/ui/ReactionButton.js +4 -4
  574. package/ui/SortByRow.js +1 -1
  575. package/ui/TextButton.js +1 -1
  576. package/ui/TextMessageItemBody.js +14 -14
  577. package/ui/ThreadReplies.js +5 -5
  578. package/ui/ThumbnailMessageItemBody.js +5 -5
  579. package/ui/Toggle.js +1 -1
  580. package/ui/Tooltip.js +2 -2
  581. package/ui/UnknownMessageItemBody.js +6 -6
  582. package/ui/UserListItem.js +10 -10
  583. package/ui/UserProfile.js +9 -9
  584. package/ui/VoiceMessageItemBody.js +9 -9
  585. package/ui/VoiceMessgeInput.js +7 -7
  586. package/ui/Word.js +10 -10
  587. package/{useLongPress-0a2a8916.js → useLongPress-e69367cf.js} +3 -3
  588. package/{useLongPress-0a2a8916.js.map → useLongPress-e69367cf.js.map} +1 -1
  589. package/useSendbirdStateContext.js +1 -1
  590. package/utils/message/getOutgoingMessageState.js.map +1 -1
  591. package/utils/message/isVoiceMessage.js +2 -2
  592. package/{utils-93924431.js → utils-3ee416c9.js} +1 -1
  593. package/{utils-93924431.js.map → utils-3ee416c9.js.map} +1 -1
  594. package/{utils-2f26afa0.js → utils-42133229.js} +1 -1
  595. package/{utils-2f26afa0.js.map → utils-42133229.js.map} +1 -1
  596. package/{utils-d15f13cf.js → utils-60a2e587.js} +1 -1
  597. package/{utils-d15f13cf.js.map → utils-60a2e587.js.map} +1 -1
  598. package/{utils-70ea4cc9.js → utils-910ef5dd.js} +2 -2
  599. package/{utils-70ea4cc9.js.map → utils-910ef5dd.js.map} +1 -1
  600. package/utils-df42b9f9.js +301 -0
  601. package/utils-df42b9f9.js.map +1 -0
  602. package/{uuid-ec51ac4d.js → uuid-1b498132.js} +1 -1
  603. package/{uuid-ec51ac4d.js.map → uuid-1b498132.js.map} +1 -1
  604. package/withSendbird.js +1 -1
  605. package/ChannelListProvider-fc14f42d.js.map +0 -1
  606. package/ChannelProvider-78e85f32.js.map +0 -1
  607. package/OpenChannelProvider-a6f4f92a.js.map +0 -1
  608. package/RemoveMessageModal-0d438e31.js.map +0 -1
  609. package/ThreadProvider-2a4356a2.js.map +0 -1
  610. package/_rollupPluginBabelHelpers-90ff7fc4.js.map +0 -1
  611. package/cjs/ChannelListProvider-c1f3cf4a.js.map +0 -1
  612. package/cjs/ChannelProvider-633edf61.js.map +0 -1
  613. package/cjs/OpenChannelProvider-c2b3dc2c.js.map +0 -1
  614. package/cjs/RemoveMessageModal-271f1251.js.map +0 -1
  615. package/cjs/ThreadProvider-8d2ce923.js.map +0 -1
  616. package/cjs/_rollupPluginBabelHelpers-0d9d52a5.js.map +0 -1
  617. package/cjs/index-08c5777e.js.map +0 -1
  618. package/cjs/index-b428366f.js.map +0 -1
  619. package/cjs/index-ed1ee70b.js.map +0 -1
  620. package/cjs/types-812b3bfd.js.map +0 -1
  621. package/cjs/useDirtyGetMentions-a37639f1.js.map +0 -1
  622. package/index-17b78bb0.js.map +0 -1
  623. package/index-56249831.js.map +0 -1
  624. package/index-ebb8a7df.js.map +0 -1
  625. package/types-02054e6e.js.map +0 -1
  626. package/useDirtyGetMentions-3f7692ab.js.map +0 -1
@@ -1,238 +1,27 @@
1
- import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-90ff7fc4.js';
2
- import React__default, { useCallback, useRef, useState, useMemo, useEffect } from 'react';
1
+ import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-404d1a9c.js';
2
+ import React__default, { useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-0cca8d38.js';
5
- import { U as USER_MENTION_TEMP_CHAR } from '../const-c6a266f4.js';
4
+ import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-035fb030.js';
5
+ import { U as USER_MENTION_TEMP_CHAR } from '../const-cf103f8d.js';
6
6
  import IconButton from './IconButton.js';
7
7
  import Button, { ButtonTypes, ButtonSizes } from './Button.js';
8
- import DOMPurify from 'dompurify';
9
- import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-32a2c4a7.js';
8
+ import { r as renderToString, s as sanitizeString, n as nodeListToArray, u as usePaste } from '../index-5d775cdb.js';
10
9
  import Icon, { IconTypes, IconColors } from './Icon.js';
11
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-13d9d766.js';
12
- import { u as useLocalization } from '../LocalizationContext-5fe9b59d.js';
10
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-5a7039da.js';
11
+ import { u as useLocalization } from '../LocalizationContext-8781208d.js';
13
12
  import useSendbirdStateContext from '../useSendbirdStateContext.js';
14
- import { j as arrayEqual, h as getClassName } from '../index-56249831.js';
15
- import { T as TEXT_MESSAGE_BODY_CLASSNAME } from '../consts-991d3823.js';
16
- import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-3d956927.js';
17
- import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-c0cf9574.js';
18
- import { K } from '../index.module-41885c5b.js';
19
- import '../stringSet-47601d79.js';
20
- import '../index-b9b184a4.js';
13
+ import { j as arrayEqual, h as getClassName } from '../index-e9757459.js';
14
+ import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-be306c61.js';
15
+ import { K } from '../index.module-476c67cc.js';
16
+ import 'dompurify';
17
+ import '../consts-d9925dd6.js';
18
+ import '../consts-52c058a5.js';
19
+ import '../consts-dbf4e2a7.js';
20
+ import '../stringSet-f13a0a37.js';
21
+ import '../index-c17b453a.js';
21
22
  import '../withSendbird.js';
22
23
  import '../utils/message/getOutgoingMessageState.js';
23
24
 
24
- // cretes a sanitized string from a mention user label
25
- function renderToString(_ref) {
26
- let {
27
- userId,
28
- nickname
29
- } = _ref;
30
- // donot change this template, it wont work
31
- const el = `<span data-userid="${userId}" data-sb-mention="true" class="${MENTION_USER_LABEL_CLASSNAME}">${nickname}</span>`;
32
- const purifier = DOMPurify(window);
33
- const sanitized_ = purifier.sanitize(el);
34
- const token = sanitized_.split(' ');
35
- const [spanTag, ...rest] = token;
36
- // we do this because DOMPurify removes the contenteditable attribute
37
- const sanitized = [spanTag, 'contenteditable="false"', ...rest].join(' ');
38
- return sanitized;
39
- }
40
-
41
- // https://davidwalsh.name/javascript-debounce-function
42
-
43
- // Sanitize that special characters of HTML tags cause XSS issue
44
- const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
45
-
46
- /**
47
- * NodeList cannot be used with Array methods
48
- * @param {childNodes} NodeList
49
- * @returns Array of child nodes
50
- */
51
- const nodeListToArray = childNodes => {
52
- try {
53
- return Array.from(childNodes);
54
- } catch (error) {
55
- return [];
56
- }
57
- };
58
-
59
- function inserTemplateToDOM(templateList) {
60
- const nodes = templateList.map(template => {
61
- const {
62
- text,
63
- userId
64
- } = template;
65
- if (userId) {
66
- return renderToString({
67
- userId,
68
- nickname: text
69
- });
70
- }
71
- return sanitizeString(text);
72
- }).join(' ')
73
- // add a space at the end of the mention, else cursor/caret wont work
74
- .concat(' ');
75
- document.execCommand('insertHTML', false, nodes);
76
- }
77
-
78
- const PASTE_NODE = 'sendbird-uikit__paste-node';
79
- const TEXT_MESSAGE_CLASS = 'sendbird-word';
80
- const MENTION_CLASS = 'sendbird-word__mention';
81
- const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';
82
- const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;
83
-
84
- function querySelectorIncludingSelf(master, selector) {
85
- const result = [master, ...Array.from(master.querySelectorAll(selector))].find(el => el.matches(selector));
86
- return result;
87
- }
88
-
89
- // Pasted dom node can be OG_MESSAGE or partial message or full message
90
- // full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes
91
- // partial message would not have TEXT_MESSAGE_BODY_CLASSNAME
92
- function getLeafNodes(master) {
93
- // og message
94
- const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);
95
- if (ogMessage) {
96
- return nodeListToArray(ogMessage.childNodes);
97
- }
98
- const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);
99
- if (textMessageBody) {
100
- return nodeListToArray(textMessageBody.childNodes);
101
- }
102
- return nodeListToArray(master.childNodes);
103
- }
104
- function createPasteNode() {
105
- const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);
106
- // remove existing paste node
107
- if (pasteNode) {
108
- pasteNode === null || pasteNode === void 0 ? void 0 : pasteNode.remove();
109
- }
110
-
111
- // create new paste node and return
112
- const node = document.createElement('div');
113
- node.id = PASTE_NODE;
114
- node.style.display = 'none';
115
- return node;
116
- }
117
- function hasMention(parent) {
118
- return parent !== null && parent !== void 0 && parent.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;
119
- }
120
- const extractTextFromNodes = nodes => {
121
- let text = '';
122
- nodes.forEach(node => {
123
- // to preserve space between words
124
- const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);
125
- if (textNodes.length > 0) {
126
- text += extractTextFromNodes(Array.from(textNodes)) + ' ';
127
- }
128
- text += node.innerText + ' ';
129
- });
130
- return text;
131
- };
132
- function domToMessageTemplate(nodeArray) {
133
- const templates = nodeArray === null || nodeArray === void 0 ? void 0 : nodeArray.reduce((accumulator, currentValue) => {
134
- // currentValue can be node(from messageBody or messageInput) or text
135
- let mentionNode;
136
- // this looks awkward, but it is a fallback to set default text
137
- let text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
138
-
139
- // if text node, set text
140
- if (currentValue instanceof Text) {
141
- mentionNode = false;
142
- text = currentValue.textContent;
143
- }
144
- if (currentValue instanceof HTMLElement) {
145
- mentionNode = currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT) ? currentValue : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);
146
- }
147
-
148
- // if mentionNode is not null, it is a mention
149
- if (mentionNode) {
150
- var _mentionNode$dataset;
151
- const text = currentValue === null || currentValue === void 0 ? void 0 : currentValue.innerText;
152
- const userId = (_mentionNode$dataset = mentionNode.dataset) === null || _mentionNode$dataset === void 0 ? void 0 : _mentionNode$dataset.userid;
153
- return [...accumulator, {
154
- text,
155
- userId
156
- }];
157
- }
158
- return [...accumulator, {
159
- text
160
- }];
161
- }, []);
162
- return templates;
163
- }
164
- function getUsersFromWords(templates, channel) {
165
- const userMap = {};
166
- const users = channel.members;
167
- templates.forEach(template => {
168
- if (template.userId) {
169
- const mentionedMember = users.find(user => user.userId === template.userId);
170
- // Object.values would return array-> [undefined] if the user is not in the channel
171
- if (mentionedMember) {
172
- userMap[template.userId] = mentionedMember;
173
- }
174
- }
175
- });
176
- return Object.values(userMap);
177
- }
178
-
179
- // conditions to test:
180
- // 1. paste simple text
181
- // 2. paste text with mention
182
- // 3. paste text with mention and text
183
- // 4. paste text with mention and text and paste again before and after
184
- // 5. copy message with mention(only one mention, no other text) and paste
185
- // 6. copy message with mention from input and paste(before and after)
186
- function usePaste(_ref) {
187
- let {
188
- ref,
189
- setIsInput,
190
- setHeight,
191
- channel,
192
- setMentionedUsers
193
- } = _ref;
194
- return useCallback(e => {
195
- e.preventDefault();
196
- const html = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text/html');
197
- // simple text, continue as normal
198
- if (!html) {
199
- const text = e === null || e === void 0 ? void 0 : e.clipboardData.getData('text');
200
- document.execCommand('insertHTML', false, sanitizeString(text));
201
- setIsInput(true);
202
- setHeight();
203
- return;
204
- }
205
-
206
- // has html, check if there are mentions, sanitize and insert
207
- const purifier = DOMPurify(window);
208
- const clean = purifier.sanitize(html);
209
- const pasteNode = createPasteNode();
210
- pasteNode.innerHTML = clean;
211
- // does not have mention, continue as normal
212
- if (!hasMention(pasteNode)) {
213
- // to preserve space between words
214
- const text = extractTextFromNodes(Array.from(pasteNode.children));
215
- document.execCommand('insertHTML', false, sanitizeString(text));
216
- pasteNode.remove();
217
- setIsInput(true);
218
- setHeight();
219
- return;
220
- }
221
-
222
- // has mention, collect leaf nodes and parse words
223
- const leafNodes = getLeafNodes(pasteNode);
224
- const words = domToMessageTemplate(leafNodes);
225
- const mentionedUsers = getUsersFromWords(words, channel);
226
-
227
- // side effects
228
- setMentionedUsers(mentionedUsers);
229
- inserTemplateToDOM(words);
230
- pasteNode.remove();
231
- setIsInput(true);
232
- setHeight();
233
- }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
234
- }
235
-
236
25
  /**
237
26
  * Write new utils here
238
27
  * Migrate old utils as needed, and delete utils.js
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n const textField = ref?.current;\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && textField?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","nodeListToArray","childNodes","Array","from","error","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","_mentionNode$dataset","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers","ChannelType","checkIfFileUploadEnabled","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","initialValue","useEffect","_textField$textConten","textField","_unused2","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","_unused3","useMentionedLabelDetection","_textField$textConten3","newMentionedUserIds","getElementsByClassName","_node$dataset","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","Div","params","isEditDisabled","editMessage","onPaste","getClassName","contentEditable","role","preventEvent","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","isRequired","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AASe,SAASA,cAAcA,CAAAC,IAAA,EAAqD;EAAA,IAApD;IAAEC,MAAM;AAAEC,IAAAA,QAAAA;AAA+B,GAAC,GAAAF,IAAA,CAAA;AAC/E;EACA,MAAMG,EAAE,GAAI,CAAqBF,mBAAAA,EAAAA,MAAO,mCAAkCG,4BAA6B,CAAA,EAAA,EAAIF,QAAS,CAAQ,OAAA,CAAA,CAAA;AAC5H,EAAA,MAAMG,QAAQ,GAAGC,SAAS,CAACC,MAAM,CAAC,CAAA;AAClC,EAAA,MAAMC,UAAU,GAAGH,QAAQ,CAACI,QAAQ,CAACN,EAAE,CAAC,CAAA;AACxC,EAAA,MAAMO,KAAK,GAAGF,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAAA;AACnC,EAAA,MAAM,CAACC,OAAO,EAAE,GAAGC,IAAI,CAAC,GAAGH,KAAK,CAAA;AAChC;AACA,EAAA,MAAMI,SAAS,GAAG,CAACF,OAAO,EAAE,yBAAyB,EAAE,GAAGC,IAAI,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC,CAAA;AACzE,EAAA,OAAOD,SAAS,CAAA;AAClB;;ACnBA;;AAsBA;AACO,MAAME,cAAc,GAAIC,GAAG,IAChCA,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAEC,OAAO,CAAC,sBAAsB,EAAGC,CAAC,IAAK,EAAE,CAACC,MAAM,CAAC,IAAI,EAAED,CAAC,CAACE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAClF,CAAA;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAIC,UAAU,IAAK;EAC7C,IAAI;AACF,IAAA,OAAOC,KAAK,CAACC,IAAI,CAACF,UAAU,CAAC,CAAA;GAC9B,CAAC,OAAOG,KAAK,EAAE;AACd,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAC;;AClCM,SAASC,kBAAkBA,CAACC,YAAoB,EAAQ;AAC7D,EAAA,MAAMC,KAAK,GAAGD,YAAY,CAACE,GAAG,CAAEC,QAAQ,IAAK;IAC3C,MAAM;MAAEC,IAAI;AAAE/B,MAAAA,MAAAA;AAAO,KAAC,GAAG8B,QAAQ,CAAA;AACjC,IAAA,IAAI9B,MAAM,EAAE;AACV,MAAA,OAAOgC,cAA0B,CAAC;QAAEhC,MAAM;AAAEC,QAAAA,QAAQ,EAAE8B,IAAAA;AAAK,OAAC,CAAC,CAAA;AAC/D,KAAA;IACA,OAAOhB,cAAc,CAACgB,IAAI,CAAC,CAAA;AAC7B,GAAC,CAAC,CACCjB,IAAI,CAAC,GAAG,CAAA;AACX;GACGK,MAAM,CAAC,GAAG,CAAC,CAAA;EACdc,QAAQ,CAACC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAEN,KAAK,CAAC,CAAA;AAClD;;AChBO,MAAMO,UAAU,GAAG,4BAA4B,CAAA;AAC/C,MAAMC,kBAAkB,GAAG,eAAe,CAAA;AAC1C,MAAMC,aAAa,GAAG,wBAAwB,CAAA;AAC9C,MAAMC,sBAAsB,GAAG,6BAA6B,CAAA;AAC5D,MAAMC,4BAA4B,GAAI,IAAGF,aAAc,CAAA,GAAA,EAAKC,sBAAuB,CAAC,CAAA;;ACWpF,SAASE,0BAA0BA,CACxCC,MAAmB,EACnBC,QAAgB,EACI;AACpB,EAAA,MAAMC,MAAM,GAAG,CACbF,MAAM,EACN,GAAGlB,KAAK,CAACC,IAAI,CAACiB,MAAM,CAACG,gBAAgB,CAACF,QAAQ,CAAC,CAAC,CACjD,CAACG,IAAI,CAAE3C,EAAE,IAAKA,EAAE,CAAC4C,OAAO,CAACJ,QAAQ,CAAC,CAAuB,CAAA;AAC1D,EAAA,OAAOC,MAAM,CAAA;AACf,CAAA;;AAEA;AACA;AACA;AACO,SAASI,YAAYA,CAACN,MAAmB,EAAe;AAC7D;EACA,MAAMO,SAAS,GAAGR,0BAA0B,CAACC,MAAM,EAAG,CAAA,CAAA,EAAGQ,yBAA0B,CAAA,CAAC,CAAC,CAAA;AACrF,EAAA,IAAID,SAAS,EAAE;AACb,IAAA,OAAO3B,eAAe,CAAC2B,SAAS,CAAC1B,UAAU,CAAC,CAAA;AAC9C,GAAA;EAEA,MAAM4B,eAAe,GAAGV,0BAA0B,CAACC,MAAM,EAAG,CAAA,CAAA,EAAGU,2BAA4B,CAAA,CAAC,CAAC,CAAA;AAC7F,EAAA,IAAID,eAAe,EAAE;AACnB,IAAA,OAAO7B,eAAe,CAAC6B,eAAe,CAAC5B,UAAU,CAAC,CAAA;AACpD,GAAA;AAEA,EAAA,OAAOD,eAAe,CAACoB,MAAM,CAACnB,UAAU,CAAC,CAAA;AAC3C,CAAA;AAEO,SAAS8B,eAAeA,GAA0B;EACvD,MAAMC,SAAS,GAAGpB,QAAQ,CAACqB,IAAI,CAACC,aAAa,CAAE,CAAA,CAAA,EAAGpB,UAAW,CAAA,CAAC,CAAC,CAAA;AAC/D;AACA,EAAA,IAAIkB,SAAS,EAAE;AACbA,IAAAA,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEG,MAAM,EAAE,CAAA;AACrB,GAAA;;AAEA;AACA,EAAA,MAAMC,IAAI,GAAGxB,QAAQ,CAACyB,aAAa,CAAC,KAAK,CAAC,CAAA;EAC1CD,IAAI,CAACE,EAAE,GAAGxB,UAAU,CAAA;AACpBsB,EAAAA,IAAI,CAACG,KAAK,CAACC,OAAO,GAAG,MAAM,CAAA;AAC3B,EAAA,OAAOJ,IAAI,CAAA;AACb,CAAA;AAEO,SAASK,UAAUA,CAACC,MAAsB,EAAW;AAC1D,EAAA,OAAOA,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,IAANA,MAAM,CAAER,aAAa,CAAChB,4BAA4B,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAC3E,CAAA;AAEO,MAAMyB,oBAAoB,GAAIpC,KAAwB,IAAa;EACxE,IAAIG,IAAI,GAAG,EAAE,CAAA;AACbH,EAAAA,KAAK,CAACqC,OAAO,CAAER,IAAI,IAAK;AACtB;IACA,MAAMS,SAAS,GAAGT,IAAI,CAACb,gBAAgB,CAAE,CAAA,CAAA,EAAGR,kBAAmB,CAAA,CAAC,CAAC,CAAA;AACjE,IAAA,IAAI8B,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;MACxBpC,IAAI,IAAMiC,oBAAoB,CAACzC,KAAK,CAACC,IAAI,CAAC0C,SAAS,CAAC,CAAsB,GAAI,GAAI,CAAA;AACpF,KAAA;AACAnC,IAAAA,IAAI,IAAK0B,IAAI,CAACW,SAAS,GAAG,GAAI,CAAA;AAChC,GAAC,CAAC,CAAA;AACF,EAAA,OAAOrC,IAAI,CAAA;AACb,CAAC,CAAA;AAEM,SAASsC,oBAAoBA,CAACC,SAAsB,EAAU;AACnE,EAAA,MAAMC,SAAiB,GAAGD,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAEE,MAAM,CAAC,CAACC,WAAW,EAAEC,YAAY,KAAK;AACzE;AACA,IAAA,IAAIC,WAAW,CAAA;AACf;IACA,IAAI5C,IAAI,GAAI2C,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAsBN,SAAS,CAAA;;AAEvD;IACA,IAAIM,YAAY,YAAYE,IAAI,EAAE;AAChCD,MAAAA,WAAW,GAAG,KAAK,CAAA;MACnB5C,IAAI,GAAG2C,YAAY,CAACG,WAAW,CAAA;AACjC,KAAA;IAEA,IAAIH,YAAY,YAAYI,WAAW,EAAE;MACvCH,WAAW,GAAID,YAAY,CAACK,SAAS,CAACC,QAAQ,CAAC3C,aAAa,CAAC,IAAIqC,YAAY,CAACK,SAAS,CAACC,QAAQ,CAAC1C,sBAAsB,CAAC,GACpHoC,YAAY,GACZA,YAAY,CAACnB,aAAa,CAAChB,4BAA4B,CAAC,CAAA;AAC9D,KAAA;;AAEA;AACA,IAAA,IAAIoC,WAAW,EAAE;AAAA,MAAA,IAAAM,oBAAA,CAAA;MACf,MAAMlD,IAAI,GAAI2C,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAsBN,SAAS,CAAA;AACzD,MAAA,MAAMpE,MAAM,GAAA,CAAAiF,oBAAA,GAAGN,WAAW,CAACO,OAAO,MAAA,IAAA,IAAAD,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,oBAAA,CAAqBE,MAAM,CAAA;MAC1C,OAAO,CACL,GAAGV,WAAW,EACd;QACE1C,IAAI;AACJ/B,QAAAA,MAAAA;AACF,OAAC,CACF,CAAA;AACH,KAAA;IAEA,OAAO,CACL,GAAGyE,WAAW,EACd;AACE1C,MAAAA,IAAAA;AACF,KAAC,CACF,CAAA;GACF,EAAE,EAAE,CAAW,CAAA;AAChB,EAAA,OAAOwC,SAAS,CAAA;AAClB,CAAA;AAEO,SAASa,iBAAiBA,CAACb,SAAiB,EAAEc,OAAqB,EAAU;EAClF,MAAMC,OAAO,GAAG,EAAE,CAAA;AAClB,EAAA,MAAMC,KAAK,GAAGF,OAAO,CAACG,OAAO,CAAA;AAC7BjB,EAAAA,SAAS,CAACN,OAAO,CAAEnC,QAAQ,IAAK;IAC9B,IAAIA,QAAQ,CAAC9B,MAAM,EAAE;AACnB,MAAA,MAAMyF,eAAe,GAAGF,KAAK,CAAC1C,IAAI,CAAE6C,IAAI,IAAKA,IAAI,CAAC1F,MAAM,KAAK8B,QAAQ,CAAC9B,MAAM,CAAC,CAAA;AAC7E;AACA,MAAA,IAAIyF,eAAe,EAAE;AACnBH,QAAAA,OAAO,CAACxD,QAAQ,CAAC9B,MAAM,CAAC,GAAGyF,eAAe,CAAA;AAC5C,OAAA;AACF,KAAA;AACF,GAAC,CAAC,CAAA;AACF,EAAA,OAAOE,MAAM,CAACC,MAAM,CAACN,OAAO,CAAC,CAAA;AAC/B;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASO,QAAQA,CAAA9F,IAAA,EAMoC;EAAA,IANnC;IAC/B+F,GAAG;IACHC,UAAU;IACVC,SAAS;IACTX,OAAO;AACPY,IAAAA,iBAAAA;AACY,GAAC,GAAAlG,IAAA,CAAA;EACb,OAAOmG,WAAW,CAAEC,CAAC,IAAK;IACxBA,CAAC,CAACC,cAAc,EAAE,CAAA;AAClB,IAAA,MAAMC,IAAI,GAAGF,CAAC,KAAA,IAAA,IAADA,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEG,aAAa,CAACC,OAAO,CAAC,WAAW,CAAC,CAAA;AAClD;IACA,IAAI,CAACF,IAAI,EAAE;AACT,MAAA,MAAMtE,IAAI,GAAGoE,CAAC,KAAA,IAAA,IAADA,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEG,aAAa,CAACC,OAAO,CAAC,MAAM,CAAC,CAAA;MAC7CtE,QAAQ,CAACC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAEnB,cAAc,CAACgB,IAAI,CAAC,CAAC,CAAA;MAC/DgE,UAAU,CAAC,IAAI,CAAC,CAAA;AAChBC,MAAAA,SAAS,EAAE,CAAA;AACX,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,MAAM5F,QAAQ,GAAGC,SAAS,CAACC,MAAM,CAAC,CAAA;AAClC,IAAA,MAAMkG,KAAK,GAAGpG,QAAQ,CAACI,QAAQ,CAAC6F,IAAI,CAAC,CAAA;IACrC,MAAMhD,SAAS,GAAGD,eAAe,EAAE,CAAA;IACnCC,SAAS,CAACoD,SAAS,GAAGD,KAAK,CAAA;AAC3B;AACA,IAAA,IAAI,CAAC1C,UAAU,CAACT,SAAS,CAAC,EAAE;AAC1B;AACA,MAAA,MAAMtB,IAAI,GAAGiC,oBAAoB,CAACzC,KAAK,CAACC,IAAI,CAAC6B,SAAS,CAACqD,QAAQ,CAAC,CAAsB,CAAA;MACtFzE,QAAQ,CAACC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAEnB,cAAc,CAACgB,IAAI,CAAC,CAAC,CAAA;MAC/DsB,SAAS,CAACG,MAAM,EAAE,CAAA;MAClBuC,UAAU,CAAC,IAAI,CAAC,CAAA;AAChBC,MAAAA,SAAS,EAAE,CAAA;AACX,MAAA,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,MAAMW,SAAS,GAAG5D,YAAY,CAACM,SAAS,CAAC,CAAA;AACzC,IAAA,MAAMuD,KAAK,GAAGvC,oBAAoB,CAACsC,SAAS,CAAC,CAAA;AAC7C,IAAA,MAAME,cAAc,GAAGzB,iBAAiB,CAACwB,KAAK,EAAEvB,OAAO,CAAC,CAAA;;AAExD;IACAY,iBAAiB,CAACY,cAAc,CAAC,CAAA;IACjCnF,kBAAkB,CAACkF,KAAK,CAAC,CAAA;IACzBvD,SAAS,CAACG,MAAM,EAAE,CAAA;IAClBuC,UAAU,CAAC,IAAI,CAAC,CAAA;AAChBC,IAAAA,SAAS,EAAE,CAAA;AACb,GAAC,EAAE,CAACF,GAAG,EAAEC,UAAU,EAAEC,SAAS,EAAEX,OAAO,EAAEY,iBAAiB,CAAC,CAAC,CAAA;AAC9D;;ACrEA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AAJA,IAKKa,WAAW,0BAAXA,WAAW,EAAA;EAAXA,WAAW,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;EAAXA,WAAW,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAXA,WAAW,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAXA,WAAW,CAAA;AAAA,CAAA,CAAXA,WAAW,IAAA,EAAA,CAAA,CAAA;AAKhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,GAAGhH,IAAA,IAGlC;EAAA,IAHmC;IAAEsF,OAAO;AAAE2B,IAAAA,MAAAA;AAGpD,GAAC,GAAAjH,IAAA,CAAA;AACC,EAAA,MAAMkH,SAAS,GAAGC,CAAK,CAAC7B,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE8B,WAAW,CAAC,CAC1CC,IAAI,CAACN,WAAW,CAACO,KAAK,EAAE,MAAA;AAAA,IAAA,IAAAC,oBAAA,CAAA;AAAA,IAAA,OAAMN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAM,oBAAA,GAANN,MAAM,CAAEO,YAAY,MAAAD,IAAAA,IAAAA,oBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAsBE,cAAc,CAAA;AAAA,GAAA,CAAC,CACnEJ,IAAI,CAACN,WAAW,CAACW,IAAI,EAAE,MAAA;AAAA,IAAA,IAAAC,mBAAA,CAAA;AAAA,IAAA,OAAMV,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAU,mBAAA,GAANV,MAAM,CAAEW,WAAW,MAAAD,IAAAA,IAAAA,mBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAqBF,cAAc,CAAA;AAAA,GAAA,CAAC,CACjEI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;AAExB,EAAA,OAAOX,SAAS,CAAA;AAClB,CAAC;;ACTD,MAAMY,aAAa,GAAG,mCAAmC,CAAA;AACzD,MAAMC,WAAW,GAAG,EAAE,CAAA;AACtB,MAAMC,IAAI,GAAGA,MAAM,EAAG,CAAA;AACtB,MAAMC,gBAAgB,GAAIC,QAAQ,IAAMC,KAAK,IAAK;AAChD,EAAA,IAAIA,KAAK,CAACC,MAAM,CAACC,KAAK,IAAIF,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC/CH,QAAQ,CAACC,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,GAAA;AACA;AACAF,EAAAA,KAAK,CAACC,MAAM,CAACE,KAAK,GAAG,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAMC,YAAY,GAAGA,CAACC,OAAO,EAAEC,QAAQ,KAAK;AAC1C,EAAA,MAAMC,KAAK,GAAGxG,QAAQ,CAACyG,WAAW,EAAE,CAAA;AACpC,EAAA,MAAMC,GAAG,GAAGrI,MAAM,CAACsI,YAAY,EAAE,CAAA;EACjCH,KAAK,CAACI,QAAQ,CAACN,OAAO,CAACjH,UAAU,CAAC,CAAC,CAAC,EAAEkH,QAAQ,CAAC,CAAA;AAC/CC,EAAAA,KAAK,CAACK,QAAQ,CAAC,IAAI,CAAC,CAAA;EACpBH,GAAG,CAACI,eAAe,EAAE,CAAA;AACrBJ,EAAAA,GAAG,CAACK,QAAQ,CAACP,KAAK,CAAC,CAAA;EACnBF,OAAO,CAACU,KAAK,EAAE,CAAA;AACjB,CAAC,CAAA;AAED,MAAMC,UAAU,GAAIpD,GAAG,IAAK;EAC1B,IAAI;AACF;AACAA,IAAAA,GAAG,CAACqD,OAAO,CAAC1C,SAAS,GAAG,EAAE,CAAA;GAC3B,CAAC,OAAA2C,OAAA,EAAM;AACN;AAAA,GAAA;AAEJ,CAAC,CAAA;AAED,MAAMC,uBAAuB,GAAG;AAC9BC,EAAAA,YAAY,EAAE,EAAE;AAChBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,gBAAgB,EAAE,IAAI;AACtBC,EAAAA,YAAY,EAAE,IAAI;AAClBC,EAAAA,cAAc,EAAE,IAAA;AAClB,CAAC,CAAA;AAEKC,MAAAA,YAAY,gBAAGC,cAAK,CAACC,UAAU,CAAC,CAACC,KAAK,EAAEhE,GAAG,KAAK;AAAA,EAAA,IAAAiE,YAAA,EAAAC,qBAAA,EAAAC,oBAAA,CAAA;EACpD,MAAM;IACJC,SAAS;IACTC,cAAc;IACdC,MAAM;IACNC,gBAAgB;IAChBC,qBAAqB;IACrBC,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,aAAa;IACbC,eAAe;IACfC,YAAY;IACZC,aAAa;IACbC,UAAU;IACV3F,OAAO;IACP4F,mBAAmB;IACnBC,eAAe;IACfC,qBAAqB;IACrBC,yBAAyB;IACzBC,uBAAuB;IACvBC,OAAO;IACPC,SAAS;IACTC,oBAAoB;IACpBC,sBAAsB;IACtBC,qBAAqB;AACrBzF,IAAAA,iBAAAA;AACF,GAAC,GAAG6D,KAAK,CAAA;AACT,EAAA,MAAM6B,WAAW,GAAGxB,cAAc,IAAItC,aAAa,CAAA;EACnD,MAAM;AAAE+D,IAAAA,SAAAA;GAAW,GAAGC,eAAe,EAAE,CAAA;EACvC,MAAM;AAAE7E,IAAAA,MAAAA;GAAQ,GAAG8E,uBAAuB,EAAE,CAAA;EAE5C,MAAMC,mBAAmB,GAAGhF,wBAAwB,CAAC;IACnD1B,OAAO;AACP2B,IAAAA,MAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMgF,YAAY,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;EACjC,MAAM,CAACC,OAAO,EAAEnG,UAAU,CAAC,GAAGoG,QAAQ,CAAC,KAAK,CAAC,CAAA;EAC7C,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGF,QAAQ,CAAC,EAAE,CAAC,CAAA;EAC5D,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGJ,QAAQ,CAAAK,cAAA,CAAMnD,EAAAA,EAAAA,uBAAuB,CAAG,CAAA,CAAA;AACxF,EAAA,MAAMrD,SAAS,GAAGyG,OAAO,CAAC,MACxB,MAAM;IACJ,IAAI;MACF,MAAMC,IAAI,GAAG5G,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;MACzB,MAAMwD,UAAU,GAAGrM,MAAM,CAAC2B,QAAQ,CAACqB,IAAI,CAACsJ,YAAY,GAAG,GAAG,CAAA;AAC1D,MAAA,IAAIF,IAAI,IAAIA,IAAI,CAACG,YAAY,IAAI/E,WAAW,EAAE;AAC5C,QAAA,IAAI6E,UAAU,GAAGD,IAAI,CAACG,YAAY,EAAE;AAClCH,UAAAA,IAAI,CAAC9I,KAAK,CAACkJ,MAAM,GAAG,MAAM,CAAA;AAC1BJ,UAAAA,IAAI,CAAC9I,KAAK,CAACkJ,MAAM,GAAI,CAAA,EAAEH,UAAW,CAAG,EAAA,CAAA,CAAA;AACvC,SAAC,MAAM;AACLD,UAAAA,IAAI,CAAC9I,KAAK,CAACkJ,MAAM,GAAG,MAAM,CAAA;UAC1BJ,IAAI,CAAC9I,KAAK,CAACkJ,MAAM,GAAI,CAAEJ,EAAAA,IAAI,CAACG,YAAa,CAAG,EAAA,CAAA,CAAA;AAC9C,SAAA;AACF,OAAC,MAAM;AACLH,QAAAA,IAAI,CAAC9I,KAAK,CAACkJ,MAAM,GAAG,EAAE,CAAA;AACxB,OAAA;KACD,CAAC,OAAOrL,KAAK,EAAE;AACd;AAAA,KAAA;GAGL,EAAE,EAAE,CAAC,CAAA;;AAEN;AACA;AACA;EACA,MAAMsL,YAAY,GAAGjD,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEzB,KAAK,CAAA;AACjC2E,EAAAA,SAAS,CAAC,MAAM;AAAA,IAAA,IAAAC,qBAAA,CAAA;IACd,MAAMC,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;IAC9B,IAAI;MACF+D,SAAS,CAACzG,SAAS,GAAGsG,YAAY,CAAA;MAClCzE,YAAY,CAAC4E,SAAS,EAAEH,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAE5I,MAAM,CAAC,CAAA;KAC9C,CAAC,OAAAgJ,QAAA,EAAM;AACN;AAAA,KAAA;IAEFd,mBAAmB,CAAC,EAAE,CAAC,CAAA;IACvBtG,UAAU,CAAC,CAAAmH,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAD,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAATC,SAAS,CAAErI,WAAW,cAAAoI,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,qBAAA,CAAwBG,IAAI,EAAE,CAACjJ,MAAM,IAAG,CAAC,CAAC,CAAA;AACrD6B,IAAAA,SAAS,EAAE,CAAA;AACb,GAAC,EAAE,CAAC+G,YAAY,CAAC,CAAC,CAAA;;AAElB;AACAC,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI,CAAC5C,MAAM,EAAE;MACXrE,UAAU,CAAC,KAAK,CAAC,CAAA;MACjBmD,UAAU,CAACpD,GAAG,CAAC,CAAA;AACjB,KAAA;AACF,GAAC,EAAE,CAACkF,UAAU,CAAC,CAAC,CAAA;;AAEhB;AACAgC,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI5C,MAAM,IAAII,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAE6C,SAAS,EAAE;AAAA,MAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAChC;MACA,MAAMN,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;AAC9B,MAAA,IAAIkB,gBAAgB,IACf,CAAAG,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA8C,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAP9C,OAAO,CAAE3D,cAAc,MAAA,IAAA,IAAAyG,qBAAA,KAAvBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAyBnJ,MAAM,IAAG,CAAC,IACnC,CAAAqG,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA+C,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAP/C,OAAO,CAAEiD,wBAAwB,MAAA,IAAA,IAAAF,qBAAA,KAAjCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAmCpJ,MAAM,IAAG,CAAC,EAChD;AACA;QACA,MAAM;AAAE0C,UAAAA,cAAc,GAAG,EAAA;AAAG,SAAC,GAAG2D,OAAO,CAAA;QACvC,MAAMkD,MAAM,GAAGC,eAAe,CAAC;AAC7BC,UAAAA,WAAW,EAAEpD,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEiD,wBAAwB;AAC9C5G,UAAAA,cAAAA;AACF,SAAC,CAAC,CAAA;QACFqG,SAAS,CAACzG,SAAS,GAAGiH,MAAM,CAAC7L,GAAG,CAAEpB,KAAK,IAAK;AAC1C,UAAA,IAAIA,KAAK,CAACoN,IAAI,KAAKC,WAAW,CAACC,OAAO,EAAE;AACtC,YAAA,MAAMC,aAAa,GAAGnH,cAAc,CAAChE,IAAI,CAAE6C,IAAI,IAAKA,IAAI,CAAC1F,MAAM,KAAKS,KAAK,CAACT,MAAM,CAAC,CAAA;YACjF,MAAMC,QAAQ,GAAI,CAAEgO,EAAAA,mBAAoB,GAAE,CAAAD,aAAa,aAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAE/N,QAAQ,KAAIQ,KAAK,CAAC4H,KAAK,IAAIuD,SAAS,CAACsC,qBAAsB,CAAC,CAAA,CAAA;AACrH,YAAA,OAAOlM,cAA0B,CAAC;cAChChC,MAAM,EAAES,KAAK,CAACT,MAAM;AACpBC,cAAAA,QAAAA;AACF,aAAC,CAAC,CAAA;AACJ,WAAA;AACA,UAAA,OAAOc,cAAc,CAACN,KAAK,CAAC4H,KAAK,CAAC,CAAA;AACpC,SAAC,CAAC,CAACvH,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,OAAC,MAAM;AACL;QACA,IAAI;AACFoM,UAAAA,SAAS,CAACzG,SAAS,GAAG1F,cAAc,CAACyJ,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEA,OAAO,CAAC,CAAA;SACvD,CAAC,OAAA2D,QAAA,EAAM;AACN;AAAA,SAAA;QAEF9B,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACzB,OAAA;MACAtG,UAAU,CAAC,CAAAmH,SAAS,KAAA,IAAA,IAATA,SAAS,KAAAM,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAATN,SAAS,CAAErI,WAAW,cAAA2I,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAA,CAAwBJ,IAAI,EAAE,CAACjJ,MAAM,IAAG,CAAC,CAAC,CAAA;AACrD6B,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;AACF,GAAC,EAAE,CAACoE,MAAM,EAAEI,OAAO,CAAC,CAAC,CAAA;;AAErB;AACA,EAAA,MAAM4D,0BAA0B,GAAGlI,WAAW,CAAC,MAAM;AAAA,IAAA,IAAAmI,sBAAA,CAAA;IACnD,MAAMnB,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;AAC9B,IAAA,IAAIkB,gBAAgB,EAAE;AACpB,MAAA,MAAMiE,mBAAmB,GAAG,CAAC,GAAGpB,SAAS,CAACqB,sBAAsB,CAAC,6BAA6B,CAAC,CAAC,CAAC1M,GAAG,CAAE4B,IAAI,IAAA;AAAA,QAAA,IAAA+K,aAAA,CAAA;AAAA,QAAA,OAAK/K,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA+K,aAAA,GAAJ/K,IAAI,CAAEyB,OAAO,MAAAsJ,IAAAA,IAAAA,aAAA,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAerJ,MAAM,CAAA;OAAC,CAAA,CAAA;AACrI,MAAA,IAAI,CAACsJ,UAAU,CAACrC,gBAAgB,EAAEkC,mBAAmB,CAAC,IAAIA,mBAAmB,CAACnK,MAAM,KAAK,CAAC,EAAE;QAC1FiH,yBAAyB,CAACkD,mBAAmB,CAAC,CAAA;QAC9CjC,mBAAmB,CAACiC,mBAAmB,CAAC,CAAA;AAC1C,OAAA;AACF,KAAA;AACAvI,IAAAA,UAAU,CAAC,CAAAsI,CAAAA,sBAAA,GAAAnB,SAAS,CAACrI,WAAW,MAAAwJ,IAAAA,IAAAA,sBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuBjB,IAAI,EAAE,CAACjJ,MAAM,IAAG,CAAC,CAAC,CAAA;AACtD,GAAC,EAAE,CAACmI,gBAAgB,EAAEjC,gBAAgB,CAAC,CAAC,CAAA;;AAExC;AACA2C,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI3C,gBAAgB,IAAIY,mBAAmB,EAAE;MAC3C,MAAM;QACJ3B,YAAY;QACZC,cAAc;QACdC,gBAAgB;QAChBC,YAAY;AACZC,QAAAA,cAAAA;AACF,OAAC,GAAG4C,gBAAgB,CAAA;MACpB,IAAIhD,YAAY,IAAIC,cAAc,KAAK,IAAI,IAAIC,gBAAgB,KAAK,IAAI,EAAE;AAAA,QAAA,IAAAkF,SAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,qBAAA,CAAA;AACxE;QACA,MAAM3B,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;QAC9B,MAAM7H,UAAU,GAAGD,eAAe,CAAC6L,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAE5L,UAAU,CAAC,CAAA;AACzD,QAAA,MAAMwN,aAAa,GAAA,CAAAJ,SAAA,GAAGzM,QAAQ,MAAA,IAAA,IAAAyM,SAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,SAAA,CAAUK,cAAc,CAAA,CAAAJ,qBAAA,GAC5CrN,UAAU,CAACiI,cAAc,CAAC,MAAA,IAAA,IAAAoF,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1BA,qBAAA,CAA4B9J,WAAW,CAACmK,KAAK,CAAC,CAAC,EAAExF,gBAAgB,CAAC,CACnE,CAAA;AACD,QAAA,MAAMyF,YAAY,GAAA,CAAAL,UAAA,GAAG3M,QAAQ,MAAA2M,IAAAA,IAAAA,UAAA,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAUG,cAAc,CAC1C,CAAA,MAAA,EAAM,CAAAF,qBAAA,GAAEvN,UAAU,CAACmI,YAAY,CAAC,MAAAoF,IAAAA,IAAAA,qBAAA,uBAAxBA,qBAAA,CAA0BhK,WAAW,CAACmK,KAAK,CAACtF,cAAc,CAAE,EAAC,CACvE,CAAA;QACD,MAAMwF,YAAY,GAAGlN,cAA0B,CAAC;AAC9ChC,UAAAA,MAAM,EAAEiL,mBAAmB,KAAA,IAAA,IAAnBA,mBAAmB,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAmB,CAAEjL,MAAM;AACnCC,UAAAA,QAAQ,EAAG,CAAA,EAAEkP,sBAAuB,CAAA,EAAE,CAAAlE,mBAAmB,KAAA,IAAA,IAAnBA,mBAAmB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,mBAAmB,CAAEhL,QAAQ,KAAI2L,SAAS,CAACsC,qBAAsB,CAAA,CAAA;AACzG,SAAC,CAAC,CAAA;AACF,QAAA,MAAMkB,GAAG,GAAGnN,QAAQ,CAACyB,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC0L,GAAG,CAAC3I,SAAS,GAAGyI,YAAY,CAAA;AAC5B,QAAA,MAAMG,QAAQ,GAAG,CACf,GAAG/N,UAAU,CAAC0N,KAAK,CAAC,CAAC,EAAEzF,cAAc,CAAC,EACtCuF,aAAa,EACbM,GAAG,CAAC9N,UAAU,CAAC,CAAC,CAAC,EACjB2N,YAAY,EACZ,GAAG3N,UAAU,CAAC0N,KAAK,CAACvF,YAAY,GAAG,CAAC,CAAC,CACtC,CAAA;QACDyD,SAAS,CAACzG,SAAS,GAAG,EAAE,CAAA;AACxB4I,QAAAA,QAAQ,CAACpL,OAAO,CAAEqL,OAAO,IAAK;AAC5BpC,UAAAA,SAAS,CAACqC,WAAW,CAACD,OAAO,CAAC,CAAA;AAChC,SAAC,CAAC,CAAA;QACFpE,eAAe,CAACD,mBAAmB,CAAC,CAAA;AACpC,QAAA,IAAI3K,MAAM,CAACsI,YAAY,IAAI3G,QAAQ,CAAC2G,YAAY,EAAE;AAChD;UACA,MAAM4G,SAAS,GAAGlP,MAAM,CAACsI,YAAY,EAAE,IAAI3G,QAAQ,CAAC2G,YAAY,EAAE,CAAA;UAClE4G,SAAS,CAACzG,eAAe,EAAE,CAAA;AAC3B,UAAA,MAAMN,KAAK,GAAG,IAAIgH,KAAK,EAAE,CAAA;AACzBhH,UAAAA,KAAK,CAACiH,kBAAkB,CAACxC,SAAS,CAAC,CAAA;AACnCzE,UAAAA,KAAK,CAACI,QAAQ,CAACqE,SAAS,CAAC5L,UAAU,CAACiI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC3Dd,UAAAA,KAAK,CAACkH,MAAM,CAACzC,SAAS,CAAC5L,UAAU,CAACiI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACzDd,UAAAA,KAAK,CAACK,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrB0G,UAAAA,SAAS,CAACxG,QAAQ,CAACP,KAAK,CAAC,CAAA;UACzByE,SAAS,CAACjE,KAAK,EAAE,CAAA;AACnB,SAAA;AACAsD,QAAAA,mBAAmB,CAAAC,cAAA,CAAMnD,EAAAA,EAAAA,uBAAuB,CAAG,CAAA,CAAA;AACnDrD,QAAAA,SAAS,EAAE,CAAA;AACXoI,QAAAA,0BAA0B,EAAE,CAAA;AAC9B,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAACnD,mBAAmB,EAAEZ,gBAAgB,CAAC,CAAC,CAAA;;AAE3C;AACA,EAAA,MAAMuF,wBAAwB,GAAG1J,WAAW,CAAC,MAAM;AAAA,IAAA,IAAA2J,OAAA,EAAAC,oBAAA,EAAAC,UAAA,EAAAC,qBAAA,CAAA;AACjD,IAAA,MAAMR,SAAS,GAAG,CAAA,CAAAK,OAAA,GAAAvP,MAAM,cAAAuP,OAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,oBAAA,GAAND,OAAA,CAAQjH,YAAY,MAAA,IAAA,IAAAkH,oBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAAG,IAAA,CAAAJ,OAAA,CAAwB,MAAA,CAAAE,UAAA,GAAI9N,QAAQ,cAAA8N,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,qBAAA,GAARD,UAAA,CAAUnH,YAAY,MAAA,IAAA,IAAAoH,qBAAA,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAAC,IAAA,CAAAF,UAAA,CAA0B,CAAA,CAAA;IACxE,MAAM7C,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;AAC9B,IAAA,IAAIqG,SAAS,CAACU,UAAU,KAAKhD,SAAS,EAAE;MACtC/B,qBAAqB,CAAC,EAAE,CAAC,CAAA;AAC3B,KAAA;AACA,IAAA,IAAId,gBAAgB,IAAImF,SAAS,IAC5BA,SAAS,CAACU,UAAU,KAAKV,SAAS,CAACW,SAAS,IAC5CX,SAAS,CAACY,YAAY,KAAKZ,SAAS,CAACa,WAAW,EACnD;MACA,IAAIC,SAAS,GAAG,EAAE,CAAA;MAClB,IAAI/G,cAAc,GAAG,IAAI,CAAA;MACzB,IAAIC,gBAAgB,GAAG,IAAI,CAAA;AAC3B,MAAA,KAAK,IAAI+G,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGrD,SAAS,CAAC5L,UAAU,CAAC6C,MAAM,EAAEoM,KAAK,IAAI,CAAC,EAAE;AACnE,QAAA,MAAMC,WAAW,GAAGtD,SAAS,CAAC5L,UAAU,CAACiP,KAAK,CAAC,CAAA;AAC/C,QAAA,IAAIC,WAAW,CAACC,QAAQ,KAAKC,SAAS,CAACC,QAAQ,EAAE;AAC/C;AACA,UAAA,MAAM9L,WAAW,GAAI2L,WAAW,KAAKhB,SAAS,CAACU,UAAU,GACrD,CAAAM,WAAW,aAAXA,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAE3L,WAAW,CAACmK,KAAK,CAAC,CAAC,EAAEQ,SAAS,CAACY,YAAY,CAAC,KAAI,EAAE,GAC/D,CAAAI,WAAW,aAAXA,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAE3L,WAAW,KAAI,EAAE,CAAA;AAClC,UAAA,IAAIyL,SAAS,CAACnM,MAAM,GAAG,CAAC,EAAE;AACxBmM,YAAAA,SAAS,IAAIzL,WAAW,CAAA;AAC1B,WAAC,MAAM;AACL,YAAA,IAAI+L,aAAa,GAAG/L,WAAW,CAACgM,WAAW,CAAC1B,sBAAsB,CAAC,CAAA;AACnE,YAAA,KAAK,IAAIjO,CAAC,GAAG0P,aAAa,GAAG,CAAC,EAAE1P,CAAC,GAAG,CAAC,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;AAC9C,cAAA,IAAI2D,WAAW,CAAC3D,CAAC,CAAC,KAAKiO,sBAAsB,EAAE;AAC7CyB,gBAAAA,aAAa,GAAG1P,CAAC,CAAA;AACnB,eAAC,MAAM;AACL,gBAAA,MAAA;AACF,eAAA;AACF,aAAA;AACA,YAAA,IAAI0P,aAAa,GAAG,CAAC,CAAC,EAAE;AACtBN,cAAAA,SAAS,GAAGzL,WAAW,CAAA;AACvB0E,cAAAA,cAAc,GAAGgH,KAAK,CAAA;AACtB/G,cAAAA,gBAAgB,GAAGoH,aAAa,CAAA;AAClC,aAAA;AACF,WAAA;AACF,SAAC,MAAM;AACL;AACAN,UAAAA,SAAS,GAAG,EAAE,CAAA;AACd/G,UAAAA,cAAc,GAAG,IAAI,CAAA;AACrBC,UAAAA,gBAAgB,GAAG,IAAI,CAAA;AACzB,SAAA;AACA,QAAA,IAAIgH,WAAW,KAAKhB,SAAS,CAACU,UAAU,EAAE;AACxC;AACV;AACA;AACA;AACU,UAAA,MAAM5G,YAAY,GAAGgH,SAAS,GAAGA,SAAS,CAACtB,KAAK,CAACxF,gBAAgB,CAAC,GAAG,EAAE,CAAC;AACxE+C,UAAAA,mBAAmB,CAAC;YAClBjD,YAAY;YACZC,cAAc;YACdC,gBAAgB;AAChBC,YAAAA,YAAY,EAAE8G,KAAK;YACnB7G,cAAc,EAAE8F,SAAS,CAACY,YAAAA;AAC5B,WAAC,CAAC,CAAA;UACFjF,qBAAqB,CAAC7B,YAAY,CAAC,CAAA;AACnC,UAAA,OAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAC,EAAE,CAACe,gBAAgB,CAAC,CAAC,CAAA;EAEtB,MAAMyG,WAAW,GAAGA,MAAM;IACxB,MAAM5D,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;IAC9B,IAAI,CAACiB,MAAM,IAAI8C,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,IAAAA,SAAS,CAAErI,WAAW,EAAE;MACrC,IAAI+I,WAAW,GAAG,EAAE,CAAA;MACpB,IAAImD,eAAe,GAAG,EAAE,CAAA;AACxB7D,MAAAA,SAAS,CAAC5L,UAAU,CAAC2C,OAAO,CAAER,IAAI,IAAK;AACrC,QAAA,IAAIA,IAAI,CAACgN,QAAQ,KAAKC,SAAS,CAACM,WAAW,IAAIvN,IAAI,CAACwN,QAAQ,KAAKC,SAAS,CAACC,IAAI,EAAE;UAC/E,MAAM;YAAE/M,SAAS;AAAEc,YAAAA,OAAO,GAAG,EAAC;AAAE,WAAC,GAAGzB,IAAI,CAAA;UACxC,MAAM;AAAE0B,YAAAA,MAAM,GAAG,EAAA;AAAG,WAAC,GAAGD,OAAO,CAAA;AAC/B0I,UAAAA,WAAW,IAAIxJ,SAAS,CAAA;AACxB2M,UAAAA,eAAe,IAAK,CAAA,EAAE5B,sBAAuB,CAAA,CAAA,EAAGhK,MAAO,CAAE,CAAA,CAAA,CAAA;AAC3D,SAAC,MAAM,IAAI1B,IAAI,CAACgN,QAAQ,KAAKC,SAAS,CAACM,WAAW,IAAIvN,IAAI,CAACwN,QAAQ,KAAKC,SAAS,CAACE,EAAE,EAAE;AACpFxD,UAAAA,WAAW,IAAI,IAAI,CAAA;AACnBmD,UAAAA,eAAe,IAAI,IAAI,CAAA;SACxB,MAAM,IAAI,CAAAtN,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEgN,QAAQ,MAAKC,SAAS,CAACM,WAAW,IAAI,CAAAvN,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEwN,QAAQ,MAAKC,SAAS,CAACG,GAAG,EAAE;AACvF;UACA,MAAM;AAAExM,YAAAA,WAAW,GAAG,EAAA;AAAG,WAAC,GAAGpB,IAAI,CAAA;UACjCmK,WAAW,IAAK,CAAI/I,EAAAA,EAAAA,WAAY,CAAC,CAAA,CAAA;UACjCkM,eAAe,IAAK,CAAIlM,EAAAA,EAAAA,WAAY,CAAC,CAAA,CAAA;AACvC,SAAC,MAAM;AAAE;UACP,MAAM;AAAEA,YAAAA,WAAW,GAAG,EAAA;AAAG,WAAC,GAAGpB,IAAI,CAAA;AACjCmK,UAAAA,WAAW,IAAI/I,WAAW,CAAA;AAC1BkM,UAAAA,eAAe,IAAIlM,WAAW,CAAA;AAChC,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,MAAMyM,MAAM,GAAG;AAAE9G,QAAAA,OAAO,EAAEoD,WAAW;AAAEmD,QAAAA,eAAAA;OAAiB,CAAA;MACxDnG,aAAa,CAAC0G,MAAM,CAAC,CAAA;MACrBpI,UAAU,CAACpD,GAAG,CAAC,CAAA;AACf;MACAoH,SAAS,CAACjE,KAAK,EAAE,CAAA;MACjBlD,UAAU,CAAC,KAAK,CAAC,CAAA;AACjBC,MAAAA,SAAS,EAAE,CAAA;AACb,KAAA;GACD,CAAA;EACD,MAAMuL,cAAc,GAAG,EAAEzL,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,IAAA,CAAAiE,YAAA,GAAHjE,GAAG,CAAEqD,OAAO,MAAA,IAAA,IAAAY,YAAA,KAAA,KAAA,CAAA,IAAA,CAAAC,qBAAA,GAAZD,YAAA,CAAclF,WAAW,MAAA,IAAA,IAAAmF,qBAAA,KAAA,KAAA,CAAA,IAAzBA,qBAAA,CAA2BoD,IAAI,EAAE,CAAC,CAAA;EAC3D,MAAMoE,WAAW,GAAGA,MAAM;IACxB,MAAMtE,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;IAC9B,MAAMkE,SAAS,GAAG7C,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE6C,SAAS,CAAA;IACpC,IAAIjD,MAAM,IAAIiD,SAAS,EAAE;MACvB,IAAIO,WAAW,GAAG,EAAE,CAAA;MACpB,IAAImD,eAAe,GAAG,EAAE,CAAA;AACxB7D,MAAAA,SAAS,CAAC5L,UAAU,CAAC2C,OAAO,CAAER,IAAI,IAAK;AACrC,QAAA,IAAIA,IAAI,CAACgN,QAAQ,KAAKC,SAAS,CAACM,WAAW,IAAIvN,IAAI,CAACwN,QAAQ,KAAKC,SAAS,CAACC,IAAI,EAAE;UAC/E,MAAM;YAAE/M,SAAS;AAAEc,YAAAA,OAAO,GAAG,EAAC;AAAE,WAAC,GAAGzB,IAAI,CAAA;UACxC,MAAM;AAAE0B,YAAAA,MAAM,GAAG,EAAA;AAAG,WAAC,GAAGD,OAAO,CAAA;AAC/B0I,UAAAA,WAAW,IAAIxJ,SAAS,CAAA;AACxB2M,UAAAA,eAAe,IAAK,CAAA,EAAE5B,sBAAuB,CAAA,CAAA,EAAGhK,MAAO,CAAE,CAAA,CAAA,CAAA;AACzDyI,UAAAA,WAAW,IAAI,IAAI,CAAA;AACnBmD,UAAAA,eAAe,IAAI,IAAI,CAAA;AACzB,SAAC,MAAM;AAAE;UACP,MAAM;AAAElM,YAAAA,WAAW,GAAG,EAAA;AAAG,WAAC,GAAGpB,IAAI,CAAA;AACjCmK,UAAAA,WAAW,IAAI/I,WAAW,CAAA;AAC1BkM,UAAAA,eAAe,IAAIlM,WAAW,CAAA;AAChC,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,MAAMyM,MAAM,GAAG;QAAEjE,SAAS;AAAE7C,QAAAA,OAAO,EAAEoD,WAAW;AAAEmD,QAAAA,eAAAA;OAAiB,CAAA;MACnElG,eAAe,CAACyG,MAAM,CAAC,CAAA;MACvBpI,UAAU,CAACpD,GAAG,CAAC,CAAA;AACjB,KAAA;GACD,CAAA;EACD,MAAM2L,OAAO,GAAG5L,QAAQ,CAAC;IACvBC,GAAG;IACHuG,mBAAmB;IACnBpG,iBAAiB;IACjBZ,OAAO;IACPU,UAAU;AACVC,IAAAA,SAAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAMkH,SAAS,GAAGpH,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAA;EAC9B,oBACES,cAAA,CAAAlG,aAAA,CAAA,MAAA,EAAA;AACEwG,IAAAA,SAAS,EAAEwH,YAAY,CAAC,CACtBxH,SAAS,EACTE,MAAM,GAAG,8BAA8B,GAAG,EAAE,EAC5CG,QAAQ,GAAG,uCAAuC,GAAG,EAAE,CACxD,CAAA;GAEDX,eAAAA,cAAA,CAAAlG,aAAA,CAAA,KAAA,EAAA;IACEwG,SAAS,EAAEwH,YAAY,CAAC,CACtB,wBAAwB,EACxBnH,QAAQ,GAAG,kCAAkC,GAAG,EAAE,CACnD,CAAA;GAEDX,eAAAA,cAAA,CAAAlG,aAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,EAAE,EAAG,CAAA,EAAEgI,WAAY,CAAA,EAAEvB,MAAM,GAAGI,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAE6C,SAAS,GAAG,EAAG,CAAE,CAAA;IACxDnD,SAAS,EAAG,CAAmCyB,iCAAAA,EAAAA,WAAY,CAAE,CAAA;IAC7DgG,eAAe,EAAE,CAACpH,QAAS;AAC3BqH,IAAAA,IAAI,EAAC,SAAS;AACd,IAAA,YAAA,EAAW,YAAY;AACvBrH,IAAAA,QAAQ,EAAEA,QAAS;AACnBzE,IAAAA,GAAG,EAAEA,GAAI;AACT4E,IAAAA,SAAS,EAAEA,SAAU;IACrBa,SAAS,EAAGpF,CAAC,IAAK;AAChB,MAAA,MAAM0L,YAAY,GAAGtG,SAAS,CAACpF,CAAC,CAAC,CAAA;AACjC,MAAA,IAAI0L,YAAY,EAAE;QAChB1L,CAAC,CAACC,cAAc,EAAE,CAAA;AACpB,OAAC,MAAM;AAAA,QAAA,IAAA0L,sBAAA,EAAAC,cAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,CAAA;QACL,IAAI,CAACnM,CAAC,CAACoM,QAAQ,IAAIpM,CAAC,CAACqM,GAAG,KAAKC,gBAAgB,CAACC,KAAK,IAC9C,CAAAxF,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAAA4E,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAAT5E,SAAS,CAAErI,WAAW,MAAA,IAAA,IAAAiN,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAA,CAAwB1E,IAAI,EAAE,CAACjJ,MAAM,IAAG,CAAC,IACzC,CAAAgC,CAAC,KAAA,IAAA,IAADA,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA4L,cAAA,GAAD5L,CAAC,CAAEwM,WAAW,MAAAZ,IAAAA,IAAAA,cAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAgBa,WAAW,MAAK,IAAI,EACvC;UACAzM,CAAC,CAACC,cAAc,EAAE,CAAA;AAClB0K,UAAAA,WAAW,EAAE,CAAA;AACf,SAAA;QACA,IAAI3K,CAAC,CAACqM,GAAG,KAAKC,gBAAgB,CAACI,SAAS,IACnC,CAAA/M,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAAkM,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,aAAA,GAAHlM,GAAG,CAAEqD,OAAO,MAAA6I,IAAAA,IAAAA,aAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAZD,aAAA,CAAc1Q,UAAU,MAAA,IAAA,IAAA2Q,qBAAA,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA0B9N,MAAM,MAAK,CAAC,IACtC,EAAC2B,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,IAAA,CAAAoM,aAAA,GAAHpM,GAAG,CAAEqD,OAAO,MAAA,IAAA,IAAA+I,aAAA,KAAA,KAAA,CAAA,IAAA,CAAAC,qBAAA,GAAZD,aAAA,CAAc5Q,UAAU,cAAA6Q,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAAC,sBAAA,GAAxBD,qBAAA,CAA2B,CAAC,CAAC,MAAA,IAAA,IAAAC,sBAAA,KAA7BA,KAAAA,CAAAA,IAAAA,sBAAA,CAA+BvN,WAAW,CAAA,IAC3C,CAAAiB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAuM,qBAAA,GAAHvM,GAAG,CAAEqD,OAAO,CAAC7H,UAAU,MAAA,IAAA,IAAA+Q,qBAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAAvBD,qBAAA,CAA0B,CAAC,CAAC,MAAAC,IAAAA,IAAAA,sBAAA,uBAA5BA,sBAAA,CAA8B7B,QAAQ,MAAKC,SAAS,CAACM,WAAW,EACnE;UACAlL,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAHA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAG,CAAEqD,OAAO,CAAC2J,WAAW,CAAChN,GAAG,aAAHA,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAHA,GAAG,CAAEqD,OAAO,CAAC7H,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,SAAA;AACF,OAAA;KACA;IACFgK,OAAO,EAAGnF,CAAC,IAAK;AACd,MAAA,MAAM0L,YAAY,GAAGvG,OAAO,CAACnF,CAAC,CAAC,CAAA;AAC/B,MAAA,IAAI0L,YAAY,EAAE;QAChB1L,CAAC,CAACC,cAAc,EAAE,CAAA;AACpB,OAAC,MAAM;AACLwJ,QAAAA,wBAAwB,EAAE,CAAA;AAC5B,OAAA;KACA;IACFmD,OAAO,EAAEA,MAAM;AACbnD,MAAAA,wBAAwB,EAAE,CAAA;KAC1B;IACFoD,OAAO,EAAEA,MAAM;AAAA,MAAA,IAAAC,sBAAA,CAAA;AACbjN,MAAAA,SAAS,EAAE,CAAA;AACX+E,MAAAA,aAAa,EAAE,CAAA;MACfhF,UAAU,CAAC,CAAAmH,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA+F,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAAT/F,SAAS,CAAErI,WAAW,cAAAoO,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,sBAAA,CAAwB7F,IAAI,EAAE,CAACjJ,MAAM,IAAG,CAAC,CAAC,CAAA;AACrDiK,MAAAA,0BAA0B,EAAE,CAAA;KAC5B;AACFqD,IAAAA,OAAO,EAAEA,OAAAA;GACT,CAAA,EAED,CAAAvE,SAAS,KAATA,IAAAA,IAAAA,SAAS,wBAAAjD,oBAAA,GAATiD,SAAS,CAAE9I,SAAS,MAAA,IAAA,IAAA6F,oBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAsB9F,MAAM,MAAK,CAAC,iBACjCyF,cAAA,CAAAlG,aAAA,CAACwP,KAAK,EAAA;AACJhJ,IAAAA,SAAS,EAAC,qCAAqC;IAC/C2D,IAAI,EAAEsF,eAAe,CAACC,MAAO;IAC7BC,KAAK,EAAE9I,QAAQ,GAAG+I,WAAW,CAACC,cAAc,GAAGD,WAAW,CAACE,cAAAA;AAAe,GAAA,EAEzE/I,WAAW,IAAImB,SAAS,CAAC6H,2BAA2B,CAExD,EAGE,CAACrJ,MAAM,IAAI8B,OAAO,iBACjBtC,cAAA,CAAAlG,aAAA,CAACgQ,UAAU,EAAA;AACTxJ,IAAAA,SAAS,EAAC,8BAA8B;AACxC4C,IAAAA,MAAM,EAAC,MAAM;AACb6G,IAAAA,KAAK,EAAC,MAAM;IACZZ,OAAO,EAAEA,MAAMjC,WAAW,EAAA;AAAG,GAAA,EAG3B,CAAApF,qBAAqB,KAArBA,IAAAA,IAAAA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAqB,EAAI,kBACvB9B,cAAA,CAAAlG,aAAA,CAACkQ,IAAI,EAAA;IACH/F,IAAI,EAAEgG,SAAS,CAACC,IAAK;IACrBC,SAAS,EAAExJ,QAAQ,GAAGyJ,UAAU,CAACC,eAAe,GAAGD,UAAU,CAACE,OAAQ;AACtEP,IAAAA,KAAK,EAAC,MAAM;AACZ7G,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,CAEhB,CAGN,EAIA,CAAC1C,MAAM,IAAI,CAAC8B,OAAO,KACjB,CAAAV,oBAAoB,KAApBA,IAAAA,IAAAA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,EAAI;AAEvB;AAAA,OACIO,mBAAmB,iBACvBnC,cAAA,CAAAlG,aAAA,CAACgQ,UAAU,EAAA;AACTxJ,IAAAA,SAAS,EAAG,CAAiCI,+BAAAA,EAAAA,qBAAqB,GAAG,0BAA0B,GAAG,EAAG,CAAE,CAAA;AACvGwC,IAAAA,MAAM,EAAC,MAAM;AACb6G,IAAAA,KAAK,EAAC,MAAM;IACZZ,OAAO,EAAEA,MAAM;MAAA,IAAAoB,qBAAA,EAAAC,sBAAA,CAAA;AACb;MACApI,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAmI,qBAAA,GAAZnI,YAAY,CAAE7C,OAAO,MAAAgL,IAAAA,IAAAA,qBAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GAArBD,qBAAA,CAAuBE,KAAK,MAAA,IAAA,IAAAD,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,sBAAA,CAAAnE,IAAA,CAAAkE,qBAAA,CAAgC,CAAA;AAClC,KAAA;AAAE,GAAA,eAEFvK,cAAA,CAAAlG,aAAA,CAACkQ,IAAI,EAAA;IACH/F,IAAI,EAAEgG,SAAS,CAACS,MAAO;IACvBP,SAAS,EAAExJ,QAAQ,GAAGyJ,UAAU,CAACC,eAAe,GAAGD,UAAU,CAACO,eAAgB;AAC9EZ,IAAAA,KAAK,EAAC,MAAM;AACZ7G,IAAAA,MAAM,EAAC,MAAA;GACP,CAAA,eACFlD,cAAA,CAAAlG,aAAA,CAAA,OAAA,EAAA;AACEwG,IAAAA,SAAS,EAAC,sCAAsC;AAChD2D,IAAAA,IAAI,EAAC,MAAM;AACX/H,IAAAA,GAAG,EAAEkG,YAAa;IAClBwI,QAAQ,EAAExM,gBAAgB,CAAC2C,YAAY,CAAA;AAAE,GAAA,CACzC,CAGH,CACJ,EAGDL,qBAAqB,IAAI,CAACF,MAAM,IAAI,CAAC8B,OAAO,iBAC5CtC,cAAA,CAAAlG,aAAA,CAACgQ,UAAU,EAAA;AACTxJ,IAAAA,SAAS,EAAC,uCAAuC;AACjDyJ,IAAAA,KAAK,EAAC,MAAM;AACZ7G,IAAAA,MAAM,EAAC,MAAM;AACbiG,IAAAA,OAAO,EAAE1H,uBAAAA;AAAwB,GAAA,EAG/B,CAAAI,sBAAsB,KAAtBA,IAAAA,IAAAA,sBAAsB,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,EAAI,kBACxB7B,cAAA,CAAAlG,aAAA,CAACkQ,IAAI,EAAA;IACH/F,IAAI,EAAEgG,SAAS,CAACY,cAAe;IAC/BV,SAAS,EAAExJ,QAAQ,GAAGyJ,UAAU,CAACC,eAAe,GAAGD,UAAU,CAACO,eAAgB;AAC9EZ,IAAAA,KAAK,EAAC,MAAM;AACZ7G,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,CAEhB,CAGN,CACG,EAGJ1C,MAAM,iBACJR,cAAA,CAAAlG,aAAA,CAAA,KAAA,EAAA;AAAKwG,IAAAA,SAAS,EAAC,qCAAA;AAAqC,GAAA,eAClDN,cAAA,CAAAlG,aAAA,CAACgR,MAAM,EAAA;AACLxK,IAAAA,SAAS,EAAC,6CAA6C;IACvD2D,IAAI,EAAE8G,WAAW,CAACC,SAAU;IAC5BC,IAAI,EAAEC,WAAW,CAACC,KAAM;AACxBhC,IAAAA,OAAO,EAAEjI,YAAAA;GAERc,EAAAA,SAAS,CAACoJ,cAAc,CAClB,eACTpL,cAAA,CAAAlG,aAAA,CAACgR,MAAM,EAAA;AACLxK,IAAAA,SAAS,EAAC,2CAA2C;IACrD2D,IAAI,EAAE8G,WAAW,CAACT,OAAQ;IAC1BW,IAAI,EAAEC,WAAW,CAACC,KAAM;AACxBxK,IAAAA,QAAQ,EAAEgH,cAAe;IACzBwB,OAAO,EAAEA,MAAMvB,WAAW,EAAA;AAAG,GAAA,EAE5B5F,SAAS,CAACqJ,YAAY,CAChB,CAEZ,CAEE,CAAA;AAEX,CAAC,EAAC;AAEFtL,YAAY,CAACuL,SAAS,GAAG;AACvBhL,EAAAA,SAAS,EAAEiL,SAAS,CAACC,SAAS,CAAC,CAC7BD,SAAS,CAACE,MAAM,EAChBF,SAAS,CAACG,OAAO,CAACH,SAAS,CAACE,MAAM,CAAC,CACpC,CAAC;EACFlL,cAAc,EAAEgL,SAAS,CAACE,MAAM;AAChC5K,EAAAA,WAAW,EAAE0K,SAAS,CAACC,SAAS,CAAC,CAC/BD,SAAS,CAACE,MAAM,EAChBF,SAAS,CAACI,IAAI,CACf,CAAC;EACFlN,KAAK,EAAE8M,SAAS,CAACE,MAAM;EACvBjL,MAAM,EAAE+K,SAAS,CAACI,IAAI;EACtBlL,gBAAgB,EAAE8K,SAAS,CAACI,IAAI;EAChCjL,qBAAqB,EAAE6K,SAAS,CAACI,IAAI;EACrClK,uBAAuB,EAAE8J,SAAS,CAACK,IAAI;AACvChL,EAAAA,OAAO,EAAE2K,SAAS,CAACM,KAAK,CAAC;AACvBpI,IAAAA,SAAS,EAAE8H,SAAS,CAACC,SAAS,CAAC,CAACD,SAAS,CAACE,MAAM,EAAEF,SAAS,CAACO,MAAM,CAAC,CAAC;IACpElL,OAAO,EAAE2K,SAAS,CAACE,MAAM;IACzB5H,wBAAwB,EAAE0H,SAAS,CAACE,MAAM;IAC1CxO,cAAc,EAAEsO,SAAS,CAACG,OAAO,CAACH,SAAS,CAACM,KAAK,CAAC,EAAE,CAAC,CAAA;AACvD,GAAC,CAAC;EACFlL,QAAQ,EAAE4K,SAAS,CAACI,IAAI;EACxB7K,SAAS,EAAEyK,SAAS,CAACO,MAAM;EAC3B/K,YAAY,EAAEwK,SAAS,CAACK,IAAI;EAC5B5K,aAAa,EAAEuK,SAAS,CAACK,IAAI;EAC7B3K,eAAe,EAAEsK,SAAS,CAACK,IAAI;EAC/BzK,aAAa,EAAEoK,SAAS,CAACK,IAAI;EAC7B1K,YAAY,EAAEqK,SAAS,CAACK,IAAI;EAC5BxK,UAAU,EAAEmK,SAAS,CAACE,MAAM;AAC5BpK,EAAAA,mBAAmB,EAAEkK,SAAS,CAACM,KAAK,CAAC;IACnCzV,MAAM,EAAEmV,SAAS,CAACE,MAAM;IACxBpV,QAAQ,EAAEkV,SAAS,CAACE,MAAAA;AACtB,GAAC,CAAC;EACFpP,iBAAiB,EAAEkP,SAAS,CAACK,IAAI;EACjCtK,eAAe,EAAEiK,SAAS,CAACK,IAAI;EAC/BrK,qBAAqB,EAAEgK,SAAS,CAACK,IAAI;EACrCpK,yBAAyB,EAAE+J,SAAS,CAACK,IAAI;EACzClK,OAAO,EAAE6J,SAAS,CAACK,IAAI;EACvBjK,SAAS,EAAE4J,SAAS,CAACK,IAAI;EACzB/J,sBAAsB,EAAE0J,SAAS,CAACK,IAAI;EACtC9J,qBAAqB,EAAEyJ,SAAS,CAACK,IAAI;EACrChK,oBAAoB,EAAE2J,SAAS,CAACK,IAAI;AACpCnQ,EAAAA,OAAO,EAAE8P,SAAS,CAACM,KAAK,CAAC;IACvBtO,WAAW,EAAEgO,SAAS,CAACE,MAAAA;AACzB,GAAC,CAAC,CAACM,UAAAA;AACL,CAAC,CAAA;AAEDhM,YAAY,CAACiM,YAAY,GAAG;AAC1B1L,EAAAA,SAAS,EAAE,EAAE;AACbC,EAAAA,cAAc,EAAE,EAAE;AAClBa,EAAAA,UAAU,EAAE,EAAE;AACdJ,EAAAA,aAAa,EAAE7C,IAAI;AACnB8C,EAAAA,eAAe,EAAE9C,IAAI;AACrBM,EAAAA,KAAK,EAAE,IAAI;AACXmC,EAAAA,OAAO,EAAE,IAAI;AACbJ,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,gBAAgB,EAAE,KAAK;AACvBC,EAAAA,qBAAqB,EAAE,IAAI;AAC3Be,EAAAA,uBAAuB,EAAEtD,IAAI;AAC7BwC,EAAAA,QAAQ,EAAE,KAAK;AACfE,EAAAA,WAAW,EAAE,EAAE;AACfC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,YAAY,EAAE5C,IAAI;AAClB+C,EAAAA,YAAY,EAAE/C,IAAI;AAClBgD,EAAAA,aAAa,EAAEhD,IAAI;AACnBkD,EAAAA,mBAAmB,EAAE,IAAI;AACzBC,EAAAA,eAAe,EAAEnD,IAAI;AACrBoD,EAAAA,qBAAqB,EAAEpD,IAAI;AAC3BqD,EAAAA,yBAAyB,EAAErD,IAAI;AAC/BuD,EAAAA,OAAO,EAAEvD,IAAI;AACbwD,EAAAA,SAAS,EAAExD,IAAI;AACf9B,EAAAA,iBAAiB,EAAE8B,IAAI;AACvB0D,EAAAA,sBAAsB,EAAE1D,IAAI;AAC5ByD,EAAAA,oBAAoB,EAAEzD,IAAI;AAC1B2D,EAAAA,qBAAqB,EAAE3D,IAAAA;AACzB,CAAC;;;;"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MessageInput/messageInputUtils.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["/**\n * Write new utils here\n * Migrate old utils as needed, and delete utils.js\n */\n// import { ChannelType } from '@sendbird/chat';\nimport type { GroupChannel } from '@sendbird/chat/groupChannel';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { match } from 'ts-pattern';\n\nimport type { SendBirdStateConfig } from '../../lib/types';\n\n/**\n * FIXME:\n * Import this ChannelType enum from @sendbird/chat\n * once MessageInput.spec unit tests can be run \\wo jest <-> ESM issue\n */\nenum ChannelType {\n BASE = 'base',\n GROUP = 'group',\n OPEN = 'open',\n}\n/**\n * FIXME: Simplify this in UIKit@v4\n * If customer is using MessageInput inside our modules(ie: Channel, Thread, etc),\n * we should use the config from the module.\n * If customer is using MessageInput outside our modules(ie: custom UI),\n * we expect Channel to be undefined and customer gets control to show/hide file-upload.\n * @param {*} channel GroupChannel | OpenChannel\n * @param {*} config SendBirdStateConfig\n * @returns boolean\n */\nexport const checkIfFileUploadEnabled = ({ channel, config }: {\n channel?: GroupChannel | OpenChannel,\n config?: SendBirdStateConfig,\n}) => {\n const isEnabled = match(channel?.channelType)\n .with(ChannelType.GROUP, () => config?.groupChannel?.enableDocument)\n .with(ChannelType.OPEN, () => config?.openChannel?.enableDocument)\n .otherwise(() => true);\n\n return isEnabled;\n};\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { useLocalization } from '../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\n\nimport { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\nimport { checkIfFileUploadEnabled } from './messageInputUtils';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useLocalization();\n const { config } = useSendbirdStateContext();\n\n const isFileUploadEnabled = checkIfFileUploadEnabled({\n channel,\n config,\n });\n\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n // important: keeps the keyboard open -> must add test on refactor\n textField.focus();\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n const textField = ref?.current;\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && textField?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.()\n // UIKit Dashboard configuration should have lower priority than\n // renderFileUploadIcon which is set in code level\n || (isFileUploadEnabled && (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n )\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n channel: PropTypes.shape({\n channelType: PropTypes.string,\n }).isRequired,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n};\n\nexport default MessageInput;\n"],"names":["ChannelType","checkIfFileUploadEnabled","_ref","channel","config","isEnabled","match","channelType","with","GROUP","_config$groupChannel","groupChannel","enableDocument","OPEN","_config$openChannel","openChannel","otherwise","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","document","createRange","sel","window","getSelection","setStart","childNodes","collapse","removeAllRanges","addRange","focus","resetInput","ref","current","innerHTML","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","setMentionedUsers","textFieldId","stringSet","useLocalization","useSendbirdStateContext","isFileUploadEnabled","fileInputRef","useRef","isInput","setIsInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","setHeight","useMemo","elem","MAX_HEIGHT","body","offsetHeight","scrollHeight","style","height","error","initialValue","useEffect","_textField$textConten","textField","length","_unused2","textContent","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedUsers","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","map","token","type","TOKEN_TYPES","mention","mentionedUser","find","user","userId","nickname","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","renderMentionLabelToString","sanitizeString","join","_unused3","useMentionedLabelDetection","useCallback","_textField$textConten3","newMentionedUserIds","getElementsByClassName","node","_node$dataset","dataset","userid","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","nodeListToArray","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","createElement","newNodes","forEach","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","i","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","innerText","Br","Div","params","isEditDisabled","editMessage","onPaste","usePaste","getClassName","id","contentEditable","role","e","preventEvent","preventDefault","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","isRequired","defaultProps"],"mappings":"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"}
@@ -2,18 +2,18 @@ import React__default, { useContext, useRef } from 'react';
2
2
  import ContextMenu, { MenuItems, MenuItem } from './ContextMenu.js';
3
3
  import Icon, { IconTypes, IconColors } from './Icon.js';
4
4
  import IconButton from './IconButton.js';
5
- import { q as isUserMessage, C as isSentMessage, D as isFailedMessage, E as isPendingMessage, h as getClassName, F as copyToClipboard } from '../index-56249831.js';
6
- import { a as LocalizationContext } from '../LocalizationContext-5fe9b59d.js';
7
- import { R as Role } from '../types-02054e6e.js';
8
- import '../_rollupPluginBabelHelpers-90ff7fc4.js';
5
+ import { q as isUserMessage, C as isSentMessage, D as isFailedMessage, E as isPendingMessage, h as getClassName, F as copyToClipboard } from '../index-e9757459.js';
6
+ import { a as LocalizationContext } from '../LocalizationContext-8781208d.js';
7
+ import { R as Role } from '../types-b2ebbd50.js';
8
+ import '../_rollupPluginBabelHelpers-404d1a9c.js';
9
9
  import 'react-dom';
10
10
  import './SortByRow.js';
11
- import '../uuid-ec51ac4d.js';
12
- import '../index-13d9d766.js';
11
+ import '../uuid-1b498132.js';
12
+ import '../index-5a7039da.js';
13
13
  import 'prop-types';
14
- import '../stringSet-47601d79.js';
14
+ import '../stringSet-f13a0a37.js';
15
15
  import '../utils/message/getOutgoingMessageState.js';
16
- import '../index-b9b184a4.js';
16
+ import '../index-c17b453a.js';
17
17
 
18
18
  function MessageItemMenu(_ref) {
19
19
  var _channel$isGroupChann;