@clikvn/agent-widget-embedded 1.1.5-dev-07 → 1.1.5-dev-08

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 (316) hide show
  1. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.d.ts +2 -0
  2. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.d.ts.map +1 -0
  3. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.js +2 -0
  4. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.js.map +1 -0
  5. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.d.ts +11 -0
  6. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.d.ts.map +1 -0
  7. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.js +26 -0
  8. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.js.map +1 -0
  9. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.d.ts +3 -0
  10. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.d.ts.map +1 -0
  11. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.js +16 -0
  12. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.js.map +1 -0
  13. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.d.ts +9 -0
  14. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.d.ts.map +1 -0
  15. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.js +161 -0
  16. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.js.map +1 -0
  17. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.d.ts +8 -0
  18. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.d.ts.map +1 -0
  19. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.js +228 -0
  20. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.js.map +1 -0
  21. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.d.ts +10 -0
  22. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.d.ts.map +1 -0
  23. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.js +39 -0
  24. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.js.map +1 -0
  25. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.d.ts +10 -0
  26. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.d.ts.map +1 -0
  27. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.js +36 -0
  28. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.js.map +1 -0
  29. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.d.ts +7 -0
  30. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.d.ts.map +1 -0
  31. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.js +45 -0
  32. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.js.map +1 -0
  33. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.d.ts +198 -0
  34. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.d.ts.map +1 -0
  35. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.js +233 -0
  36. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.js.map +1 -0
  37. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.d.ts +38 -0
  38. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.d.ts.map +1 -0
  39. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.js +23 -0
  40. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.js.map +1 -0
  41. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.d.ts +7 -0
  42. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.d.ts.map +1 -0
  43. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.js +97 -0
  44. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.js.map +1 -0
  45. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.d.ts +16 -0
  46. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.d.ts.map +1 -0
  47. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.js +71 -0
  48. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.js.map +1 -0
  49. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.d.ts +28 -0
  50. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.d.ts.map +1 -0
  51. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.js +350 -0
  52. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.js.map +1 -0
  53. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.d.ts +28 -0
  54. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.d.ts.map +1 -0
  55. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.js +400 -0
  56. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.js.map +1 -0
  57. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.d.ts +8 -0
  58. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.d.ts.map +1 -0
  59. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.js +9 -0
  60. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.js.map +1 -0
  61. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.d.ts +6 -0
  62. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.d.ts.map +1 -0
  63. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.js +7 -0
  64. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.js.map +1 -0
  65. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.d.ts +7 -0
  66. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.d.ts.map +1 -0
  67. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.js +22 -0
  68. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.js.map +1 -0
  69. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.d.ts +12 -0
  70. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.d.ts.map +1 -0
  71. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.js +205 -0
  72. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.js.map +1 -0
  73. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.d.ts +16 -0
  74. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.d.ts.map +1 -0
  75. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.js +210 -0
  76. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.js.map +1 -0
  77. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.d.ts +22 -0
  78. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.d.ts.map +1 -0
  79. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.js +86 -0
  80. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.js.map +1 -0
  81. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.d.ts +9 -0
  82. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.d.ts.map +1 -0
  83. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.js +268 -0
  84. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.js.map +1 -0
  85. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.d.ts +22 -0
  86. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.d.ts.map +1 -0
  87. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.js +301 -0
  88. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.js.map +1 -0
  89. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.d.ts +10 -0
  90. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.d.ts.map +1 -0
  91. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.js +30 -0
  92. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.js.map +1 -0
  93. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.d.ts +12 -0
  94. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.d.ts.map +1 -0
  95. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.js +31 -0
  96. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.js.map +1 -0
  97. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.d.ts +7 -0
  98. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.d.ts.map +1 -0
  99. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.js +84 -0
  100. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.js.map +1 -0
  101. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.d.ts +16 -0
  102. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.d.ts.map +1 -0
  103. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.js +37 -0
  104. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.js.map +1 -0
  105. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.d.ts +42 -0
  106. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.d.ts.map +1 -0
  107. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.js +198 -0
  108. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.js.map +1 -0
  109. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.d.ts +12 -0
  110. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.d.ts.map +1 -0
  111. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.js +34 -0
  112. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.js.map +1 -0
  113. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.d.ts +28 -0
  114. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.d.ts.map +1 -0
  115. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.js +37 -0
  116. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.js.map +1 -0
  117. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.d.ts +7 -0
  118. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.d.ts.map +1 -0
  119. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.js +4 -0
  120. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.js.map +1 -0
  121. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.d.ts +6 -0
  122. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.d.ts.map +1 -0
  123. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.js +9 -0
  124. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.js.map +1 -0
  125. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.d.ts +10 -0
  126. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.d.ts.map +1 -0
  127. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.js +22 -0
  128. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.js.map +1 -0
  129. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.d.ts +12 -0
  130. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.d.ts.map +1 -0
  131. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.js +44 -0
  132. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.js.map +1 -0
  133. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.d.ts +14 -0
  134. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.d.ts.map +1 -0
  135. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.js +53 -0
  136. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.js.map +1 -0
  137. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.d.ts +22 -0
  138. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.d.ts.map +1 -0
  139. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.js +29 -0
  140. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.js.map +1 -0
  141. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.d.ts +97 -0
  142. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.d.ts.map +1 -0
  143. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.js +95 -0
  144. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.js.map +1 -0
  145. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.d.ts +2 -0
  146. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.d.ts.map +1 -0
  147. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.js +2 -0
  148. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.js.map +1 -0
  149. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.d.ts +48 -0
  150. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.d.ts.map +1 -0
  151. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.js +23 -0
  152. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.js.map +1 -0
  153. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.d.ts +11 -0
  154. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.d.ts.map +1 -0
  155. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.js +113 -0
  156. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.js.map +1 -0
  157. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.d.ts +13 -0
  158. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.d.ts.map +1 -0
  159. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.js +39 -0
  160. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.js.map +1 -0
  161. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.d.ts +12 -0
  162. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.d.ts.map +1 -0
  163. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.js +53 -0
  164. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.js.map +1 -0
  165. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.d.ts +29 -0
  166. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.d.ts.map +1 -0
  167. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.js +225 -0
  168. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.js.map +1 -0
  169. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.d.ts +20 -0
  170. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.d.ts.map +1 -0
  171. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.js +66 -0
  172. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.js.map +1 -0
  173. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.d.ts +79 -0
  174. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.d.ts.map +1 -0
  175. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.js +23 -0
  176. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.js.map +1 -0
  177. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.d.ts +7 -0
  178. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.d.ts.map +1 -0
  179. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.js +29 -0
  180. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.js.map +1 -0
  181. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.d.ts +2 -0
  182. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.d.ts.map +1 -0
  183. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.js +2 -0
  184. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.js.map +1 -0
  185. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.d.ts +20 -0
  186. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.d.ts.map +1 -0
  187. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.js +76 -0
  188. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.js.map +1 -0
  189. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.d.ts +2 -0
  190. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.d.ts.map +1 -0
  191. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.js +2 -0
  192. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.js.map +1 -0
  193. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.d.ts +85 -0
  194. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.d.ts.map +1 -0
  195. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.js +36 -0
  196. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.js.map +1 -0
  197. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.d.ts +8 -0
  198. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.d.ts.map +1 -0
  199. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.js +8 -0
  200. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.js.map +1 -0
  201. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.d.ts +3 -0
  202. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.d.ts.map +1 -0
  203. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.js +13 -0
  204. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.js.map +1 -0
  205. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.d.ts +53 -0
  206. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.d.ts.map +1 -0
  207. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.js +163 -0
  208. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.js.map +1 -0
  209. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.d.ts +14 -0
  210. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.d.ts.map +1 -0
  211. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.js +181 -0
  212. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.js.map +1 -0
  213. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.d.ts +11 -0
  214. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.d.ts.map +1 -0
  215. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.js +2 -0
  216. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.js.map +1 -0
  217. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.d.ts +10 -0
  218. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.d.ts.map +1 -0
  219. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.js +2 -0
  220. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.js.map +1 -0
  221. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.d.ts +27 -0
  222. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.d.ts.map +1 -0
  223. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.js +2 -0
  224. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.js.map +1 -0
  225. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.d.ts +160 -0
  226. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.d.ts.map +1 -0
  227. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.js +2 -0
  228. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.js.map +1 -0
  229. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.d.ts +48 -0
  230. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.d.ts.map +1 -0
  231. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.js +2 -0
  232. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.js.map +1 -0
  233. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.d.ts +14 -0
  234. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.d.ts.map +1 -0
  235. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.js +2 -0
  236. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.js.map +1 -0
  237. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.d.ts +1 -0
  238. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.d.ts.map +1 -0
  239. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.js +2 -0
  240. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.js.map +1 -0
  241. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.d.ts +20 -0
  242. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.d.ts.map +1 -0
  243. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.js +492 -0
  244. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.js.map +1 -0
  245. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.d.ts +21 -0
  246. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.d.ts.map +1 -0
  247. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.js +296 -0
  248. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.js.map +1 -0
  249. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.d.ts +7 -0
  250. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.d.ts.map +1 -0
  251. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.js +40 -0
  252. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.js.map +1 -0
  253. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.d.ts +3 -0
  254. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.d.ts.map +1 -0
  255. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.js +18 -0
  256. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.js.map +1 -0
  257. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.d.ts +3 -0
  258. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.d.ts.map +1 -0
  259. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.js +46 -0
  260. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.js.map +1 -0
  261. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.d.ts +4 -0
  262. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.d.ts.map +1 -0
  263. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.js +17 -0
  264. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.js.map +1 -0
  265. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.d.ts +37 -0
  266. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.d.ts.map +1 -0
  267. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.js +55 -0
  268. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.js.map +1 -0
  269. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.d.ts +16 -0
  270. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.d.ts.map +1 -0
  271. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.js +79 -0
  272. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.js.map +1 -0
  273. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.d.ts +5 -0
  274. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.d.ts.map +1 -0
  275. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.js +12 -0
  276. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.js.map +1 -0
  277. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.d.ts +105 -0
  278. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.d.ts.map +1 -0
  279. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.js +178 -0
  280. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.js.map +1 -0
  281. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.d.ts +8 -0
  282. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.d.ts.map +1 -0
  283. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.js +5 -0
  284. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.js.map +1 -0
  285. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.d.ts +18 -0
  286. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.d.ts.map +1 -0
  287. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.js +31 -0
  288. package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.js.map +1 -0
  289. package/dist/components/Chat/Icons.d.ts +4 -3
  290. package/dist/components/Chat/Icons.d.ts.map +1 -1
  291. package/dist/components/Chat/MultimodalInput copy.d.ts +28 -0
  292. package/dist/components/Chat/MultimodalInput copy.d.ts.map +1 -0
  293. package/dist/components/Chat/MultimodalInput.d.ts.map +1 -1
  294. package/dist/components/Chat/PreviewFileAttachment.d.ts +7 -0
  295. package/dist/components/Chat/PreviewFileAttachment.d.ts.map +1 -0
  296. package/dist/components/Chat/VoiceRecordingUI.d.ts +16 -0
  297. package/dist/components/Chat/VoiceRecordingUI.d.ts.map +1 -0
  298. package/dist/hooks/useAudioAnalyzer.d.ts.map +1 -1
  299. package/dist/index-old.html +108 -0
  300. package/dist/index.html +54 -37
  301. package/dist/web.js +1 -1
  302. package/dist/web.js.map +1 -0
  303. package/package.json +2 -1
  304. package/.claude/settings.local.json +0 -12
  305. package/.idea/clik-ai-chatbot-embedded.iml +0 -12
  306. package/.idea/codeStyles/Project.xml +0 -59
  307. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  308. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  309. package/.idea/jsLinters/eslint.xml +0 -6
  310. package/.idea/modules.xml +0 -8
  311. package/.idea/prettier.xml +0 -6
  312. package/.idea/vcs.xml +0 -6
  313. package/dist/utils/agentTraceUtils.test.d.ts +0 -2
  314. package/dist/utils/agentTraceUtils.test.d.ts.map +0 -1
  315. package/dist/utils/testGrouping.d.ts +0 -6
  316. package/dist/utils/testGrouping.d.ts.map +0 -1
