@clikvn/agent-widget-embedded 1.1.11 → 1.1.12-dev-01
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.
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/bookMeeting.d.ts +67 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/bookMeeting.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/bookMeeting.js +78 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/bookMeeting.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.d.ts +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.js +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/index.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.d.ts +11 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.js +26 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/commons/constants/variables.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.d.ts +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.js +16 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Agent/index.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.js +152 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AgentThinking.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.d.ts +8 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.js +228 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/AudioPlayer.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingDetail.d.ts +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingDetail.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingDetail.js +35 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingDetail.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingForm.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingForm.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingForm.js +173 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingForm.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingList.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingList.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingList.js +61 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/BookMeetingList.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.js +46 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Chat.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.js +36 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Header.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.js +45 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/HtmlContent.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.d.ts +204 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.js +252 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Icons.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LoadingComponent.d.ts +4 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LoadingComponent.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LoadingComponent.js +6 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LoadingComponent.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.d.ts +38 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.js +23 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/LocationCard.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.js +97 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Markdown.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.d.ts +16 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.js +84 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Message.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.d.ts +28 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.js +350 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput copy.js.map +1 -0
- package/{dist/components/Chat/MultimodalInputSimple.d.ts → .rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.d.ts} +9 -3
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.js +405 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/MultimodalInput.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.d.ts +8 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.js +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Overview.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.d.ts +6 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.js +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewAttachment.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.js +21 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/PreviewFileAttachment.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.js +157 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductDetail.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.js +152 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ProductList.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.d.ts +11 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.js +73 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ScenariosList.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.js +268 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/AudioPlayerSimplified.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.d.ts +22 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.js +283 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplified.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.d.ts +22 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.js +301 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.js +30 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Simplified/index.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.d.ts +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.js +31 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/SuggestedActions.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.js +147 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/UserContactForm.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.d.ts +17 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.js +71 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/VoiceRecordingUI.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.d.ts +42 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.js +198 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/Weather.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.d.ts +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.js +34 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Button.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DataPickerCustom.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DataPickerCustom.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DataPickerCustom.js +32 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DataPickerCustom.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.d.ts +28 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.js +37 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/DropdownMenu.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/PhoneNumberInput.d.ts +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/PhoneNumberInput.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/PhoneNumberInput.js +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/PhoneNumberInput.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBox.d.ts +19 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBox.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBox.js +33 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBox.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBoxWithIcon.d.ts +20 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBoxWithIcon.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBoxWithIcon.js +71 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/SelectBoxWithIcon.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.js +4 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Spinner.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.d.ts +6 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.js +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/Textarea.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.js +22 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/badge.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.d.ts +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.js +44 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/ui/collapsible.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.d.ts +14 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.js +53 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidget.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.d.ts +22 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.js +29 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/components/Chat/voice/VoiceWidgetChat.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/form.d.ts +13 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/form.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/form.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/form.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.d.ts +94 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.js +93 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants/toolNames.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.d.ts +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/constants.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.d.ts +49 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.js +25 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/features/AgentWidget/index.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.d.ts +11 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.js +135 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioAnalyzer.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.d.ts +13 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.js +39 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioMesseagePlayer.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.d.ts +13 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.js +59 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useAudioRecording.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.d.ts +29 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.js +225 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChat.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.d.ts +20 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.js +66 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useChatData.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.d.ts +101 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.js +23 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useConfiguration.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollContainer.d.ts +9 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollContainer.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollContainer.js +64 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollContainer.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.js +29 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/hooks/useScrollToBottom.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.d.ts +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/index.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.d.ts +20 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.js +76 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models/FlowiseClient.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.d.ts +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/models.js.map +1 -0
- package/{dist/simplifiedRegister.d.ts → .rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.d.ts} +39 -6
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.js +36 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/register.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.js +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/apis.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bookMeeting.service.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bookMeeting.service.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bookMeeting.service.js +26 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bookMeeting.service.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.d.ts +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.js +13 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/bot.service.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.d.ts +53 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.js +163 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/chat.service.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/userContact.service.d.ts +8 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/userContact.service.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/userContact.service.js +27 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/userContact.service.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.d.ts +14 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.js +181 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/services/vt360.service.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bookMeeting.type.d.ts +13 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bookMeeting.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bookMeeting.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bookMeeting.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.d.ts +11 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/bot.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.d.ts +10 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/chat.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.d.ts +27 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/common.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.d.ts +160 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/flowise.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.d.ts +48 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/product.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.d.ts +14 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/user.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/userContact.type.d.ts +15 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/userContact.type.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/userContact.type.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types/userContact.type.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.d.ts +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.js +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/types.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.d.ts +20 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.js +492 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/agentTraceUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.d.ts +21 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.js +296 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/audioRecording.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.d.ts +7 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.js +40 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/commonUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.d.ts +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.js +18 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/currency.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.d.ts +3 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.js +46 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/fileUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.d.ts +5 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.js +21 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/functionUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.d.ts +37 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.js +55 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/messageUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.d.ts +16 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.js +79 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/requestUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.d.ts +5 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.js +12 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/streamUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.d.ts +111 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.js +197 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/utils/toolUtils.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/wdyr.d.ts +2 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/wdyr.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/wdyr.js +15 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/wdyr.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.d.ts +8 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.js +5 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/web.js.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.d.ts +18 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.d.ts.map +1 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.js +31 -0
- package/.rollup.cache/Users/tungthai/Desktop/Develop/clik-ai-chatbot-embedded/dist/window.js.map +1 -0
- package/README.md +20 -20
- package/dist/components/Chat/MultimodalInput copy.d.ts +28 -0
- package/dist/components/Chat/MultimodalInput copy.d.ts.map +1 -0
- package/dist/components/Chat/ProductDetail.d.ts.map +1 -1
- package/dist/components/Chat/ProductList.d.ts +3 -3
- package/dist/components/Chat/ProductList.d.ts.map +1 -1
- package/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.d.ts +22 -0
- package/dist/components/Chat/Simplified/MultimodalInputSimplifiedOld.d.ts.map +1 -0
- package/dist/index-old.html +108 -0
- package/dist/index.html +47 -49
- package/dist/services/vt360.service.d.ts.map +1 -1
- package/dist/wdyr.d.ts +2 -0
- package/dist/wdyr.d.ts.map +1 -0
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +1 -1
- package/dist/web.js.map +1 -0
- package/package.json +101 -101
- package/public/index.html +54 -54
- package/.idea/clik-ai-chatbot-embedded.iml +0 -9
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/inspectionProfiles/Project_Default.xml +0 -36
- package/.idea/jsLinters/eslint.xml +0 -7
- package/.idea/misc.xml +0 -9
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/dist/components/Chat/AudioPlayerSimple.d.ts +0 -9
- package/dist/components/Chat/AudioPlayerSimple.d.ts.map +0 -1
- package/dist/components/Chat/MultimodalInputSimple.d.ts.map +0 -1
- package/dist/components/Chat/Sidebar.d.ts +0 -8
- package/dist/components/Chat/Sidebar.d.ts.map +0 -1
- package/dist/serve.json +0 -11
- package/dist/simplifiedRegister.d.ts.map +0 -1
- package/dist/web.css +0 -3680
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultimodalInputSimplified.js","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/MultimodalInputSimplified.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AnimatePresence, motion } from 'framer-motion';\nimport {\n type ChangeEvent,\n FC,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { useWindowSize } from 'usehooks-ts';\nimport { useAudioRecording } from '../../../hooks/useAudioRecording';\nimport { useChatData } from '../../../hooks/useChatData';\nimport { useConfiguration } from '../../../hooks/useConfiguration';\nimport { getAudioTranscript } from '../../../services/chat.service';\nimport { BotType } from '../../../types/bot.type';\nimport { ChatMessageType, IFileUpload } from '../../../types/flowise.type';\nimport { cn, generateUUID, sleep } from '../../../utils/commonUtils';\nimport { getBestMimeType, getFileExtension } from '../../../utils/fileUtils';\nimport {\n ArrowUpIcon,\n ClikAIIcon,\n ClikChatIcon,\n ClikMicrophoneIcon,\n PlusIcon,\n} from '../Icons';\nimport { Button } from '../ui/Button';\nimport { VoiceRecordingUI } from '../VoiceRecordingUI';\nimport { Textarea } from '../ui/Textarea';\n\ntype PropsType = {\n input: string;\n setInput: (value: string) => void;\n loadingChat: boolean;\n message: ChatMessageType | null;\n chatId: string;\n handleSubmit: (\n event?: { preventDefault?: () => void },\n files?: IFileUpload[]\n ) => void;\n className?: string;\n bot: BotType | null;\n apiHost: string;\n setEnableTTS: (value: boolean) => void;\n enableTTS: boolean;\n onAudioEnded: () => void;\n};\n\ntype ClickType =\n | 'ChangeLanguage'\n | 'WelcomeMsg'\n | 'StartRecording'\n | 'CancelRecording'\n | 'FinishRecording'\n | 'PauseAudio'\n | 'PlayAudio'\n | 'CloseAudio'\n | 'Submit'\n | 'ClickButtonAI'\n | 'AddFile';\n\nexport const MultimodalInputSimplified: FC<PropsType> = (props) => {\n const {\n input,\n setInput,\n message,\n handleSubmit,\n className,\n apiHost,\n setEnableTTS,\n } = props;\n const { onLoaded, theme = {} } = useConfiguration();\n const { modeButtonChat = false, gapInput = 16 } = theme;\n const { listeners } = useChatData();\n const {\n isRecording,\n onRecordingCancelled,\n onRecordingStopped,\n onRecordingStarted,\n audioData,\n elapsedTime,\n updateMaxHistoryLength,\n } = useAudioRecording();\n const { width } = useWindowSize();\n\n const language =\n theme?.language?.options\n ?.find((option) => option.code === theme?.language?.code)\n ?.name?.toUpperCase() || 'EN';\n\n const [transcribing, setTranscribing] = useState<boolean>(false);\n const [showAudioPlayer, setShowAudioPlayer] = useState(false);\n const [submitting, setSubmitting] = useState(false);\n const [expanded, setExpanded] = useState(!modeButtonChat);\n const [animationCompleted, setAnimationCompleted] = useState(false);\n\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n const setInputRef = useRef<((input: string) => void) | null>(null);\n\n const welcomeMessage =\n theme.welcomeMessage || \"Hi, I'm your showroom assistant\";\n const adjustHeight = () => {\n if (textareaRef.current) {\n (textareaRef.current as HTMLTextAreaElement).style.height = '24px';\n (textareaRef.current as HTMLTextAreaElement).style.height =\n `${textareaRef.current?.scrollHeight}px`;\n }\n };\n\n const readonly = isRecording || transcribing;\n const handleSetInput = useCallback(\n (value: string) => {\n setInput(value);\n },\n [setInput]\n );\n\n const handleInput = (event: ChangeEvent<HTMLTextAreaElement>) => {\n handleSetInput(event.target.value);\n\n if (textareaRef.current) {\n textareaRef.current.scrollTop = textareaRef.current.scrollHeight;\n }\n };\n\n const submitForm = useCallback(async () => {\n setSubmitting(true);\n if (listeners?.['ON_SUBMIT_MESSAGE']) {\n listeners['ON_SUBMIT_MESSAGE']();\n }\n handleSubmit(undefined);\n await sleep(500);\n setShowAudioPlayer(true);\n }, [handleSubmit, listeners]);\n\n const toAudioBase64 = (blob: Blob) => {\n return new Promise<IFileUpload>((resolve) => {\n let mimeType = getBestMimeType();\n const pos = blob.type.indexOf(';');\n if (pos === -1) {\n mimeType = blob.type;\n } else {\n mimeType = blob.type.substring(0, pos);\n }\n\n // read blob and add to previews\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n const base64data = reader.result as string;\n const upload: IFileUpload = {\n tempId: generateUUID(),\n data: base64data,\n type: 'audio',\n name: `audio_${Date.now()}.${getFileExtension(mimeType)}`,\n mime: mimeType,\n };\n resolve(upload);\n };\n });\n };\n\n const speechToText = async (blob: Blob) => {\n try {\n setTranscribing(true);\n const fileUpload = await toAudioBase64(blob);\n const base64Data = fileUpload.data!.replace(/^data:.+;base64,/, '');\n const byteCharacters = atob(base64Data); // Decode Base64 string\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n const file = new File([byteArray], fileUpload.name, {\n lastModified: new Date().getTime(),\n type: fileUpload.type,\n });\n\n const text = await getAudioTranscript({ file, apiHost, language });\n if (text) {\n handleSetInput(text);\n }\n } catch (error) {\n console.error('Error getting audio transcript!', error);\n } finally {\n setTranscribing(false);\n }\n };\n\n const handleFinishRecording = () => {\n if (isRecording) {\n onRecordingStopped(speechToText);\n }\n if (listeners?.['ON_FINISHED_RECORDING']) {\n listeners['ON_FINISHED_RECORDING']();\n }\n };\n\n const handleStartRecording = useCallback(() => {\n onRecordingStarted();\n handleSetInput('');\n if (listeners?.['ON_START_RECORDING']) {\n listeners['ON_START_RECORDING']();\n }\n }, [onRecordingStarted, handleSetInput, listeners]);\n\n const handleCancelRecording = () => {\n handleOnClick('CancelRecording');\n onRecordingCancelled();\n handleSetInput('');\n if (listeners?.['ON_CANCEL_RECORDING']) {\n listeners['ON_CANCEL_RECORDING']();\n }\n };\n\n const handleSend = useCallback(async () => {\n if (!isRecording) {\n submitForm();\n }\n }, [submitForm, isRecording]);\n\n const handleOnClickOpenChatmode = () => {\n handleOnClick('WelcomeMsg');\n };\n\n const handleOnClick = (type?: ClickType) => {\n if (listeners?.['ON_CLICK']) {\n listeners['ON_CLICK'](type);\n }\n };\n\n const handleToggleExpand = () => {\n handleOnClick('ClickButtonAI');\n setExpanded(!expanded);\n setAnimationCompleted(false);\n if (!expanded) {\n // Focus vào textarea khi expand\n setTimeout(() => {\n if (textareaRef.current) {\n textareaRef.current.focus();\n }\n }, 300);\n }\n };\n\n useEffect(() => {\n adjustHeight();\n }, [input, readonly]);\n\n useEffect(() => {\n setInputRef.current = setInput;\n }, [setInput]);\n\n useEffect(() => {\n if (onLoaded) {\n onLoaded({\n setInput: (txt): void => {\n if (setInputRef.current) {\n setInputRef.current(txt || '');\n }\n },\n startRecording: async () => {\n handleStartRecording();\n },\n });\n }\n }, []);\n\n useEffect(() => {\n setEnableTTS(true);\n return () => {\n setEnableTTS(false);\n };\n }, [setEnableTTS]);\n\n useEffect(() => {\n if (message && submitting) {\n setSubmitting(false);\n if (listeners?.['ON_FINISHED_SUBMITTING_MESSAGE']) {\n listeners['ON_FINISHED_SUBMITTING_MESSAGE']();\n }\n }\n }, [message, submitting, listeners]);\n\n const handleWidthChange = useCallback(\n (maxBars: number) => {\n updateMaxHistoryLength(maxBars);\n },\n [updateMaxHistoryLength]\n );\n\n const recordingPlaceholder =\n isRecording && !transcribing\n ? theme?.input?.recordingPlaceholder || 'Recording...'\n : '';\n\n const transcribingPlaceholder = transcribing\n ? theme?.input?.transcribingPlaceholder || 'Transcribing...'\n : '';\n\n const processing = isRecording || transcribing;\n const canShowAudioPlayer =\n !theme?.noAutoplayMessage &&\n showAudioPlayer &&\n message?.new &&\n message?.tts;\n\n // Animation variants\n const containerVariants = {\n collapsed: {\n width: '0px',\n height: '0px',\n opacity: 0,\n borderRadius: '28px',\n },\n expanded: {\n width: width ? `${width - gapInput - 2}px` : '100%',\n height: 'auto',\n opacity: 1,\n borderRadius: '16px',\n },\n };\n\n const contentVariants = {\n collapsed: {\n opacity: 0,\n scale: 0.8,\n },\n expanded: {\n opacity: 1,\n scale: 1,\n },\n };\n\n const showButtonAI =\n !isRecording &&\n modeButtonChat &&\n !input?.length &&\n !processing &&\n !submitting &&\n !transcribing;\n\n return (\n <div className=\"flex justify-end\">\n {showButtonAI && (\n <div\n className={cn(\n 'absolute z-20 transition-all duration-300 top-1 right-1'\n )}\n >\n <Button\n className={cn(\n 'rounded-full bg-[#fff] hover:bg-[#fff] text-white border-none shadow-lg w-[32px] h-[32px] p-0 flex items-center justify-center',\n expanded && 'bg-[#595959] hover:bg-[#595959] text-white'\n )}\n onClick={handleToggleExpand}\n >\n {expanded ? (\n <ClikChatIcon\n size={20}\n style={{ width: '20px', height: '20px' }}\n />\n ) : (\n <ClikAIIcon size={20} style={{ width: '20px', height: '20px' }} />\n )}\n </Button>\n </div>\n )}\n <motion.div\n variants={containerVariants}\n initial=\"collapsed\"\n animate={expanded ? 'expanded' : 'collapsed'}\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className={cn('relative flex gap-4 scrollbar-hidden ', className, {\n 'flex-col min-h-[40px]': !canShowAudioPlayer && expanded,\n 'flex-row min-h-[40px]': canShowAudioPlayer && expanded,\n 'items-center justify-center': !expanded,\n })}\n >\n <AnimatePresence>\n {expanded && (\n <motion.div\n variants={contentVariants}\n initial=\"collapsed\"\n animate=\"expanded\"\n exit=\"collapsed\"\n transition={{ duration: 0.2, delay: 0 }}\n onAnimationComplete={() => setAnimationCompleted(true)}\n className={`w-full `}\n >\n {!canShowAudioPlayer && (\n <>\n <div className=\" w-full flex gap-4 justify-end items-end\">\n {isRecording ? (\n <Button\n className={` rounded-full w-[40px] h-[40px] flex items-center justify-center bg-white hover:bg-white`}\n onClick={(event) => {\n event.preventDefault();\n handleFinishRecording();\n }}\n >\n <div className=\"w-[12px] h-[12px] bg-muted-foreground rounded-full\"></div>\n </Button>\n ) : (\n <Button\n className={` rounded-full w-[40px] h-[40px] flex items-center justify-center bg-white hover:bg-white`}\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('AddFile');\n }}\n >\n <PlusIcon size={20} color={'#71717A'} />\n </Button>\n )}\n <div className=\"block flex-1 min-w-0 min-h-[40px] relative bg-white rounded-[24px] border border-[#E5E5E5] shadow-[0px_2px_6px_0px_rgba(0,0,0,0.08)] backdrop-blur-[50px]\">\n {/* Animated Input/Textarea Container */}\n <AnimatePresence mode=\"wait\">\n {\n <>\n <motion.div\n key=\"textarea\"\n initial={{ opacity: 0, height: 40 }}\n animate={{ opacity: 1, height: 'auto' }}\n exit={{ opacity: 0, height: 40 }}\n transition={{\n duration: 0.2,\n ease: 'easeInOut',\n }}\n style={{\n display:\n input.length || transcribing\n ? 'block'\n : 'none',\n }}\n >\n <Textarea\n readOnly={readonly}\n ref={textareaRef}\n placeholder={\n transcribing\n ? transcribingPlaceholder\n : 'Nhập tin nhắn của bạn...'\n }\n value={input}\n onChange={handleInput}\n className={cn(\n `min-h-[24px] max-h-[120px] overflow-hidden resize-none text-base bg-muted bg-[#ffffff] scrollbar-hidden p-[12px] pb-[32px] rounded-[24px] border border-[#E5E5E5] shadow-[0px_2px_6px_0px_rgba(0,0,0,0.08)] backdrop-blur-[50px] `,\n className\n )}\n style={{\n height: 60,\n }}\n autoFocus\n onKeyDown={(event) => {\n if (\n event.key === 'Enter' &&\n !event.shiftKey\n ) {\n event.preventDefault();\n handleOnClick('Submit');\n handleSend();\n }\n }}\n />\n </motion.div>\n </>\n }\n </AnimatePresence>\n {!isRecording &&\n !input?.length &&\n !transcribing &&\n animationCompleted && (\n <div\n className=\"p-[10px] pr-[80px] text-[14px] text-muted-foreground cursor-pointer w-full text-ellipsis overflow-hidden whitespace-nowrap truncate\"\n onClick={handleOnClickOpenChatmode}\n >\n {welcomeMessage}\n </div>\n )}\n {/* Voice Recording UI Overlay */}\n <div className=\"w-full \">\n <VoiceRecordingUI\n isRecording={isRecording}\n elapsedTime={elapsedTime}\n onCancel={handleCancelRecording}\n transcribing={transcribing}\n audioData={audioData}\n label={\n transcribing\n ? transcribingPlaceholder\n : recordingPlaceholder\n }\n onWidthChange={handleWidthChange}\n />\n </div>\n\n <div className=\"button-voice right-[4px] absolute bottom-[4px] flex gap-[12px]\">\n {!isRecording && (\n <Button\n className=\"rounded-full z-[2] p-1.5 h-[32px] w-[32px] m-0 bg-transparent\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('StartRecording');\n handleStartRecording();\n }}\n >\n <ClikMicrophoneIcon size={20} />\n </Button>\n )}\n <Button\n className=\"rounded-full z-[2] p-1.5 h-[32px] w-[32px] m-0 border bg-[#71717A]\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('Submit');\n handleSend();\n }}\n disabled={isRecording || input.length === 0}\n >\n <ArrowUpIcon size={20} />\n </Button>\n </div>\n </div>\n </div>\n </>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </motion.div>\n </div>\n );\n};\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=MultimodalInputSimplifiedOld.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultimodalInputSimplifiedOld.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/MultimodalInputSimplifiedOld.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"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
3
|
+
import { useCallback, useEffect, useRef, useState, } from 'react';
|
|
4
|
+
import { useWindowSize } from 'usehooks-ts';
|
|
5
|
+
import { useAudioRecording } from '../../../hooks/useAudioRecording';
|
|
6
|
+
import { useChatData } from '../../../hooks/useChatData';
|
|
7
|
+
import { useConfiguration } from '../../../hooks/useConfiguration';
|
|
8
|
+
import { getAudioTranscript } from '../../../services/chat.service';
|
|
9
|
+
import { cn, generateUUID, sleep } from '../../../utils/commonUtils';
|
|
10
|
+
import { getBestMimeType, getFileExtension } from '../../../utils/fileUtils';
|
|
11
|
+
import { AnimatedRecordingIcon, ArrowUpIcon, CheckCirclFillIcon, ClikAIIcon, ClikChatIcon, ClikCloseIcon, ClikMicrophoneIcon, } from '../Icons';
|
|
12
|
+
import { Button } from '../ui/Button';
|
|
13
|
+
import AudioPlayerSimplified from './AudioPlayerSimplified';
|
|
14
|
+
export const MultimodalInputSimplified = (props) => {
|
|
15
|
+
const { input, setInput, loadingChat, message, chatId, handleSubmit, className, bot, apiHost, setEnableTTS, onAudioEnded, } = props;
|
|
16
|
+
const { onLoaded, theme = {} } = useConfiguration();
|
|
17
|
+
const { modeButtonChat = false, gapInput = 16 } = theme;
|
|
18
|
+
const { listeners } = useChatData();
|
|
19
|
+
const { isRecording, onRecordingCancelled, onRecordingStopped, onRecordingStarted, isLoadingRecording, audioData, } = useAudioRecording();
|
|
20
|
+
const { width } = useWindowSize();
|
|
21
|
+
const language = theme?.language?.options
|
|
22
|
+
?.find((option) => option.code === theme?.language?.code)
|
|
23
|
+
?.name?.toUpperCase() || 'EN';
|
|
24
|
+
const [transcribing, setTranscribing] = useState(false);
|
|
25
|
+
const [showAudioPlayer, setShowAudioPlayer] = useState(false);
|
|
26
|
+
const [submitting, setSubmitting] = useState(false);
|
|
27
|
+
const [expanded, setExpanded] = useState(!modeButtonChat);
|
|
28
|
+
const [animationCompleted, setAnimationCompleted] = useState(false);
|
|
29
|
+
const textareaRef = useRef(null);
|
|
30
|
+
const setInputRef = useRef(null);
|
|
31
|
+
const welcomeMessage = theme.welcomeMessage || "Hi, I'm your showroom assistant";
|
|
32
|
+
const adjustHeight = () => {
|
|
33
|
+
if (textareaRef.current) {
|
|
34
|
+
textareaRef.current.style.height = '24px';
|
|
35
|
+
textareaRef.current.style.height =
|
|
36
|
+
`${textareaRef.current?.scrollHeight}px`;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const readonly = isRecording || transcribing;
|
|
40
|
+
const handleSetInput = useCallback((value) => {
|
|
41
|
+
setInput(value);
|
|
42
|
+
}, [setInput]);
|
|
43
|
+
const handleInput = (event) => {
|
|
44
|
+
handleSetInput(event.target.value);
|
|
45
|
+
if (textareaRef.current) {
|
|
46
|
+
textareaRef.current.scrollTop = textareaRef.current.scrollHeight;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const submitForm = useCallback(async () => {
|
|
50
|
+
setSubmitting(true);
|
|
51
|
+
if (listeners?.['ON_SUBMIT_MESSAGE']) {
|
|
52
|
+
listeners['ON_SUBMIT_MESSAGE']();
|
|
53
|
+
}
|
|
54
|
+
handleSubmit(undefined);
|
|
55
|
+
await sleep(500);
|
|
56
|
+
setShowAudioPlayer(true);
|
|
57
|
+
}, [handleSubmit, listeners]);
|
|
58
|
+
const toAudioBase64 = (blob) => {
|
|
59
|
+
return new Promise((resolve) => {
|
|
60
|
+
let mimeType = getBestMimeType();
|
|
61
|
+
const pos = blob.type.indexOf(';');
|
|
62
|
+
if (pos === -1) {
|
|
63
|
+
mimeType = blob.type;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
mimeType = blob.type.substring(0, pos);
|
|
67
|
+
}
|
|
68
|
+
// read blob and add to previews
|
|
69
|
+
const reader = new FileReader();
|
|
70
|
+
reader.readAsDataURL(blob);
|
|
71
|
+
reader.onloadend = () => {
|
|
72
|
+
const base64data = reader.result;
|
|
73
|
+
const upload = {
|
|
74
|
+
tempId: generateUUID(),
|
|
75
|
+
data: base64data,
|
|
76
|
+
type: 'audio',
|
|
77
|
+
name: `audio_${Date.now()}.${getFileExtension(mimeType)}`,
|
|
78
|
+
mime: mimeType,
|
|
79
|
+
};
|
|
80
|
+
resolve(upload);
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
const speechToText = async (blob) => {
|
|
85
|
+
try {
|
|
86
|
+
setTranscribing(true);
|
|
87
|
+
const fileUpload = await toAudioBase64(blob);
|
|
88
|
+
const base64Data = fileUpload.data.replace(/^data:.+;base64,/, '');
|
|
89
|
+
const byteCharacters = atob(base64Data); // Decode Base64 string
|
|
90
|
+
const byteNumbers = new Array(byteCharacters.length);
|
|
91
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
92
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
93
|
+
}
|
|
94
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
95
|
+
const file = new File([byteArray], fileUpload.name, {
|
|
96
|
+
lastModified: new Date().getTime(),
|
|
97
|
+
type: fileUpload.type,
|
|
98
|
+
});
|
|
99
|
+
const text = await getAudioTranscript({ file, apiHost, language });
|
|
100
|
+
if (text) {
|
|
101
|
+
handleSetInput(text);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.error('Error getting audio transcript!', error);
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
setTranscribing(false);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const handleFinishRecording = () => {
|
|
112
|
+
if (isRecording) {
|
|
113
|
+
onRecordingStopped(speechToText);
|
|
114
|
+
}
|
|
115
|
+
if (listeners?.['ON_FINISHED_RECORDING']) {
|
|
116
|
+
listeners['ON_FINISHED_RECORDING']();
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const handleStartRecording = useCallback(() => {
|
|
120
|
+
onRecordingStarted();
|
|
121
|
+
handleSetInput('');
|
|
122
|
+
if (listeners?.['ON_START_RECORDING']) {
|
|
123
|
+
listeners['ON_START_RECORDING']();
|
|
124
|
+
}
|
|
125
|
+
}, [onRecordingStarted, handleSetInput, listeners]);
|
|
126
|
+
const handleCancelRecording = () => {
|
|
127
|
+
onRecordingCancelled();
|
|
128
|
+
handleSetInput('');
|
|
129
|
+
if (listeners?.['ON_CANCEL_RECORDING']) {
|
|
130
|
+
listeners['ON_CANCEL_RECORDING']();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const handleSend = useCallback(async () => {
|
|
134
|
+
if (!isRecording) {
|
|
135
|
+
submitForm();
|
|
136
|
+
}
|
|
137
|
+
}, [submitForm, isRecording]);
|
|
138
|
+
const handleOnClickOpenChatmode = () => {
|
|
139
|
+
handleOnClick('WelcomeMsg');
|
|
140
|
+
};
|
|
141
|
+
const handleOnClick = (type) => {
|
|
142
|
+
if (listeners?.['ON_CLICK']) {
|
|
143
|
+
listeners['ON_CLICK'](type);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const handleToggleExpand = () => {
|
|
147
|
+
handleOnClick('ClickButtonAI');
|
|
148
|
+
setExpanded(!expanded);
|
|
149
|
+
setAnimationCompleted(false);
|
|
150
|
+
if (!expanded) {
|
|
151
|
+
// Focus vào textarea khi expand
|
|
152
|
+
setTimeout(() => {
|
|
153
|
+
if (textareaRef.current) {
|
|
154
|
+
textareaRef.current.focus();
|
|
155
|
+
}
|
|
156
|
+
}, 300);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
useEffect(() => {
|
|
160
|
+
adjustHeight();
|
|
161
|
+
}, [input, readonly]);
|
|
162
|
+
useEffect(() => {
|
|
163
|
+
setInputRef.current = setInput;
|
|
164
|
+
}, [setInput]);
|
|
165
|
+
useEffect(() => {
|
|
166
|
+
if (onLoaded) {
|
|
167
|
+
onLoaded({
|
|
168
|
+
setInput: (txt) => {
|
|
169
|
+
if (setInputRef.current) {
|
|
170
|
+
setInputRef.current(txt || '');
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
startRecording: async () => {
|
|
174
|
+
handleStartRecording();
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}, []);
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
setEnableTTS(true);
|
|
181
|
+
return () => {
|
|
182
|
+
setEnableTTS(false);
|
|
183
|
+
};
|
|
184
|
+
}, [setEnableTTS]);
|
|
185
|
+
useEffect(() => {
|
|
186
|
+
if (message && submitting) {
|
|
187
|
+
setSubmitting(false);
|
|
188
|
+
if (listeners?.['ON_FINISHED_SUBMITTING_MESSAGE']) {
|
|
189
|
+
listeners['ON_FINISHED_SUBMITTING_MESSAGE']();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}, [message, submitting, listeners]);
|
|
193
|
+
const recordingPlaceholder = isRecording && !transcribing
|
|
194
|
+
? theme?.input?.recordingPlaceholder || 'Recording...'
|
|
195
|
+
: '';
|
|
196
|
+
const transcribingPlaceholder = transcribing
|
|
197
|
+
? theme?.input?.transcribingPlaceholder || 'Transcribing...'
|
|
198
|
+
: '';
|
|
199
|
+
const processing = isRecording || transcribing;
|
|
200
|
+
const canShowAudioPlayer = !theme?.noAutoplayMessage &&
|
|
201
|
+
showAudioPlayer &&
|
|
202
|
+
message?.new &&
|
|
203
|
+
message?.tts;
|
|
204
|
+
// Animation variants
|
|
205
|
+
const containerVariants = {
|
|
206
|
+
collapsed: {
|
|
207
|
+
width: '0px',
|
|
208
|
+
height: '0px',
|
|
209
|
+
opacity: 0,
|
|
210
|
+
borderRadius: '28px',
|
|
211
|
+
},
|
|
212
|
+
expanded: {
|
|
213
|
+
width: width ? `${width - gapInput}px` : '400px',
|
|
214
|
+
height: 'auto',
|
|
215
|
+
opacity: 1,
|
|
216
|
+
borderRadius: '16px',
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
const contentVariants = {
|
|
220
|
+
collapsed: {
|
|
221
|
+
opacity: 0,
|
|
222
|
+
scale: 0.8,
|
|
223
|
+
},
|
|
224
|
+
expanded: {
|
|
225
|
+
opacity: 1,
|
|
226
|
+
scale: 1,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
const showButtonAI = !isRecording &&
|
|
230
|
+
modeButtonChat &&
|
|
231
|
+
!input?.length &&
|
|
232
|
+
!processing &&
|
|
233
|
+
!submitting &&
|
|
234
|
+
!transcribing;
|
|
235
|
+
const showToggleChatIcon = showButtonAI && expanded;
|
|
236
|
+
let centerWidthOffset = 72; // left: 24px, right: 32px, gap: 8px x 2, padding: 12px
|
|
237
|
+
if (transcribing || submitting) {
|
|
238
|
+
centerWidthOffset = 80; // left: 24px, right: 40px, gap: 8px x 2, padding: 12px
|
|
239
|
+
}
|
|
240
|
+
if (showToggleChatIcon) {
|
|
241
|
+
centerWidthOffset = 108; // left: 24px, right: 68px, gap: 8px x 2, padding: 12px
|
|
242
|
+
}
|
|
243
|
+
return (_jsxs("div", { className: "flex justify-end", children: [showButtonAI && (_jsx("div", { className: cn('absolute z-20 transition-all duration-300 top-1 right-1'), children: _jsx(Button, { className: cn('rounded-full bg-[#fff] hover:bg-[#fff] text-white border-none shadow-lg w-[40px] h-[40px] p-0 flex items-center justify-center', expanded && 'bg-[#595959] hover:bg-[#595959] text-white'), onClick: handleToggleExpand, children: expanded ? (_jsx(ClikChatIcon, { size: 24, style: { width: '24px', height: '24px' } })) : (_jsx(ClikAIIcon, { size: 24, style: { width: '24px', height: '24px' } })) }) })), _jsxs(motion.div, { variants: containerVariants, initial: "collapsed", animate: expanded ? 'expanded' : 'collapsed', transition: { duration: 0.3, ease: 'easeInOut' }, className: cn('relative flex gap-4 bg-[#ffffff] py-[8px] px-[12px] scrollbar-hidden border border-[#E5E5E5] shadow-[0px_2px_6px_0px_rgba(0,0,0,0.08)] backdrop-blur-[50px]', className, {
|
|
244
|
+
'flex-col min-h-[48px]': !canShowAudioPlayer && expanded,
|
|
245
|
+
'flex-row min-h-[48px]': canShowAudioPlayer && expanded,
|
|
246
|
+
'items-center justify-center': !expanded,
|
|
247
|
+
}), children: [_jsx(AnimatePresence, { children: expanded && (_jsx(motion.div, { variants: contentVariants, initial: "collapsed", animate: "expanded", exit: "collapsed", transition: { duration: 0.2, delay: 0 }, onAnimationComplete: () => setAnimationCompleted(true), className: `w-full ${showButtonAI ? 'pr-9' : ''}`, children: !canShowAudioPlayer && (_jsxs(_Fragment, { children: [!processing && !!input?.length && (_jsx("textarea", { readOnly: readonly, ref: textareaRef, value: input, onChange: handleInput, placeholder: "Nh\u1EADp tin nh\u1EAFn c\u1EE7a b\u1EA1n...", className: cn(`resize-none text-base bg-muted bg-[#ffffff] scrollbar-hidden ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 w-full mb-3`), style: {
|
|
248
|
+
fontSize: '16px',
|
|
249
|
+
}, onKeyDown: (event) => {
|
|
250
|
+
if (isRecording) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
|
254
|
+
event.preventDefault();
|
|
255
|
+
if (loadingChat) {
|
|
256
|
+
console.error('Please wait for the model to finish its response!');
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
handleSend();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
} })), processing && (_jsx("div", { className: cn(`placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 resize-none text-base scrollbar-hidden mb-3`, className), style: {
|
|
263
|
+
fontSize: '16px',
|
|
264
|
+
}, children: _jsxs("div", { className: "animate-pulse", children: [recordingPlaceholder, transcribingPlaceholder] }) })), _jsxs("div", { className: "flex flex-row gap-[8px] items-center justify-between", children: [_jsxs("div", { className: "w-[24px] h-[24px]", children: [!isRecording && (_jsx("button", { className: "w-[24px] h-[24px] opacity-100", onClick: (e) => {
|
|
265
|
+
e.preventDefault();
|
|
266
|
+
e.stopPropagation();
|
|
267
|
+
handleOnClick('ChangeLanguage');
|
|
268
|
+
}, "aria-label": "Change language", children: _jsx("span", { className: "text-[#595959] text-center text-[12px] border-[1px] font-bold rounded-[4px] border-[#595959] px-[2px]", children: language }) })), isRecording && (_jsx(Button, { disabled: isLoadingRecording, className: "rounded-full dark:border-zinc-700 h-[24px] w-[24px] px-0 py-0", variant: "outline", onClick: (event) => {
|
|
269
|
+
event.preventDefault();
|
|
270
|
+
handleOnClick('CancelRecording');
|
|
271
|
+
handleCancelRecording();
|
|
272
|
+
}, children: _jsx(ClikCloseIcon, { className: "!w-full !h-full" }) }))] }), _jsxs("div", { className: "min-h-[24px] flex items-center justify-center text-ellipsis overflow-hidden whitespace-nowrap", style: { width: `calc(100% - ${centerWidthOffset}px)` }, children: [!isRecording &&
|
|
273
|
+
!input?.length &&
|
|
274
|
+
!loadingChat &&
|
|
275
|
+
!transcribing &&
|
|
276
|
+
animationCompleted && (_jsx("div", { className: "text-center text-[14px] text-muted-foreground cursor-pointer w-full text-ellipsis overflow-hidden whitespace-nowrap", onClick: handleOnClickOpenChatmode, children: welcomeMessage })), isRecording && (_jsx(AnimatedRecordingIcon, { frequencies: audioData?.frequencies, isActive: true }))] }), !input?.length && (_jsxs("div", { className: "relative", style: transcribing || submitting
|
|
277
|
+
? { width: '40px', height: '40px', padding: '4px' }
|
|
278
|
+
: undefined, children: [(transcribing || submitting) && (_jsx("div", { className: "absolute rounded-full left-0 top-0 w-[40px] h-[40px] animate-spin z-[1]", style: {
|
|
279
|
+
background: 'conic-gradient(from 180deg at 50% 50%, #1E6EB4 0deg, rgba(30, 110, 180, 0) 360deg)',
|
|
280
|
+
} })), (!isRecording || transcribing) && (_jsxs(Button, { className: "relative rounded-full z-[2] w-[32px] h-[32px] m-0 text-[#18181B] disabled:opacity-100", onClick: (event) => {
|
|
281
|
+
event.preventDefault();
|
|
282
|
+
handleOnClick('StartRecording');
|
|
283
|
+
handleStartRecording();
|
|
284
|
+
}, variant: "outline", size: "icon", disabled: loadingChat || isRecording || submitting, children: [!submitting && _jsx(ClikMicrophoneIcon, { size: 20 }), submitting && _jsx(ArrowUpIcon, { size: 20 })] }))] })), !input?.length && isRecording && !isLoadingRecording && (_jsx(Button, { className: "rounded-full dark:border-zinc-700 p-0 w-[32px] h-[32px] border-none flex-shrink-0", variant: "outline", onClick: (event) => {
|
|
285
|
+
event.preventDefault();
|
|
286
|
+
handleOnClick('FinishRecording');
|
|
287
|
+
handleFinishRecording();
|
|
288
|
+
}, children: _jsx(CheckCirclFillIcon, { className: "!w-full !h-full" }) })), !!input?.length && (_jsxs("div", { className: "relative flex gap-[4px]", children: [_jsx(Button, { className: "rounded-full z-[2] p-1.5 w-[32px] h-[32px] m-0 px-2 py-1 text-[#18181B]", onClick: (event) => {
|
|
289
|
+
event.preventDefault();
|
|
290
|
+
handleOnClick('StartRecording');
|
|
291
|
+
handleStartRecording();
|
|
292
|
+
}, variant: "outline", disabled: loadingChat, children: _jsx(ClikMicrophoneIcon, { size: 16 }) }), _jsx(Button, { className: "rounded-full z-[2] p-1.5 w-[32px] h-[32px] m-0 bg-zinc-900 hover:bg-zinc-900 px-2 py-1 text-[#FFF]", onClick: (event) => {
|
|
293
|
+
event.preventDefault();
|
|
294
|
+
handleOnClick('Submit');
|
|
295
|
+
handleSend();
|
|
296
|
+
}, disabled: isRecording || !input?.length || loadingChat, children: _jsx(ArrowUpIcon, { size: 16 }) })] }))] })] })) })) }), canShowAudioPlayer && expanded && (_jsx(motion.div, { variants: contentVariants, initial: "collapsed", animate: "expanded", exit: "collapsed", transition: { duration: 0.2, delay: 0 }, className: "w-full", children: _jsx(AudioPlayerSimplified, { message: message, chatId: chatId, autoplay: true, onClose: () => {
|
|
297
|
+
setShowAudioPlayer(false);
|
|
298
|
+
onAudioEnded();
|
|
299
|
+
} }) }))] })] }));
|
|
300
|
+
};
|
|
301
|
+
//# sourceMappingURL=MultimodalInputSimplifiedOld.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultimodalInputSimplifiedOld.js","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/MultimodalInputSimplifiedOld.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AnimatePresence, motion } from 'framer-motion';\nimport {\n type ChangeEvent,\n FC,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { useWindowSize } from 'usehooks-ts';\nimport { useAudioRecording } from '../../../hooks/useAudioRecording';\nimport { useChatData } from '../../../hooks/useChatData';\nimport { useConfiguration } from '../../../hooks/useConfiguration';\nimport { getAudioTranscript } from '../../../services/chat.service';\nimport { BotType } from '../../../types/bot.type';\nimport { ChatMessageType, IFileUpload } from '../../../types/flowise.type';\nimport { cn, generateUUID, sleep } from '../../../utils/commonUtils';\nimport { getBestMimeType, getFileExtension } from '../../../utils/fileUtils';\nimport {\n AnimatedRecordingIcon,\n ArrowUpIcon,\n CheckCirclFillIcon,\n ClikAIIcon,\n ClikChatIcon,\n ClikCloseIcon,\n ClikMicrophoneIcon,\n} from '../Icons';\nimport { Button } from '../ui/Button';\nimport AudioPlayerSimplified from './AudioPlayerSimplified';\n\ntype PropsType = {\n input: string;\n setInput: (value: string) => void;\n loadingChat: boolean;\n message: ChatMessageType | null;\n chatId: string;\n handleSubmit: (\n event?: { preventDefault?: () => void },\n files?: IFileUpload[]\n ) => void;\n className?: string;\n bot: BotType | null;\n apiHost: string;\n setEnableTTS: (value: boolean) => void;\n enableTTS: boolean;\n onAudioEnded: () => void;\n};\n\ntype ClickType =\n | 'ChangeLanguage'\n | 'WelcomeMsg'\n | 'StartRecording'\n | 'CancelRecording'\n | 'FinishRecording'\n | 'PauseAudio'\n | 'PlayAudio'\n | 'CloseAudio'\n | 'Submit'\n | 'ClickButtonAI';\n\nexport const MultimodalInputSimplified: FC<PropsType> = (props) => {\n const {\n input,\n setInput,\n loadingChat,\n message,\n chatId,\n handleSubmit,\n className,\n bot,\n apiHost,\n setEnableTTS,\n onAudioEnded,\n } = props;\n const { onLoaded, theme = {} } = useConfiguration();\n const { modeButtonChat = false, gapInput = 16 } = theme;\n const { listeners } = useChatData();\n const {\n isRecording,\n onRecordingCancelled,\n onRecordingStopped,\n onRecordingStarted,\n isLoadingRecording,\n audioData,\n } = useAudioRecording();\n const { width } = useWindowSize();\n\n const language =\n theme?.language?.options\n ?.find((option) => option.code === theme?.language?.code)\n ?.name?.toUpperCase() || 'EN';\n\n const [transcribing, setTranscribing] = useState<boolean>(false);\n const [showAudioPlayer, setShowAudioPlayer] = useState(false);\n const [submitting, setSubmitting] = useState(false);\n const [expanded, setExpanded] = useState(!modeButtonChat);\n const [animationCompleted, setAnimationCompleted] = useState(false);\n\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n const setInputRef = useRef<((input: string) => void) | null>(null);\n\n const welcomeMessage =\n theme.welcomeMessage || \"Hi, I'm your showroom assistant\";\n const adjustHeight = () => {\n if (textareaRef.current) {\n (textareaRef.current as HTMLTextAreaElement).style.height = '24px';\n (textareaRef.current as HTMLTextAreaElement).style.height =\n `${textareaRef.current?.scrollHeight}px`;\n }\n };\n\n const readonly = isRecording || transcribing;\n const handleSetInput = useCallback(\n (value: string) => {\n setInput(value);\n },\n [setInput]\n );\n\n const handleInput = (event: ChangeEvent<HTMLTextAreaElement>) => {\n handleSetInput(event.target.value);\n\n if (textareaRef.current) {\n textareaRef.current.scrollTop = textareaRef.current.scrollHeight;\n }\n };\n\n const submitForm = useCallback(async () => {\n setSubmitting(true);\n if (listeners?.['ON_SUBMIT_MESSAGE']) {\n listeners['ON_SUBMIT_MESSAGE']();\n }\n handleSubmit(undefined);\n await sleep(500);\n setShowAudioPlayer(true);\n }, [handleSubmit, listeners]);\n\n const toAudioBase64 = (blob: Blob) => {\n return new Promise<IFileUpload>((resolve) => {\n let mimeType = getBestMimeType();\n const pos = blob.type.indexOf(';');\n if (pos === -1) {\n mimeType = blob.type;\n } else {\n mimeType = blob.type.substring(0, pos);\n }\n\n // read blob and add to previews\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n const base64data = reader.result as string;\n const upload: IFileUpload = {\n tempId: generateUUID(),\n data: base64data,\n type: 'audio',\n name: `audio_${Date.now()}.${getFileExtension(mimeType)}`,\n mime: mimeType,\n };\n resolve(upload);\n };\n });\n };\n\n const speechToText = async (blob: Blob) => {\n try {\n setTranscribing(true);\n const fileUpload = await toAudioBase64(blob);\n const base64Data = fileUpload.data!.replace(/^data:.+;base64,/, '');\n const byteCharacters = atob(base64Data); // Decode Base64 string\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n const file = new File([byteArray], fileUpload.name, {\n lastModified: new Date().getTime(),\n type: fileUpload.type,\n });\n\n const text = await getAudioTranscript({ file, apiHost, language });\n if (text) {\n handleSetInput(text);\n }\n } catch (error) {\n console.error('Error getting audio transcript!', error);\n } finally {\n setTranscribing(false);\n }\n };\n\n const handleFinishRecording = () => {\n if (isRecording) {\n onRecordingStopped(speechToText);\n }\n if (listeners?.['ON_FINISHED_RECORDING']) {\n listeners['ON_FINISHED_RECORDING']();\n }\n };\n\n const handleStartRecording = useCallback(() => {\n onRecordingStarted();\n handleSetInput('');\n if (listeners?.['ON_START_RECORDING']) {\n listeners['ON_START_RECORDING']();\n }\n }, [onRecordingStarted, handleSetInput, listeners]);\n\n const handleCancelRecording = () => {\n onRecordingCancelled();\n handleSetInput('');\n if (listeners?.['ON_CANCEL_RECORDING']) {\n listeners['ON_CANCEL_RECORDING']();\n }\n };\n\n const handleSend = useCallback(async () => {\n if (!isRecording) {\n submitForm();\n }\n }, [submitForm, isRecording]);\n\n const handleOnClickOpenChatmode = () => {\n handleOnClick('WelcomeMsg');\n };\n\n const handleOnClick = (type?: ClickType) => {\n if (listeners?.['ON_CLICK']) {\n listeners['ON_CLICK'](type);\n }\n };\n\n const handleToggleExpand = () => {\n handleOnClick('ClickButtonAI');\n setExpanded(!expanded);\n setAnimationCompleted(false);\n if (!expanded) {\n // Focus vào textarea khi expand\n setTimeout(() => {\n if (textareaRef.current) {\n textareaRef.current.focus();\n }\n }, 300);\n }\n };\n\n useEffect(() => {\n adjustHeight();\n }, [input, readonly]);\n\n useEffect(() => {\n setInputRef.current = setInput;\n }, [setInput]);\n\n useEffect(() => {\n if (onLoaded) {\n onLoaded({\n setInput: (txt): void => {\n if (setInputRef.current) {\n setInputRef.current(txt || '');\n }\n },\n startRecording: async () => {\n handleStartRecording();\n },\n });\n }\n }, []);\n\n useEffect(() => {\n setEnableTTS(true);\n return () => {\n setEnableTTS(false);\n };\n }, [setEnableTTS]);\n\n useEffect(() => {\n if (message && submitting) {\n setSubmitting(false);\n if (listeners?.['ON_FINISHED_SUBMITTING_MESSAGE']) {\n listeners['ON_FINISHED_SUBMITTING_MESSAGE']();\n }\n }\n }, [message, submitting, listeners]);\n\n const recordingPlaceholder =\n isRecording && !transcribing\n ? theme?.input?.recordingPlaceholder || 'Recording...'\n : '';\n\n const transcribingPlaceholder = transcribing\n ? theme?.input?.transcribingPlaceholder || 'Transcribing...'\n : '';\n\n const processing = isRecording || transcribing;\n const canShowAudioPlayer =\n !theme?.noAutoplayMessage &&\n showAudioPlayer &&\n message?.new &&\n message?.tts;\n\n // Animation variants\n const containerVariants = {\n collapsed: {\n width: '0px',\n height: '0px',\n opacity: 0,\n borderRadius: '28px',\n },\n expanded: {\n width: width ? `${width - gapInput}px` : '400px',\n height: 'auto',\n opacity: 1,\n borderRadius: '16px',\n },\n };\n\n const contentVariants = {\n collapsed: {\n opacity: 0,\n scale: 0.8,\n },\n expanded: {\n opacity: 1,\n scale: 1,\n },\n };\n\n const showButtonAI =\n !isRecording &&\n modeButtonChat &&\n !input?.length &&\n !processing &&\n !submitting &&\n !transcribing;\n\n const showToggleChatIcon = showButtonAI && expanded;\n let centerWidthOffset = 72; // left: 24px, right: 32px, gap: 8px x 2, padding: 12px\n if (transcribing || submitting) {\n centerWidthOffset = 80; // left: 24px, right: 40px, gap: 8px x 2, padding: 12px\n }\n if (showToggleChatIcon) {\n centerWidthOffset = 108; // left: 24px, right: 68px, gap: 8px x 2, padding: 12px\n }\n\n return (\n <div className=\"flex justify-end\">\n {showButtonAI && (\n <div\n className={cn(\n 'absolute z-20 transition-all duration-300 top-1 right-1'\n )}\n >\n <Button\n className={cn(\n 'rounded-full bg-[#fff] hover:bg-[#fff] text-white border-none shadow-lg w-[40px] h-[40px] p-0 flex items-center justify-center',\n expanded && 'bg-[#595959] hover:bg-[#595959] text-white'\n )}\n onClick={handleToggleExpand}\n >\n {expanded ? (\n <ClikChatIcon\n size={24}\n style={{ width: '24px', height: '24px' }}\n />\n ) : (\n <ClikAIIcon size={24} style={{ width: '24px', height: '24px' }} />\n )}\n </Button>\n </div>\n )}\n <motion.div\n variants={containerVariants}\n initial=\"collapsed\"\n animate={expanded ? 'expanded' : 'collapsed'}\n transition={{ duration: 0.3, ease: 'easeInOut' }}\n className={cn(\n 'relative flex gap-4 bg-[#ffffff] py-[8px] px-[12px] scrollbar-hidden border border-[#E5E5E5] shadow-[0px_2px_6px_0px_rgba(0,0,0,0.08)] backdrop-blur-[50px]',\n className,\n {\n 'flex-col min-h-[48px]': !canShowAudioPlayer && expanded,\n 'flex-row min-h-[48px]': canShowAudioPlayer && expanded,\n 'items-center justify-center': !expanded,\n }\n )}\n >\n <AnimatePresence>\n {expanded && (\n <motion.div\n variants={contentVariants}\n initial=\"collapsed\"\n animate=\"expanded\"\n exit=\"collapsed\"\n transition={{ duration: 0.2, delay: 0 }}\n onAnimationComplete={() => setAnimationCompleted(true)}\n className={`w-full ${showButtonAI ? 'pr-9' : ''}`}\n >\n {!canShowAudioPlayer && (\n <>\n {!processing && !!input?.length && (\n <textarea\n readOnly={readonly}\n ref={textareaRef}\n value={input}\n onChange={handleInput}\n placeholder=\"Nhập tin nhắn của bạn...\"\n className={cn(\n `resize-none text-base bg-muted bg-[#ffffff] scrollbar-hidden ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 w-full mb-3`\n )}\n style={{\n fontSize: '16px',\n }}\n onKeyDown={(event) => {\n if (isRecording) {\n return;\n }\n\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n if (loadingChat) {\n console.error(\n 'Please wait for the model to finish its response!'\n );\n } else {\n handleSend();\n }\n }\n }}\n />\n )}\n {processing && (\n <div\n className={cn(\n `placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 resize-none text-base scrollbar-hidden mb-3`,\n className\n )}\n style={{\n fontSize: '16px',\n }}\n >\n <div className=\"animate-pulse\">\n {recordingPlaceholder}\n {transcribingPlaceholder}\n </div>\n </div>\n )}\n <div className=\"flex flex-row gap-[8px] items-center justify-between\">\n <div className=\"w-[24px] h-[24px]\">\n {!isRecording && (\n <button\n className=\"w-[24px] h-[24px] opacity-100\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleOnClick('ChangeLanguage');\n }}\n aria-label=\"Change language\"\n >\n <span className=\"text-[#595959] text-center text-[12px] border-[1px] font-bold rounded-[4px] border-[#595959] px-[2px]\">\n {language}\n </span>\n </button>\n )}\n {isRecording && (\n <Button\n disabled={isLoadingRecording}\n className=\"rounded-full dark:border-zinc-700 h-[24px] w-[24px] px-0 py-0\"\n variant=\"outline\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('CancelRecording');\n handleCancelRecording();\n }}\n >\n <ClikCloseIcon className=\"!w-full !h-full\" />\n </Button>\n )}\n </div>\n <div\n className=\"min-h-[24px] flex items-center justify-center text-ellipsis overflow-hidden whitespace-nowrap\"\n style={{ width: `calc(100% - ${centerWidthOffset}px)` }}\n >\n {!isRecording &&\n !input?.length &&\n !loadingChat &&\n !transcribing &&\n animationCompleted && (\n <div\n className=\"text-center text-[14px] text-muted-foreground cursor-pointer w-full text-ellipsis overflow-hidden whitespace-nowrap\"\n onClick={handleOnClickOpenChatmode}\n >\n {welcomeMessage}\n </div>\n )}\n {isRecording && (\n <AnimatedRecordingIcon\n frequencies={audioData?.frequencies}\n isActive={true}\n />\n )}\n </div>\n {!input?.length && (\n <div\n className=\"relative\"\n style={\n transcribing || submitting\n ? { width: '40px', height: '40px', padding: '4px' }\n : undefined\n }\n >\n {(transcribing || submitting) && (\n <div\n className=\"absolute rounded-full left-0 top-0 w-[40px] h-[40px] animate-spin z-[1]\"\n style={{\n background:\n 'conic-gradient(from 180deg at 50% 50%, #1E6EB4 0deg, rgba(30, 110, 180, 0) 360deg)',\n }}\n ></div>\n )}\n {(!isRecording || transcribing) && (\n <Button\n className=\"relative rounded-full z-[2] w-[32px] h-[32px] m-0 text-[#18181B] disabled:opacity-100\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('StartRecording');\n handleStartRecording();\n }}\n variant=\"outline\"\n size=\"icon\"\n disabled={loadingChat || isRecording || submitting}\n >\n {!submitting && <ClikMicrophoneIcon size={20} />}\n {submitting && <ArrowUpIcon size={20} />}\n </Button>\n )}\n </div>\n )}\n\n {!input?.length && isRecording && !isLoadingRecording && (\n <Button\n className=\"rounded-full dark:border-zinc-700 p-0 w-[32px] h-[32px] border-none flex-shrink-0\"\n variant=\"outline\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('FinishRecording');\n handleFinishRecording();\n }}\n >\n <CheckCirclFillIcon className=\"!w-full !h-full\" />\n </Button>\n )}\n\n {!!input?.length && (\n <div className=\"relative flex gap-[4px]\">\n <Button\n className=\"rounded-full z-[2] p-1.5 w-[32px] h-[32px] m-0 px-2 py-1 text-[#18181B]\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('StartRecording');\n handleStartRecording();\n }}\n variant=\"outline\"\n disabled={loadingChat}\n >\n <ClikMicrophoneIcon size={16} />\n </Button>\n <Button\n className=\"rounded-full z-[2] p-1.5 w-[32px] h-[32px] m-0 bg-zinc-900 hover:bg-zinc-900 px-2 py-1 text-[#FFF]\"\n onClick={(event) => {\n event.preventDefault();\n handleOnClick('Submit');\n handleSend();\n }}\n disabled={\n isRecording || !input?.length || loadingChat\n }\n >\n <ArrowUpIcon size={16} />\n </Button>\n </div>\n )}\n </div>\n </>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Audio Player */}\n {canShowAudioPlayer && expanded && (\n <motion.div\n variants={contentVariants}\n initial=\"collapsed\"\n animate=\"expanded\"\n exit=\"collapsed\"\n transition={{ duration: 0.2, delay: 0 }}\n className=\"w-full\"\n >\n <AudioPlayerSimplified\n message={message}\n chatId={chatId}\n autoplay\n onClose={() => {\n setShowAudioPlayer(false);\n onAudioEnded();\n }}\n />\n </motion.div>\n )}\n </motion.div>\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ChatMessageType } from '../../../types/flowise.type';
|
|
3
|
+
type PropsType = {
|
|
4
|
+
id?: string;
|
|
5
|
+
initialMessages?: ChatMessageType[];
|
|
6
|
+
agentId?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const SimplifiedChat: FC<PropsType>;
|
|
9
|
+
export default SimplifiedChat;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,KAAK,SAAS,GAAG;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,SAAS,CAuDjC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { useChat } from '../../../hooks/useChat';
|
|
4
|
+
import { useConfiguration } from '../../../hooks/useConfiguration';
|
|
5
|
+
import { MultimodalInputSimplified } from './MultimodalInputSimplified';
|
|
6
|
+
const SimplifiedChat = ({ id, agentId, initialMessages = [], }) => {
|
|
7
|
+
const { messages = [], handleSubmit, input = '', setInput, isLoading, chatId, bot, enableTTS, setEnableTTS, } = useChat({ id, initialMessages, agentId });
|
|
8
|
+
const { apiHost } = useConfiguration();
|
|
9
|
+
const lastMsgIdRef = useRef(undefined);
|
|
10
|
+
const [message, setMessage] = useState(null);
|
|
11
|
+
const latestMsg = messages.findLast((msg) => msg.new && msg.tts);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!latestMsg) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!!lastMsgIdRef.current && lastMsgIdRef.current === latestMsg.id) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (latestMsg.ttsUrl && latestMsg.ttsUrl.startsWith('http')) {
|
|
20
|
+
lastMsgIdRef.current = latestMsg.id;
|
|
21
|
+
}
|
|
22
|
+
setMessage(latestMsg);
|
|
23
|
+
}, [latestMsg]);
|
|
24
|
+
const handleOnAudioEnded = () => {
|
|
25
|
+
setMessage(null);
|
|
26
|
+
};
|
|
27
|
+
return (_jsx(MultimodalInputSimplified, { input: input, setInput: setInput, chatId: chatId, handleSubmit: handleSubmit, loadingChat: isLoading, message: message, bot: bot, apiHost: apiHost, setEnableTTS: setEnableTTS, enableTTS: enableTTS, onAudioEnded: handleOnAudioEnded }));
|
|
28
|
+
};
|
|
29
|
+
export default SimplifiedChat;
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Chat/Simplified/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAQxE,MAAM,cAAc,GAAkB,CAAC,EACrC,EAAE,EACF,OAAO,EACP,eAAe,GAAG,EAAE,GACrB,EAAE,EAAE;IACH,MAAM,EACJ,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,GAAG,EACH,SAAS,EACT,YAAY,GACb,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAyB,IAAI,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;QACtC,CAAC;QACD,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,yBAAyB,IACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,SAAS,EACtB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,GAChC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import { FC, useEffect, useRef, useState } from 'react';\nimport { useChat } from '../../../hooks/useChat';\nimport { useConfiguration } from '../../../hooks/useConfiguration';\nimport { ChatMessageType } from '../../../types/flowise.type';\nimport { MultimodalInputSimplified } from './MultimodalInputSimplified';\n\ntype PropsType = {\n id?: string;\n initialMessages?: ChatMessageType[];\n agentId?: string;\n};\n\nconst SimplifiedChat: FC<PropsType> = ({\n id,\n agentId,\n initialMessages = [],\n}) => {\n const {\n messages = [],\n handleSubmit,\n input = '',\n setInput,\n isLoading,\n chatId,\n bot,\n enableTTS,\n setEnableTTS,\n } = useChat({ id, initialMessages, agentId });\n const { apiHost } = useConfiguration();\n const lastMsgIdRef = useRef<string | undefined>(undefined);\n const [message, setMessage] = useState<ChatMessageType | null>(null);\n\n const latestMsg = messages.findLast((msg) => msg.new && msg.tts);\n useEffect(() => {\n if (!latestMsg) {\n return;\n }\n\n if (!!lastMsgIdRef.current && lastMsgIdRef.current === latestMsg.id) {\n return;\n }\n\n if (latestMsg.ttsUrl && latestMsg.ttsUrl.startsWith('http')) {\n lastMsgIdRef.current = latestMsg.id;\n }\n setMessage(latestMsg);\n }, [latestMsg]);\n\n const handleOnAudioEnded = () => {\n setMessage(null);\n };\n\n return (\n <MultimodalInputSimplified\n input={input}\n setInput={setInput}\n chatId={chatId}\n handleSubmit={handleSubmit}\n loadingChat={isLoading}\n message={message}\n bot={bot}\n apiHost={apiHost}\n setEnableTTS={setEnableTTS}\n enableTTS={enableTTS}\n onAudioEnded={handleOnAudioEnded}\n />\n );\n};\n\nexport default SimplifiedChat;\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SuggestionType } from 'types/common.type';
|
|
3
|
+
import { ChatMessageType } from 'types/flowise.type';
|
|
4
|
+
interface SuggestedActionsProps {
|
|
5
|
+
suggestedActions?: SuggestionType[];
|
|
6
|
+
append?: (message: ChatMessageType) => Promise<void>;
|
|
7
|
+
layoutMode?: string;
|
|
8
|
+
suggestedActionRows?: number;
|
|
9
|
+
}
|
|
10
|
+
declare const SuggestedActions: React.FC<SuggestedActionsProps>;
|
|
11
|
+
export default SuggestedActions;
|
|
12
|
+
//# sourceMappingURL=SuggestedActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestedActions.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/SuggestedActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwDrD,CAAC;AA6BF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { motion } from 'framer-motion';
|
|
3
|
+
import { LAYOUT_MODE } from 'commons/constants';
|
|
4
|
+
const SuggestedActions = ({ suggestedActions, append, layoutMode = LAYOUT_MODE.SCROLL, suggestedActionRows = 1, }) => {
|
|
5
|
+
if (!suggestedActions?.length)
|
|
6
|
+
return null;
|
|
7
|
+
const containerHeight = suggestedActionRows * 60;
|
|
8
|
+
const animation = {
|
|
9
|
+
initial: { opacity: 0, y: 20 },
|
|
10
|
+
animate: { opacity: 1, y: 0 },
|
|
11
|
+
exit: { opacity: 0, y: 20 },
|
|
12
|
+
};
|
|
13
|
+
return layoutMode === LAYOUT_MODE.GRID ? (
|
|
14
|
+
// UI Grid (2 columns)
|
|
15
|
+
_jsx("div", { className: "grid sm:grid-cols-2 gap-2 w-full", children: suggestedActions.map((suggestedAction, index) => (_jsx(motion.div, { ...animation, transition: { delay: 0.05 * index }, className: index > 1 ? 'hidden sm:block' : 'block', children: _jsx(ActionButton, { suggestedAction: suggestedAction, append: append }) }, `suggested-action-${suggestedAction.title}-${index}`))) })) : (
|
|
16
|
+
// UI Scroll
|
|
17
|
+
_jsx("div", { className: "w-full overflow-x-auto scrollbar-hidden", style: { maxHeight: `${containerHeight}px` }, children: _jsx("div", { style: {
|
|
18
|
+
gap: '8px',
|
|
19
|
+
display: 'grid',
|
|
20
|
+
gridAutoFlow: 'column',
|
|
21
|
+
gridTemplateRows: `repeat(${suggestedActionRows}, minmax(0, 1fr))`,
|
|
22
|
+
}, children: suggestedActions.map((suggestedAction, index) => (_jsx(motion.div, { ...animation, transition: { delay: 0.05 * index }, children: _jsx(ActionButton, { suggestedAction: suggestedAction, append: append }) }, `suggested-action-${suggestedAction.title}-${index}`))) }) }));
|
|
23
|
+
};
|
|
24
|
+
const ActionButton = ({ suggestedAction, append, }) => (_jsxs("button", { onClick: (e) => {
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
if (append) {
|
|
27
|
+
append({ role: 'apiMessage', content: suggestedAction.action });
|
|
28
|
+
}
|
|
29
|
+
}, className: "text-left rounded-3xl border border-[#E5E5E5] px-[12px] py-[4px] text-sm flex-1 gap-1 sm:flex-col h-[36px] w-full justify-start items-start", children: [_jsx("span", { className: "text-[#595959] font-inter text-sm font-normal leading-6 overflow-hidden whitespace-nowrap text-ellipsis w-full group-hover:overflow-visible group-hover:whitespace-normal", children: suggestedAction.title }), !!suggestedAction.label && (_jsx("span", { className: "text-muted-foreground", children: suggestedAction.label }))] }));
|
|
30
|
+
export default SuggestedActions;
|
|
31
|
+
//# sourceMappingURL=SuggestedActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuggestedActions.js","sourceRoot":"","sources":["../../../src/components/Chat/SuggestedActions.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,gBAAgB,GAAoC,CAAC,EACzD,gBAAgB,EAChB,MAAM,EACN,UAAU,GAAG,WAAW,CAAC,MAAM,EAC/B,mBAAmB,GAAG,CAAC,GACxB,EAAE,EAAE;IACH,IAAI,CAAC,gBAAgB,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,eAAe,GAAG,mBAAmB,GAAG,EAAE,CAAC;IAEjD,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QAC9B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;KAC5B,CAAC;IAEF,OAAO,UAAU,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,uBAAuB;IACvB,cAAK,SAAS,EAAC,kCAAkC,YAC9C,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC,CAChD,KAAC,MAAM,CAAC,GAAG,OAEL,SAAS,EACb,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EACnC,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,YAElD,KAAC,YAAY,IAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAI,IAL7D,oBAAoB,eAAe,CAAC,KAAK,IAAI,KAAK,EAAE,CAM9C,CACd,CAAC,GACE,CACP,CAAC,CAAC,CAAC;IACF,aAAa;IACb,cACE,SAAS,EAAC,yCAAyC,EACnD,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,eAAe,IAAI,EAAE,YAE5C,cACE,KAAK,EAAE;gBACL,GAAG,EAAE,KAAK;gBACV,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,QAAQ;gBACtB,gBAAgB,EAAE,UAAU,mBAAmB,mBAAmB;aACnE,YAEA,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,CAAC,CAChD,KAAC,MAAM,CAAC,GAAG,OAEL,SAAS,EACb,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,YAEnC,KAAC,YAAY,IAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAI,IAJ7D,oBAAoB,eAAe,CAAC,KAAK,IAAI,KAAK,EAAE,CAK9C,CACd,CAAC,GACE,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,YAAY,GAAgC,CAAC,EACjD,eAAe,EACf,MAAM,GACP,EAAE,EAAE,CAAC,CACJ,kBACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACb,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,EACD,SAAS,EAAC,8IAA8I,aAExJ,eAAM,SAAS,EAAC,2KAA2K,YACxL,eAAe,CAAC,KAAK,GACjB,EACN,CAAC,CAAC,eAAe,CAAC,KAAK,IAAI,CAC1B,eAAM,SAAS,EAAC,uBAAuB,YAAE,eAAe,CAAC,KAAK,GAAQ,CACvE,IACM,CACV,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import React from 'react';\nimport { motion } from 'framer-motion';\nimport { SuggestionType } from 'types/common.type';\nimport { ChatMessageType } from 'types/flowise.type';\nimport { LAYOUT_MODE } from 'commons/constants';\n\ninterface SuggestedActionsProps {\n suggestedActions?: SuggestionType[];\n append?: (message: ChatMessageType) => Promise<void>;\n layoutMode?: string;\n suggestedActionRows?: number;\n}\n\nconst SuggestedActions: React.FC<SuggestedActionsProps> = ({\n suggestedActions,\n append,\n layoutMode = LAYOUT_MODE.SCROLL,\n suggestedActionRows = 1,\n}) => {\n if (!suggestedActions?.length) return null;\n\n const containerHeight = suggestedActionRows * 60;\n\n const animation = {\n initial: { opacity: 0, y: 20 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 20 },\n };\n\n return layoutMode === LAYOUT_MODE.GRID ? (\n // UI Grid (2 columns)\n <div className=\"grid sm:grid-cols-2 gap-2 w-full\">\n {suggestedActions.map((suggestedAction, index) => (\n <motion.div\n key={`suggested-action-${suggestedAction.title}-${index}`}\n {...animation}\n transition={{ delay: 0.05 * index }}\n className={index > 1 ? 'hidden sm:block' : 'block'}\n >\n <ActionButton suggestedAction={suggestedAction} append={append} />\n </motion.div>\n ))}\n </div>\n ) : (\n // UI Scroll\n <div\n className=\"w-full overflow-x-auto scrollbar-hidden\"\n style={{ maxHeight: `${containerHeight}px` }}\n >\n <div\n style={{\n gap: '8px',\n display: 'grid',\n gridAutoFlow: 'column',\n gridTemplateRows: `repeat(${suggestedActionRows}, minmax(0, 1fr))`,\n }}\n >\n {suggestedActions.map((suggestedAction, index) => (\n <motion.div\n key={`suggested-action-${suggestedAction.title}-${index}`}\n {...animation}\n transition={{ delay: 0.05 * index }}\n >\n <ActionButton suggestedAction={suggestedAction} append={append} />\n </motion.div>\n ))}\n </div>\n </div>\n );\n};\n\ninterface ActionButtonProps {\n suggestedAction: SuggestionType;\n append?: (message: ChatMessageType) => Promise<void>;\n}\n\nconst ActionButton: React.FC<ActionButtonProps> = ({\n suggestedAction,\n append,\n}) => (\n <button\n onClick={(e) => {\n e.preventDefault();\n if (append) {\n append({ role: 'apiMessage', content: suggestedAction.action });\n }\n }}\n className=\"text-left rounded-3xl border border-[#E5E5E5] px-[12px] py-[4px] text-sm flex-1 gap-1 sm:flex-col h-[36px] w-full justify-start items-start\"\n >\n <span className=\"text-[#595959] font-inter text-sm font-normal leading-6 overflow-hidden whitespace-nowrap text-ellipsis w-full group-hover:overflow-visible group-hover:whitespace-normal\">\n {suggestedAction.title}\n </span>\n {!!suggestedAction.label && (\n <span className=\"text-muted-foreground\">{suggestedAction.label}</span>\n )}\n </button>\n);\n\nexport default SuggestedActions;\n"]}
|