@@ -0,0 +1,86 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState, useMemo } from 'react';
3
+ import { useChatData } from '../../hooks/useChatData';
4
+ import { getScenarios } from '../../services/vt360.service';
5
+ export const ScenariosList = ({ content, scenarioCodesStr, tourCode, languageCode = 'VN', apiUrl, playBtn = false, }) => {
6
+ const [data, setData] = useState(null);
7
+ const [showAll, setShowAll] = useState(false);
8
+ const [loading, setLoading] = useState(false);
9
+ const [error, setError] = useState(null);
10
+ const { listeners } = useChatData();
11
+ const scenarioCodes = useMemo(() => {
12
+ if (!scenarioCodesStr)
13
+ return [];
14
+ return scenarioCodesStr.split(',').map((code) => code.trim());
15
+ }, [scenarioCodesStr]);
16
+ useEffect(() => {
17
+ if (!content) {
18
+ return;
19
+ }
20
+ setData(content);
21
+ }, [content]);
22
+ useEffect(() => {
23
+ const fetchScenariosData = async () => {
24
+ if (!scenarioCodes || !scenarioCodes.length || !tourCode) {
25
+ return;
26
+ }
27
+ setLoading(true);
28
+ setError(null);
29
+ try {
30
+ const scenariosData = await getScenarios(scenarioCodes, tourCode, languageCode, apiUrl ? { api: apiUrl } : undefined);
31
+ setData(scenariosData);
32
+ }
33
+ catch (err) {
34
+ setError(err instanceof Error ? err.message : 'Failed to fetch scenarios');
35
+ console.error('Error fetching scenarios:', err);
36
+ }
37
+ finally {
38
+ setLoading(false);
39
+ }
40
+ };
41
+ fetchScenariosData();
42
+ }, [scenarioCodes, tourCode, languageCode, apiUrl]);
43
+ const handleOnClick = (url) => {
44
+ if (listeners?.['ON_LINK_CLICK']) {
45
+ listeners['ON_LINK_CLICK'](url);
46
+ }
47
+ else {
48
+ window?.open(url, '_blank');
49
+ }
50
+ };
51
+ const loadingComponent = useMemo(() => (_jsx("div", { className: "py-4", children: _jsx("div", { className: "bg-white rounded-lg border border-gray-200 p-4", children: _jsxs("div", { className: "animate-pulse", children: [_jsx("div", { className: "h-4 bg-gray-200 rounded w-3/4 mb-4" }), _jsx("div", { className: "h-20 bg-gray-200 rounded mb-4" }), _jsx("div", { className: "h-4 bg-gray-200 rounded w-1/2" })] }) }) })), []);
52
+ const errorComponent = useMemo(() => (_jsx("div", { className: "py-4", children: _jsx("div", { className: "bg-red-50 border border-red-200 rounded-lg p-4 text-red-700", children: error }) })), [error]);
53
+ const scenarioListComponent = useMemo(() => {
54
+ if (!data || !data.length)
55
+ return null;
56
+ return (_jsx("div", { className: "py-4", children: _jsx("div", { className: "bg-white rounded-lg overflow-hidden w-full", style: {
57
+ padding: '12px',
58
+ gap: '12px',
59
+ display: 'flex',
60
+ flexDirection: 'column',
61
+ justifyContent: 'center',
62
+ alignItems: 'flex-start',
63
+ }, children: _jsxs("div", { className: "flex flex-col w-full", style: {
64
+ gap: '12px',
65
+ }, children: [[...data]
66
+ .splice(0, showAll ? data.length : 5)
67
+ .map((scenario, index) => (_jsxs("div", { className: "flex flex-row items-start w-full", style: {
68
+ gap: '12px',
69
+ minHeight: '82px',
70
+ }, children: [_jsx("div", { className: "flex-shrink-0 w-[80px] h-[80px] rounded-[5px] bg-cover bg-center bg-gray-200", style: {
71
+ backgroundImage: scenario.image?.file?.url
72
+ ? `url(${scenario.image.file.url})`
73
+ : 'none',
74
+ } }), _jsxs("div", { className: "flex flex-col items-center justify-center font-vietnam-pro flex-1 min-w-0", style: {
75
+ minHeight: '82px',
76
+ }, children: [_jsx("div", { className: "flex flex-row items-center w-full h-5 gap-1", children: _jsx("h3", { className: "text-card-foreground truncate mb-[4px] font-medium text-[14px] leading-[14px] underline cursor-pointer hover:opacity-80 flex-1 min-w-0", onClick: () => handleOnClick(scenario.code), children: scenario.name }) }), playBtn && (_jsx("div", { className: "flex flex-row gap-[4px] min-h-[28px] justify-end w-full", children: _jsx("button", { className: "flex h-[28px] px-[12px] py-[4px] gap-[8px] font-medium leading-[20px] flex-row justify-center items-center hover:opacity-80 transition-opacity bg-secondary border rounded-md text-sm text-card-foreground", onClick: () => handleOnClick(scenario.code), children: "Play" }) })), scenario.description && (_jsx("p", { className: "font-normal text-[14px] leading-[20px] text-muted-foreground overflow-hidden w-full text-ellipsis", style: {
77
+ minHeight: '20px',
78
+ display: '-webkit-box',
79
+ WebkitLineClamp: 3,
80
+ WebkitBoxOrient: 'vertical',
81
+ wordBreak: 'break-word',
82
+ }, children: scenario.description }))] })] }, scenario.code || index))), !showAll && data?.length > 5 && (_jsx("button", { className: "flex h-[40px] px-[16px] py-[8px] gap-[10px] font-medium leading-[24px] flex-row justify-center items-center hover:opacity-80 transition-opacity bg-secondary border rounded-md text-sm text-card-foreground w-full", onClick: () => setShowAll(true), children: "View all scenarios" }))] }) }) }));
83
+ }, [data, showAll, handleOnClick]);
84
+ return (_jsxs(_Fragment, { children: [loading && loadingComponent, error && errorComponent, scenarioListComponent] }));
85
+ };
86
+ //# sourceMappingURL=ScenariosList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScenariosList.js","sourceRoot":"","sources":["../../../src/components/Chat/ScenariosList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FC, useEffect, useState, useMemo } from 'react';\nimport { useChatData } from '../../hooks/useChatData';\nimport { getScenarios } from '../../services/vt360.service';\n\ninterface ScenarioType {\n code: string;\n name: string;\n description?: string;\n image?: {\n file: {\n url: string;\n };\n };\n}\n\ninterface PropTypes {\n content?: ScenarioType[];\n scenarioCodesStr?: string;\n tourCode?: string;\n languageCode?: string;\n apiUrl?: string;\n playBtn?: boolean;\n}\n\nexport const ScenariosList: FC<PropTypes> = ({\n content,\n scenarioCodesStr,\n tourCode,\n languageCode = 'VN',\n apiUrl,\n playBtn = false,\n}) => {\n const [data, setData] = useState<ScenarioType[] | null>(null);\n const [showAll, setShowAll] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n const [error, setError] = useState<string | null>(null);\n const { listeners } = useChatData();\n\n const scenarioCodes = useMemo(() => {\n if (!scenarioCodesStr) return [];\n return scenarioCodesStr.split(',').map((code) => code.trim());\n }, [scenarioCodesStr]);\n\n useEffect(() => {\n if (!content) {\n return;\n }\n setData(content);\n }, [content]);\n\n useEffect(() => {\n const fetchScenariosData = async () => {\n if (!scenarioCodes || !scenarioCodes.length || !tourCode) {\n return;\n }\n\n setLoading(true);\n setError(null);\n\n try {\n const scenariosData = await getScenarios(\n scenarioCodes,\n tourCode,\n languageCode,\n apiUrl ? { api: apiUrl } : undefined\n );\n setData(scenariosData);\n } catch (err) {\n setError(\n err instanceof Error ? err.message : 'Failed to fetch scenarios'\n );\n console.error('Error fetching scenarios:', err);\n } finally {\n setLoading(false);\n }\n };\n\n fetchScenariosData();\n }, [scenarioCodes, tourCode, languageCode, apiUrl]);\n\n const handleOnClick = (url: string) => {\n if (listeners?.['ON_LINK_CLICK']) {\n listeners['ON_LINK_CLICK'](url);\n } else {\n window?.open(url, '_blank');\n }\n };\n\n const loadingComponent = useMemo(\n () => (\n <div className=\"py-4\">\n <div className=\"bg-white rounded-lg border border-gray-200 p-4\">\n <div className=\"animate-pulse\">\n <div className=\"h-4 bg-gray-200 rounded w-3/4 mb-4\"></div>\n <div className=\"h-20 bg-gray-200 rounded mb-4\"></div>\n <div className=\"h-4 bg-gray-200 rounded w-1/2\"></div>\n </div>\n </div>\n </div>\n ),\n []\n );\n\n const errorComponent = useMemo(\n () => (\n <div className=\"py-4\">\n <div className=\"bg-red-50 border border-red-200 rounded-lg p-4 text-red-700\">\n {error}\n </div>\n </div>\n ),\n [error]\n );\n\n const scenarioListComponent = useMemo(() => {\n if (!data || !data.length) return null;\n\n return (\n <div className=\"py-4\">\n <div\n className=\"bg-white rounded-lg overflow-hidden w-full\"\n style={{\n padding: '12px',\n gap: '12px',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'flex-start',\n }}\n >\n <div\n className=\"flex flex-col w-full\"\n style={{\n gap: '12px',\n }}\n >\n {[...data]\n .splice(0, showAll ? data.length : 5)\n .map((scenario, index) => (\n <div\n key={scenario.code || index}\n className=\"flex flex-row items-start w-full\"\n style={{\n gap: '12px',\n minHeight: '82px',\n }}\n >\n <div\n className=\"flex-shrink-0 w-[80px] h-[80px] rounded-[5px] bg-cover bg-center bg-gray-200\"\n style={{\n backgroundImage: scenario.image?.file?.url\n ? `url(${scenario.image.file.url})`\n : 'none',\n }}\n />\n <div\n className=\"flex flex-col items-center justify-center font-vietnam-pro flex-1 min-w-0\"\n style={{\n minHeight: '82px',\n }}\n >\n <div className=\"flex flex-row items-center w-full h-5 gap-1\">\n <h3\n className=\"text-card-foreground truncate mb-[4px] font-medium text-[14px] leading-[14px] underline cursor-pointer hover:opacity-80 flex-1 min-w-0\"\n onClick={() => handleOnClick(scenario.code)}\n >\n {scenario.name}\n </h3>\n </div>\n {playBtn && (\n <div className=\"flex flex-row gap-[4px] min-h-[28px] justify-end w-full\">\n <button\n className=\"flex h-[28px] px-[12px] py-[4px] gap-[8px] font-medium leading-[20px] flex-row justify-center items-center hover:opacity-80 transition-opacity bg-secondary border rounded-md text-sm text-card-foreground\"\n onClick={() => handleOnClick(scenario.code)}\n >\n Play\n </button>\n </div>\n )}\n {scenario.description && (\n <p\n className=\"font-normal text-[14px] leading-[20px] text-muted-foreground overflow-hidden w-full text-ellipsis\"\n style={{\n minHeight: '20px',\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n wordBreak: 'break-word',\n }}\n >\n {scenario.description}\n </p>\n )}\n </div>\n </div>\n ))}\n\n {!showAll && data?.length > 5 && (\n <button\n className=\"flex h-[40px] px-[16px] py-[8px] gap-[10px] font-medium leading-[24px] flex-row justify-center items-center hover:opacity-80 transition-opacity bg-secondary border rounded-md text-sm text-card-foreground w-full\"\n onClick={() => setShowAll(true)}\n >\n View all scenarios\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }, [data, showAll, handleOnClick]);\n\n return (\n <>\n {loading && loadingComponent}\n {error && errorComponent}\n {scenarioListComponent}\n </>\n );\n};\n"]}
@@ -0,0 +1,9 @@
1
+ import { ChatMessageType } from '../../../types/flowise.type';
2
+ declare const AudioPlayerSimplified: ({ message, chatId, autoplay, onClose, }: {
3
+ message: ChatMessageType;
4
+ chatId?: string;
5
+ autoplay?: boolean;
6
+ onClose: () => void;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export default AudioPlayerSimplified;
9
+ //# sourceMappingURL=AudioPlayerSimplified.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayerSimplified.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/AudioPlayerSimplified.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9D,QAAA,MAAM,qBAAqB,4CAKxB;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,4CA4TA,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,268 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { useAudioMessage } from '../../../hooks/useAudioMesseagePlayer';
4
+ import { useChatData } from '../../../hooks/useChatData';
5
+ import { useConfiguration } from '../../../hooks/useConfiguration';
6
+ import { createMessageAudio } from '../../../services/chat.service';
7
+ import { ClikPauseIcon, ClikXIcon, LoadingIcon, PlayIcon } from '../Icons';
8
+ import { Button } from '../ui/Button';
9
+ const AudioPlayerSimplified = ({ message, chatId, autoplay = false, onClose, }) => {
10
+ const { theme, apiHost } = useConfiguration();
11
+ const { disable, setDisabled, playingId, onPlay } = useAudioMessage();
12
+ const { listeners } = useChatData();
13
+ const audioRef = useRef(null);
14
+ const audioContextRef = useRef(null);
15
+ const sourceRef = useRef(null);
16
+ const currentPlaying = !!playingId && playingId === message.id;
17
+ const [src, setSrc] = useState(''); // null is meaning that audio was streamed
18
+ const [isPlaying, setIsPlaying] = useState(false);
19
+ const [fetching, setFetching] = useState(false);
20
+ const [progress, setProgress] = useState('00:00');
21
+ const [duration, setDuration] = useState('');
22
+ const language = theme?.language?.options
23
+ ?.find((option) => option.code === theme?.language?.code)
24
+ ?.name?.toLowerCase() || 'en';
25
+ const toggleAudio = () => {
26
+ if (!audioRef.current || !message.id) {
27
+ return;
28
+ }
29
+ // create audio if not existed
30
+ if (!src && chatId && message.id && message.content && !isPlaying) {
31
+ createAudio(chatId);
32
+ if (onPlay) {
33
+ onPlay(message.id);
34
+ }
35
+ return;
36
+ }
37
+ if (isPlaying) {
38
+ audioRef.current.pause();
39
+ sourceRef.current?.stop();
40
+ }
41
+ else {
42
+ audioRef.current.play();
43
+ }
44
+ };
45
+ const handleOnPlay = () => {
46
+ setIsPlaying(true);
47
+ if (onPlay && message.id)
48
+ onPlay(message.id);
49
+ if (listeners?.['ON_PLAY_AUDIO']) {
50
+ listeners['ON_PLAY_AUDIO']();
51
+ }
52
+ };
53
+ const handleOnPause = () => {
54
+ setIsPlaying(false);
55
+ if (onPlay && message.id)
56
+ onPlay(message.id, true);
57
+ if (listeners?.['ON_PAUSE_AUDIO']) {
58
+ listeners['ON_PAUSE_AUDIO']();
59
+ }
60
+ };
61
+ const handleOnEnded = () => {
62
+ setIsPlaying(false);
63
+ if (onPlay && message.id) {
64
+ onPlay(message.id, true);
65
+ }
66
+ if (listeners?.['ON_ENDED_AUDIO']) {
67
+ listeners['ON_ENDED_AUDIO']();
68
+ }
69
+ if (theme?.autoCloseAudioPlayer && onClose) {
70
+ onClose();
71
+ }
72
+ };
73
+ const createAudio = async (id) => {
74
+ setFetching(true);
75
+ if (setDisabled)
76
+ setDisabled(true);
77
+ try {
78
+ const stream = src !== null; // null is meaning that audio was streamed
79
+ const resp = await createMessageAudio({
80
+ id,
81
+ apiHost,
82
+ messageId: message.id,
83
+ content: message.content,
84
+ stream,
85
+ language,
86
+ });
87
+ if (audioRef.current) {
88
+ if (!stream) {
89
+ setSrc(resp);
90
+ audioRef.current.play();
91
+ }
92
+ else {
93
+ const response = resp;
94
+ const contentType = response.headers.get('content-type') || 'audio/mpeg';
95
+ if (window.MediaSource) {
96
+ // MediaSource does not support .ogg
97
+ if (contentType.includes('ogg')) {
98
+ setSrc(null); // null is meaning that audio was streamed
99
+ const reader = response.body.getReader();
100
+ if (!audioContextRef.current) {
101
+ audioContextRef.current = new AudioContext();
102
+ }
103
+ const audioChunks = [];
104
+ // eslint-disable-next-line no-constant-condition
105
+ while (true) {
106
+ const { done, value } = await reader.read();
107
+ if (done) {
108
+ break;
109
+ }
110
+ audioChunks.push(value);
111
+ }
112
+ // Create a blob and update the audio source.
113
+ const blob = new Blob(audioChunks, { type: contentType });
114
+ audioRef.current.src = URL.createObjectURL(blob);
115
+ if (audioRef.current.currentTime === 0) {
116
+ audioRef.current?.play();
117
+ }
118
+ }
119
+ else {
120
+ setSrc(null); // null is meaning that audio was streamed
121
+ const mediaSource = new MediaSource();
122
+ audioRef.current.src = URL.createObjectURL(mediaSource);
123
+ mediaSource.addEventListener('sourceopen', async () => {
124
+ const sourceBuffer = mediaSource.addSourceBuffer(contentType);
125
+ const reader = response.body.getReader();
126
+ async function processStream() {
127
+ // eslint-disable-next-line no-constant-condition
128
+ while (true) {
129
+ const { done, value } = await reader.read();
130
+ if (done) {
131
+ mediaSource.endOfStream();
132
+ break;
133
+ }
134
+ await new Promise((resolve) => {
135
+ if (!sourceBuffer.updating) {
136
+ resolve();
137
+ }
138
+ else {
139
+ sourceBuffer.addEventListener('updateend', () => resolve(), {
140
+ once: true,
141
+ });
142
+ }
143
+ });
144
+ try {
145
+ sourceBuffer.appendBuffer(value);
146
+ }
147
+ catch (error) {
148
+ console.error(error);
149
+ }
150
+ }
151
+ }
152
+ processStream().catch(console.error);
153
+ audioRef.current?.play();
154
+ });
155
+ }
156
+ }
157
+ else {
158
+ // for iphone
159
+ setSrc(null); // null is meaning that audio was streamed
160
+ const reader = response.body.getReader();
161
+ if (!audioContextRef.current) {
162
+ audioContextRef.current = new AudioContext();
163
+ }
164
+ const audioChunks = [];
165
+ // eslint-disable-next-line no-constant-condition
166
+ while (true) {
167
+ const { done, value } = await reader.read();
168
+ if (done) {
169
+ break;
170
+ }
171
+ audioChunks.push(value);
172
+ // Create a blob and update the audio source.
173
+ const blob = new Blob(audioChunks, { type: contentType });
174
+ audioRef.current.src = URL.createObjectURL(blob);
175
+ if (audioRef.current.currentTime === 0) {
176
+ audioRef.current?.play();
177
+ }
178
+ }
179
+ // end
180
+ }
181
+ }
182
+ }
183
+ }
184
+ catch (e) {
185
+ console.error(e);
186
+ }
187
+ finally {
188
+ setFetching(false);
189
+ if (setDisabled)
190
+ setDisabled(false);
191
+ }
192
+ };
193
+ const handleOnTimeUpdate = () => {
194
+ const s = audioRef.current.currentTime;
195
+ if (!s) {
196
+ setProgress('00:00');
197
+ return;
198
+ }
199
+ // >= 1 hour
200
+ if (s >= 3600) {
201
+ setProgress(new Date(s * 1000).toISOString().substring(11, 16));
202
+ return;
203
+ }
204
+ setProgress(new Date(s * 1000).toISOString().substring(14, 19));
205
+ };
206
+ const handleOnLoadedMetadata = () => {
207
+ const s = audioRef.current.duration;
208
+ if (!s) {
209
+ setDuration('');
210
+ return;
211
+ }
212
+ // >= 60 hour
213
+ if (s >= 216000) {
214
+ setDuration('59:99+');
215
+ return;
216
+ }
217
+ // >= 1 hour
218
+ if (s >= 3600) {
219
+ setDuration(new Date(s * 1000).toISOString().substring(11, 16));
220
+ return;
221
+ }
222
+ setDuration(new Date(s * 1000).toISOString().substring(14, 19));
223
+ };
224
+ // handle streaming response chat
225
+ useEffect(() => {
226
+ if (autoplay) {
227
+ if (onPlay && message.id)
228
+ onPlay(message.id);
229
+ const isStreamResponseDone = !!message.tts && !!message.ttsUrl;
230
+ setFetching(isStreamResponseDone);
231
+ if (!isStreamResponseDone) {
232
+ if (setDisabled)
233
+ setDisabled(true); // disable button play
234
+ }
235
+ else {
236
+ if (setDisabled)
237
+ setDisabled(false); // enable button play
238
+ toggleAudio();
239
+ }
240
+ }
241
+ }, [autoplay, message.ttsUrl]);
242
+ // handle init ttsUrl
243
+ useEffect(() => {
244
+ if (!src && message.ttsUrl && message.ttsUrl.startsWith('http')) {
245
+ setSrc(message.ttsUrl);
246
+ }
247
+ }, [message.ttsUrl, src]);
248
+ useEffect(() => {
249
+ if (!currentPlaying && isPlaying) {
250
+ if (audioRef.current) {
251
+ audioRef.current.pause();
252
+ audioRef.current.currentTime = 0;
253
+ }
254
+ sourceRef.current?.stop();
255
+ setIsPlaying(false);
256
+ }
257
+ }, [currentPlaying, isPlaying]);
258
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "w-full flex flex-row gap-[8px] items-center justify-between", children: [_jsxs(Button, { className: "rounded-full z-[2] p-0 w-[20px] h-[20px] m-0 text-[#18181B]", onClick: (event) => {
259
+ event.preventDefault();
260
+ toggleAudio();
261
+ }, variant: "outline", disabled: disable || fetching, children: [fetching && _jsx(LoadingIcon, {}), !fetching && (_jsx(_Fragment, { children: isPlaying ? _jsx(ClikPauseIcon, { size: 20 }) : _jsx(PlayIcon, { size: 20 }) }))] }), _jsx("div", { className: "h-[20px] flex items-center justify-start text-muted-foreground text-base", style: { width: 'calc(100% - 56px)' }, children: `${progress}${theme?.hideAudioMetadata || !duration ? '' : ` / ${duration}`}` }), _jsx(Button, { className: "rounded-full z-[2] p-0 w-[20px] h-[20px] text-[#18181B]", onClick: (event) => {
262
+ event.preventDefault();
263
+ audioRef.current?.pause();
264
+ onClose();
265
+ }, variant: "outline", children: _jsx(ClikXIcon, { size: 20 }) })] }), _jsx("audio", { ref: audioRef, className: "hidden", src: src || '', autoPlay: autoplay, onEnded: handleOnEnded, onPause: handleOnPause, onPlay: handleOnPlay, onTimeUpdate: handleOnTimeUpdate, onLoadedMetadata: handleOnLoadedMetadata })] }));
266
+ };
267
+ export default AudioPlayerSimplified;
268
+ //# sourceMappingURL=AudioPlayerSimplified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayerSimplified.js","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/AudioPlayerSimplified.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useAudioMessage } from '../../../hooks/useAudioMesseagePlayer';\nimport { useChatData } from '../../../hooks/useChatData';\nimport { useConfiguration } from '../../../hooks/useConfiguration';\nimport { createMessageAudio } from '../../../services/chat.service';\nimport { ChatMessageType } from '../../../types/flowise.type';\nimport { ClikPauseIcon, ClikXIcon, LoadingIcon, PlayIcon } from '../Icons';\nimport { Button } from '../ui/Button';\n\nconst AudioPlayerSimplified = ({\n message,\n chatId,\n autoplay = false,\n onClose,\n}: {\n message: ChatMessageType;\n chatId?: string;\n autoplay?: boolean;\n onClose: () => void;\n}) => {\n const { theme, apiHost } = useConfiguration();\n const { disable, setDisabled, playingId, onPlay } = useAudioMessage();\n const { listeners } = useChatData();\n\n const audioRef = useRef<HTMLAudioElement | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const sourceRef = useRef<AudioBufferSourceNode | null>(null);\n\n const currentPlaying = !!playingId && playingId === message.id;\n\n const [src, setSrc] = useState<string | null>(''); // null is meaning that audio was streamed\n const [isPlaying, setIsPlaying] = useState(false);\n const [fetching, setFetching] = useState(false);\n\n const [progress, setProgress] = useState('00:00');\n const [duration, setDuration] = useState('');\n\n const language =\n theme?.language?.options\n ?.find((option) => option.code === theme?.language?.code)\n ?.name?.toLowerCase() || 'en';\n\n const toggleAudio = () => {\n if (!audioRef.current || !message.id) {\n return;\n }\n // create audio if not existed\n if (!src && chatId && message.id && message.content && !isPlaying) {\n createAudio(chatId);\n if (onPlay) {\n onPlay(message.id);\n }\n return;\n }\n\n if (isPlaying) {\n audioRef.current.pause();\n sourceRef.current?.stop();\n } else {\n audioRef.current.play();\n }\n };\n\n const handleOnPlay = () => {\n setIsPlaying(true);\n if (onPlay && message.id) onPlay(message.id);\n if (listeners?.['ON_PLAY_AUDIO']) {\n listeners['ON_PLAY_AUDIO']();\n }\n };\n\n const handleOnPause = () => {\n setIsPlaying(false);\n if (onPlay && message.id) onPlay(message.id, true);\n if (listeners?.['ON_PAUSE_AUDIO']) {\n listeners['ON_PAUSE_AUDIO']();\n }\n };\n\n const handleOnEnded = () => {\n setIsPlaying(false);\n if (onPlay && message.id) {\n onPlay(message.id, true);\n }\n if (listeners?.['ON_ENDED_AUDIO']) {\n listeners['ON_ENDED_AUDIO']();\n }\n if (theme?.autoCloseAudioPlayer && onClose) {\n onClose();\n }\n };\n\n const createAudio = async (id: string) => {\n setFetching(true);\n if (setDisabled) setDisabled(true);\n try {\n const stream = src !== null; // null is meaning that audio was streamed\n const resp: any = await createMessageAudio({\n id,\n apiHost,\n messageId: message.id!,\n content: message.content!,\n stream,\n language,\n });\n\n if (audioRef.current) {\n if (!stream) {\n setSrc(resp as string);\n audioRef.current.play();\n } else {\n const response = resp as Response;\n const contentType =\n response.headers.get('content-type') || 'audio/mpeg';\n\n if (window.MediaSource) {\n // MediaSource does not support .ogg\n if (contentType.includes('ogg')) {\n setSrc(null); // null is meaning that audio was streamed\n const reader = response.body!.getReader();\n if (!audioContextRef.current) {\n audioContextRef.current = new AudioContext();\n }\n const audioChunks = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n audioChunks.push(value);\n }\n\n // Create a blob and update the audio source.\n const blob = new Blob(audioChunks, { type: contentType });\n audioRef.current.src = URL.createObjectURL(blob);\n if (audioRef.current.currentTime === 0) {\n audioRef.current?.play();\n }\n } else {\n setSrc(null); // null is meaning that audio was streamed\n const mediaSource = new MediaSource();\n audioRef.current.src = URL.createObjectURL(mediaSource);\n mediaSource.addEventListener('sourceopen', async () => {\n const sourceBuffer = mediaSource.addSourceBuffer(contentType);\n const reader = response.body!.getReader();\n\n async function processStream() {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n mediaSource.endOfStream();\n break;\n }\n await new Promise<void>((resolve) => {\n if (!sourceBuffer.updating) {\n resolve();\n } else {\n sourceBuffer.addEventListener(\n 'updateend',\n () => resolve(),\n {\n once: true,\n }\n );\n }\n });\n try {\n sourceBuffer.appendBuffer(value);\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n processStream().catch(console.error);\n audioRef.current?.play();\n });\n }\n } else {\n // for iphone\n setSrc(null); // null is meaning that audio was streamed\n const reader = response.body!.getReader();\n if (!audioContextRef.current) {\n audioContextRef.current = new AudioContext();\n }\n const audioChunks = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n audioChunks.push(value);\n // Create a blob and update the audio source.\n const blob = new Blob(audioChunks, { type: contentType });\n audioRef.current.src = URL.createObjectURL(blob);\n if (audioRef.current.currentTime === 0) {\n audioRef.current?.play();\n }\n }\n // end\n }\n }\n }\n } catch (e) {\n console.error(e);\n } finally {\n setFetching(false);\n if (setDisabled) setDisabled(false);\n }\n };\n\n const handleOnTimeUpdate = () => {\n const s = audioRef.current!.currentTime;\n if (!s) {\n setProgress('00:00');\n return;\n }\n\n // >= 1 hour\n if (s >= 3600) {\n setProgress(new Date(s * 1000).toISOString().substring(11, 16));\n return;\n }\n\n setProgress(new Date(s * 1000).toISOString().substring(14, 19));\n };\n\n const handleOnLoadedMetadata = () => {\n const s = audioRef.current!.duration;\n if (!s) {\n setDuration('');\n return;\n }\n\n // >= 60 hour\n if (s >= 216000) {\n setDuration('59:99+');\n return;\n }\n\n // >= 1 hour\n if (s >= 3600) {\n setDuration(new Date(s * 1000).toISOString().substring(11, 16));\n return;\n }\n\n setDuration(new Date(s * 1000).toISOString().substring(14, 19));\n };\n\n // handle streaming response chat\n useEffect(() => {\n if (autoplay) {\n if (onPlay && message.id) onPlay(message.id);\n const isStreamResponseDone = !!message.tts && !!message.ttsUrl;\n setFetching(isStreamResponseDone);\n if (!isStreamResponseDone) {\n if (setDisabled) setDisabled(true); // disable button play\n } else {\n if (setDisabled) setDisabled(false); // enable button play\n toggleAudio();\n }\n }\n }, [autoplay, message.ttsUrl]);\n\n // handle init ttsUrl\n useEffect(() => {\n if (!src && message.ttsUrl && message.ttsUrl.startsWith('http')) {\n setSrc(message.ttsUrl);\n }\n }, [message.ttsUrl, src]);\n\n useEffect(() => {\n if (!currentPlaying && isPlaying) {\n if (audioRef.current) {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n sourceRef.current?.stop();\n setIsPlaying(false);\n }\n }, [currentPlaying, isPlaying]);\n\n return (\n <>\n <div className=\"w-full flex flex-row gap-[8px] items-center justify-between\">\n <Button\n className=\"rounded-full z-[2] p-0 w-[20px] h-[20px] m-0 text-[#18181B]\"\n onClick={(event) => {\n event.preventDefault();\n toggleAudio();\n }}\n variant=\"outline\"\n disabled={disable || fetching}\n >\n {fetching && <LoadingIcon />}\n {!fetching && (\n <>\n {isPlaying ? <ClikPauseIcon size={20} /> : <PlayIcon size={20} />}\n </>\n )}\n </Button>\n <div\n className=\"h-[20px] flex items-center justify-start text-muted-foreground text-base\"\n style={{ width: 'calc(100% - 56px)' }}\n >\n {`${progress}${theme?.hideAudioMetadata || !duration ? '' : ` / ${duration}`}`}\n </div>\n <Button\n className=\"rounded-full z-[2] p-0 w-[20px] h-[20px] text-[#18181B]\"\n onClick={(event) => {\n event.preventDefault();\n audioRef.current?.pause();\n onClose();\n }}\n variant=\"outline\"\n >\n <ClikXIcon size={20} />\n </Button>\n </div>\n <audio\n ref={audioRef}\n className=\"hidden\"\n src={src || ''}\n autoPlay={autoplay}\n onEnded={handleOnEnded}\n onPause={handleOnPause}\n onPlay={handleOnPlay}\n onTimeUpdate={handleOnTimeUpdate}\n onLoadedMetadata={handleOnLoadedMetadata}\n />\n </>\n );\n};\n\nexport default AudioPlayerSimplified;\n"]}
@@ -0,0 +1,22 @@
1
+ import { FC } from 'react';
2
+ import { BotType } from '../../../types/bot.type';
3
+ import { ChatMessageType, IFileUpload } from '../../../types/flowise.type';
4
+ type PropsType = {
5
+ input: string;
6
+ setInput: (value: string) => void;
7
+ loadingChat: boolean;
8
+ message: ChatMessageType | null;
9
+ chatId: string;
10
+ handleSubmit: (event?: {
11
+ preventDefault?: () => void;
12
+ }, files?: IFileUpload[]) => void;
13
+ className?: string;
14
+ bot: BotType | null;
15
+ apiHost: string;
16
+ setEnableTTS: (value: boolean) => void;
17
+ enableTTS: boolean;
18
+ onAudioEnded: () => void;
19
+ };
20
+ export declare const MultimodalInputSimplified: FC<PropsType>;
21
+ export {};
22
+ //# sourceMappingURL=MultimodalInputSimplified.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultimodalInputSimplified.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/MultimodalInputSimplified.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,EAAE,EAKH,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAe3E,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CACZ,KAAK,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,EACvC,KAAK,CAAC,EAAE,WAAW,EAAE,KAClB,IAAI,CAAC;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAcF,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,SAAS,CA0iBnD,CAAC"}